갱스타 2021. 6. 1. 22:42

* DML문은 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업하므로 실시간으로 테이블에 영향을 미치지 않는다. ( DDL과의 차이점)

** 따라서 버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어로 트랜잭션 종료 필수

*** 그러나 SQL Server의 경우 DMLAUTO COMMIT 된다.

 

INSERT INTO 테이블명(칼럼1, 칼럼2, 칼럼3) VALUES (1, 2, 3);
  // 지정하지 않은 칼럼의 경우 자동으로 NULL 값으로 채워진다. 물론 NOT NULL로 지정된 칼럼은 오류 발생
INSERT INTO 테이블명 VALUES(전체 칼럼에 넣을 VALUE_LIST);
 // 칼럼명을 지정하지 않고 테이블명만 명시한 경우에는 모든 칼럼들에 해당하는 값을 넣어줘야 함, 선택 불가

 

 

UPDATE  테이블명
SET      수정되어야 할 칼럼명 = 수정되기 원하는 값;
UPDATE  PLAYER
SET      P_VAL = ’MF’ ;   //모든 P_VAL 행의 값이 수정됨


2. UPDATE

입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야 하는 경우 발생

 

 

DELETE FROM 테이블명;
DELETE 테이블명;  //FROM 은 생략가능


3. DELETE

** DELETE TABLE 은 삭제된 데이터를 로그로 저장한다. 영구삭제를 위해서는 COMMIT; 을 실행해주어야 함.

그러므로  AUTO COMMIT이 되어 시스템 부하가 적은 TRUNCATE TABLE을 권고함

 

 

SELECT [ALL/DISTINCT] 칼럼명
FROM 테이블명


4. SELECT

 

*(애스터리스크) 와일드카드. 해당 테이블의 모든 칼럼 정보를 보고 싶을 경우에 사용하여 조회
AS ALIAS 부여하기. AS 는 생략 가능하다. EX) SELECT P_ID 선수명;
중간에 공백이 들어가는 경우 “ ”를 사용해야한다. EX SELECT P_ID AS “선수 이름”;

 

5. 산술연산자

우선순위 ()      *     /     +     

 

6. 합성연산자 CONCATENATION  ||

오라클은 수직바  ||  ,  SQL 서버는 +

두 벤더 모두 CONCAT(string1, string2)함수 사용 가능

칼럼과 문자 또는 다른 칼럼과 연결시킴

 

SELECT  P_ID  ||  선수,’  ||  HEIGHT  ||  ‘cm,’  ||  WEIGHT  ||  ‘kg’  체격정보(=AS 체격정보)
FROM PLAYER


문자 표현식의 결과에 의해 새로운 칼럼 생성

4TCL

1. 트랜잭션의 개요

- ALL or NOTHING

   - 트랜잭션은 데이터베이스의 논리적 연산단위로 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.

   - 트랜잭션은 분할할 수 없는 최소의 단위이다.

 

트랜잭션의 특성 ACID

Atomicity
원자성
ALL or NOTHING
Consistency
일관성
트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다.
Isolation
고립성
트랜잭션이 실행되는 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안된다.
Durability
지속성
트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 내용은 데이터베이스에 영구적으로 저장된다.

 

2. COMMIT

- Oracle DML을 실행하는 경우 DBMS가 트랜잭션을 내부적으로 실행하며 DML 문장 수행 후 사용자가 임의로 COMMIT 혹은 ROLLBACK을 수행해주어야 트랜잭션이 종료된다.

 

- SQL Server는 기본적으로 AUTO COMMIT 모드이기 때문에 DML 수행 후 사용자가 COMMIT 이나 ROLLBACK을 처리할 필요가 없다. DML 구문이 성공하면 자동으로 COMMIT이 되고 오류가 발생할 경우 자동으로 ROLLBACK이 된다.

<SQL Server의 트랜잭션 방식>

AUTO COMMIT SQL-Server의 기본방식. DML, DDL을 수행할 때마다 DBMS가 트랜잭션을 자동으로 컨트롤
암시적 트랜잭션 오라클과 같은 방식으로 처리. 트랜잭션의 시작은 DBMS가 처리하고 끝은 사용자가 명시적으로 COMMIT, ROLLBACK으로 처리한다. 인스턴스 단위 또는 세션 단위로 설정할 수 있다.
명시적 트랜잭션 트랜잭션의 시작과 끝을 모두 사용자가 지정하는 방식이다.
BEGIN TRANSACTION(혹은 TRAN)으로 시작하고 COMMIT (TRANSACTION) 또는 ROLLBACK (TRANSACTION) 으로 트랜잭션을 종료한다.

 

3. ROLLBACK

-

BEGIN TRAN
UPDATE PLAYER
SET HEIGHT=100;
ROLLBACK;


SQL Server는 기본적으로 AUTO COMMIT 모드이기 때문에 임의적으로 ROLLBACK을 수행하려면 명시적으로 트랜잭션을 선언해야 한다.

데이터에 대한 변경사항은 취소된다.

이전 데이터는 다시 재저장된다.

관련된 행에 잠금이 풀리고 다른 사용자들이 행을 조작할 수 있게 된다.

 

COMMIT ROLLBACK의 효과

- 데이터 무결성 보장

- 영구적인 변경을 하기 전에 데이터의 변경사항 확인 가능

- 논리적으로 연관된 작업을 그룹핑하여 처리

 

UPDATE  테이블명
SET      수정되어야 할 칼럼명 = 수정되기 원하는 값;
UPDATE  PLAYER
SET      P_VAL = ’MF’ ;   //모든 P_VAL 행의 값이 수정됨


2. UPDATE

입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야 하는 경우 발생

 

 

DELETE FROM 테이블명;
DELETE 테이블명;  //FROM 은 생략가능


3. DELETE

** DELETE TABLE 은 삭제된 데이터를 로그로 저장한다. 영구삭제를 위해서는 COMMIT; 을 실행해주어야 함.

그러므로  AUTO COMMIT이 되어 시스템 부하가 적은 TRUNCATE TABLE을 권고함

 

 

SELECT [ALL/DISTINCT] 칼럼명
FROM 테이블명


4. SELECT

 

*(애스터리스크) 와일드카드. 해당 테이블의 모든 칼럼 정보를 보고 싶을 경우에 사용하여 조회
AS ALIAS 부여하기. AS 는 생략 가능하다. EX) SELECT P_ID 선수명;
중간에 공백이 들어가는 경우 “ ”를 사용해야한다. EX SELECT P_ID AS “선수 이름”;

 

5. 산술연산자

우선순위 ()      *     /     +     

 

6. 합성연산자 CONCATENATION  ||

오라클은 수직바  ||  ,  SQL 서버는 +

두 벤더 모두 CONCAT(string1, string2)함수 사용 가능

칼럼과 문자 또는 다른 칼럼과 연결시킴

 

SELECT  P_ID  ||  선수,’  ||  HEIGHT  ||  ‘cm,’  ||  WEIGHT  ||  ‘kg’  체격정보(=AS 체격정보)
FROM PLAYER


문자 표현식의 결과에 의해 새로운 칼럼 생성

4TCL

1. 트랜잭션의 개요

- ALL or NOTHING

   - 트랜잭션은 데이터베이스의 논리적 연산단위로 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.

   - 트랜잭션은 분할할 수 없는 최소의 단위이다.

 

트랜잭션의 특성 ACID

Atomicity
원자성
ALL or NOTHING
Consistency
일관성
트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다.
Isolation
고립성
트랜잭션이 실행되는 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안된다.
Durability
지속성
트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 내용은 데이터베이스에 영구적으로 저장된다.

 

2. COMMIT

- Oracle DML을 실행하는 경우 DBMS가 트랜잭션을 내부적으로 실행하며 DML 문장 수행 후 사용자가 임의로 COMMIT 혹은 ROLLBACK을 수행해주어야 트랜잭션이 종료된다.

 

- SQL Server는 기본적으로 AUTO COMMIT 모드이기 때문에 DML 수행 후 사용자가 COMMIT 이나 ROLLBACK을 처리할 필요가 없다. DML 구문이 성공하면 자동으로 COMMIT이 되고 오류가 발생할 경우 자동으로 ROLLBACK이 된다.

<SQL Server의 트랜잭션 방식>

AUTO COMMIT SQL-Server의 기본방식. DML, DDL을 수행할 때마다 DBMS가 트랜잭션을 자동으로 컨트롤
암시적 트랜잭션 오라클과 같은 방식으로 처리. 트랜잭션의 시작은 DBMS가 처리하고 끝은 사용자가 명시적으로 COMMIT, ROLLBACK으로 처리한다. 인스턴스 단위 또는 세션 단위로 설정할 수 있다.
명시적 트랜잭션 트랜잭션의 시작과 끝을 모두 사용자가 지정하는 방식이다.
BEGIN TRANSACTION(혹은 TRAN)으로 시작하고 COMMIT (TRANSACTION) 또는 ROLLBACK (TRANSACTION) 으로 트랜잭션을 종료한다.

 

3. ROLLBACK

-

BEGIN TRAN
UPDATE PLAYER
SET HEIGHT=100;
ROLLBACK;


SQL Server는 기본적으로 AUTO COMMIT 모드이기 때문에 임의적으로 ROLLBACK을 수행하려면 명시적으로 트랜잭션을 선언해야 한다.

데이터에 대한 변경사항은 취소된다.

이전 데이터는 다시 재저장된다.

관련된 행에 잠금이 풀리고 다른 사용자들이 행을 조작할 수 있게 된다.

 

COMMIT ROLLBACK의 효과

- 데이터 무결성 보장

- 영구적인 변경을 하기 전에 데이터의 변경사항 확인 가능

- 논리적으로 연관된 작업을 그룹핑하여 처리

 

UPDATE  테이블명
SET      수정되어야 할 칼럼명 = 수정되기 원하는 값;
UPDATE  PLAYER
SET      P_VAL = ’MF’ ;   //모든 P_VAL 행의 값이 수정됨


2. UPDATE

입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야 하는 경우 발생

 

 

DELETE FROM 테이블명;
DELETE 테이블명;  //FROM 은 생략가능


3. DELETE

** DELETE TABLE 은 삭제된 데이터를 로그로 저장한다. 영구삭제를 위해서는 COMMIT; 을 실행해주어야 함.

그러므로  AUTO COMMIT이 되어 시스템 부하가 적은 TRUNCATE TABLE을 권고함

 

 

SELECT [ALL/DISTINCT] 칼럼명
FROM 테이블명

. SELECT

 

*(애스터리스크) 와일드카드. 해당 테이블의 모든 칼럼 정보를 보고 싶을 경우에 사용하여 조회
AS ALIAS 부여하기. AS 는 생략 가능하다. EX) SELECT P_ID 선수명;
중간에 공백이 들어가는 경우 “ ”를 사용해야한다. EX SELECT P_ID AS “선수 이름”;

 

5. 산술연산자

우선순위 ()      *     /     +     

 

6. 합성연산자 CONCATENATION  ||

오라클은 수직바  ||  ,  SQL 서버는 +

두 벤더 모두 CONCAT(string1, string2)함수 사용 가능

칼럼과 문자 또는 다른 칼럼과 연결시킴

 

SELECT  P_ID  ||  선수,’  ||  HEIGHT  ||  ‘cm,’  ||  WEIGHT  ||  ‘kg’  체격정보(=AS 체격정보)
FROM PLAYER
 
   


문자 표현식의 결과에 의해 새로운 칼럼 생성

4TCL

1. 트랜잭션의 개요

- ALL or NOTHING

   - 트랜잭션은 데이터베이스의 논리적 연산단위로 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.

   - 트랜잭션은 분할할 수 없는 최소의 단위이다.

 

트랜잭션의 특성 ACID

Atomicity
원자성
ALL or NOTHING
Consistency
일관성
트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다.
Isolation
고립성
트랜잭션이 실행되는 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안된다.
Durability
지속성
트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 내용은 데이터베이스에 영구적으로 저장된다.

 

2. COMMIT

- Oracle DML을 실행하는 경우 DBMS가 트랜잭션을 내부적으로 실행하며 DML 문장 수행 후 사용자가 임의로 COMMIT 혹은 ROLLBACK을 수행해주어야 트랜잭션이 종료된다.

 

- SQL Server는 기본적으로 AUTO COMMIT 모드이기 때문에 DML 수행 후 사용자가 COMMIT 이나 ROLLBACK을 처리할 필요가 없다. DML 구문이 성공하면 자동으로 COMMIT이 되고 오류가 발생할 경우 자동으로 ROLLBACK이 된다.

<SQL Server의 트랜잭션 방식>

AUTO COMMIT SQL-Server의 기본방식. DML, DDL을 수행할 때마다 DBMS가 트랜잭션을 자동으로 컨트롤
암시적 트랜잭션 오라클과 같은 방식으로 처리. 트랜잭션의 시작은 DBMS가 처리하고 끝은 사용자가 명시적으로 COMMIT, ROLLBACK으로 처리한다. 인스턴스 단위 또는 세션 단위로 설정할 수 있다.
명시적 트랜잭션 트랜잭션의 시작과 끝을 모두 사용자가 지정하는 방식이다.
BEGIN TRANSACTION(혹은 TRAN)으로 시작하고 COMMIT (TRANSACTION) 또는 ROLLBACK (TRANSACTION) 으로 트랜잭션을 종료한다.

 

3. ROLLBACK

-

BEGIN TRAN
UPDATE PLAYER
SET HEIGHT=100;
ROLLBACK;


SQL Server는 기본적으로 AUTO COMMIT 모드이기 때문에 임의적으로 ROLLBACK을 수행하려면 명시적으로 트랜잭션을 선언해야 한다.

데이터에 대한 변경사항은 취소된다.

이전 데이터는 다시 재저장된다.

관련된 행에 잠금이 풀리고 다른 사용자들이 행을 조작할 수 있게 된다.

 

COMMIT ROLLBACK의 효과

- 데이터 무결성 보장

- 영구적인 변경을 하기 전에 데이터의 변경사항 확인 가능

- 논리적으로 연관된 작업을 그룹핑하여 처리