본문 바로가기

프로그래밍/DataBase

[DataBase]DDL, DML, DCL

데이터 정의어(DDL)란

 데이터베이스 또는 테이블을 생성, 삭제, 수정 등을 한다.

명령어 내용
CREATE 데이터 베이스 or 테이블 생성
DROP 데이터 베이스 or 테이블 삭제
ALTER 데이터 베이스 or 테이블 수정
RENAME 데이터 베이스 or 테이블 이름 변경
TRUNCATE 데이터 베이스 or 테이블 초기화

 

CREATE 문법

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

 

 소유 계정은 생략 가능하다.
 '열N 이름 DEFAULT 디폴트값' 과 같이 옵션을 추가로 사용할 수 있다.

 

 

DROP 문법

DROP TABLE 테이블명;

 

 

ALTER 문법 

 

 ADD

ALTER TABLE 테이블명
ADD (칼럼이름 칼럼타입);

ex)

alter table dept80
add (job_id VARCHAR2(9));

dept80 테이블에 VARCHAR2(9)타입의 job_id 컬럼을 추가한다.

 

새롭게 추가된 컬럼은 테이블 구조의 마지막에 생성된다.

 

 

 ADD - 제약조건의 추가

 

1. 테이블 레벨의 문법

alter table 테이블명
add constraint 제약조건명 제약조건유형(컬럼명);

 

2. 컬럼 레벨의 문법

alter table 테이블명
modify 컬럼명 constraint 제약조건명 제약조건유형;

 

NOT NULL제약조건은 컬럼 레벨의 문법에서만 가능하기 때문에 위의 sql로 추가가 가능하다.

 

 

 

 DROP

ALTER TABLE 테이블명
DROP (칼럼이름);

ex)

alter table dept80
drop (job_id);

dept80 테이블의 job_id 칼럼을 삭제한다.

 

DROP COULUMN 칼럼명; 또는 DROP (칼럼명); 두가지 문법이 있다.

 

 

 

 MODIFY

ALTER TABLE 테이블명
MODIFY 칼럼이름 변경칼럼타입;

ex)

alter table dept80
modify (last_name VARCHAR2(30));

dept80 테이블의 last_name 칼럼을 varchar2(30) 타입으로 변경한다.

다만 위 같은 경우 last_name 테이블에 이미 30자를 넘는 데이터가 있으면 칼럼 수정이 되지 않는다.

 

 

 

 

데이터 조작어(DML)란

 데이터를 검색하거나 변경하는데 사용한다.

명령어 내용
SELECT 데이터 삽입
INSERT 데이터 수정
UPDATE 데이터 조회
DELETE 데이터 삭제

 

SELECT 문법

SELECT 속성
FROM 테이블명
WHERE 검색조건
[GROUP BY 묶는 기준]
[HAVING 묶는 조건]
[ORDER BY 오름차순/내림차순] [ASE / DESC];

 

 

INSERT 문법

 모든 칼럼에 데이터를 넣는 경우

INSERT INTO departments
VALUES (값, 값, 값, 값, ... ,값);

//칼럼의 순서에 맞게 데이터를 입력하여야한다.

 컬럼을 골라서 데이터를 넣는 경우

INSERT INTO departments (컬럼명, 컬럼명)
VALUES (값, 값);

 테이블 속성이 아닌 이미 만들어진 속성에 데이터를 삽입하고자 할 때 사용한다.

 문자의 경우 ''(작은 따옴표)를 사용한다.

 

UPDATE 문법

UPDATE 테이블명
SET 컬럼명1 = 데이터1, 컬럼명2 = 데이터2, ... 컬럼명n = 데이터n
WHERE 수정할 조건;

 

DELETE 문법

DELETE
FROM 테이블명
[WHERE 조건;]

 

 

데이터 제어어(DCL)란

 데이터베이스에서 실행한 변경을 확정하거나 취소하는데 사용한다.

명령어 내용
COMMIT 데이터 확정
ROLLBACK 데이터 복구
GRANT 사용자 권한 부여
REVOKE 사용자 권한 회수

 

GRANT 문법

: 권한을 부여하는 명령어

GRANT 권한, 권한, 권한, ..., 권한
TO 사용자;

 

REVOKE 문법

: 부여한 권한을 취소한다.

REVOKE 권한
FROM 사용자;

 

데이터를 수정한 뒤 그냥 두면 데이터가 최종적으로 변경 되지 않는다.

COMMIT을 해야 데이터 변경이 저장된 것인데,

COMMIT을 하지 않고도 데이터가 변경된 것처럼 보이는 것은 나한테만 보이는 미리보기 같은 것이다.

때문에 데이터를 수정했으면 COMMIT;을 통해 저장을 해야한다.

 

COMMIT과 반대로 데이터 수정작업을 취소하고 싶을땐 ROLLBACK을 통해 취소할 수 있다.

 

(단, COMMIT이후 ROLLBACK은 의미가 없다.)

 

 

'프로그래밍 > DataBase' 카테고리의 다른 글

[DataBase]AS  (0) 2021.03.22
[DataBase]DESC  (0) 2021.03.22
[DataBase]서브쿼리  (0) 2021.03.10
[DataBase]Join  (0) 2021.03.10
[DataBase]제약조건  (1) 2021.03.08