SQL - DDL
(Data Definition Language)
데이터베이스의 객체(테이블 등)를 정의하는 명령어
: 데이터 정의어
▪
CREATE : 객체 생성
▪
ALTER : 객체 수정
▪
DROP : 객체 삭제
CREATE TABLE - 테이블 생성
테이블 생성
CREATE TABLE 계정.테이블명 (
컬럼명1 데이터타입 [NULL/NOT NULL] [DEFAULT 기본값] [PRIMARY KEY | UNIQUE] ,
컬럼명2 데이터타입 [NULL/NOT NULL] [DEFAULT 기본값] [PRIMARY KEY | UNIQUE] ,
컬럼명3 데이터타입 [NULL/NOT NULL] [DEFAULT 기본값] [PRIMARY KEY | UNIQUE]
);
SQL
복사
기존 테이블을 조회(복사)하여 테이블 생성
CREATE TABLE 테이블명
AS SELECT * FROM 기존 테이블명
[WHERE 조건];
SQL
복사
•
[WHERE 조건] 은 필요 시 사용!
•
일반적으로 백업 테이블을 만들 때 사용!
ALTER TABLE - 테이블 변경
테이블에 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;
SQL
복사
테이블의 컬럼명을 변경
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경할컬럼명;
SQL
복사
테이블의 컬럼 데이터타입을 변경
ALTER TABLE 테이블명 MODIFY 컬럼명 변경할데이터타입;
SQL
복사
테이블의 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
SQL
복사
테이블 삭제
테이블 삭제
DROP TABLE 테이블명 ;
SQL
복사
•
옵션
◦
CASCADE CONSTRAINTS : 테이블 삭제 시, 정의한 제약조건도 자동으로 삭제
테이블 데이터 삭제
TRUNCATE TABLE 테이블명;
SQL
복사
테이블명 변경
RENAME 테이블명 TO 변경할테이블명;
SQL
복사
제약조건
: 테이블에 저장할 데이터를 제약하는 조건
•
데이터 무결성
: 데이터 정확성 + 데이터 일관성을 보장하는 성질
오라클 제약조건 종류
•
NOT NULL : NULL 을 저장할 수 없도록 하는 제약조건
•
UNIQUE : 유일한 값을 갖도록 하는 제약조건 (중복불가), NULL 은 허용
•
PRIMARY KEY : 기본키로 지정. UNIQUE + NOT NULL
•
FOREIGN KEY : 참조 테이블의 열에 존재하는 값만 저장할 수 있도록 지정하는 제약조건
•
CHECK : 설정한 조건에 해당하는 데이터만 저장할 수 있도록 하는 제약조건
데이터 무결성 종류
•
개체 무결성 : 기본키는 반드시 유일한 값, NULL 불가, 중복 불가
•
참조 무결성 : 외래키의 값이 참조 테이블에 기본키의 값으로만 존재. NULL 가능
•
도메인 무결성 : 지정된 값의 범위 안에서만 데이터를 저장
제약조건 추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건;
SQL
복사
제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
SQL
복사
제약조건 이름 변경
ALTER TABLE 테이블명 RENAME CONSTRAINT 기존이름 TO 변경이름;
SQL
복사
NOT NULL
NOT NULL - 테이블 생성 시, NOT NULL 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 NOT NULL,
컬럼2 데이터타입 NOT NULL,
...
);
SQL
복사
NOT NULL - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
NOT NULL - 테이블 생성 후, NOT NULL 로 수정
ALTER TABLE 테이블명 MODIFY (컬럼 NOT NULL);
SQL
복사
NOT NULL - 테이블 생성 후, 제약조건 추가
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
UNIQUE
UNIQUE - 테이블 생성 시, UNIQUE 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 UNIQUE,
컬럼2 데이터타입 UNIQUE,
...
);
SQL
복사
CREATE TABLE 테이블명 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
UNIQUE( 컬럼1, 컬럼2, ... )
);
SQL
복사
UNIQUE - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
UNIQUE - 테이블 생성 후, UNIQUE 로 수정
ALTER TABLE 테이블명 MODIFY (컬럼 UNIQUE);
SQL
복사
UNIQUE - 테이블 생성 후, 제약조건으로 추가
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
PRIMARY KEY
PRIMARY KEY - 테이블 생성 시, PRIMARY 키로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 PRIMARY KEY,
컬럼2 데이터타입 PRIMARY KEY,
...
);
SQL
복사
CREATE TABLE 테이블명 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
PRIMARY KEY( 컬럼1, 컬럼2, ... )
);
SQL
복사
PRIMARY KEY - 테이블 생성 시, 제약조건으로 추가
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
PRIMARY KEY - 테이블 생성 후, PRIMARY KEY 로 지정
ALTER TABLE 테이블명 MODIFY (컬럼 PRIMARY KEY);
SQL
복사
PRIMARY KEY - 테이블 생성 후, 제약조건으로 추가
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
FOREIGN KEY
FOREIGN KEY - 테이블 생성 시, FOREIGN KEY 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 REFERENCES 참조테이블(참조 컬럼),
컬럼2 데이터타입,
...
);
SQL
복사
CREATE TABLE 테이블명 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
CONSTRAINT 제약조건 FOREIGN KEY (외래키 컬럼)
REFERENCES 참조테이블(참조 컬럼)
);
SQL
복사
FOREIGN KEY - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
FOREIGN KEY - 테이블 생성 후, 제약조건으로 지정
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
CHECK
CHECK - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼명1 데이터타입 CONSTRAINT 제약조건명 CHECK (조건),
컬럼명2 데이터타입 ,
...
);
SQL
복사
CHECK - 테이블 생성 후, CHECK 지정
ALTER TABLE 테이블명 MODIFY (컬럼 CHECK 조건);
SQL
복사
CHECK - 테이블 생성 후, 제약조건으로 지정
ALTER TABLE 테이블명 MODIFY CONSTRAINT 제약조건명 CHECK 조건;
SQL
복사
DEFAULT
DEFAULT - 테이블 생성 시, DEFAULT 지정
CREATE TABLE 테이블명 (
컬럼명1 데이터타입 DEFAULT 기본값,
컬럼명2 데이터타입 DEFAULT 기본값,
...
);
SQL
복사





