SQL(Structed Query Language): 구조화된 질의 언어
3가지 종류가 있다 DDL, DML, DCL
ㅁDDL(Data Definition Language): 데이터 정의어
① CREATE문: 테이블을 구성하는 속성 타입 지정 및 NULL 값 허용 여부 또는 기본 값 지정 등 정의
<CREATE문 속성 데이터 타입>
(속성 정의)
- NOT NULL: 속성에 NULL값 허용 x
USER_ID VARCHAR(10) NOT NULL;
(CREATE TABLE문으로 생성되는 테이블을 구성하는 속성은 기본적으로 NULL값을 허용)
NOT NULL: 특정 열에 반드시 값이 있어야 하는 경우 e.g. 이름과 같은 필수 정보, 외래 키나 중요한 참조 값
NULL 허용: 특정 열에 값이 없어도 되는 경우(나중에 입력될 가능성이 있는 경우) e.g. 선택적 정보
- DEFAULT: 기본값을 명확히 지정
USER_AGE INT DEFAULT 0; -- 디폴트 값을 0으로 설정
STUDENT_GRADE CHAR(2) DEFAULT 'A0'; -- 디폴트 값을 'A0'으로 설정
(키 지정 키워드)
- PRIMARY KEY: 기본키 지정 키워드
가능한 한 기본키를 지정한다
PRIMARY KEY(USER_ID);
PRIMARY KEY(CUSTOMER_ID, PRODUCT_ID);
(기본키를 지정하는 키워드로 NULL 값은 허용되지 않는다)
- UNIQUE KEY: 대체키 지정 키워드
기본키와 같이 각 튜플을 유일하게 식별하는 특성
UNIQUE(필드명);
(기본키와 달리 NULL값 가능)
- FOREIGN KEY: 외래키 지정 키워드
다른 테이블의 기본키와 동일
FOREIGN KEY(USER_NUM) REFERENCES USER(NUM); -- 참조되는 테이블과 속성 제시
출처를 분명히 밝히기 위해, REFERENCES 뒤에 참조되는 테이블과 속성을 제시
데이터 무결성 제약조건 정의: CONSTRAINT 키워드
- 개체 무결성 제약조건: 기본키로 NULL값 X + 테이블 내에 오직 하나의 값만 존재
PRIMARY KEY, NOT NULL 키워드를 통해 제공 가능
- 참조 무결성 제약조건: 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 조건
FOREIGN KEY 지정 시 REFERENCE 키워드 사용하여 제공
- 도메인 무결성 제약조건: 릴레이션 내 튜플들이 각 속성의 도메인에 지정된 값을 가져야 함
CHECK 키워드 또는 CHECK, CONSTRAINT 키워드와 함께 사용하여 지정
CHECK(PRICE >= 0)
CONSTRAINT CHK_PRICE CHECK(PRICE >= 0)
(NUM) ON DELETE NO ACTION ON UPDATE CASCADE;
CREATE문 예제
② ALTER문: 테이블을 ALTER TABLE문으로 변경 가능
- 속성 추가
ALTER TABLE 테이블 이름
ADD 속성_이름 데이터_타입 [NOT NULL] -- NULL값 허용 x
[DEFAULT 기본_값];
- 속성 삭제
ALTER TABLE 테이블_이름
DROP COLUMN 속성_이름;
- 제약조건 추가
ALTER TABLE 테이블_이름 ADD
CONSTRAINT 제약조건_이름 제약조건_내용;
- 제약조건 삭제
ALTER TABLE 테이블_이름
DROP CONSTRAINT 제약조건_이름;
ALTER문 예제
③ DROP문: 테이블을 삭제하는 문
DROP TABLE 테이블_이름;
삭제할 테이블을 다른 테이블이 참조하고 있다면 삭제 수행 불가
-> 삭제하고자 하는 테이블을 참조하는 외래키 제약 조건을 먼저 삭제 필요
출처 및 참고: 세종대학교 K-MOOC 데이터베이스 보안(김영갑)
'DBMS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] ep4-3) SQL: DCL (1) | 2024.06.30 |
---|---|
[데이터베이스] ep4-2) SQL: DML (0) | 2024.06.29 |
[데이터베이스] ep3) RDB (2) | 2024.06.21 |
[데이터베이스] ep2) DBMS (0) | 2024.06.20 |
[데이터베이스] ep1) DB 모델 (0) | 2024.05.03 |