1. 데이터 정의 언어 (DDL : Data Definition Language)
- 데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어
- DDL에서는 대부분 데이터베이스나 테이블 이름, 컬럼 이름에 대해 따옴표가 아닌 백틱(`)으로 감싸준다. (속성명은 따옴표 가능)
1 ) CREATE : 데이터베이스, 테이블 생성
- 데이터베이스 생성
`CREATE DATABASE `DATABASENAME`;`
- 테이블 생성
`CREATE TABLE `DB_TABLENAME`(
‘속성명 1’ 타입,
‘속성명 2’ 타입,
...
)`
ㄱ ) 타입 종류
- 문자형 데이터타입
데이터 유형 | 정의 |
---|---|
CHAR(n) | 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다. |
VARCHAR(n) | 가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간은 채우지 않는다. |
TINYTEXT(n) | 문자열 데이터 타입(최대 255byte) |
TEXT(n) | 문자열 데이터 타입(최대 65535byte) |
MEDIUMTEXT(n) | 문자열 데이터 타입(최대 16777215byte) |
LONGTEXT(n) | 문자열 데이터 타입(최대 4294967295byte) |
JSON | JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다. |
- 숫자형 데이터 타입
데이터 유형 | 정의 |
---|---|
TINYINT(n) | 정수형 데이터 타입(1byte) -128 ~ +127 또는 0 ~ 255수 표현할 수 있다. |
SMALLINT(n) | 정수형 데이터 타입(2byte) -32768 ~ 32767 또는 0 ~ 65536수 표현할 수 있다. |
MEDIUMINT(n) | 정수형 데이터 타입(3byte) -8388608 ~ +8388607 또는 0 ~ 16777215수 표현할 수 있다. |
INT(n) | 정수형 데이터 타입(4byte) -2147483648 ~ +2147483647 또는 0 ~ 4294967295수 표현할 수 있다. |
BIGINT(n) | 정수형 데이터 타입(8byte) - 무제한 수 표현할 수 있다. |
FLOAT(길이, 소수) | 부동 소수형 데이터 타입(4byte) -고정 소수점을 사용 형태이다. |
DECIMAL(길이, 소수) | 고정 소수형 데이터 타입고정(길이+1byte) -소수점을 사용 형태이다. |
DOUBLE(길이, 소수) | 부동 소수형 데이터 타입(8byte) -DOUBLE을 문자열로 저장한다. |
- 날짜형 데이터 타입
데이터 유형 | 정의 |
---|---|
DATE | 날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte) |
TIME | 시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte) |
DATETIME | 날짜와 시간 형태의 기간 표현 데이터 타입(8byte) |
TIMESTAMP | 날짜와 시간 형태의 기간 표현 데이터 타입(4byte) -시스템 변경 시 자동으로 그 날짜와 시간이 저장된다. |
YEAR | 년도 표현 데이터 타입(1byte) |
- 이진 데이터 타입
데이터 유형 | 정의 |
---|---|
BINARY(n) & BYTE(n) | CHAR의 형태의 이진 데이터 타입 (최대 255byte) |
VARBINARY(n) | VARCHAR의 형태의 이진 데이터 타입 (최대 65535byte) |
TINYBLOB(n) | 이진 데이터 타입 (최대 255byte) |
BLOB(n) | 이진 데이터 타입 (최대 65535byte) |
MEDIUMBLOB(n) | 이진 데이터 타입 (최대 16777215byte) |
LONGBLOB(n) | 이진 데이터 타입 (최대 4294967295byte) |
2 ) ALTER : 데이터베이스, 테이블 수정
- 컬럼 추가
ALTER TABLE `추가하고자 하는 테이블 이름` ADD COLUMN `추가하고자 하는 컬럼 명` `속성값`;
- 컬럼 삭제
ALTER TABLE `삭제하고자 하는 테이블 이름` DROP COLUMN `삭제하고자 하는 컬럼 이름`;
- 컬럼 이름 변경
ALTER TABLE `변경하고자 하는 컬럼이 있는 테이블 이름` CHANGE COLUMN `변경하고자 하는 컬럼 명` `새로운 컬럼 명` 변경하고자 하는 속성값;
- 테이블 이름 변경
ALTER TABLE `변경하려는 테이블 이름` RENAME `새로운 테이블 이름`;
3 ) DROP : 데이터베이스, 테이블 삭제
- 데이터베이스 삭제
DROP DATABASE `DATABASE NAME`;
- 테이블 삭제
DROP TABLE `TABLE NAME`;
4 ) TRUNCATE : 테이블 초기화
- DELETE문과 다른점 : 조건없이 모두 삭제한다는 것
TRUNCATE TABLE [TABLE NAME];
2. 데이터 조작어 (DML : Data Manipulation Language)
- 데이터베이스에 등록된 레코드를 조회, 수정, 삭제하는 등의 역할을 하는 언어
- 처리 순서 : WHERE > GROUP BY > HAVING > SELECT > ORDER BY
- 구문 작성 순서 : SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY
1) SELECT : 데이터 조회
ㄱ ) 기본
- 전체 데이터 조회
SELECT * FROM [TABLE NAME];
- 원하는 컬럼 조회
SELECT [COLUMN1], [COLUMN2], ... FROM [TABLE NAME];
- 출력 개수 지정
SELECT * FROM [TABLE NAME] LIMIT [원하는 개수];
- 오름차순
SELECT [COLUMN1] FROM [TABLE NAME] ORDER BY [기준 컬럼] ASC;
- 내림차순
SELECT [COLUMN1] FROM [TABLE NAME] ORDER BY [기준 컬럼] DESC;
- 조건 걸기
SELECT [COLUMN1], [COLUMN2], ... FROM [TABLE NAME] WHERE [기준 컬럼] = ‘조건값’;
- AS -> 컬럼 이름이 AS 뒤에 나온 이름으로 출력 됨.
SELECT [COLUMN1] AS A FROM [TABLE NAME];
ㄴ ) 집계함수(SUM, AVG, MIN, MAX, COUNT)
A ) 기본
SELECT 집계함수(컬럼 이름) FROM [TABLE NAME];
- SUM : 합산
SELECT SUM(컬럼 이름) FROM [TABLE NAME];
- AVG : 평균
SELECT AVG(컬럼 이름) FROM [TABLE NAME];
- MIN : 최소값
SELECT MIN(컬럼 이름) FROM [TABLE NAME];
- MAX : 최대값
SELECT MAX(컬럼 이름) FROM [TABLE NAME];
- COUNT : 데이터 개수
SELECT COUNT(컬럼 이름) FROM [TABLE NAME];
- ROUND(컬럼명, 숫자) : 컬럼을 숫자만큼만 볼 수 있도록 소수점을 반올림해줌
SELECT ROUND(컬럼 이름, 2) FROM [TABLE NAME];
-> 소수점 3번째 자리에서 반올림해서 소수점 둘째 자리까지만 보여줌
B ) 2개 이상의 컬럼을 합쳐서 조회하기
- || ' ' || 사용
SELECT [COLUMN1] || ' ' || [COLUMN2] FROM [TABLE NAME];
SELECT [COLUMN1] || ' ' || [COLUMN2] AS COLUMN12 FROM [TABLE NAME];
C ) 중복 제거 조회
- DISTINCT 사용
SELECT DISTINCT(COLUMN1) FROM [TABLE NAME];
ㄷ ) JOIN
A ) 기본
B ) 기본
ㄹ ) 응용
A ) UNION
- 쿼리의 결과를 합쳐주는 함수
- 유의할점 : 컬럼명이 같아야함 다르다면 AS로 별칭을 같게 만들어 주기
- UNION은 중복 제거, UNION ALL은 중복 포함
B ) COALESCE(컬럼1, 컬럼2, ..., 컬럼n)
- 컬럼1이 NULL값이 아니면 컬럼1을 RETURN
- 컬럼1이 NULL이면 컬럼2값을 확인하여 컬럼2가 NULL이 아니면 컬럼2 RETURN
- 컬럼2가 NULL이라면 컬럼n-1까지 확인후 컬럼 n-1까지 NULL이라면 컬럼n RETURN
2) INSERT : 데이터 삽입
3) UPDATE : 데이터 수정
4) DELETE : 데이터 삭제
3. 데이터 제어어 (DCL : Data Control Language)
- 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어
1) GRANT : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여
2) REVOKE : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수
3) COMMIT : 트랜잭션의 작업 결과를 반영
4) ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구