본문 바로가기
빅데이터 부트캠프/MySQL

빅데이터 부트캠프 69일차

by Mecodata 2022. 10. 17.

데이터베이스(DataBase)

- 구조화된 정보 또는 데이터의 조직화된 모음 

- 데이터베이스 관리 시스템(DBMS)에 의해 제어

- CRUD(Create, Read, Update, Delete) = 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능
- DB에서 CRUD는 각각 INSERT, SELECT, UPDATE, DELETE를 가리킴

 

관계형 데이터베이스(Relational DataBase - RDB)

- 키(key):값(value)의 간단한 관계를 가진 데이터들을 테이블화 시킨 간단한 원칙의 전산정보 데이터베이스

- SQL(Structured Query Language) = RDB에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어

 

구성요소

- 열(column), 필드(field), 속성(attribute) = 데이터를 구분하는 기준, 타입 
- 행(row), 튜플(tuple), 레코드(record) = 관계된 데이터의 묶음

- 키(key) = 테이블에서 행의 식별자로 이용되는 열
- 값(value) = 행과 열에 대응하는 값

 

MYSQL 단축키

- ctrl + Enter = 쿼리 한줄 실행
- ctrl + Shift + Enter = 쿼리 전체 실행

- ctrl + D = 쿼리 한줄 바로 밑에 그대로 복사
- ctrl + B = 쿼리 정렬
- ctrl + Space = 예약어 자동완성 실행 

 

MySQL 기본 예약어 

- MySQL에서 쿼리(예약어)는 대소문자 상관 없이 명령을 인식하지만 기본적으로 대문자로 입력

※ 예약어 자동완성 사용시 예약어가 대문자로 입력되도록 하는 방법 
Edit - Preferences - Query Editor - Use UPPERCASE~ 버튼 체크 


- USE DB명 / TABLE명 = 해당 DB or 테이블 사용
- SHOW DATABASES / TABLES = DB / 테이블 목록 출력
- DESC TABLE명 = 해당 테이블의 구조(스키마) 출력

- SELECT = 데이터 출력

- UPDATE = 데이터 수정

INSERT = 데이터 추가
DELETE = 데이터 삭제 


SELECT 

- 데이터 출력 예약어

- SELECT 컬럼명 (AS) 텍스트 = 지정한 텍스트로 컬럼명 지정하여 출력 
(띄어쓰기를 적용하여 텍스트를 입력하려면 ''안에 텍스트를 입력해야함, 실제로 적용 X -> 보기 편하기 위해서 사용)

ex) SELECT ename "사원 이름" FROM emp;
- SELECT DISTINCT 컬럼명 = 중복 제거한 해당 컬럼 데이터 출력

IFNULL(컬럼명, 데이터) = 해당 컬럼 데이터 중에서 NULL인 데이터를 지정한 데이터로 변환
- ORDER BY 컬럼명 ASD/DESC = 해당 컬럼 데이터 오름차순/내림차순 정렬

 

조건문

- WHERE 조건 = 조건문
- 조건적용시 대소문자를 구분하고 싶으면 BINARY 이용
한 컬럼에 대한 조건이 여러개인 경우에는 [컬럼명 IN (조건1, 조건2, ...)]을 이용하여 적용 가능 
- NULL에 대한 조건을 입력할 때는 = NULL 아닌 IS NULL을 입력 (에러 없이 실행은 되지만 조건 적용이 안됨)

- IS NULL은 조건문에서만 사용 가능

ex) UPDATE emp SET comm = 0 WHERE comm IS NULL;

※ UPDATE ~ SET으로 조건을 만족하는 데이터를 NULL로 바꾸려면 IS NULL 아닌 = NULL 사용
- 조건이 특정 구간에 대한 것이면 BETWEEN ~ AND를 통해 적용 가능
- 조건이 문자열에 관한 것이면 LIKE를 이용하여 문자열에 대한 특정 조건 설정 가능
_ = 문자열 수 지정, %는 앞뒤 문자열수 상관없이 허용)

 

GROUP BY와 함께 사용되는 집계 함수

GROUP BY 컬럼명 = 지정한 컬럼 기준으로 데이터 그룹화
- SUM() = 합계, MAX() = 최대값, MIN() = 최솟값, COUNT() = 개수, STDEV() = 표준편차, VAR_SAMP() = 분산

- 집계 함수를 조건문에서 사용하려면 WHERE에 바로 적용 불가능 (IN을 이용해서 서브 쿼리로 입력해야함)

ex) SELECT * FROM emp WHERE sal IN (SELECT MAX(sal) FROM emp); = 급여(sal)가 가장 높은 사원 정보(emp)) 출력

숫자 관련 함수

- ABS = 절대값
- ROUND = 반올림
- TRUNC = 버림
- MOD = 나눗셈 나머지 
- POWER = 제곱


문자열 관련 함수

- LENGTH = 문자열 길이 (영어문자 하나당 1byte라 길이를 1로 인식하지만 한글(UTF-8)문자 하나당 3byte로 인식하여 문자열 하나의 길이가 3으로 인식됨)
- SUBSTR(데이터, 시작위치, 추출할 개수) = 특정 인덱스 위치의 문자열 추출 

(MYSQL은 인덱스 번호 시작이 0이 아닌 1부터)
- TRIM = 문자열 앞뒤의 공백 제거 (스페이스바에 대한 공백만 제거, TAB에 의한 공백은 제거 X)
- UPPER = 문자열 모두 대문자로 변환
- LOWER = 문자열 모두 소문자로 변환


날짜 관련 함수 

- 날짜 데이터는 2022-10-17, 2022/10/17로 표현 모두 가능

- SYSDATE = 현재 시간 출력 (SLEEP 적용 O)
- NOW = 현재 시간 출력 (SLEEP 적용 X)
- ADDDATE(SYSDATE(), INTERVAL 기간) = 날짜 사칙연산
- DATEDIFF(날짜1, 날짜2) = 두 날짜 차이 계산 
TIMESTAMPDIFF(간격 단위, 날짜1, 날짜2) = 두 날짜 차이 계산 (설정한 단위에 맞게 반환)
  ※ 간격 단위 = YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND
- LAST_DAY = 지정한 날짜(월)의 마지막 날 출력


형변환 함수 (적용은 X, 변환 적용은 UPDATE ~ SET 이용)

1. DATE_FORMAT(날짜 데이터, 출력 형식) = 지정한 날짜 데이터 or 날짜 형식의 정수 데이터를 지정한 출력 형식에 맞게 날짜 데이터로 변환

ex) SELECT DATE_FORMAT(NOW(), '%Y-%M-%d'); -> 현재 시간이 2022-10-17와 같은 형식으로 출력

 

출력형식

- %Y 년도 - Year(4자리 표기)
- %y 년도 (뒤에 2자리 표기)
- %M 월 - 월 이름(January ~ December)
- %m 월 - 월 숫자(00 ~ 12)
- %d 일(00 ~ 31)
- %H 시간 24시간(00 ~ 23)
- %h 시간 12시간(00 ~ 12)
- %i 분 (00 ~ 59)
- %s 초 (00 ~ 59)

2. STR_TO_DATE = 문자열 데이터를 날짜 데이터로 변환하여 출력
단, 문자열 데이터에 -이나 / 같은 구분자 텍스트가 있으면 적용 X

3. CAST(데이터 AS 데이터 타입) = 지정한 데이터를 지정한 데이터 타입으로 변환하여 출력 

ex) SELECT CAST(1 AS CHAR) = INT를 CHAR로 변환하여 출력

 

MySQL 데이터 타입

- BINARY  = 이진 데이터 
- CHAR  = 문자열   
- DECIMAL  = 실수  
- SIGEND (INTEGER)  = 부호 (음수,양수) 있는 정수  

- UNSIGNED (INTEGER) = 부호 없는 정수 

- DATE  = 날짜 
- DATETIME  = 날짜 + 시간

- TIME  = 시간

- JSON  = 키:값

'빅데이터 부트캠프 > MySQL' 카테고리의 다른 글

빅데이터 부트캠프 71일차  (0) 2022.10.19
빅데이터 부트캠프 70일차  (0) 2022.10.18
빅데이터 부트캠프 44일차  (0) 2022.09.05

댓글