테이블을 생성하고 데이터를 집어넣는 방식은 다음과 같다. 

테이블을 생성하고

CREATE TABLE TEST01(
key01 VARCHAR(10),
key02 VARCHAR(10),
key03 VARCHAR(10),
key04 VARCHAR(10)
);

 

값을 넣어본다.

INSERT INTO test01(key01, ket02, key03, key04)
VALUES('하나', '둘', '셋', '넷');

-- 테이블의 변수를 작성하지 않아도 된다. 

INSERT INTO test01
VALUES('하나', '둘', '셋', '넷');

두번쨰 방법의 경우 변수를 직접 치지 않아도 되어 편리하지만, 값을 입력시 테이블 선언 순서에 따라서 입력이 되고, 갯수에 맞춰 입력하지 않는다면 나머지는 NULL로 입력이 된다. 

 

 

'it > SQL(ORACLE)' 카테고리의 다른 글

테이블 생성, 제약조건설정(constraint), 테이블 복제  (0) 2019.12.19

CREATE TABLE

테이블 생성형식

CREATE TABLE 테이블 이름 (
        컬럼명1 DATATYPE [DEFAULT 형식],
        컬럼명2 DATATYPE [DEFAULT 형식],
        컬럼명3 DATATYPE [DEFAULT 형식]
);
CREATE TABLE TB_TEST02(
KEY_01 VARCHAR2(10),
KEY_02 VARCHAR2(10),
col_01 VARCHAR2(10),
col_02 VARCHAR2(10),
CONSTRAINT PK_TEST_02 PRIMARY KEY(KEY_01, KEY_02)
);

제약조건은 아래와 같이 붙는다. 테이블 변수명 바로 오른쪽에 선언해 줘도 되지만, 중복선언일때는 바로 위 예제와 같이 바 CONSTRAINT ~~ 부분에 중복선언해주는것이 가능하다. 

한 테이블당 PK(Primerykey) 는 32개 까지 가능하다고 한다. 

PRIMARY KEY : 고유키라고 하며 데이터를 구별하기 위한 식별키. 다른 테이블에서 참조하고자 할때 해당 칼럼을 통해 다른 값을 불러올 수 있다. 

UNIQUE KEY : 테이블에 데이터 저장시 행(세로) 데이터의 중복이 없이 적용되도록함. 주로 EMAIL중복체크를 할때 사용됨.

NOTNULL : NULL값 입력금지 하려 할때 사용한다. 

CHECK : 입력할 수 있는 값을 제한한다. (TRUE/FALSE 로 값을 반환)

FOREIGN KEY : 테이블간의 관계를 정의하기위해 다른테이블에 기본키를 다른테이블에 외래키로 지정해둔다.  무결성 제약 조건 옵선을 선택할 수 있다. 

 

테이블 구조확인 : DESC

-> DESC 테이블명;

 

테이블생성시 테이블 구조와 값을 복사해 올 수 있다. 

테이블 복제

CREATE TABEL test01(
AS SELECT * FROM employeers
);

테이블 생성을 선언함과 동시에 AS 를 이용해 복사할 데이터의 양을 SELECT 문을 통해서 설정하면 된다. 

테이블 복제 - 데이터값 제외하기

CREATE TABEL test01(
AS SELECT * FROM employeers
WHERE 1=2
);

다음과 같이 구조는 복제하되, 해당 테이블의 값을 제외하고자 할떄 결과 값이 나올수 없는 코드를 입력하면 테이블의 구조만 복사가되고 값은 복사되지 않은 상태로 복제가 된다. 

** WHERE 1=2

테이블수정 : 테이블명 수정하기

ALTER TABLE TB_TEST04
RENAME TO TB_TEST99;

 

테이블수정 : 칼럼추가(단일추가)

ALTER TABLE TB_TEST99
ADD hello VARCHAR(10);

ALTER TABLE [테이블명]
ADD [변경할 테이블명] [자료형](길이);

 

테이블수정 : 칼럼추가(다수추가)

ALTER TABLE TB_TEST99
ADD (hello1 VARCHAR(10), hello2 VARCHAR(10), hello3 NUMBER(5,2));

ALTER TABLE [테이블명]
ADD (
		[변경할 테이블명1] [자료형](길이),
        [변경할 테이블명2] [자료형](길이),
        [변경할 테이블명3] [자료형](길이),
        .........
        [변경할 테이블명n ] [자료형](길이)
    );

 

테이블수정 : 칼럼수정(단일)

ALTER TABLE TB_TEST99
ADD hello VARCHAR(10);

ALTER TABLE [테이블명]
MODIFY [변경할 테이블명] [자료형](길이);

테이블수정 : 칼럼수정(복수)

ALTER TABLE TB_TEST99
ADD (hello1 VARCHAR(10), hello2 VARCHAR(10), hello3 NUMBER(5,2));

ALTER TABLE [테이블명]
MODIFY (
		[변경할 테이블명1] [자료형](길이),
        [변경할 테이블명2] [자료형](길이),
        [변경할 테이블명3] [자료형](길이),
        .........
        [변경할 테이블명n ] [자료형](길이)
    );

 

테이블수정 : 칼럼삭제 (단일삭제)

ALTER TABLE TB_TEST99
ADD hello VARCHAR(10);

ALTER TABLE [테이블명]
DROP [변경할 테이블명] [자료형](길이);

테이블수정 : 칼럼삭제(복수삭제)

ALTER TABLE TB_TEST99
ADD (hello1 VARCHAR(10), hello2 VARCHAR(10), hello3 NUMBER(5,2));

ALTER TABLE [테이블명]
DROP (
		[변경할 테이블명1] [자료형](길이),
        [변경할 테이블명2] [자료형](길이),
        [변경할 테이블명3] [자료형](길이),
        .........
        [변경할 테이블명n ] [자료형](길이)
    );

 

삭제된 테이블을 복구

FALSHBACK TABLE TB_TEST02

TO BEFORE RECYCLEBIN;

 

 

 

 

 

 

 

'it > SQL(ORACLE)' 카테고리의 다른 글

데이터삽입(insert)  (0) 2019.12.19

+ Recent posts