데이터 타입
-
정수형
- TINYINT: 1 byte
- SMALLINT: 2 byte
- MEDIUMINT: 3 byte
- INT: 4 byte
- BIGINT: 8 byte
-
실수형
- DECIMAL: -999.99 ~ 999.99, 고정
- FLOAT: 4 byte, 부동
- DOUBLE: 8 byte, 부동
-
문자열
- CHAR: 1 byte + data, 고정
- VARCHAR: 1 or 2 byte + data, 가변
- TINYTEXT: 1 byte + data
- TEXT: 2 byte + data
- MEDIUMTEXT: 3 byte + data
- LONGTEXT: 4 byte + data
-
기타
- ENUM: 나열형
- SET: 나열형 다중값
-
이진 문자형
- BINARY: 1 byte, 고정
- VARBINARY: 2 byte, 가변
- TINEYBLOB: 1 byte + data
- BLOB: 2 byte + data
- MEDIUMBLOB: 3 byte + data
- LONGBLOB: 4 byte + data
-
날짜형
- YEAR: YYYY
- DATE: YYYY-MM-DD
- TIME: HH:MM:SS
- DATETIME: YYYY-MM-DD HH:MM:SS
- TIMESTAMP: DATETIME과 달리 숫자로 저장함, 공간 줄이기 가능
DDL
- CREATE {SCHEMA | DATABASE} SCHEMA;
- DROP {SCHEMA | DATABASE} SCHEMA;
- CREATE TABLE;
- NOT NULL
- UNIQUE: 고유한 값, NULL 허용, 인덱스 생성함
- PK
- FK
- CHECK: 입력, 수정 가능한 값의 범위를 제한하는 논리식 기술
- DEFAULT
- AUTO INCREAMENT
- 제약조건은 수정이 불가하며 삭제하고 다시 만들어야 함
- 예시
- 검증
- CTAS: SELECT를 활용하여 만드는 CREATE
CREATE. TABLE order_temps AS
SELECT *
FROM orders
DESCRIBE order_temps
- DROP TABLE {TABLE} {RESTRICT | CASCADE};
- 테이블 삭제
- MySQL은 자식 테이블 하나라도 있으면 삭제 못함
- ALTER TABLE
- 테이블 변경
- ADD COLUMN, DROP COLUMN
- MODIFY COLUMN, RENAME COLUMN
- ADD CONSTRANT
- DROP PRIMARY KEY / FOREIGN KEY / CHECK
- RENAME TABLE
- TRUNCATE TABLE
- Rollback을 통한 복구가 안됨. 따라서 DELETE FROM을 통해 삭제해주는 게 안전함