1. DDL (Data Definition Langauge) : 데이터 정의어
- 테이블 조작 또는 제어 관련 쿼리문
2. DDL 종류
1. CREATE 2. DROP 3. ALTER 4. TRUNCATE
DDL - 테이블 조작언어라서 테이블 자체를 삭제하려면 이걸로 해야함
CREATE : 테이블 생성
CREATE TABLE 테이블명 (
칼럼명 자료형
칼럼명 VARCHAR2(용량)
);
DROP : 테이블 삭제
DROP TABLE TBL_PROD
3. ALTER : 테이블 수정
- 테이블 명 수정
ALTER TABLE 테이블명
RENAME TO 새로운테이블명;
- 테이블 컬럼 추가
ALTER TABLE 테이블명
ADD(추가할컬럼명 자료형(용량));
- 컬럼 삭제
ALTER TABLE 테이블명
DROP COLUMN 삭제할컬럼명
- 컬럼명 수정
ALTER TABLE 테이블명
RENAME 이전컬럼명 TO 새로운컬럼명
- 컬럼 '타입' 수정
ALTER TABLE 테이블명
MODIFY(컬럼명 수정할자료형(용량));
더 많음
TRUNCATE (튜런케이트) : 테이블 내용 전체 삭제
TRUNCATE TABLE 테이블명;
DELETE FROM테이블명
둘이 하는 일은 같다 하지만
튜런케이트가 속도가 훨씬빠르다
문제는:
트렌젝션
이미 실행한 작업을 다시 되돌리는 작업 (롤백)
튜런케이트는 롤백이 안됨
- 제약조건(constraint)
컬럼안에 들어갈 데이터에 제약을 거는것이다
예) null값이 들어올수 없어, 중복값이 들어올수없어
5. 전체 쿼리문
---------------------------------------------------------------------------
-- DDL
---------------------------------------------------------------------------
---------------------------------------------------------------------------
-- CREATE
---------------------------------------------------------------------------
-- USER정보를 담은 TBL_USER테이블 생성
CREATE TABLE TBL_USER(
USER_NAME VARCHAR2(500),
USER_AGE NUMBER
)
---------------------------------------------------------------------------
-- ALTER
---------------------------------------------------------------------------
-- 테이블명 변경: TBL_USER -> TBL_MY_USER
ALTER TABLE TBL_USER
RENAME TO TBL_MY_USER;
-- 컬럼 추가: USER_GENDER
ALTER TABLE TBL_MY_USER
ADD(USER_GENDER VARCHAR2(100));
-- 컬럼명 수정 : USER_NAME -> USER_NICKNAME
ALTER TABLE TBL_MY_USER
RENAME COLUMN USER_NAME TO USER_NICKNAME;
-- 컬럼 삭제 : USER_GENDER
ALTER TABLE TBL_MY_USER
DROP COLUMN USER_GENDER;
--컬럼 타입 수정 : USER_NICKNAME 컬럼을 VARCHAR2(1000)으로 변경
ALTER TABLE TBL_MY_USER
MODIFY(USER_NICKNAME VARCHAR2(1000)); -- 칼럼에 데이터가 들어있으면 자료형 수정 불가
INSERT INTO TBL_MY_USER
VALUES('철수', 30);
---------------------------------------------------------------------------
-- TRUNCATE :모든 데이터 삭제
---------------------------------------------------------------------------
TRUNCATE TABLE TBL_MY_USER;
---------------------------------------------------------------------------
-- DROP 테이블 삭제
---------------------------------------------------------------------------
DROP TABLE TBL_MY_USER;
SELECT * FROM TBL_MY_USER;
---------------------------------------------------------------------------
-- [실습]
---------------------------------------------------------------------------
-- TBL_MUSIC 테이블 생성
CREATE TABLE TBL_MUSIC(
MUSIC_NUMBER NUMBER,
MUSIC_TITLE VARCHAR2(500),
MUSIC_SINGER VARCHAR2(500)
);
-- DATE 타입의 MUSIC_DATE 칼럼 추가
ALTER TABLE TBL_MUSIC
ADD(MUSIC_DATE DATE);
-- 테이블명 TBL_MY_MUSIC으로 수정
ALTER TABLE TBL_MUSIC
RENAME TO TBL_MY_MUSIC;
-- 컬럼명 MUSIC_NUMBER => MY_MUSIC_NUMBER 으로 수정
ALTER TABLE TBL_MY_MUSIC
RENAME COLUMN MUSIC_NUMBER TO MY_MUSIC_NUMBER;
-- MY_MUSIC_NUMBER 컬럼의 자료형을 VARCHAR2(500)으로 수정
ALTER TABLE TBL_MY_MUSIC
MODIFY(MY_MUSIC_NUMBER VARCHAR2(500));
-- MUSIC_DATE 컬럼 삭제
ALTER TABLE TBL_MY_MUSIC
DROP COLUMN MUSIC_DATE;
-- TBL_MY_MUSIC 테이블 삭제
DROP TABLE TBL_MY_MUSIC
SELECT * FROM TBL_MY_MUSIC;
728x90
'DBMS > Oracle SQL' 카테고리의 다른 글
무결성 (0) | 2024.02.23 |
---|---|
PK, FK, ERD (0) | 2024.02.21 |
DML (Data Manipulation Langauge) : 데이터 조작어 (0) | 2024.02.21 |
DBMS SQL 자료형, 연산자 종류 (0) | 2024.02.19 |
SELECT(조회), ORDER BY(정렬), DISTICT(중복제거), AS(별칭) (0) | 2024.02.19 |