[과목2. SQL 기본 및 활용 - 3-2. DDL (Data Definition Language)]
1. 주요 데이터 유형 정리
(1) CHAR(L) : 고정길이 문자열, L값보다 값이 적으면 공백으로 채워짐
(2) VARCHAR2(L) : 가변길이 문자열, 해당 값만큼만 공간을 차지
(3) NUMBER(L,D) : 정수,실수를 저장함. L값은 전체 자리수, D값은 소수점 자리 수
(4) DATE : 날짜와 시작 정보 “년월일시분초”를 표현
2. CREATE TABLE
(1) 테이블 명은 가능한 단수형을 권고
(2) 다른 테이블의 이름과 중복되지 않아야 함
(3) 한테이블 내에 컬럼명 중복 지정 불가
(4) 컬럼들은 괄호()로 묶어 지정
(5) 컬럼은 콤마’,’로 구분되고, 테이블 생성문의 끝은 항상 세미콜론’;’으로 끝남
(6) 다른 테이블까지 고려하여 일관성 있게 사용하는 것이 좋음
(7) 컬럼 뒤 데이터 유형은 반드시 지정해야 함
(8) 테이블명과 컬럼 명은 반드시 문자로 시작해야 한다.
(9) 사전에 정의한 예약어는 사용 불가
(10) A-Z, a-z, 0-9, _, $, # 문자만 허용됨 (특수문자 허용되는 내용 확인)
3. 제약 조건
(1) 원하는 조건의 데이터만 유지하기 위해 생성함
(2) 데이터 무결성을 유지하기 위한 데이터 베이스의 보편적인 방법으로 테이블의 특정 컬럼에 설정하는 제약이다.
4. 제약 조건의 종류
(1) 기본 키 (Primary Key)
- 테이블에 저장된 행을 고유하게 식별하기 위한 기본키
- 하나의 테이블에 하나의 기본키 제약만 정의 가능
- Null 입력 불가
(2) 고유 키 (Unique Key)
- 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키
- Null 입력 가능
(3) NOT NULL
- Null 값의 입력을 금지, 필수로 값이 들어가야한다.
(4) CHECK
- 입력할 수 있는 값의 법위 등을 제한한다. TRUE or FALSE로 평가할 수 있는 논리식을 지정
(5) 외래 키(Foreign Key)
- 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사
- 다른 테이블의 기본키를 외래키로 지정하는 경우
- 외래키 지정 시 참조 무결성 제약조건 옵션을 선택할 수 있다.
5. NULL의 의미
(1) NULL은 공백이나 숫자 0과는 전혀 다른 값
(2) 아직 정의되지 않은 미지의 값
(3) 아직 데이터가 입력되지 않은 경우
(4) 현재 데이터를 입력하지 못하는 경우
6. DEFAULT의 의미
(1) 사전에 DEFAULT 값을 정의했다면 값을 지정하지 않아도 NULL대신 사전에 정의된 기본 값이 자동으로 입력 됨
7. ALTER TABLE
(1) 컬럼을 추가/삭제 하거나 제약조건을 추가/삭제하는 작업을 진행
8. ALTER TABLE의 기능
(1) ADD COLUMN : 기존 테이블에 필요한 컬럼 추가
(2) DROP COLUMN : 테이블에서 필요없는 컬럼을 삭제 가능, 한번 삭제된 컬럼은 복구 불가능
(3) MODIFY COLUMN :
컬럼의 데이터 유형, 디폴트 값, NOT NULL 제약조건에 대한 변경을 수행할 수 있다.
단, 컬럼의 크기를 늘릴 수는 있지만 데이터가 존재한다면 줄이지는 못한다.
DEFAULT 값을 바꾸면 변경작업 이후 발생하는 행 삽입에만 영향을 미친다.
(4) RENAME COLUMN : 컬럼명 변경 , ORACLE 등 일부 DBMS에서만 지원
(5) DROP CONSISTRAINT : 제약조건 삭제
(6) ADD CONSISTRAINT : 테이블 생성 이후 필요에 의한 제약조건 추가
9. 참조 무결성제약 조건 (외래키 FK)
- 삭제하려고 하는 테이블이나 데이터가 외부 다른 테이블에서 참조되고 있다면 삭제가 불가능하게 제약
10. RENAME TABLE
- 테이블의 이름을 변경한다.
11. TRUNCATE TABLE
- 테이블에 들어있던 모든 행들이 제거되며, 복구가 불가능하다.
- DELETE 문을 이용해서 모든 행을 삭제하면 복구 가능