데이터 조작어(DML: Data Manipulation Language)
: 사용자가 데이터의 삽입, 삭제, 수정, 검색 등을 처리를 데이터베이스 관리 시스템에 요구하기 위해 사용하는 데이터 언어
INSERT
: 테이블에 새로운 행 추가INSERT INTO 테이블명(열1, 열2)
VALUES (열1의 값, 열2의 값);
- 열 리스트에서 열을 생략하고 VALUE 값을 주어도 순서대로 입력됨
- 특정 열에 값을 넣지 않을 때는 NULL로 VALUE 값 개수 맞춰야 함
- subquery로 INSERT 가능, 이 때는 VALUE 절을 사용하지 않음
UPDATE
: 테이블의 기존 행 수정UPDATE 테이블명
SET 열1 = 열1의 값
[WHERE 조건];
- 필요한 경우 한 번에 두 개 이상의 행을 갱신할 수 있음
- 조건절(WHERE)을 작성하지 않으면 모든 행이 수정됨
- subquery로 UPDATE 가능
DELETE
: 테이블의 기존 행 삭제DELETE [FROM] 테이블명
[WHERE 조건];
- 조건절(WHERE)을 작성하지 않으면 모든 행이 삭제됨
- subquery로 DELETE 가능
cf. TRUNCATE하면 빠르게 삭제할 수 있으나 복구가 불가능함!
SELECT
: 테이블 내 데이터 검색SELECT 검색할 열 이름
FROM 테이블명
[WHERE 조건]
[GROUP BY 집계 기준 열 이름]
[ORDER BY 정렬 기준 열 이름];
✅ 트랜잭션 제어 언어(TCL: Transaction Control Language)
: 트랜잭션 완료 후 수행 결과를 데이터베이스에 반영하거나, 변경 작업을 취소하고 이전의 상태로 돌아가게 하는 등 트랜잭션을 제어하는 언어
COMMIT
: 트랜잭션이 성공적으로 수행되었음을 선언(작업 완료)
=> 트랜잭션 수행 결과 데이터베이스에 반영, 모든 savepoint 지워짐
ROLLBACK
: 트랜잭션을 수행하는 데 실패했음을 선언(작업 취소)
=> 트랜잭션 수행 이전(commit 이전)의 상태로 돌아감
SAVEPOINT
: COMMIT 이전 저장 포인트 지정
=> ROLLBACK SAVEPOINT 세이브포인트명
을 통해 해당 지점으로 돌아갈 수 있음
데이터 정의어(DDL: Data Definition Language)
: 새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어
CREATE
: 테이블, 뷰 등 데이터베이스 객체 생성CREATE TABLE 테이블명
(열1 이름 열1 데이터 타입 [제약 조건] [기본값],
열2 이름 열2 데이터 타입 [제약 조건] [기본값],
...
[FOREIGN KEY 열3 이름 REFERENCES 테이블명(참조하는 열 이름)]
[CONSTRAINT 제약 조건 이름 제약 조건]);
ALTER
: 테이블에 새로운 열 추가, 수정, 삭제# 새로운 열 추가
ALTER TABLE 테이블 명
ADD (열1 이름 열1 데이터 타입 [기본값]...);
# 기존 열 수정
ALTER TABLE 테이블 명
MODIFY (열1 이름 열1 데이터 타입 [기본값]...);
# 기존 열 삭제
ALTER TABLE 테이블 명
DROP (열1 이름...);
- ADD : 새로운 열 추가, 새로운 열의 기본값 정의
- MODIFY : 기존 열 이름 수정, 기존 열 정의 수정
- DROP : 열 삭제
- READ ONLY : 읽기 전용 상태로 테이블 변경(<-> READ WRITE)
DROP
: 테이블 삭제DROP TABLE 테이블명;
- 테이블을 Recycle bin으로 이동 -> 복구 가능
- 뒤에 purge를 붙여 purge절으로 지정하면 영구 삭제
- 종속 객체 무효화 및 테이블의 객체 권한 제거
✅ DELETE
, DROP
, TRUNCATE
는 모두 데이터 삭제 방법이지만 복구 가능 여부, 삭제 후 상태가 각각 다름
: 제약 조건은 테이블 레벨에서 규칙을 강제 적용하여 DB의 일관성 및 무결성 보장
NOT NULL
: 열에 null 값이 허용되지 않도록 보장UNIQUE
: 열에 중복된 값이 허용되지 않도록 보장PRIMARY KEY
: NOT NULL + UNIQUEFOREIGN KEY
: 해당 값이 참조 테이블 PK에 존재하도록 보장CHECK
: 각 행이 충족해야 하는 조건 정의+) 제약 조건 위반 : 다른 테이블에서 FK로 사용되는 PK를 포함한 행은 삭제할 수 없음 (미리 참조 무결성 제약 조건을 정의해놓으면 삭제 수행 가능)
테이블(table)
: 기본 저장 단위이며 행으로 구성됨뷰(view)
: 하나 이상의 테이블에 있는 데이터의 부분 집합시퀀스(sequence)
: 자동으로 숫자 값 생성, 고유번호/일련번호 자동 생성(NEXTVAL, CURRVAL)색인(index)
: 데이터 검색 쿼리 성능 향상 index동의어(synonym)
: 데이터베이스 객체 이름 부여, 이름을 통해 쉽게 접근할 수 있도록 함