2. SQL의 DDL, DML, DCL 정의, 주요 명령어 예제로 알아보기

2023. 4. 1. 22:47데이터베이스

728x90

데이터 정의어 DDL(Data Definition Language)

데이터 스키마를 정의하고 조작하는 데 사용되는 SQL의 하위 언어 중 하나입니다.

DDL은 데이터베이스 객체를 생성, 수정, 삭제하고, 객체에 대한 권한을 관리하는 등의 작업을 수행합니다.

 

DDL의 주용 명령어

1. CREAT :  데이터베이스 객체를 생성

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    major VARCHAR(50) NOT NULL,
    gpa FLOAT
);

 

위 코드는 "students"라는 테이블을 생성하는 명령어입니다. "id", "name", "major", "gpa"는 테이블의 열(column)이며, 각각 정수형, 문자열, 문자열, 부동소수점형 데이터를 저장합니다. "id"는 PRIMARY KEY로 지정되어 있으므로, 이 열은 각 행(row)을 유일하게 식별하는 역할을 합니다. "name"과 "major"는 NOT NULL 제약조건이 설정되어 있으므로, 이 열에는 NULL 값을 입력할 수 없습니다.

 

이와 같은 방식으로 DDL을 사용하면 데이터베이스 *스키마를 정의하고 관리할 수 있습니다.

 

CREAT말고 다양한 키워드가 있다 ALTER (속성 변경), DROP (객체 삭제), TRUNCATE (테이블 객체 데이터 삭제) 등등이 있지만, 다음에 더 자세히 다루겠습니다.

 

*스키마란 : 데이터베이스에서 데이터의 구조, 제약조건, 관계 등을 정의하는 구조화된 설계도입니다. 다시 말해, 데이터 베이스의 구조를 나타내는데, 데이터베이스가 가지고 있는 테이블, 필드, 인덱스 등의 정보를 정의합니다.


 

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

데이터베이스에서 데이터를 삽입, 수정, 삭제 및 검색하는 데 사용되는 SQL(Structured Query Language) 명령어의 하위 언어입니다. DML은 데이터를 조작하는 명령어로, 데이터베이스에서 가장 많이 사용되는 SQL 명령어 중 하나입니다.

 

DML의 주용 명령어

1. SELECT :  데이터베이스에서 데이터를 조회합니다.

2.  INSERT : 데이터를 삽입합니다.

3. UPDATE : 데이터를 수정합니다.

4. DELETE : 데이터를 삭제합니다. 

 

1. SELECT를 사용한 데이터 조회 예시

SELECT name, age FROM students WHERE major='Computer Science';

위 코드는 "studnets" 테이블에서 전공이 'Computer Science'인 학생들의 이름과 나이를 조회하는 명령어 입니다. "name"과 "age"는 조회할 열(column)이며, WHERE 키워드는 전공이 'Computer Science'인 데이터만 선택합니다. 

 

2. INSERT를 사용하여 테이블에 데이터를 삽입하는 예시입니다.

INSERT INTO students (name, age, major) VALUES ('John Smith', 22, 'Computer Science');

위 코드는 "students" 테이블에 새로운 데이터를 삽입하는 명령어입니다. "name", "age", "major"는 각각 열(column)을 나타내며, VALUES 절에는 삽입할 데이터가 들어갑니다.

 

 

3. UPDATE를 사용하여 데이터를 수정하는 예시

UPDATE students SET age=23 WHERE name='John Smith';

위 코드는 "students" 테이블에서 이름이 'John Smith'인 학생의 나이를 23으로 수정하는 명령어입니다. SET 절은 수정할 열(column)과 값을 지정하며, WHERE 절은 수정할 데이터를 선택합니다.

 

 

4. DELETE를 사용하여 데이터를 삭제하는 예시

DELETE FROM students WHERE age < 20;

위 코드는 "students" 테이블에서 나이가 20세 미만인 학생들의 데이터를 삭제하는 명령어입니다. FROM 절은 삭제할 테이블을 지정하며, WHERE 절은 삭제할 데이터를 선택합니다.

 

이와 같은 방식으로 DML을 사용하면 데이터베이스에서 데이터를 삽입, 수정, 삭제 및 검색할 수 있습니다.

 


 

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

DCL(Data Control Language)은 데이터베이스에서 데이터를 제어하는 데 사용되는 SQL(Structured Query Language) 명령어의 하위 언어 중 하나입니다. DCL은 데이터베이스에 접근하는 사용자들 간에 권한을 부여하고, 데이터의 무결성을 유지하기 위해 사용됩니다.

 

DCL의 주요 명령어에는 다음과 같은 것들이 있습니다.

 

1. GRANT : 데이터베이스 객체에 대한 권한을 부여합니다.

2. REVOKE : 데이터베이스 객체에 대한 권한을 회수합니다. 

 

1. GRANT를 통해 데이터베이스 사용자에게 권한을 부여하는 예시입니다. 

GRANT SELECT, INSERT ON students TO user1;

위 코드는 "students" 테이블에 대해 SELECT와 INSERT 권한을 가진 "user1" 사용자에게 권한을 부여하는 명령어입니다.

 

2. REBOKE를 통해 데이터베이스 사용자의 권한을 회수하는 예시입니다.

REVOKE INSERT ON students FROM user1;

위 코드는 "students" 테이블에 대한 INSERT 권한을 "user1" 사용자로부터 회수하는 명령어입니다.

 

이와 같은 방식으로 DCL을 사용하여 데이터베이스 객체에 대한 권한을 부여하고, 회수하여 데이터의 무결성을 유지할 수 있습니다.

 

 

 

728x90