본문 바로가기
일상

20240404

by 20231113 2024. 4. 4.

DDL(Data Define Language, 데이터 정의어)

DML(Data Manipulation Language, 데이터 조작어)

DCL(Data Control Language, 데이터 제어어)

 

https://icedhotchoco.tistory.com/entry/SQL-DDL-DML-DCL-TCL

 

[SQL] DDL, DML, DCL, TCL 개념과 종류

SQL(Structured Query Language, 구조화된 질의 언어)은 데이터베이스에서 데이터를 저장, 조회, 수정, 삭제할 때 사용하고, 데이터베이스 자체의 성능 유지관리, 최적화에 사용되는 언어이다. 쉽게 말해

icedhotchoco.tistory.com

 

DDL(Data Definition Language, 데이터 정의어)
데이터베이스 구조 정의에 사용하는 언어로, 테이블이나 컬럼 등을 생성, 수정, 삭제한다.
데이터베이스의 전체 골격을 구성하는 역할을 한다.

DDL 종류와 역할
CREATE :  새로운 테이블을 생성
ALTER : 기존 테이블 구조 변경
DROP : 기존 테이블 삭제
TRUNCATE : 기존 테이블 초기화
RENAME : 기존 테이블 이름 변경


DML(Data Manipulation Lannuage, 데이터 조작어)
데이터 조작에 사용하는 언어로, 테이블의 데이터를 조회, 저장, 수정, 삭제한다.
데이터베이스 내부에 실제로 저장된 데이터들을 다루는 역할을 한다.

DML 종류와 역할
SELECT : 저장된 데이터를 조회
- SELECT는 DML에 포함하지 않고 DQL(Data Query Language)로 분류하는 경우도 있다.
INSERT : 새로운 데이터를 저장
UPDATE : 저장된 데이터를 수정
DELETE : 저장된 데이터를 삭제


DCL(Data Control Language, 데이터 제어어)
데이터베이스에 대한 접근 권한 제어에 사용하는 언어로, 각종 권한을 부여, 회수한다.
권한 관리를 통해 시스템 보안을 유지하는 역할을 한다.

DCL 종류와 역할
GRANT : 유저에게 권한을 부여
REVOKE : 유저로부터 권한을 회수


TCL(Transaction Control Language, 트랜잭션 제어어)
DCL에서 트랜잭션을 컨트롤하는 명령어를 TCL로 분류한다. TCL 개념을 사용하지 않고 아래 명령어 또한 DCL로 분류하는 경우도 있다.

TCL 종류와 역할
COMMIT : 올바르게 완료한 작업으로 인한 데이터를 데이터베이스에 영구적으로 반영
ROLLBACK : 작업 시작 이전의 상태로 되돌림
SAVEPOINT : 저장점을 지정, 이후 ROLLBACK과 함께 사용하여 특정 지점까지 ROLLBACK이 가능

 

 

 

 

 

 

-----

https://ko.wikipedia.org/wiki/VIEW_(SQL)

 

VIEW (SQL) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 뷰(view)는 관계 데이터베이스의 데이터베이스 언어 SQL에서 하나 이상의 테이블 (또는 다른 뷰)에서 원하는 모든 데이터를 선택하여, 그들을 사용자 정의하여 나

ko.wikipedia.org

 

https://ko.wikipedia.org/wiki/VIEW_(SQL)

 

내가 어제 잘못알고있는거였음. 뷰는 테이블과 다르다. 뷰는 정말 뷰(VIEW)네.

(view)는 관계 데이터베이스 데이터베이스 언어 SQL에서 하나 이상의 테이블 (또는 다른 뷰)에서 원하는 모든 데이터를 선택하여, 그들을 사용자 정의하여 나타낸 것이다. 관계 데이터베이스 관계 모델의 관계의 일종인 도출 관계에 해당한다. 여러 테이블(기본 관계) 또는 뷰의 데이터를 연결하여 조합할 수 있다. 보기에 표시되는 데이터의 선택 기준을 지정할 수도 있다.

뷰는 기본 테이블(table)과 같이 행(column)과 열(row)로 구성되지만, 다른 테이블에 있는 데이터를 보여줄 뿐이며, 실제 테이블과 달리 데이터 자체를 포함하고 있는 것은 아니다. 뷰를 사용하면 여러 테이블이나 뷰를 하나의 테이블인 것처럼 볼 수 있다.

표준 SQL 규격으로는 SQL89에서 사용 가능해 졌다. SQL89에서는 뷰를 만들 수 있지만, DROP 문이 없기 때문에 삭제할 수 없었지만, SQL92에서는 CHECK OPTION, LOCAL, CASCADE 기능 확장이 이루어지고 있다. SQL99에서는 더욱 기능 강화되었으며, 특정 조건 하에서 뷰에서 기본 테이블의 데이터 업데이트가 가능하게 되었다.

정의된 정렬 순서가 모자란 기본적인 테이블의 열처럼, 뷰를 통해 생성된 열도 특정 순서로 정렬되어 나타나지 않는다. 뷰는 관계 테이블이며, 관계 모델은 테이블을 일련의 열로 정의를 한다. 그러한 세트는 (정의를 내림으로써) 정렬되지 않기 때문에, 뷰의 테이블도 마찬가지다. 따라서 ORDER BY 구문은 뷰의 정의에서 무의미하며, 표준 SQL2003에서는 ORDER BY 구문을 CREATE VIEW 명령의 옵션에서 허용하지 않았으며, 마찬가지로 CREATE TABLE 구문에서 거분된 것이다. 그러나 정렬된 데이터는 다른 테이블로서 동일한 방법으로 뷰를 통해 획득할 수 있다. 그럼에도 불구하고 오라클 데이터베이스와 같은 일부 DBMS에서는 이러한 SQL 표준 제한을 따르지 않고, 허용하고 있다.

구문[편집]

생성[편집]

뷰 생성 시에 다음과 같이 SQL 문을 작성한다. 기존에 있던 테이블에 있는 컬럼에서 원하는 자료만 조회하는 것이기 때문에, 만들 때도 SELECT 문을 통해 생성한다.

CREATE VIEW 뷰이름 AS SELECT 구문;

삭제[편집]

뷰 자체를 삭제하는 것은 다음과 같이 DROP SQL 문을 작성한다.

DROP VIEW 뷰이름;

뷰를 만드는 사람은 뷰를 읽기전용(read-only)과 업데이트 가능(updatable) 상태로 정의할 수 있다. 만약 데이터베이스가 뷰의 스키마에서 내장된 기본 테이블의 스키마로 역 매핑을 결정할 수 있다면, 뷰는 업데이트 가능하다. INSERT, UPDATE, DELETE 동작은 업데이트 가능 뷰에서 실행될 수 있다. 원 테이블에 변경을 매핑하지 않기 때문에 읽기전용에서는 그러한 동작을 지원하지 않는다. 뷰 업데이트는 키 보존에 의해 실행된다.

일부 시스템은 뷰에서 INSTEAD OF 트리거를 지원한다. 이런 기술은 뷰에서 실행되는 Insert, update, delete의 위치에서 실행되는 다른 로직 정의를 가능하게 한다. 그리하여 데이터베이스 시스템은 뷰의 읽기전용에 기반한 데이터 수정 작업을 실행할 수 있다. 그러나 INSTEAD OF 트리거는 뷰 자체의 읽기전용이나 업데이트가능 속성을 변경하지는 못한다.

 

'일상' 카테고리의 다른 글

20240406  (0) 2024.04.06
20240405  (0) 2024.04.05
20240403  (0) 2024.04.03
20240402  (0) 2024.04.02
20240401  (0) 2024.04.01