DESC 데이터베이스 명.테이블 명;
CREATE TABLE 테이블명
(
컬럼명 컬럼타입 [제약조건1 제약조건2 ...]
...
);
CREATE TABLE 테이블명
(
컬럼명 컬럼타입,
...
CONSTRAINT 제약조건이름 제약조건 (컬럼명)
);
ALTER TABLE 테이블명
ADD 컬럼명 컬럼타입 제약조건;
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건_이름 제약조건 (컬럼명);
ALTER TABLE 테이블명
MODIFY COLUMN 컬럼명 컬럼타입 제약조건;
ALTER TABLE 테이블명
MODIFY CONSTRAINT 제약조건_이름 제약조건 (컬럼명);
ALTER TABLE 테이블명
{DROP|DISABLE|ENABLE} CONSTRAINT 제약조건_이름;
컬럼의 값이 중복되지 않게 1씩 자동으로 증가하게 해줘 고유번호를 생성해줌
CREATE TABLE 테이블명
(
컬럼명 컬럼타입 AUTO_INCREMENT,
...
);
해당 필드는 NULL 값을 저장할 수 없음
CREATE TABLE 테이블명
(
컬럼명 컬럼타입 NOT NULL,
...
);
해당 필드는 서로 다른 값을 가져야만 함
CREATE TABLE 테이블명
(
컬럼명 컬럼타입 UNIQUE,
...
);
데이터를 입력하지 않아도 지정한 값이 기본으로 입력됨
CREATE TABLE 테이블명
(
컬럼명 컬럼타입 DEFAULT 기본값,
...
);
개발자가 정의하는 특정 조건을 만족해야하는 컬럼에 대한 제약을 설정
CREATE TABLE User
(
...
Age INT,
CHECK (Age >= 20)
);
// 2개이상의 컬럼에 적용하는 경우
CREATE TABLE User
(
...
Age INT,
Address VARCHAR(255),
CONSTRAINTS CHK_Adult CHECK (Age >= 20 AND Address IS NOT NULL)
);
ALTER TABLE User
ADD CHECK (Age >= 20);
// 2개이상의 컬럼에 적용하는 경우
ALTER TABLE User
ADD CONSTRAINTS CHK_Adult CHECK (Age >= 20 AND Address IS NOT NULL);
ALTER TABLE User
DROP CHECK CHK_Adult;
해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됨
CREATE TABLE 테이블명
(
컬럼명 컬럼타입 PRIMARY KEY,
...
);
💡 PRIMARY KEY 이해하기
PRIMARY KEY 즉, 기본 키는 테이블 내에서 '유일하게 존재하는 값의 조합'을 설정해서 중복된 데이터가 테이블에 삽입되는 것을 방지하는 제약조건
1️⃣ 데이터의 중복 방지
2️⃣ 데이터 탐색 빠름
하나의 테이블을 다른 테이블에 의존하게 만들며 데이터의 무결성을 보장
참조되는 테이블에서 데이터를 삭제하거나 수정하면, 참조하는 테이블에서도 삭제/수정 수행
참조하는 테이블에 데이터가 남아있으면, 참조되는 테이블에서 삭제/수정 불가
참조되는 테이블에서 데이터를 삭제하거나 수정하면, 참조하는 테이블에서는 변경되지 않음
참조되는 테이블에서 데이터를 삭제하거나 수정하면, 참조하는 테이블에서는 NULL/기본값으로 변경됨
CREATE TABLE 테이블명
(
컬럼명 컬럼타입,
...
[CONSTRAINT 제약조건이름]
FOREIGN KEY(컬럼명)
REFERENCES 참조할_테이블명(참조할_컬럼명) ON {DELETE|UPDATE} {CASCADE|RESTRICT|NO ACTION|SET NULL|SET DEFAULT}
);
❗ FOREIGN KEY 이해하기
FOREIGN KEY 즉, 외래 키는 두개의 테이블을 연결하는 다리 역할을 해주는 키