차차로그
데이터베이스 언어 DDL, DML, DCL, TCL 본문
DDL (Data Definition Language) : 데이터 정의어. 데이터 구조(테이블)과 관련된 명령어들
- CREATE
CREATE TABLE TABLE_NM
(
NAME VARCHAR2(10) PRIMARY KEY,
AGE NUMBER (CONSTRAINT NN_AGE) NOT NULL,
STATUS VARCHAR2(1),
(CONSTRAINT CK_STATUS) CHECK(STATUS IN ('Y', 'N'));
);
--주석
COMMENT ON COLUMN TABLE_NM.NAME IS '이름';
--다른 테이블의 구조와 데이터를 그대로 복사해 새 테이블 생성이 가능하다.
CREATE TABLE EMP_DEPT_D1
AS
SELECT EMP_ID,
EMP_NAME,
DEPT_CODE,
HIRE_DATE
FROM EMPLOYEE
WHERE 1=0; (1=0은 즉 FALSE이기 때문에 구조만 복사됨. 1=1로 하면 모든 데이터와 구조를 복사)
- ALTER
--컬럼 추가
ALTER TABLE TABLE_NM ADD(GENDER VARCHAR2(1));
--컬럼 자료형 수정
ALTER TABLE TABLE_NM MODIFY GENDER VARCHAR(2);
--컬럼 제약조건 변경/추가
ALTER TABLE EMPLOYEE ADD FOREIGN KEY(JOB_CODE) REFERENCES JOB(JOB_CODE);
--제약조건 비활성화
ALTER TABLE EMPLOYEE DISABLE CONSTRAINT SYS_C007133 CASCADE;
<-> ALTER TABLE EMPLOYEE ABLE CONSTRAINT SYS_C007133;
- DROP
--테이블 전체 삭제
DROP TABLE TABLE_NM;
--테이블 내 컬럼 삭제
ALTER TABLE TABLE_NM
DROP COLUMN AGE;
- RENAME
RENAME TABLE TABLE_NM TO MEMBER;
- TRUNCATE
TRUNCATE TABLE TABLE_NM;
DROP : 테이블 자체를 삭제. 자동 커밋이 되기 때문에 ROLLBACK 불가
TRUNCATE : 테이블의 구조는 두고 데이터만 모두 삭제. 자동커밋이 되기 때문에 ROLLBACK 불가
DELETE : WHERE 조건문을 써서 원하는 데이터만 삭제 가능. 커밋 전이면 ROLLBACK 가능
DML (Data Manipulation Language) : 데이터 조작어. 데이터를 조회하거나 데이터 자체를 변경, 삭제하는 명령어
- SELECT
SELECT * FROM TABLE_NM
--*로 조회를 하면 테이블 내 모든 데이터를 조회해오기 때문에
--시간이 오래 걸리기도 하고 불필요한 데이터를 가져오기 때문에 * 사용을 지양하는 것이 좋다
- INSERT
INSERT INTO TABLE_NM (NAME, AGE) VALUES ('남나나', 10);
--인서트하는 데이터가 테이블 내 컬럼의 순서와 개수가 같다면 컬럼명을 생략해도 된다.
INSERT INTO TABLE_NM VALUES ('김가가', 20);
--인서트할 때 서브쿼리 이용이 가능하다.
INSERT INTO TABLE_2 VALUES (SELECT * FROM TABLE_1);
- UPDATE
UPDATE TABLE_NM
SET AGE = 15
WHERE NAME = '김가가';
--WHERE 조건을 걸지 않으면 테이블 내 모든 데이터의 값이 변경된다
--UPDATE 시 변경할 값은 해당 컬럼에 대한 제약조건에 위배되지 않아야한다.
- DELETE
DELETE FROM TABLE_NM WHERE NAME = '김가가';
--WHERE 조건을 걸지 않으면 모든 데이터가 삭제된다.
--테이블 내 전체 데이터 삭제를 원하면 DELETE 대신 TRUNCATE 사용 권장
DCL (Date Control Language) : 데이터 제어어. DB에 접근하도록 권한을 주거나 회수하는 명령어
- GRANT
GRANT RESOURCE, CONNECT TO EMPLOYEE(계정이름)
--계정 생성 후 권한을 줘야 DB에 접근할 수 있다
- REVOKE
TCL (Transaction Control Language) : 트랜잭션 제어어. 작업단위(트랜잭션) 별로 제어하는 명령어
- COMMIT
- ROLLBACK
- SAVEPOINT
코드1;
SAVEPOINT SP1;
코드2;
ROLLBACK TO SP1;
--코드2의 내용만 롤백됨
'SQL' 카테고리의 다른 글
MSSQL 참고 (0) | 2025.04.25 |
---|---|
[ORACLE] PL/SQL (0) | 2024.04.05 |
[ORACLE] MERGE INTO (0) | 2024.04.04 |
프로시저 (0) | 2022.08.05 |
Comments