DDL : creat, alter, drop, truncate
객체(object)를 생성, 수정, 삭제하는 명령어
객체 종류 - table, view, index 등
DDL구문은 autocommit을 내포함 => 취소 x
1. 테이블 생성(create table)
테이블 생성 시 필수 정보 : 테이블 명, 컬럼명, 데이터 타입(컬럼사이즈)
옵션 : default 값, 제약 조건
1-1. 제약조건 없이 default 값으로 테이블 생성
1-2. default 값이 선언된 컬럼에 insert 작업하기
& default 값을 명시적으로 삽입하는 방법
1-3. default 값을 암시적으로 삽입하는 방법
1-4. default 값이 설정되어 있지 않은 컬럼에 default 옵션 사용 시 => null
1-5. default값 사용해서 update 작업
* 서브쿼리 구문을 활용한 테이블 생성 작업(테스트용, 백업용으로 주로 사용)
* 형태만 복사하기
2. 제약조건 설정(alter table)
제약조건 유형 : not null, unique, primarty, foreign key, check
2-1. not null 제약조건
: 컬럼에 null 값을 허용하지 않는 제약조건 = > 값이 반드시 있어야 하는 컬럼에 지정
: null 값 저장 시 고정 길이 문자형(char)은 공간을 모두 차지,
: 가변길이 문자형(varchar)는 공간을 차지하지 x => null 값이 많이 입력되는 컬럼은 varchar사용을 권장
2-2. unique 제약조건
: 중복되지 않는 값을 입력
: 아이디, 주민번호, 이메일 등에 사용됨
2-3. primary key 제약조건
: 테이블 행을 식별해 줄 수 있는 컬럼에 선언하는 제약조건 => 대표컬럼
: not null + unique
* 컬럼, 테이블 레벨 문법
컬럼 레벨 문법 : not null, primary key, unique, check
테이블 레벨 문법 : primary key, unique, check, foreign key
2-5. foreign key 제약조건
: 두 테이블 사이의 관계를 선언=> 데이터의 무결성을 보장해 줌
: 자기자신 테이블 or 다른테이블의 특정 컬럼을 참조
: primary key, unique 제약조건이 선언된 컬럼만 참조 할 수 있음
: foregin key(컬럼명) references 참조할 테이블 명(참조할 컬럼명)
2-6. check 제약조건
: 해당 컬럼이 만족해야하는 조건을 지정
두 컬럼 조합 값에 primary key 설정
1. title 테이블 생성
*check 제약조건
title_copy 테이블 생성
2. copy_id와 title_id 의 조합 값에 primary key 값 생성
constraint 조합 값 네이밍 primary key(컬럼1, 컬럼2)
'STUDY > DATABASE' 카테고리의 다른 글
MYSQL - DDL(VIEW) (0) | 2022.05.13 |
---|---|
MYSQL - ALTER (0) | 2022.05.10 |
MYSQL - 연습문제(DML) (0) | 2022.05.02 |
MYSQL - TCL(트랜잭션제어어) (0) | 2022.05.02 |
MYSQL - DML_데이터 삭제(delete) (0) | 2022.05.02 |