DML(Data Manipulation Language), TCL(Transaction Control Language)

2023. 3. 10. 07:14SQLD 정리

반응형

*참고)

테이블명, 칼럼명 규칙

- 테이블명과 컬럼명은 문자로 시작

- A-Z, a-z, 0-9, #, $, _ 만 사용 가능

- 다른 테이블명과 중복되지 않아야 함

- 칼럼 뒤 데이터 유형은 꼭 지정

 

DML(Data Manipulation Language)

 

데이터 입력

INSERT INTO 테이블명(컬러명) VALUES(넣는데이터)

 

데이터 수정

UPDATE 테이블명 SET 컬럼명=바꾸는데이터 [ WHERE 컬럼명 = 값)

 

데이터 삭제

DELETE FROM 테이블명 [WHERE 컬럼명 = 값 ]

 

데이터 조회

SELECT 컬럼명

FROM 테이블명

WHERE 조건문

GROUP BY 집계기준칼럼명

HAVING group by 된 내용의 조건문

ORDER BY 컬럼명

 

DROP vs TRUNCATE vs delete

출저) https://www.udemy.com/course/sqld-metacode/learn/lecture/36075418#overview

 

DELETE

- 삭제된 데이터에 대해 로그를 남길 수 있는건 delete

- 특정 행 삭제 가능

- 삭제된 데이터 다시 되돌릴 수 있다(DDL인 TRUNCATE과 DROP은 불가).

- 데이터는 삭제되지만 용량이 줄어들지 않는다.

 

DISTINCT 

- 중복되지 않은 행을 출력( NULL도 단일 행으로 본다)

SELECT DISTINCT 칼럼명 FROM 테이블명

 

- 전체행 개수 출력 *NULL 포함해서 COUNT

SELECT COUNT(*)

FROM 테이블명

 

- 특정행 개수 출력 *NULL 제외해서 COUNT

SELECT COUNT(특정 칼럼명)

FROM 테이블명

 

- 중복되지 않은 특정 행 개수 출력 *NULL 제외해서 COUNT

SELECT COUNT(DISTINCT 특정 칼럼명)

FROM 테이블명

 

 

TCL(Transaction Control Language)

*트랜잭션 : 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위

COMMIT : 데이터에 대한 변화를 DB에 반영하기 위한 명령어

SAVEPOINT : 코드를 분할하기 위한 저장 포인트 지정

ROLLBACK : 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어, 최신 COMMIT이나 특수한 SAVEPOINT로 되돌릴 수 있는 명령어

 

참고) DDL은 자동으로 커밋이 되고 DML은 커밋을 해줘야 DB에 반영이 된다.

 

COMMIT과 ROLLBACK의 효과

- 데이터 무결성을 보장할 수 있다.

- 영구적인 변경 전 데이터에 대한 변동사항을 확인할 수 있다.

- 논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다.

 

트랜잭션 특징

고립성 - 트랜잭션이 실행되는 동안 다른 트랜잭션에 영향을 받아 잘못된 결과를 만들어선 안된다.

원자성 - ALL OR NOTHING, 트랜잭션에서 정의된 연산을 모두 실행하던지 아니면 실행되지 않은 상태로 있어야 한다.

지속성 - 트랜잭션이 성공적으로 수행하면 트랜잭션이 수행된 결과는 영구적으로 저장된다.

일관성 - 트랜잭션 발생 전에 데이터베이스 내용에 문제가 없으면 트랜잭션 수행 후에도 데이터베이스 내용에 문제가 있으면 안된다.

 

 

 

 

 

 

 

 

반응형