개발자 항해
DDL(데이터정의어) - 1 본문
- DDL(데이터정의어)란?
객체( 테이블, 뷰, 인덱스 등)를 생성, 수정, 삭제하는 명령어로
종류로는 create, alter, drop, truncate 가 있고 autocommit(자동저장)을 내포하고 있는것이 특징이다.
1. 테이블 생성 (create table)
테이블 생성시 기본정보: 테이블명, 컬럼명, 데이터타입
옵션 : 제약조건, default값
[문법] create table 테이블명
( 컬럼명1 데이터타입(컬럼사이즈),
컬럼명2 데이터타입(컬럼사이즈) 제약조건,
컬럼명3 데이터타입(컬럼사이즈) default 기본값);
데이터 타입 : 숫자 - int, bigint, double, float
문자 - char(고정길이 문자형으로 저장), varchar(가변길이 문자형으로 저장)
날짜 - date(년/월/일), datetime(년/월/일/시/분/초)
1) 제약 조건 추가 - not null, unique, primary key
2) 제약 조건 추가 - foreign key
foreign key는 desc로는 정확한 확인이 어렵고
아래와 같이 information_schema의 table_constraints에서 확인해야한다.
3) 제약 조건 - check
check는 desc 로는 확인이 어렵고
아래와 같이 information_schema의 table_constraints에서 확인해야한다.
2. 테이블 수정(alter table)
1) 컬럼추가
[문법] alter table 테이블명
add 컬럼명 데이터타입 [default] [제약조건] [first | after 컬럼명];
2) 컬럼 수정
데이터타입, 컬럼사이즈, defaul값 등 수정 가능함
[문법] alter table 테이블명
modify 컬럼명 데이터타입 [default] [제약조건];
3) 컬럼 삭제
[문법] alter table 테이블명
drop 컬럼명;
4) 제약조건 추가
[문법1] pk, uk, ck, fk
alter table 테이블명
add primary key(컬럼명);
alter table 테이블명
add unique key(컬럼명);
alter table 테이블명
add check key(컬럼명);
alter table 테이블명
add foreign key(컬럼명) references 부모테이블(부모컬럼명);
[문법2] nn (not null)
alter table 테이블명
modify 컬럼명 데이터타입 not null;
5) 제약조건 삭제
제약 조건 삭제전에 제약 조건명 확인이 필요하다.
desc로는 간략한 모습만 나오고 아래 구문으로 자세한 제약 조건명을 알수있다.
6) 컬럼명 변경
[문법] alter table 테이블명
rename column 기존컬럼명 to 새로운 컬럼명;
'DB > MySQL' 카테고리의 다른 글
DML ( 데이터조작어 ) - 3. delete (0) | 2022.07.20 |
---|---|
DML ( 데이터조작어 ) - 2. update (0) | 2022.07.05 |
DML ( 데이터조작어) - 1. insert (0) | 2022.07.04 |
DDL(데이터정의어) - View (0) | 2022.06.30 |
DDL(데이터정의어) - 2 (0) | 2022.06.30 |