* DML문은 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업하므로 실시간으로 테이블에 영향을 미치지 않는다. ( DDL과의 차이점)
** 따라서 버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어로 트랜잭션 종료 필수
*** 그러나 SQL Server의 경우 DML도 AUTO 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 |
문자 표현식의 결과에 의해 새로운 칼럼 생성
제4절 TCL
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 |
문자 표현식의 결과에 의해 새로운 칼럼 생성
제4절 TCL
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 |
문자 표현식의 결과에 의해 새로운 칼럼 생성
제4절 TCL
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의 효과
- 데이터 무결성 보장
- 영구적인 변경을 하기 전에 데이터의 변경사항 확인 가능
- 논리적으로 연관된 작업을 그룹핑하여 처리
'노력만이 살길! > SQLD' 카테고리의 다른 글
제7절 GROUPBY, HAVING절 (0) | 2021.06.01 |
---|---|
NULL 처리하기 (0) | 2021.06.01 |
SQL 기본 DDL문 (0) | 2021.06.01 |
제6절 분산데이터베이스와 성능 (0) | 2021.06.01 |
제5절 데이터베이스의 구조와 성능 (0) | 2021.06.01 |