관계 데이터베이스를 위한 표준 질의어(query lang)다.
세가지 종류로 나뉜다.
테이블을 생성하는 명령어다.
CREATE TABLE 테이블_이름 (
속성_이름 데이터_타입 [NOT NULL/*널 값을 허용하지 않음*/] [DEFAULT 기본_값 /*속성의 기본 값*/]
[PRIMARY KEY (속성_리스트)] /*기본키*/
[UNIQUE (속성_리스트)] /*대체키*/
[FOREGIN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)] /*외래키*/
[ON DELETE 옵션] [ON UPDATE 옵션]
[CONSTRAINT 이름] [CHECK(조건)] /*데이터 제약조건*/
);
[]
괄호 내 내용은 생략이 가능하다. ;
으로 문장의 끝을 표시한다(여타 프로그래밍 언어와 동일).고객 테이블은 고객아이디, 고객이름, 나이, 등급, 직업, 적립금 속성으로 구성된다.
고객아이디가 기본 키다. 고객이름,등급속성은 값 입력이 필수다. 적립금 속성은 값 입력하지 않을 시 0이 기본값이다
위 예시로 한번 테이블을 생성해보자.
CREATE TABLE 고객(
고객아이디 VARCHAR(20) NOTNULL,
고객이름 VARCHAR(20) NOT NULL,
나이 SHORT,
등급 VARCHAR(10) NOT NULL,
직업 VARCHAR(20),
적립금 INT DEFAULT 0,
PRIMARY KEY(고객아이디)
);
제품 테이블은 제품번호, 제품명, 재고량, 단가, 제조업체 속성으로 구성된다. 제품번호가 기본키다. 재고량이 항상0개이상 1만개 이하를 유지하도록 생성하여라
한번 더 해보자
CREATE TABLE 제품(
제품번호 INT NOT NULL,
제품명 VARCHAR(30),
재고량 SHORT,
단가 LONG,
제조업체 VARCHAR(30)
PRIMARY KEY(제품번호)
CHECK(재고량>=0 && 재고량<=10000)
);
새로운 속성을 추가하는 명령어다.
ALTER TABLE 테이블_이름
ADD 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값];
만약 기존 속성을 삭제한다면 아래와 같이 DROP
을 같이 쓴다.
ALTER TABLE 테이블_이름
DROP 속성_이름 CASCADE | RESTRICT; /*속성과 관련된 제약조건이나 참조하는 다른속성을 함께 삭제하거나 존재할시 삭제를 거부한다.*/
간단하니 예시는 넘어가겠음!
테이블 자체를 제거하는 명령어다.
DROP TABLE 테이블_이름 CASCADE | RESTRICT /*제거할 테이블을 참조하는 다른 테이블도 제거 vs 제거할 테이블을 참조하는 다른 테이블이 존재하면 제거 거부*/
명령어로 뚝딱거리는 부분이라 쉽구만!!!