[오라클로 배우는 데이터베이스 입문] 12. 데이터 정의어

jychan99·2023년 8월 3일
0

12.1 데이터 정의어

데이터 정의어를 사용할 때 주의할 점

데이터 조작어와 달리 데이터 정의어는 실행하면 자동으로 COMMIT되어버리기 때문에 ROLLBACK으로 실행취소가 불가능하다.

12.2 CREATE

형식은 다음과 같다.

CREATE TABLE 소유 계정.테이블 이름(
열1 이름 열1 자료형,
열2 이름 열2 자료형,
...
열N 이름 열N 자료형)

테이블 이름 생성 규칙

    1. 테이블이름은 문자로 시작해야 한다.
    1. 테이블 이름은 30BYTE 이하여야 한다. (영어는 30자 한글은 15자)
    1. 같은 사용자 소유의 테이블 이름은 중복될 수 없다.
    1. 테이블 이름은 영문자, 숫자와 특수 문자 $, #, _ 를 사용할 수 있다.
    1. SQL 키워드는 테이블 이름으로 사용할 수 없다.

열이름 생성 규칙

테이블 이름과 마찬가지로 열 이름에도 규칙이 있다.

  • 1.열 이름은 문자로 시작한다.
  • 2.열 이름은 30BYTE 이하여야 한다.
  • 3.한 테이블의 열 이름은 중복될 수 없다.
  • 4.열 이름은 영문자, 숫자, 특수문자 $, #, _ 를 사용할 수 있다.
  • 5.SQL 키워드는 열 이름으로 사용할 수 없다.

자료형을 각각 정의하여 새 테이블 생성하기

CREATE TABLE EMP_DDL(
   EMPNO NUMBER(4),
   ENAME VARCHAR2(10),
     JOB VARCHAR2(9),
     MGR NUMBER(4),
HIREDATE DATE,
     SAL NUMBER(7,2),
   COMM NUMBER(7,2),
DERPTNO NUMBER(2)
);

다른테이블 복사해서 테이블 생성

CREATE TABLE DEPT_DDL
    AS SELECT * FROM DEPT;

테이블 일부를 복사해서 테이블 생성

CREATE TABLE EMP_DDL
    AS SELECT *
    	 FROM EMP
        WHERE DEPTNO=30;

기존테이블 열구조만 복사해서 테이블 생성

CREATE TABLE EMPDEPT_DDL
   AS SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,
   			 E.SAL,E.COMM,D.DEPTNO,D.DNAME,D.LOC
        FROM EMP E, DEPT D
       WHERE 1!=1;

12.3 ALTER

CREATE TABLE EMP_ALTER
AS SELECT * FROM EMP;

이 테이블에서 실습한다.

ADD

테이블에 열을 추가할 때 사용한다.

ALTER TABLE EMP_ALTER
       ADD HP VARCHAR2(20);

RENAME

열 이름을 변경할 때 사용한다.

ALTER TABLE EMP_ALTER
	RENAME COLUMN HP TO TEL;

테이블 이름또한 바꿀 수 있다.

RENAME EMP_ALTER TO EMP_RENAME;

MODIFY

열의 자료형을 변경할 때 사용한다.

ALTER TABLE EMP_ALTER
       MODIFY EMPNO NUMBER(5);




DROP

DROP COLUMN열을 삭제할 때 사용한다. DROP TABLE로 테이블 또한 지울 수 있다.
삭제하면 해당 열의 데이터도 함께 삭제된다.

ALTER TABLE EMP_ALTER
DROP COLUMN TEL;

TRUNCATE

TRUNCATE명령어는 특정 테이블의 모든 데이터를 삭제한다.

TRUNCATE TABLE EMP_RENAME;

유의할 점
특정 테이블의 모든 데이터삭제는 WHERE절없는 DELETE문으로도 가능하지만 데이터 정의어 인 TRUNCATE는 ROLLBACK을 수행할 수 없다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐍

0개의 댓글

관련 채용 정보