DDL 종류
스키마(schema): 특정 사용자가 DB에 접근해 생성한 객체들의 대표이름
SELECT * FROM scott.dept; -- 스키마.객체명
테이블 생성을 위해서는 각각의 DB에서 제공하는 테이터 타입을 먼저 살펴 보아야함.
CREATE TABLE employee
(empno int,
ename VARCHAR(20),
hiredate datetime default null,
sal double default null);
-- 일반 컬럼 --
CREATE TABLE def_table1
(num NUMBER(2),
writeday DATE);
INSERT INTO def_table1(num)
VALUES(20); -- 20, (null)
INSERT INTO def_table1(num, writeday)
VALUES(2, DEFAULT); -- 2, (null)
-- DEFAULT 적용 컬럼 --
CREATE TABLE def_table2
(num NUMBER(2),
writeday DATE DEFAULT SYSDATE);
INSERT INTO def_table2(num)
VALUES(20); -- 20, 21/01/14
INSERT INTO def_table2(num, writeday)
VALUES(2, DEFAULT); -- 2, 21/01/14
DROP TABLE dept_new CASCADE CONSTRAINTS; SHOW RECYCLEBIN; -- DB휴지통 보기 FLASHBACK TABLE dept_new TO BEFORE DROP;
TRUNCATE: 테이블 잘라내기
TRUNCATE TABLE 테이블명;
RENAME: 테이블 이름 변경
RENAME 테이블명 TO 새 테이블명;
+ALTER: 테이블 변경
컬럼추가
ALTER TABLE emp04 ADD (email VARCHAR2(10), address VARCHAR2(20));
DELETE
WHERE 절을 사용하여 특정 조건의 레코드를 삭제할 수도 있고, 모든 레코드를 삭제할 수도 있다.
DELETE된 데이터는 COMMIT(END) 명령어를 실행하기 이전에 ROLLBACK 명령어를 이용하여 복구할 수 있다.
TRUNCATE
테이블의 모든 레코드를 삭제하는 데 사용하는 구문이다.
DROP 문과 차이점은 TRUNCATE는 Table의 레코드들만 모두 날리는 것이기 때문에 테이블 구조는 남아있다
모든 레코드가 삭제되며, 자동 COMMIT이 되는 명령어라서 복구할 수 없다.
DROP
데이터베이스에서 객체(테이블, 뷰, 인덱스 등)를 완전히 삭제할 때 사용하는 명령어다
ALTER TABLE scott_t
MODIFY (num NUMBER(6),
name VARCHAR2(20));
ALTER TABLE emp04
DROP (email);