-
SQL 프로그래밍 2 - SQL의 분류(DDL, DML, DCL)데이터분석/SQL 2022. 1. 2. 13:44반응형
https://kbkb456.tistory.com/98
SQL 프로그래밍 1 - SQL을 학습하는 방법과 연습환경(sql fiddle, sql test)
데이터 분석이 화두에 오르면서 데이터베이스에서 대이터를 추출하는 SQL에 대한 관심도가 높아지고 있다. 1. 그럼 우리가 왜 SQL을 배워야 하는 걸까? - 일하는데 많이 쓰인다. 요새는 개발자나
kbkb456.tistory.com
이전 시간에 SQL을 왜 배워야 하고 어떻게 편하게 실습할 수 있는지 알아봤다.
SQL이란 무엇일까?
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
- 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안
- 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택
SQL의 분류
SQL 분류 SQL은 용도에 따라서 DDL, DML, DCL, TCL으로 나뉜다. 각각 알아보도록 하자
DDL(Data Definition Language, 데이터 정의어)
- 데이터베이스 구조 또는 스키마(schema)를 정의하는 데 사용함
(데이터베이스, 테이블, 뷰, 인덱스등 데이터 베이스 개체를 생성/삭제/변경하는 역할)
- 직접 데이터 베이스의 테이블에 영향을 주기 때문에 실행 즉시 AUTO COMMIT 함
- AUTO COMMIT이란? 자동으로 테이블의 상태를 데이터베이스의 적용하는 것
언어 역할 CREATE 데이터베이스의 객체(테이블) 생성 ALTER 데이터베이스의 구조 변경 DROP 데이터 베이스의 객체(테이블)삭제 -> 테이블의 모든 데이터와 구조를 삭제 RENAME 데이터 베이스의 객체이름(테이블, 컬럼)을 변경 COMMENT 데이터의 주석(설명) 추가 TRUNCATE 테이블에 할당된 모든공간의 레코드를 제거(테이블 객체 자체는 제거되지 않음) DML(Data Manipulation Language, 데이터 조작어)
- 데이터 베이스 관리나 조회 시 사용
- AUTO COMMIT 되지 않음 -> DML에 의한 데이터의 변경은 롤백이 가능함
- DML 명령어의 경우 조작하는 테이블을 메모리에 올려놓고 작업함 -> 실시간으로 테이블에 영향을 주지 않음
- 따라서 실제로 DML을 통한 테이블 변경을 하려면 COMMIT 명령어를 쳐줘야 함
- SQL Server의 경우 DML도 AUTO COMMIT이 적용되니 조심해서 활용해야 함
언어 역할 SELECT 데이터 베이스에서 데이터를 검색할 때 활용 INSERT 테이블에 데이터를 추가 UPDATE 테이블 내의 기존 데이터들을 수정 DELETE 테이블에서 데이터를 삭제 MERGE 데이터 테이블에 존재하지 않으면 INSERT 아니면 UPDATE CALL PL/SQL 또는 JAVA 서브 프로그램 호출 LOCK TABLE 동시성 제어 EXPLAIN PLAN 데이터 접근 경로를 해석 -> SQL문이 어떻게 실행/작동하는지 DCL(Data Control Language, 데이터 제어 언어)
- 데이터 베이스 접근권한을 부여하는 데 사용
언어 역할 GRANT 데이터 베이스에 대해서 어떤 사용자에게 엑세스 권한을 제공 REVOKE GRANT로 제공되었던 엑세스 권한 철회 TCL(Transaction Control Language, Transaction 제어 언어)
- 데이터의 보안, 무결성, 회복, 병행수행에 대한 제어를 하는 데 사용
언어 역할 COMMIT 트랜잭션의 작업결과를 저장하고 데이터베이스에 반영 ROLLBACK 데이터베이스를 마지막 COMMIT된 시점의 상태로 복원 SAVEPOINT 특정 시점의 트랜잭션을 정의하는데 활용 -> 해당 SAVEPOINT로 롤백가능 SET TRANSACTION Transaction 지정 반응형'데이터분석 > SQL' 카테고리의 다른 글