SQL 명령어: DQL, DDL, DML, DCL 및 TCL (예제 포함)
⚡ 스마트 요약
SQL 명령어는 관계형 데이터베이스를 관리하는 다섯 가지 하위 언어로 분류됩니다. DDL은 구조를 정의하고, DML은 데이터를 변경하며, DCL은 접근 권한을 제어하고, TCL은 트랜잭션을 관리하며, DQL은 데이터를 검색합니다. 각 하위 언어는 고유한 명령문과 구문을 가지고 있습니다.

SQL이란 무엇입니까?
SQL 관계형 데이터베이스에서 데이터를 검색하고 관리하기 위해 설계된 데이터베이스 언어입니다.
SQL은 데이터베이스 관리를 위한 표준 언어입니다. 모든 RDBMS 시스템은 다음과 같습니다. MySQL, MS 액세스, OracleSybase, PostgreSQL, SQL Server는 모두 SQL을 표준 데이터베이스 언어로 사용합니다. SQL 프로그래밍 언어는 다양한 명령어를 사용하여 여러 가지 작업을 수행합니다. 이 글에서는 DCL, TCL, DQL, DDL, DML 명령어를 예제와 함께 살펴보겠습니다.
왜 SQL을 사용하는가?
SQL을 사용해야 하는 중요한 이유는 다음과 같습니다.
- 사용자가 데이터에 접근할 수 있도록 도와줍니다. RDBMS 시스템.
- 데이터를 설명하는 데 도움이 됩니다.
- 이를 통해 데이터베이스의 데이터를 정의하고 해당 특정 데이터를 조작할 수 있습니다.
- SQL 명령어를 이용하면 데이터베이스와 테이블을 생성하고 삭제할 수 있습니다.
- SQL을 사용하면 데이터베이스에서 함수를 사용하고 뷰와 저장 프로시저를 만들 수 있습니다.
- 테이블, 프로시저, 뷰에 대한 사용 권한을 설정할 수 있습니다.
SQL의 간략한 역사
다음은 주요 랜드마크입니다. SQL의 역사:
- 1970 - Edgar F. "Ted" Codd 박사가 데이터베이스의 관계형 모델을 설명했습니다.
- 1974년 – 구조화된 질의 언어(Structured Query Language, SQL)가 등장했으며, 원래 이름은 SEQUEL이었다. IBM.
- 1979 - Oracle 최초로 상용화된 SQL 기반 데이터베이스를 출시했습니다. IBMSystem R 연구 프로토타입.
- 1986년 – ANSI는 최초의 SQL 표준인 SQL-86을 발표했습니다.
- 1989년 – SQL-89가 표준의 첫 번째 개정판으로 발표되었습니다.
- 1992년 – SQL-92(SQL2)는 오늘날 대부분의 데이터베이스에서 여전히 참조되는 주요 기준선이 되었습니다.
- 1999년 – SQL:1999(SQL3)가 트리거, 재귀 쿼리, 객체 지향과 같은 기능을 탑재하고 출시되었습니다.
- 2003년 – SQL:2003에는 윈도우 함수, 시퀀스 생성기 및 XML 관련 기능이 추가되었습니다.
- 2006년 – SQL:2006은 XML 쿼리 언어(XQuery) 지원을 추가했습니다.
- 2008년 – SQL:2008에서는 TRUNCATE 문과 INSTEAD OF 트리거가 도입되었습니다.
- 2011년 – SQL:2011은 시간 데이터베이스에 대한 지원을 개선했습니다.
- 2016년 – SQL:2016 버전에서 JSON 지원 및 행 패턴 일치(MATCH_RECOGNIZE) 기능이 추가되었습니다.
- 2019년 – SQL/MDA(파트 15)에서 다차원 배열 지원이 표준에 추가되었습니다.
- 2023년 – SQL:2023에 네이티브 JSON 데이터 형식과 속성 그래프 쿼리(SQL/PGQ)가 추가되었습니다.
- 2024년 – SQL 이후 최초의 새로운 ISO 데이터베이스 언어인 GQL이 그래프 쿼리 보조 표준으로 발표되었습니다.
- 2026년 – SQL:2023은 현재 표준으로 유지되며, 차기 개정판은 ISO/IEC에서 개발 중입니다.
SQL 명령어의 종류
다음은 널리 사용되는 SQL 명령의 다섯 가지 유형입니다.
- 데이터 정의 언어(DDL)
- 데이터 조작 언어(DML)
- 데이터 제어 언어(DCL)
- 트랜잭션 제어 언어(TCL)
- 데이터 쿼리 언어(DQL)

아래 표는 각 범주를 자세히 살펴보기 전에 다섯 가지 범주를 요약한 것입니다.
| 카테고리 | 목적 | 주요 명령어 |
|---|---|---|
| DDL | 구조를 정의하세요 | 생성, 삭제, 변경, 잘라내기 |
| DML | 데이터 수정 | 삽입, 업데이트, 삭제 |
| DCL | 액세스 제어 | 허가, 취소 |
| TCL | 거래 관리 | 커밋, 롤백, 세이브포인트 |
| DQL | 데이터 검색 | SELECT |
DDL이란 무엇입니까?
데이터 정의 언어(DDL)는 데이터베이스 구조 또는 스키마를 정의하는 데 도움이 됩니다. DDL 명령어와 구문에 대해 알아보겠습니다. SQL의 주요 DDL 명령어는 CREATE, DROP, ALTER, TRUNCATE입니다.
몹시 떠들어 대다
CREATE 문은 데이터베이스 구조 또는 스키마를 정의하는 데 사용됩니다.
구문 :
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);
예 :
Create database university; Create table students; Create view for_students;
DROP
DROP 명령어는 RDBMS에서 테이블과 데이터베이스를 제거합니다.
구문 :
DROP TABLE ;
예 :
Drop object_type object_name; Drop database university; Drop table student;
바꾸다
ALTER 명령어를 사용하면 데이터베이스 구조를 변경할 수 있습니다.
구문 : 표에 새 열을 추가하려면:
ALTER TABLE table_name ADD column_name COLUMN-definition;
테이블의 기존 열을 수정하려면 다음 안내를 따르세요.
ALTER TABLE MODIFY(COLUMN DEFINITION....);
예 :
Alter table guru99 add subject varchar;
자르기
이 명령은 테이블에서 모든 행을 삭제하고 테이블이 포함된 공간을 해제하는 데 사용됩니다.
구문 :
TRUNCATE TABLE table_name;
예:
TRUNCATE table students;
데이터 조작 언어란 무엇입니까?
데이터 조작 언어(DML)를 사용하면 데이터베이스 인스턴스에 데이터를 삽입, 수정 및 삭제하여 데이터베이스를 수정할 수 있습니다. DML은 데이터베이스에서 모든 유형의 데이터 수정 작업을 수행하는 역할을 합니다. SQL에서 중요한 DML 명령어는 다음과 같습니다.
- INSERT
- UPDATE
- 삭제
INSERT
이 문장은 테이블의 행에 데이터를 삽입하는 데 사용됩니다.
구문 :
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
예 :
INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');
UPDATE
이 명령은 테이블의 열 값을 업데이트하거나 수정하는 데 사용됩니다.
구문 :
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
예 :
UPDATE students SET FirstName = 'Jhon', LastName= 'Wick' WHERE StudID = 3;
삭제
이 명령은 테이블에서 하나 이상의 행을 제거하는 데 사용됩니다.
구문 :
DELETE FROM table_name [WHERE condition];
예 :
DELETE FROM students WHERE FirstName = 'Jhon';
DCL이란 무엇입니까?
DCL(데이터 제어 언어)에는 권한 부여 및 사용 권한 조정을 위한 GRANT 및 REVOKE와 같은 명령어가 포함되어 있습니다. 다른 명령어들은 데이터베이스 시스템의 매개변수를 제어합니다.
부여
이 명령어는 사용자에게 데이터베이스 접근 권한을 부여하는 데 사용됩니다.
구문 :
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;
예 :
GRANT SELECT ON Users TO'Tom'@'localhost;
Rev좋아
이 명령어는 사용자로부터 권한을 되찾는 데 유용합니다.
구문 :
REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}
예 :
REVOKE SELECT, UPDATE ON student FROM BCA, MCA;
TCL이란 무엇입니까?
트랜잭션 제어 언어(TCL) 명령어는 데이터베이스 내의 트랜잭션을 처리합니다. 이 명령어들은 아래에 설명된 상태들과 직접적으로 상호 작용합니다. 거래 관리.
커밋
이 명령은 모든 트랜잭션을 데이터베이스에 저장하는 데 사용됩니다.
구문 :
Commit;
예 :
DELETE FROM Students WHERE RollNo =25; COMMIT;
되돌리기
롤백 명령을 사용하면 데이터베이스에 아직 저장되지 않은 트랜잭션을 되돌릴 수 있습니다.
구문 :
ROLLBACK;
예:
DELETE FROM Students WHERE RollNo =25;
세이브포인트
이 명령어를 사용하면 거래 내에 저장 지점을 설정할 수 있습니다.
구문 :
SAVEPOINT SAVEPOINT_NAME;
예:
SAVEPOINT RollNo;
DQL이란 무엇입니까?
데이터 쿼리 언어(DQL)는 데이터베이스에서 데이터를 가져오는 데 사용됩니다. DQL은 SELECT라는 단 하나의 명령어만 사용합니다.
SELECT
이 명령은 WHERE 절에 설명된 조건에 따라 속성을 선택하는 데 도움이 됩니다.
구문 :
SELECT expressions FROM TABLES WHERE conditions;
예 :
SELECT FirstName FROM Student WHERE RollNo > 15;
삭제 vs 잘라내기 vs 드롭
이 세 가지 명령어는 모두 데이터를 삭제하지만, 삭제하는 데이터와 작업을 되돌릴 수 있는지 여부가 다릅니다. 초보자들이 흔히 저지르는 실수 중 하나가 이들을 혼동하는 것입니다.
| 아래 | 삭제 | 자르기 | DROP |
|---|---|---|---|
| 카테고리 | DML | DDL | DDL |
| 제거 | 선택된 행 | 모든 행 | 테이블 전체 |
| WHERE 절 | 허용 | 허용되지 않음 | 적용 할 수 없음 |
| 되돌리기 | 가능한 | 일반적으로 | 불가능 |
| 구조가 유지됨 | 가능 | 가능 | 아니 |
요약하자면, 특정 행을 삭제할 때는 DELETE를 사용하고, 테이블을 빠르게 비울 때는 TRUNCATE를 사용하며, 테이블 전체를 삭제할 때는 DROP을 사용합니다.
