728x90
: Data Definition Language (데이터 정의어)
종류) CREATE, DROP, ALTER, RENAME, TRUNCATE
- DDL은 AUTO Commit을 함
CREATE
CREATE TABLE 테이블명(
컬럼명1 자료형(길이),
컬럼명2 자료형(길이),
컬럼명3 자료형(길이)
);
CREATE TABLE emp2(
empno number(4)
);
- 이미 존재하는 테이블명(객체명)과 같은 이름은 생성불가
- 식별자 규칙에 따라 테이블명 설정 (숫자 첫글자 X, 예약어 X, 특수문자X 등등)
데이터 타입
CHAR : 주어진 크기만큼 고정길이의 문자 저장 1바이트2000바이트
VARCHAR2 : 주어진 크기만큼 가변길이의 문자 저장 1바이트4000바이트
NUMBER(p[,s]) : 정밀도와 스케일로 표현되는 숫자. 바이트수 생략 가능
NUMBER(7,2) : 전체 자릿수 7, 소숫점 이하 2자리까지 표현
no number(7,2) --> 12345.67
입력=> 12345 (O)
입력=> 123456 (X)
입력=> 12345.678 (O) --> 저장: 12345.68 (반올림)
입력=> 99999.992 (O)
입력=> 99999.995 (X) --> 저장: 10000000.00 (범위초과)
DATE : 날짜 형식 저장
TIMESTAMP : DATE형의 확장된 형태
BLOB : 대용량의 바이너리 데이터를 저장, 최대 4GB
CLOB : 대용량의 텍스트 데이터를 저장, 최대 4GB
BFILE : 대용량의 바이너리 데이터를 파일형태로 저장, 최대 4GB
서브쿼리를 이용한 테이블 생성
-
기존테이블의 구조(컬럼, 자료형)와 행 데이터를 복사
-
제약(constraint)은 복사에서 제외
-- 전체 복사
CREATE TABLE 테이블명 AS 서브쿼리;
CREATE TABLE emp4 as SELECT * FROM emp;
-- 원하는 컬럼과 행만 복사
CREATE TABLE emp3 AS SELECT empno, ename, job FROM emp WHERE deptno = '30';
-- 테이블 구조만 복사 (데이터 x)
CREATE TABLE emp4 AS SELECT * FROM emp WHERE 1=0; //WHERE에 조건식 FALSE 대입
ALTER
: 컬럼추가, 컬럼삭제, 컬럼의 자료형, 바이트 수를 변경
-
컬럼 추가
ADD (추가컬럼명 자료형) ALTER TABLE emp4 ADD (email VARCHAR2(20)); ==> Table altered
-
컬럼 수정
MODIFY (기존컬럼명 자료형) ALTER TABLE emp4 MODIFY (email VARCHAR2(30));
-
컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명; ALTER TABLE emp4 DROP COLUMN email;
-
컬럼 이름변경
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 새컬럼명
-
컬럼 사용안함
ALTER TABLE 테이블명 SET UNUSED 컬럼명 UNUSED 설정된 컬럼들 삭제 DROP UNUSED COLUMN
DROP
-
테이블 객체 삭제
DROP TABLE 테이블명;
RENAME
-
테이블 이름변경
RENAME 기존테이블명 TO 변경테이블명;
TRUNCATE
-
테이블의 전체 데이터 지우기
-
주의: TRUNCATE 명령어를 통해 삭제된 데이터는 ROLLBACK 불가능(DDL은 AutoCommit)
TRUNCATE TABLE 테이블명;
'Web develop > SQL' 카테고리의 다른 글
[SQL/ORACLE] 숫자 함수, 문자 함수 (0) | 2019.05.28 |
---|---|
[SQL/ORACLE] SELECT절 (실행순서, 연산자, WHERE, ORDER BY) (0) | 2019.05.27 |
[SQL/ORACLE] TCL (0) | 2019.05.24 |
[SQL/ORACLE] DML (0) | 2019.05.23 |
[SQL/ORACLE] SQL 문법 종류 (DDL, DML, DCL, DQL, TCL) (0) | 2019.05.22 |