mingming

Oracle - SQL (DDL) 본문

새싹 하이브리드 클라우드/Database

Oracle - SQL (DDL)

mingming_96 2023. 10. 7. 16:20

DDL (Data Definition Language)

CREATE TABLE 문

테이블을 생성하기 위해선 다음이 필요합니다.

  • CREATE TABLE 권한
  • 저장 영역

다음을 지정합니다.

  • table 이름
  • column 이름, column data 유형 및 column 크기
CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [,...]);

 

구문 설명
schema 소유자 이름과 동일합니다
table 테이블 이름입니다
column  열 이름 입니다
datatype 열의 데이터 유형 및 길이입니다
DEFAULT expr INSERT 문에서 값이 생략된 경우 기본값을 지정합니다.

 

테이블 생성

CREATE TABLE dept
		(deptno NUMBER(2)
         dname  VARCHARE2(14),
         Ioc    VARCHARE2(13),
         create_date   DATE DEFAULT SYSDATE);

 

생성된 테이블 확인

DESCIRBE dept; or DESC dept;

이름          널? 유형           
----------- -- ------------ 
DEPTNO         NUMBER(2)    
DNAME          VARCHAR2(14) 
IOC            VARCHAR2(13) 
CREATE_DATE    DATE

 

데이터 유형

데이터 유형 설명
VARCHAR2(size) 가변 길이 문자 데이터(최대 size를 지정해야 합니다)
CHAR(size) 길이가 size(byte)인 고정 길이 문자 데이터(기본 및 최소 size는 1이며 최대는 2,000 입니다.) 
NUMBER[(p,s)] 자릿수가 p이고 소수점 이하 자릿수가 s 인 숫자
ATE 기원전 4712년 1월 1일 부터 9999년 12월 31일 사이의 가장 가까운 초 단위에 대한 날짜 및 시간 
LONG 가변 길이 문자 데이터(최대 2GB)
CLOB 단일 바이트 또는 다중 바이트 문자가 포함된 Chracter LOB  
NCLOB 유니코드 문자가 포함된 Character LOB
RAW 길이와 size 바이트인 원시 이전 데이터 
LONG RAW  가변 길이가 최대 2GB 인 원시 이전 데이터
BLOB Binary Large Object
BFILE 외부 파일에 저장된 바이너리 데이터
ROWID 테이블에서 행의 고유한 주소를 나타내는 Base 64 문자열

 

  • LONG 열은 subquery를 사용하여 테이블을 생성할 때 복사되지 않습니다.
  • LONG 열은 GROUP BY 또는 ORDER BY절에 포함될 수 없습니다. 
  • 각 테이블당 하나의 LONG 열만 사용할 수 있습니다.
  • LONG 열에 대해 제약 조건을 정의할 수 없습니다.
  • LONG 열 대신 CLOB 열을 사용할 수 있습니다.

Datetime 데이터 유형

데이터 유형 설명
TIMESTAMP 소수 표시 초 단위의 날짜
INTERVAL YEAR TO MONTH 년 및 월 간격으로 저장됨
INTERVAL DAY TO SECOND 일, 시, 분 및 초 간격으로 저장됨

 

DEFAULT 옵션

  • CREATE 테이블이 표시된 동안 열의 기본값을 지정합니다.
  • 리터럴 값, 표현식 또는 SQL 함수는 올바른 값입니다.
  • 기본 데이터 유형은 열 데이터 유형과 일치해야 합니다.
CREATE TABLE hire_dates(id NUMBER(8), hire_date DATE DEFAULT SYSDATE);

 

ALTER TABLE 문

ALTER TABLE 문을 사용하여 다음을 수행합니다.

  • 새 열 추가
  • 기존 열 정의 수정
  • 새 열 기본 값 정의
  • 열 삭제
  • 열 이름 바꾸기
  • 읽기 전용 상태로 테이블 변경  
ALTER TABLE table
ADD 

ALTER TABLE table
MODIFY

ALTER TABLE table
DROP

 

열 추가 

  • ADD 절을 사용하여 열을 추가합니다.
  • 새 열은 마지막 열에 추가됩니다.
ALTER TABLE dept80
ADD (job_id VARCHAR2(9));

 

열 수정

  • 열의 데이터 유형, 크기 및 기본값을 변경할 수 있습니다.
  • 기본 값을 변경하면 이후에 테이블에 삽입하는 항목에만 적용됩니다.
ALTER TABLE dept80
MODIFY (last_name, VARCHAR2(30));

 

열 삭제

ALTER TABLE dept80
DROP (job_id);
  • ALTER TABLE DROP COLUMN 문을 사용하면 한 번에 한 개의 열만 삭제할 수 있습니다.
  • 테이블이 변경된 이후에 최소 하나의 열이 테이블에  남아있어야 합니다.
  • 열이 삭제된 후에는 복구할 수 없습니다.
  • cascade 옵션을 추가한 경우가 아니라면 다른 열에서 참조하는 primary key를 삭제할 수 없습니다.

읽기전용 테이블

  • 테이블을 읽기전용 모드로 설정하여 테이블을 유지 관리하는 동안 DDL 문 또는 DML문에 의한 변경을 방지합니다.
  • 테이블을 읽기/쓰기 모드로 다시 되돌릴 수 있습니다. 
ALTER TABLE employees READ ONLY;

ALTER TABLE employees READ WRITE;

'새싹 하이브리드 클라우드 > Database' 카테고리의 다른 글

Oracle - DELETE & TRUNCATE  (0) 2023.10.07
Oracle - 제약 조건 & Subquery  (0) 2023.10.07
Oracle - SQL (DML)  (0) 2023.10.07
Oracle - SQL Query (2)  (0) 2023.10.06
데이터 베이스 언어 SQL  (0) 2023.10.06