[SQL] DML, DDL, 제약 조건, 기타 객체 관리

지수·2023년 4월 2일
0

플레이데이터

목록 보기
16/50
post-thumbnail

[ 실습 내용 ]

7. DML

데이터 조작어(DML: Data Manipulation Language)
: 사용자가 데이터의 삽입, 삭제, 수정, 검색 등을 처리를 데이터베이스 관리 시스템에 요구하기 위해 사용하는 데이터 언어

  • INSERT : 테이블에 새로운 행 추가
INSERT INTO 테이블명(1,2)
VALUES (1의 값,2의 값);
- 열 리스트에서 열을 생략하고 VALUE 값을 주어도 순서대로 입력됨
- 특정 열에 값을 넣지 않을 때는 NULLVALUE 값 개수 맞춰야 함
- subquery로 INSERT 가능, 이 때는 VALUE 절을 사용하지 않음
  • UPDATE : 테이블의 기존 행 수정
UPDATE 테이블명
SET1 =1의 값
[WHERE 조건];

- 필요한 경우 한 번에 두 개 이상의 행을 갱신할 수 있음
- 조건절(WHERE)을 작성하지 않으면 모든 행이 수정됨
- subquery로 UPDATE 가능
  • DELETE : 테이블의 기존 행 삭제
DELETE [FROM] 테이블명
[WHERE 조건];

- 조건절(WHERE)을 작성하지 않으면 모든 행이 삭제됨
- subquery로 DELETE 가능

cf. TRUNCATE하면 빠르게 삭제할 수 있으나 복구가 불가능함!
  • SELECT : 테이블 내 데이터 검색
SELECT 검색할 열 이름
FROM 테이블명
[WHERE 조건]
[GROUP BY 집계 기준 열 이름]
[ORDER BY 정렬 기준 열 이름];

DML 후 COMMIT, ROLLBACK 사용

✅ 트랜잭션 제어 언어(TCL: Transaction Control Language)
: 트랜잭션 완료 후 수행 결과를 데이터베이스에 반영하거나, 변경 작업을 취소하고 이전의 상태로 돌아가게 하는 등 트랜잭션을 제어하는 언어

  • COMMIT : 트랜잭션이 성공적으로 수행되었음을 선언(작업 완료)
    => 트랜잭션 수행 결과 데이터베이스에 반영, 모든 savepoint 지워짐

  • ROLLBACK : 트랜잭션을 수행하는 데 실패했음을 선언(작업 취소)
    => 트랜잭션 수행 이전(commit 이전)의 상태로 돌아감

  • SAVEPOINT : COMMIT 이전 저장 포인트 지정
    => ROLLBACK SAVEPOINT 세이브포인트명을 통해 해당 지점으로 돌아갈 수 있음




8. DDL

데이터 정의어(DDL: Data Definition Language)
: 새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어

  • CREATE : 테이블, 뷰 등 데이터베이스 객체 생성
CREATE TABLE 테이블명
	(1 이름	열1 데이터 타입	  [제약 조건]	[기본값],2 이름	열2 데이터 타입	  [제약 조건]	[기본값],
	 ...
	 [FOREIGN KEY3 이름 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 차이

DELETE, DROP, TRUNCATE는 모두 데이터 삭제 방법이지만 복구 가능 여부, 삭제 후 상태가 각각 다름




9. 제약 조건

: 제약 조건은 테이블 레벨에서 규칙을 강제 적용하여 DB의 일관성 및 무결성 보장

  • NOT NULL : 열에 null 값이 허용되지 않도록 보장
  • UNIQUE : 열에 중복된 값이 허용되지 않도록 보장
  • PRIMARY KEY : NOT NULL + UNIQUE
  • FOREIGN KEY : 해당 값이 참조 테이블 PK에 존재하도록 보장
  • CHECK : 각 행이 충족해야 하는 조건 정의

+) 제약 조건 위반 : 다른 테이블에서 FK로 사용되는 PK를 포함한 행은 삭제할 수 없음 (미리 참조 무결성 제약 조건을 정의해놓으면 삭제 수행 가능)




10. 기타 객체 관리

데이터베이스 객체

  • 테이블(table) : 기본 저장 단위이며 행으로 구성됨
  • 뷰(view) : 하나 이상의 테이블에 있는 데이터의 부분 집합
  • 시퀀스(sequence) : 자동으로 숫자 값 생성, 고유번호/일련번호 자동 생성(NEXTVAL, CURRVAL)
  • 색인(index) : 데이터 검색 쿼리 성능 향상 index
  • 동의어(synonym) : 데이터베이스 객체 이름 부여, 이름을 통해 쉽게 접근할 수 있도록 함
profile
사부작 사부작

0개의 댓글