블로그 이미지
가야금마스터

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Tag

2015. 3. 19. 15:40 DB/오라클 SQL 명령어

DDL (Data Definition Language) : 데이터와 그 구조 정의 = 테이터 정의어

TABLE 정의


행과 열로 구성된 기본적인 저장매체의 단위


TABLE CREATE 주의사항


1. 테이블 이름을 지정하고 각 컬럼들은 괄호 ( ) 로 묶어 지정합니다.

2. 컬럼뒤에 데이터 타입은 꼭 지정되어야 합니다.

3. 각 컬럼들은 콤마  , 로 구분되고, 항상 끝은 세미콜론 ; 으로 끝납니다.

4. 한 테이블 안에서 컬럼이름은 같을 수  없을며 다른 테이블에서의 컬럼 이름과는 같을수 있습니다.

5. 테이블명을 쌍따옴표 " " 로 감싸지 않으면 기본적으로 대문자로 생성되며 

감싸면 입력한 그대로 생성이 된다.


TABLE CREATE 특이사항


1. 오라클에서는 테이블 생성시 컬럼을 1000개까지 생성이 가능하다.

2. 오라클에서는 테이블 생성 후 커밋 커리된다.


TABLE CREATE 명령


CHECK 제약 조건 : 컬럼에 입력되는 값을 체크함


컬럼 CHAR(1) CHECK (컬럼 = '0' OR 컬럼 = '1') ;

-- 데이터 삽입시 값을 체크해서 거짓이면 에러 발생


예제1)

CREATE TABLE TEST1

(AA CHAR(1) CHECK (AA = '0' OR AA = '1'));

-- 테이블 생성후 AA 컬럼에 문자열 2를 입력하면 에러 발생


예제2)

A CHAR(13) CHECK (컬럼 LIKE '____-__-__')

-- A 컬럼에 'YYYY-MM-DD' 형식으로만 입력가능


DEFAULT 제약조건 : 컬럼에 값이 입력 안될떄 자동으로 입력되는 값


예제1)

CREATE TABLE TEST3

(

A DATE DEFAULT SYSDATE,

B CHAR(10)

);


COMMIT;

INSERT INTO TEST3 (B) VALUES ('A') --날짜, A 입력됨

INSERT INTO TEST3 (A, B) VALUES (NULL, 'A') -- NULL 값, A 입력됨

INSERT INTO TEST3 (A, B) VALUES ('', 'A') -- NULL값, A 입력됨


TABLE CREATE EXAMPLE


예제1) PRIMARY KEY 생성 하지 않을시


CREATE TABLE A(

ID NUMBER(10),

NAME VARCHAR2(30)

);


예제2) PRIMARY KEY 생성 


CREATE TABLE B(

ID NUMBER(10) CONSTRAINT B_ID PRIMARY KEY,

NAME VARCHAR(30)

);

-- CONSTRAINT 이용해서 PRIMARY KEY 이름을 정할수 있다.

이름을 임으로 정하고 싶다면 적지 않아도 된다.


예제3) 제약 조건을 이용하지 않고 PRIMARY KEY 생성


CREATE TABLE C(

ID NUMBER(10),

NAME VARCHAR(30),

CONSTRAINT C_ID PRIMARY KEY (ID)

);




TABLE COPY


같은 계정에서의 TABLE COPY

TABLE A 가 있고 TABLE  B 를 생성하면서 복사하는 방법, 

하지만 제약조건(PRIMARY KEY, UNIQUE) 등은 별도로 해줘야 한다.

CREATE TABLE B AS SELECT * FROM A;

* B TABLE 을 만든 후 A TABLE 의 모든 데이터를 B TABLE 에 입력한다.


같은 서버에서 다른 계정으로 TABLE COPY (SYSTEM 계정에서 실행해야 한다.)

제약조건(PRIMARY KEYUNIQUE) 등은 별도로 해줘야 한다.

CREATE TABLE SCOTT.B AS SELECT * FROM SC.A;








posted by 가야금마스터