SQL은 RDBMS에서 사용하는 스크립트 언어이다.
구성
- DDL ( Data Definition Language )
- 테이블을 생성, 수정, 삭제에 관한 명령어를 지원한다.
- DML ( Data Manipulation Language )
- 테이블에 데이터를 삽입하거나 수정, 삭제, 검색하는 명령어들을 지원한다.
- DCL ( Data Control Language )
- 보안을 위해 사용자에게 권한을 부여하거나 취소하는 명령어들을 지원한다.
DDL
테이블 생성
CREATE TABLE [테이블명] (
[컬럼이름] [데이터타입] [제약조건],
...
/*제약조건에 이름을 부여할 경우엔 CONSTRAINT 키워드를 사용*/
EX) CONSTRAINT [제약조건이름] PRIMARY KEY(컬럼이름)
);
테이블을 생성할 때 컬럼에 ON 절로 옵션을 추가 가능하다.
ON DELETE NO ACTION : 옵션을 지정하지 않았을 때의 DEFAULT값으로 이 컬럼을 다른 FK가 참조하고 있을 경우 FK부터 삭제한 다음에 삭제가 가능하게 하는 옵션이다.
ON DELETE CASCADE : 위의 상황과 마찬가지일 때 관련 튜플도 같이 삭제가 된다.
ON DELETE SET NULL : 참조하고 있는 FK를 NULL로 변경하고 삭제된다.
ON DELETE SET DEFAULT : FK를 미리 지정해둔 DEFAULT값으로 변경하고 삭제된다.
ON UPDATE NO ACTION : 튜플 변경불가 (DEFAULT)
ON UPDATE CASCADE : FK도 함께 변경
ON UPDATE SET NULL : FK는 NULL로 변경
ON UPDATE SET DAFAULT : FK는 DEFAULT값으로 변경
테이블 변경
/*컬럼추가*/
ALTER TABLE [테이블명] ADD [컬럼명] [데이터타입] [제약조건];
/*기존 컬럼 삭제*/
ALTER TABLE [테이블명] DROP COLUMN [컬럼명];
/*기존 컬럼에 제약조건 추가*/
ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건];
/*기존 컬럼에 제약조건 추가, NOT NULL이나 DEFAULT의 경우*/
ALTER TABLE [테이블명] MODIFY [컬럼명] NOT NULL;
ALTER TABLE [테이블명] MODIFY [컬럼명] NULL;
ALTER TABLE [테이블명] MODIFY [컬럼명] DEFAULT [디폴트값];
/*기존 컬럼 이름 변경*/
ALTER TRABLE [테이블명] REMANE COLUMN [이전컬렴명] TO [새컬럼명];
/*컬럼 삭제*/
ALTER TABLE [테이블명] DROP COLUMN [컬럼명];
/*제약조건 삭제*/
ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건명];
테이블 삭제
/*테이블 삭제*/
DROP TABLE [테이블명];
/*CASCADE CONSTRAINTS옵션으로 관계가 맺어져 있어도 FK 제약조건을 삭제하며 한번에 DROP 가능*/
DROP TABLE [테이블명] CASCADE CONSTRAINTS;
테이블 내용 전체 삭제
/* 모든 튜플 삭제 */
TRUNCATE TABLE [테이블명];
'데이터베이스' 카테고리의 다른 글
오라클 연산자 (IN, EXISTS, ALL...) (0) | 2023.06.01 |
---|---|
DML (0) | 2023.05.31 |
보이스/코드 정규화 (0) | 2023.05.10 |
정규화 (0) | 2023.05.01 |
E-R 모델 (0) | 2023.04.10 |