코딩항해기
[DBMS/Oracle] 테이블 쿼리문 (DDL) 기초 본문
[요약]
테이블 생성 | CREATE TABLE 테이블명( 컬럼명 자료형 , 컬럼명 자료형 , 컬럼명 자료형 ); |
테이블 조회 | SELECT * FROM 테이블명; |
테이블 삭제 | DROP TABLE 테이블명; |
테이블 삭제(연결값을 삭제 후 삭제) | DROP TABLE 테이블명 CASCADE CONSTRAINTS; |
[제약조건]
Primary Key(PK) | 고유한 값으로 각 행의 구분점 중복값X / null X |
Foreign Key(FK) | 다른 테이블의 PK를 사용 테이블끼리 관계를 맺을 때 사용 중복값O / null O |
Unique Key(UK) | 중복값X / null O |
[테이블 수정]
제약조건 추가 | ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(제약조건넣을컬럼명); |
제약조건 삭제 | ALTER TABLE 테이블명 DROP CONSTRAINT 삭제할제약조건명; |
컬럼 추가 | ALTER TABLE 테이블명 ADD (추가할컬럼명 자료형); |
컬럼명 수정 | ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 새컬럼명; |
컬럼 자료형 수정 | ALTER TABLE 테이블명 MODIFY (컬럼명 변경할자료형); |
컬럼 삭제 | ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명; |
DDL이란?
Data Manipulation Language
데이터 정의어 · 테이블이나 컬럼 등을 생성, 수정, 삭제한다
데이터베이스의 전체 골격을 구성하는 역할
CREATE(생성), ALTER(수정), DROP(삭제), TRUNCATE(초기화), RENAME(이름변경)
총 5가지의 종류가 있다.
CREATE : 생성
CREATE TABLE 테이블명(
컬럼명 자료형
, 컬럼명 자료형
, 컬럼명 자료형
);
조건이 없는 테이블 생성의 경우 상단처럼 진행하면 된다.
만일 제약조건 등의 조건이 필요한 경우 해당 되는 컬럼의 뒷부분이나 아래에 모아서 조건을 주게 된다.
CREATE TABLE 테이블명(
컬럼명 자료형 NOT NULL
, 컬럼명 자료형 CHECK (조건문)
, 컬럼명 자료형 UNIQUE
, [CONSTRAINT PK명] PRIMARY KEY(컬럼명)
);
대괄호 안의 부분은 명칭을 주는 부분이라 생략이 가능하며
컬럼 바로 옆에 제약조건이 붙을 때에는 컬럼명을 명시할 필요가 없지만,
하단에 모아서 줄 때에는 반드시 어느 컬럼에 제약조건을 주는지를 명시해야한다.이 부분은 DDL 제약조건을 정리할 때 자세히 정리하도록 하겠다.
테이블 이름 생성 규칙
1. 테이블 이름은 문자로 시작해야한다. (한글도 가능하지만 숫자로 시작할 수 없다.)
2. 테이블 이름은 30byte이하여야한다.
3. 같은 사용자 소유의 테이블 이름은 중복될 수 없다.
4. 테이블 이름은 영문자(한글), 숫자, 특수문자($, #, _)를 사용할 수 있다.
5. SQL 키워드는 테이블 이름으로 사용할 수 없다.
열(컬럼) 이름 생성 규칙
1. 열 이름은 문자로 시작해야한다.
2. 열 이름은 30byte 이하여야한다.
3. 한 테이블 내의 열 이름은 중복될 수 없다.
4. 열 이름은 영문자(한글), 숫자, 특수문자($, #, _)를 사용할 수 있다.
5. SQL 키워드는 열 이름으로 사용할 수 없다.
DROP : 삭제
DROP TABLE 테이블명;
삭제는 매우 간단하다. 상단의 쿼리를 작성해 실행시켜주기만 하면 되는데,
해당 테이블의 값을 FK(FOREIGN KEY)로 받는 테이블이 있을 경우 실행되지 않는다.
왜냐하면 FK값을 받아올 때 없는 값이 들어갈 수 없기 때문이다.
(NULL이 아니라 실존하지 않는 값을 이야기하는 것)
이럴 때에는 연결된 데이터의 값을 삭제하며 테이블을 삭제하는 명령어를 사용할 수 있다.
DROP TABLE 테이블명 CASCADE CONSTRAINTS;
제약조건 추가, 삭제
제약조건은 테이블 생성 후에도 추가하거나 삭제할 수 있다.
먼저 삭제의 경우는,
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건(제약조건 넣을 컬럼명);
수정의 경우는,
ALTER TABLE 테이블명
DROP CONSTRAINT 삭제할제약조건명;
컬럼 추가, 이름 수정, 자료형 수정, 삭제
컬럼의 경우 생성할 때 보면 이름과 자료형을 반드시 지정해 주어야한다.
따라서 추가할 때에도 컬럼명과 자료형 모두 작성해주어야한다.
컬럼 추가의 경우,
ALTER TABLE 테이블명
ADD (추가할 컬럼명 자료형);
컬럼에는 이름과 자료형 두 가지가 있으므로, 수정할 때에도 각각 수정할 수 있다.
먼저 컬럼명 수정의 경우,
ALTER TABLE 테이블명
RENAME COLUMN 컬럼명 TO 새컬럼명;
컬럼 자료형 수정의 경우,
ALTER TABLE 테이블명
MODIFY (컬럼명 변경할자료형);
컬럼 추가, 수정 할 때에는 이름과 자료형을 구분하여 추가하고 수정하여주었지만 삭제할 때에는 구분지을 필요가 없다.
컬럼 삭제의 경우,
ALTER TABLE 테이블명
DROP COLUMN 삭제할 컬럼명;
그 외에도 테이블에 관련된 다양한 명령어가 있지만 기초 부분에서는 여기까지 정리!
'DBMS > Oracle' 카테고리의 다른 글
[DBMS/Oracle] 식별자 (0) | 2024.07.08 |
---|---|
[DBMS/Oracle] 시퀀스 SEQUENCE (0) | 2024.07.07 |
[DBMS/Oracle] 무결성 (0) | 2024.06.24 |
[DBMS/Oracle] 시퀀스, 집계함수(GROUP BY, HAVING) (0) | 2024.06.21 |
[DBMS/Oracle] 데이터 쿼리문 (DML) 기초 (0) | 2024.06.15 |