집에서 하는 공부/SQLD

[SQLD]2과목.SQL 기본 및 활용-3

집돌이 공대남 2022. 6. 10. 10:05
반응형

1장 SQL 기본

 

3절 DML

1. INSERT: 데이터 입력

SQL>> INSERT INTO 테이블명 (칼럼명, …) VALUES (필드값, …);

SQL>> INSERT INTO 테이블명 VALUES (필드값, …);

 

2. UPDATE: 데이터 수정

SQL>> UPDATE 테이블명 SET 칼럼명=필드값;

 

3. DELETE: 데이터 삭제

SQL>> DELETE FROM 테이블명 WHERE 조건절;

SQL>> DELETE FROM 테이블명;

-  DELETE로 데이터를 삭제해도 테이블 용량은 초기화되지 않음 (↔ TRUNCATE로 삭제하면 초기화됨)

-  ↔ DROP은 객체 삭제 명령어

 

4. SELECT

* 칼럼 별 데이터 선택

SQL>> SELECT 칼럼명 FROM 테이블명;

* 데이터 중복 없이 선택

SQL>> SELECT DISTINCT 칼럼명 FROM 테이블명;

* 전체 칼럼의 데이터 선택

SQL>> SELECT * FROM 테이블명;

※ 앨리어스(Alias)

•  SELECT 칼럼명 AS “별명” : 출력되는 칼럼명 설정

•  FROM 테이블명 별명 : 쿼리 내에서 사용할 테이블명 설정, 칼럼명이 중복될 경우 SELECT절에서 앨리어스 필수

 

5. 문자열의 합성 연산자: ‘+’(플러스), CONCAT 함수로도 2개 문자열 합성 가능, Oracle에서는 ‘||’(수직선 2개)도 가능

 

6.  DUAL : Oracle의 기본 더미 테이블, 연산 수행을 위해 사용됨

 

4절 TCL

1. 트랜잭션: DB의 논리적 연산 단위, 하나 이상의 SQL문을 포함함

*특성 ACID

‒ 원자성(Atomicity): 전부 실행되거나 전혀 실행되지 않음 (All or Nothing)

‒ 일관성(Consistency): 트랜잭션으로 인한 DB 상태의 모순이 없음

‒ 고립성(Isolation): 부분적인 실행 결과에 다른 트랜잭션이 접근할 수 없음, LOCKING으로 고립성 보장

‒  영속성(Durability): 트랜잭션의 결과는 영구적으로 저장됨

 

2.  TCL: 데이터 무결성 보장을 목적으로 함, 영구 변경 전 확인과 연관 작업 동시처리 가능

* Oracle은 SQL 문장을 실행하면 트랜잭션이 시작되고 TCL을 실행하면 트랜잭션이 종료됨

* DDL을 실행하면 자동 커밋 (DML 이후 커밋 없이 DDL을 실행해도 자동 커밋)

* DB를 정상적으로 종료하면 자동 커밋, 애플리케이션 등의 이상으로 DB 접속이 단절되면 자동 롤백

 

3. COMMIT: 데이터를 DB에 영구적으로 반영하는 명령어, 커밋 시 트랜잭션이 완료되어 LOCKING이 해제됨, SQL Server은 기본적으로 자동 커밋

* COMMIT 전

‒  데이터 변경이 메모리 버퍼에만 영향을 받았기 때문에 복구 가능 (NOLOGGING 옵션 사용 시 버퍼 캐시의 기록을 생략하여 입력 성능이 향상됨)

‒ 사용자는 SELECT절로 결과를 확인할 수 있으나 다른 사용자는 현재 결과를 볼 수 없음

‒ 변경된 행에 LOCKING이 설정되어 다른 사용자가 변경할 수 없음 (LOCKING이 안 걸린 상태일 때 여러 사용자가 데이터를 변경하면 상관없음)

*  COMMIT 후

‒ 변경 사항이 DB에 반영되고 이전 데이터는 복구 불가

‒ 모든 사용자가 결과를 볼 수 있음

‒ LOCKING이 해제되어 다른 사용자가 행을 조작할 수 있음

 

4. ROLLBACK: 트랜잭션 시작 이전의 상태로 되돌리는 명령어, COMMIT 이전 상태로 돌려줌, ROLLBACK 시 LOCKING이 해제됨

SAVEPOINT: 트랜잭션 일부만 롤백 할 수 있도록 중간상태를 저장하는 명령어, ‘ROLLBACK TO 저장점명’ 시 해당 저장점 상태로 돌려줌, 동일한 저장점명이 있으면 나중 저장점이 유효함

*  SQL Server에서는 ’BEGIN TRAN으로 명시해야 가능함

반응형