Search
Duplicate
moon
sun

DDL - 데이터 정의어

▶ 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
복사