Day22
데이터베이스의 Schema를 정의하는 쿼리문 -> 데이터베이스 또는 테이블을 추가하고 수정하고 삭제함
CREATE
CREATE DATABASE [database_name];
CREATE TABLE [table_name] (
[field_name] [type] [constraint],
[field_name] [type] [constraint],
[field_name] [type] [constraint]
);
:!! constraint
- NOT NULL : NULL 불가능
- UNIQUE : 서로 다른 값만 가능
- PRIMARY KEY : 기본키 NOT NULL && UNIQUE 조건을 만족
- FOREIGN KEY : 외래키 (다른 테이블 의존)
- DEFAULT : 해당 필드의 기본값
DROP
DROP DATABASE [database_name];
DROP TABLE [table_name];
ALTER
ALTER DATABASE [database_name] CHARACTER SET=[문자형식];
:!! CHARACTER SET 에서 자주 사용되는 문자형식
- utf8
- euchr
ALTER DATABASE [database_name] COLLATE=[문자형식];
:!! COLLATE 에서 자주 사용되는 문자형식
- utf8_bin
- utf8_general_ci (대소문자 구분 x)
- euchr_bin
- euckr_korean_ci (대소문자 구분 x)
ALTER TABLE [table_name] ADD [field_name] [field_type];
ALTER TABLE [table_name] DROP [field_name];
ALTER TABLE [table_name] MODIFY COLUMN [field_name] [field_type];
TRUNCATE
TRUNCATE TABLE [table_name];
테이블 초기화
DELETE문과 비교해서
- 트랜잭션 로그 공간을 조금 사용
- 적은 수의 잠금이 사용
- 빈 페이지는 예외없이 테이블에 남음
- 롤백 가능
SELECT
SELECT [field_name] FROM [table_name] (WHERE 조건)
INSERT
INSERT INTO [table_name] ([field_name], [field_name], ...) VALUES (data1, data2 ...);
UPDATE
UPDATE [table_name] SET [field_name]=data1, [field_name]=data2, ... WHERE [조건];
DELETE
DELETE FROM [table_name] WHERE [조건] //ex) [field_name]=data