제퍼넷 로고

SQL 명령(DDL, DML, DCL, TCL, DQL): 유형, 구문 및 예

시간

차례

살펴보기

SQL은 다음을 의미합니다. 구조화 된 쿼리 언어는 관계형 데이터베이스를 관리하고 조작하는 데 사용되는 강력한 언어입니다. 이 포괄적인 가이드에서는 SQL 명령, 해당 유형, 구문 및 실제 예제를 자세히 살펴보고 데이터베이스와 효과적으로 상호 작용하는 데 필요한 지식을 제공합니다.

SQL이란 무엇입니까?

SQL(Structured Query Language)은 관계형 데이터베이스를 관리하고 쿼리하기 위해 설계된 도메인별 언어입니다. 데이터베이스와 상호 작용하는 표준화된 방법을 제공하므로 데이터 작업을 하는 모든 사람에게 필수적인 도구입니다.

SQL 명령은 데이터베이스 관리 시스템(DBMS)과 통신하기 위한 기본 구성 요소입니다. 이러한 명령은 테이블 생성, 데이터 삽입, 정보 쿼리, 액세스 및 보안 제어 등 데이터베이스에 대한 다양한 작업을 수행하는 데 사용됩니다. SQL 명령은 다양한 유형으로 분류될 수 있으며 각 유형은 데이터베이스 관리 프로세스에서 특정 목적을 수행합니다.

SQL 명령 분류

SQL 명령은 다섯 가지 기본 유형으로 분류할 수 있으며, 각 유형은 데이터베이스 관리에서 고유한 목적을 수행합니다. 효율적이고 효과적인 데이터베이스 운영을 위해서는 이러한 범주를 이해하는 것이 필수적입니다. SQL 명령은 다섯 가지 주요 유형으로 분류할 수 있습니다.

DDL(데이터 정의 언어) 명령

DDL이란 무엇입니까?

DDL(데이터 정의 언어)은 데이터베이스 개체의 구조를 정의하고 관리하는 데 사용되는 SQL의 하위 집합입니다. DDL 명령은 일반적으로 데이터베이스 스키마를 설정하기 위해 한 번 실행됩니다.

DDL 명령은 테이블, 인덱스, 제약 조건과 같은 데이터베이스 개체의 구조를 정의, 수정 및 관리하는 데 사용됩니다. 몇 가지 일반적인 DDL 명령은 다음과 같습니다.

  • CREATE TABLE: 새로운 테이블을 생성하는데 사용됩니다.
  • ALTER TABLE: 기존 테이블의 구조를 수정하는 데 사용됩니다.
  • DROP TABLE: 테이블을 삭제하는 데 사용됩니다.
  • CREATE INDEX: 테이블에 인덱스를 생성하여 쿼리 성능을 향상시키는 데 사용됩니다.

DDL 명령은 데이터베이스 스키마를 정의하는 데 중요한 역할을 합니다.

DML(데이터 조작 언어) 명령 SQL에서

DML 명령은 데이터베이스의 데이터를 검색, 삽입, 업데이트 및 삭제하는 데 사용됩니다. 일반적인 DML 명령은 다음과 같습니다.

  • SELECT: 하나 이상의 테이블에서 데이터를 검색하는 데 사용됩니다.
  • INSERT: 테이블에 새 레코드를 추가하는 데 사용됩니다.
  • 업데이트: 테이블의 기존 레코드를 수정하는 데 사용됩니다.
  • DELETE: 테이블에서 레코드를 제거하는 데 사용됩니다.

DML 명령은 데이터베이스에 저장된 데이터를 관리하는 데 필수적입니다.

데이터 제어 언어(DCL) 명령 SQL에서

DCL 명령은 데이터베이스 보안 및 액세스 제어를 관리하는 데 사용됩니다. 두 가지 기본 DCL 명령은 다음과 같습니다.

  • GRANT: 데이터베이스 사용자나 역할에 특정 권한을 부여하는 데 사용됩니다.
  • REVOKE: 이전에 부여한 권한을 취소하는 데 사용됩니다.

DCL 명령은 권한이 있는 사용자만 데이터베이스에 액세스하고 수정할 수 있도록 합니다.

TCL(트랜잭션 제어 언어) 명령 SQL에서

TCL 명령은 데이터베이스 트랜잭션을 관리하여 데이터 무결성을 보장하는 데 사용됩니다. 주요 TCL 명령은 다음과 같습니다.

  • COMMIT: 트랜잭션을 커밋하여 변경 사항을 영구적으로 저장합니다.
  • ROLLBACK: 트랜잭션 중에 변경된 내용을 취소합니다.
  • SAVEPOINT: 나중에 롤백할 수 있는 트랜잭션 내 지점을 설정합니다.

TCL 명령은 데이터베이스에서 데이터의 일관성을 유지하는 데 필수적입니다.

SQL의 DQL(데이터 쿼리 언어) 명령

DQL 명령은 데이터베이스에서 데이터를 검색하는 데만 중점을 둡니다. 동안 SELECT 문은 가장 눈에 띄는 DQL 명령으로, 특정 기준에 따라 하나 이상의 테이블에서 데이터를 추출하고 표시하는 데 중요한 역할을 합니다. DQL 명령을 사용하면 저장된 데이터에서 귀중한 통찰력을 얻을 수 있습니다.

SQL 명령은 각각 데이터베이스 관리의 특정 측면에 맞게 조정된 다양한 범주 집합을 포함합니다. 데이터베이스 구조 정의(DDL), 데이터 조작(DML), 액세스 제어(DCL), 트랜잭션 관리(TCL), 정보 쿼리(DQL) 등 무엇을 하든 SQL은 관계형 데이터베이스와 효과적으로 상호 작용하는 데 필요한 도구를 제공합니다. 이러한 범주를 이해하면 당면한 작업에 적합한 SQL 명령을 선택할 수 있어 더욱 능숙한 데이터베이스 전문가가 될 수 있습니다.

DDL, DML, DCL, TCL 및 DQL 명령 구별

SQL 명령의 각 범주는 특정 용도로 사용됩니다.

  • DDL 명령은 데이터베이스 구조를 정의하고 관리합니다.
  • DML 명령은 데이터베이스 내의 데이터를 조작합니다.
  • DCL 명령은 액세스와 보안을 제어합니다.
  • TCL 명령은 트랜잭션과 데이터 무결성을 관리합니다.
  • DQL 명령은 데이터베이스에서 데이터를 검색하는 데만 사용됩니다.

일반적인 DDL 명령

테이블 만들기

CREATE TABLE 명령은 데이터베이스에 새 테이블을 정의하는 데 사용됩니다. 예는 다음과 같습니다.

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    ...
);

이 명령은 직원 ID, 이름, 성 등에 대한 열이 있는 "Employees"라는 테이블을 정의합니다.

ALTER TABLE

ALTER TABLE 명령을 사용하면 기존 테이블을 수정할 수 있습니다. 예를 들어, 새 열을 추가하거나 기존 열의 데이터 유형을 수정할 수 있습니다.

ALTER TABLE Employees
ADD Email VARCHAR(100);

그러면 "Employees" 테이블에 "Email" 열이 추가됩니다.

드롭 테이블

DROP TABLE 명령은 데이터베이스에서 테이블을 제거합니다.

DROP TABLE Employees;

이렇게 하면 "Employees" 테이블과 해당 데이터가 모두 삭제됩니다.

인덱스 생성

CREATE INDEX 명령은 테이블의 하나 이상의 열에 인덱스를 생성하여 쿼리 성능을 향상시키는 데 사용됩니다.

CREATE INDEX idx_LastName ON Employees(LastName);

그러면 "Employees" 테이블의 "LastName" 열에 인덱스가 생성됩니다.

예제가 포함된 SQL의 DDL 명령

다음은 DDL 명령에 대한 코드 조각과 해당 출력입니다.

SQL 명령 코드 스 니펫 산출
테이블 만들기 CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), Department VARCHAR(50) ); 지정된 열을 사용하여 새 "직원" 테이블이 생성되었습니다.
ALTER TABLE ALTER TABLE Employees ADD Email VARCHAR(100); "직원" 테이블에 "이메일" 열이 추가되었습니다.
드롭 테이블 DROP TABLE Employees; "직원" 테이블 및 해당 데이터가 삭제되었습니다.
이러한 예에서는 데이터베이스 개체를 생성, 수정 및 삭제하는 DDL 명령의 사용법을 보여줍니다.

DML(데이터 조작 언어) 명령 SQL에서

DML이란 무엇입니까?

DML(Data Manipulation Language)은 데이터베이스에서 데이터를 검색, 삽입, 업데이트 및 삭제하는 데 사용되는 SQL의 하위 집합입니다. DML 명령은 테이블에 저장된 데이터 작업을 위한 기본입니다.

일반적인 DML 명령 SQL에서

SELECT

SELECT 문은 지정된 기준에 따라 하나 이상의 테이블에서 데이터를 검색합니다.

SELECT FirstName, LastName FROM Employees WHERE Department = 'Sales';

이 쿼리는 "영업" 부서 직원의 이름과 성을 선택합니다.

INSERT

INSERT 문은 테이블에 새 레코드를 추가합니다.

INSERT INTO Employees (FirstName, LastName, Department) VALUES ('John', 'Doe', 'HR');

그러면 "Employees" 테이블에 새 직원 레코드가 삽입됩니다.

UPDATE

UPDATE 문은 테이블의 기존 레코드를 수정합니다.

UPDATE 직원 SET 급여 = 급여 * 1.1 WHERE 부서 = '엔지니어링';

이는 "엔지니어링" 부서 직원의 급여를 10% 인상합니다.

삭제

DELETE 문은 테이블에서 레코드를 제거합니다.

DELETE FROM Employees WHERE Department = 'Finance';

이렇게 하면 "재무" 부서의 직원이 삭제됩니다.

예제가 포함된 SQL의 DML 명령

다음은 DML 명령에 대한 코드 조각과 해당 출력입니다.

SQL 명령 코드 스 니펫 산출
SELECT SELECT FirstName, LastName FROM Employees WHERE Department = 'Sales'; "영업" 부서 직원의 이름과 성을 검색합니다.
INSERT INSERT INTO Employees (FirstName, LastName, Department) VALUES ('John', 'Doe', 'HR'); "Employees" 테이블에 새 직원 레코드가 추가되었습니다.
UPDATE UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Engineering'; "엔지니어링" 부서 직원의 급여가 10% 인상되었습니다.
삭제 DELETE FROM Employees WHERE Department = 'Finance'; "재무" 부서의 직원이 삭제되었습니다.
이 예에서는 DML 명령을 사용하여 데이터베이스 내의 데이터를 조작하는 방법을 보여줍니다.

데이터 제어 언어(DCL) 명령 SQL에서

DCL이란 무엇입니까?

DCL(Data Control Language)은 데이터베이스 보안 및 액세스 제어를 관리하는 데 사용되는 SQL의 하위 집합입니다. DCL 명령은 데이터베이스에 액세스할 수 있는 사용자와 수행할 수 있는 작업을 결정합니다.

일반 DCL 명령

GRANT

GRANT 명령은 데이터베이스 사용자 또는 역할에 특정 권한을 부여하는 데 사용됩니다.

GRANT SELECT, INSERT ON Employees TO HR_Manager;

이는 "HR_Manager" 역할에 "Employees" 테이블에 데이터를 선택하고 삽입할 수 있는 권한을 부여합니다.

취소

REVOKE 명령은 이전에 부여된 권한을 취소하는 데 사용됩니다.

REVOKE DELETE ON Customers FROM Sales_Team;

이렇게 하면 "Sales_Team" 역할에서 "Customers" 테이블의 데이터를 삭제할 수 있는 권한이 취소됩니다.

예제가 포함된 SQL의 DCL 명령

다음은 DCL 명령에 대한 코드 조각과 해당 실제 값 출력입니다.

SQL 명령 코드 스 니펫 출력(실제값 예)
GRANT GRANT SELECT, INSERT ON Employees TO HR_Manager; "HR_Manager" 역할에는 "Employees" 테이블에서 데이터를 선택하고 삽입할 수 있는 권한이 부여됩니다.
취소 REVOKE DELETE ON Customers FROM Sales_Team; "Sales_Team" 역할에서 취소된 "Customers" 테이블의 데이터를 삭제할 수 있는 권한입니다.
다음 예에서는 DCL 명령을 사용하여 데이터베이스의 액세스 및 보안을 제어하는 ​​방법을 보여줍니다.

SQL의 TCL(트랜잭션 제어 언어) 명령

TCL이란 무엇입니까?

TCL(트랜잭션 제어 언어)은 데이터베이스 트랜잭션을 관리하는 데 사용되는 SQL의 하위 집합입니다. TCL 명령은 데이터베이스 변경 사항이 영구적으로 저장되거나 롤백되는 시기를 제어할 수 있도록 하여 데이터 무결성을 보장합니다.

SQL의 일반적인 TCL 명령

COMMIT

COMMIT 명령은 트랜잭션 중에 변경된 내용을 데이터베이스에 영구적으로 저장하는 데 사용됩니다.

BEGIN;
-- SQL statements
COMMIT;

이 예에서는 트랜잭션을 시작하고 SQL 문을 수행한 다음 변경 사항을 데이터베이스에 커밋합니다.

롤백

ROLLBACK 명령은 트랜잭션 중에 변경된 내용을 취소하는 데 사용됩니다.

BEGIN;
-- SQL statements
ROLLBACK;

이 예에서는 트랜잭션을 시작하고 SQL 문을 수행한 다음 변경 사항을 롤백하여 데이터베이스를 이전 상태로 복원합니다.

세이브포인트

SAVEPOINT 명령을 사용하면 나중에 롤백할 수 있는 트랜잭션 내 지점을 설정할 수 있습니다.

BEGIN;
-- SQL statements
SAVEPOINT my_savepoint;
-- More SQL statements
ROLLBACK TO my_savepoint;

이 예에서는 저장점을 생성한 후 나중에 해당 지점으로 롤백하여 일부 트랜잭션 변경 사항을 실행 취소합니다.

예제가 포함된 SQL의 TCL 명령

다음은 TCL 명령에 대한 코드 조각과 해당 출력입니다.

SQL 명령 코드 스 니펫 산출
COMMIT BEGIN; -- SQL statements COMMIT; 거래에서 변경된 내용은 영구적으로 저장됩니다.
롤백 BEGIN; -- SQL statements ROLLBACK; 트랜잭션의 변경 사항이 롤백되었습니다.
세이브포인트 BEGIN; -- SQL statements SAVEPOINT my_savepoint; -- More SQL statements ROLLBACK TO my_savepoint; 저장점이 생성되어 나중에 트랜잭션의 특정 지점으로 롤백하는 데 사용됩니다.
이 예에서는 각 유형의 SQL 명령에 대한 코드 조각과 해당 실제 값 출력을 표 형식으로 제공합니다.

SQL의 DQL(데이터 쿼리 언어) 명령

DQL이란 무엇입니까?

DQL(데이터 쿼리 언어)은 주로 데이터베이스에서 데이터를 쿼리하고 검색하는 데 사용되는 SQL(구조적 쿼리 언어)의 중요한 하위 집합입니다. SQL에는 데이터 조작을 위한 다양한 명령이 포함되어 있지만 DQL 명령은 데이터 검색에만 중점을 둡니다.

DQL(데이터 쿼리 언어)은 SQL의 기초를 형성하며 관계형 데이터베이스에서 데이터를 검색하고 분석하는 데 필수적입니다. DQL 명령과 개념을 확실하게 이해하면 귀중한 통찰력을 얻고 정보에 입각한 의사 결정을 내리는 보고서를 생성할 수 있습니다. 데이터베이스 관리자, 데이터 분석가, 소프트웨어 개발자 등 DQL을 마스터하는 것은 데이터베이스를 효과적으로 사용하는 데 필수적입니다.

DQL의 목적

DQL의 주요 목적은 사용자가 데이터베이스에서 의미 있는 정보를 추출할 수 있도록 하는 것입니다. 특정 기록을 검색하거나, 특정 조건에 따라 데이터를 필터링하거나, 결과를 집계하고 정렬해야 하는 경우 DQL은 이를 효율적으로 수행할 수 있는 도구를 제공합니다. DQL은 다음을 포함한 다양한 데이터베이스 관련 작업에서 중요한 역할을 합니다.

  • 보고서 생성
  • 통계정보 추출
  • 사용자에게 데이터 표시
  • 복잡한 비즈니스 쿼리에 응답

SQL의 일반적인 DQL 명령

SELECT 문

XNUMXD덴탈의 SELECT 성명서는 DQL의 초석입니다. 이를 통해 데이터베이스에 있는 하나 이상의 테이블에서 데이터를 검색할 수 있습니다. 기본 구문은 다음과 같습니다. SELECT 성명서:

SELECT column1, column2, ...FROM table_nameWHERE condition;
  • column1, column2, …: 테이블에서 검색하려는 열입니다.
  • table_name: 데이터를 검색하려는 테이블의 이름입니다.
  • condition (선택 사항): 검색할 행을 지정하는 조건입니다. 생략하면 모든 행이 검색됩니다.
예: 특정 열 검색
SELECT FirstName, LastNameFROM Employees;

이 쿼리는 "Employees" 테이블에서 모든 직원의 성과 이름을 검색합니다.

예: 조건을 사용하여 데이터 필터링
SELECT ProductName, UnitPriceFROM ProductsWHERE UnitPrice > 50;

이 쿼리는 "제품" 테이블에서 단가가 50보다 큰 제품의 이름과 단가를 검색합니다.

고유 키워드

XNUMXD덴탈의 DISTINCT 키워드는 다음과 함께 사용됩니다. SELECT 결과 집합에서 중복 행을 제거하는 문입니다. 고유한 값만 반환되도록 보장합니다.

예: DISTINCT 사용
SELECT DISTINCT CountryFROM Customers;

이 쿼리는 "고객" 테이블에서 고유한 국가 목록을 검색하여 중복된 항목을 제거합니다.

ORDER BY 절

XNUMXD덴탈의 ORDER BY 절은 하나 이상의 열을 기준으로 결과 집합을 오름차순 또는 내림차순으로 정렬하는 데 사용됩니다.

예: 결과 정렬
SELECT ProductName, UnitPriceFROM ProductsORDER BY UnitPrice DESC;

이 쿼리는 "제품" 테이블에서 제품 이름과 단가를 검색하여 단가 내림차순으로 정렬합니다.

집계 함수

DQL은 행 그룹에 대해 계산을 수행하고 단일 값을 반환할 수 있는 다양한 집계 함수를 지원합니다. 일반적인 집계 함수에는 다음이 포함됩니다. COUNT, SUM, AVG, MINMAX.

예: 집계 함수 사용
SELECT AVG(UnitPrice) AS AveragePriceFROM Products;

이 쿼리는 '제품' 테이블에 있는 제품의 평균 단가를 계산합니다.

조인 작업

DQL을 사용하면 다음을 사용하여 여러 테이블의 데이터를 결합할 수 있습니다. JOIN 작업. INNER JOIN, LEFT JOIN, RIGHT JOINFULL OUTER JOIN 일반적인 조인 유형입니다.

예: INNER JOIN 사용
SELECT Orders.OrderID, Customers.CustomerNameFROM OrdersINNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

이 쿼리는 "CustomerID" 열을 기반으로 "Orders" 및 "Customers" 테이블을 조인하여 주문 ID와 고객 이름을 검색합니다.

GROUP BY를 사용하여 데이터 그룹화

XNUMXD덴탈의 GROUP BY 절을 사용하면 하나 이상의 열에서 공통 값을 공유하는 행을 그룹화할 수 있습니다. 그런 다음 각 그룹에 집계 함수를 적용할 수 있습니다.

예: 데이터 그룹화 및 집계
SELECT Country, COUNT(*) AS CustomerCountFROM CustomersGROUP BY Country;

이 쿼리는 고객을 국가별로 그룹화하고 각 국가의 고객 수를 계산합니다.

SQL의 고급 DQL 개념

하위 쿼리

중첩 쿼리라고도 하는 하위 쿼리는 다른 쿼리 내에 포함된 쿼리입니다. 기본 쿼리에 사용될 값을 검색하는 데 사용할 수 있습니다.

예: 하위 쿼리 사용
SELECT ProductNameFROM ProductsWHERE CategoryID IN (SELECT CategoryID FROM Categories WHERE CategoryName = 'Beverages');

이 쿼리는 하위 쿼리를 사용하여 카테고리 ID를 찾는 "음료" 카테고리의 제품 이름을 검색합니다.

조회수

뷰는 SQL에서 쿼리를 정의하여 생성된 가상 테이블입니다. 이를 통해 복잡한 쿼리를 단순화하고 사용자에게 일관된 인터페이스를 제공할 수 있습니다.

예: 뷰 생성
CREATE VIEW ExpensiveProducts ASSELECT ProductName, UnitPriceFROM ProductsWHERE UnitPrice > 100;

이 쿼리는 단가가 100보다 큰 제품의 단가와 제품 이름을 포함하는 "ExpensiveProducts"라는 뷰를 생성합니다.

창 기능

창 함수는 결과 집합 내의 현재 행과 관련된 행 집합에 대해 계산을 수행하는 데 사용됩니다. 누적 합계 계산 및 행 순위 지정과 같은 작업에 자주 사용됩니다.

예: 창 함수 사용
SELECT OrderID, ProductID, UnitPrice, SUM(UnitPrice) OVER (PARTITION BY OrderID) AS TotalPricePerOrderFROM OrderDetails;

이 쿼리는 데이터를 주문별로 분할하는 창 함수를 사용하여 주문당 총 가격을 계산합니다.

기본 SQL 쿼리

기본 SQL 쿼리 소개

기본 SQL 쿼리는 데이터베이스에서 데이터를 검색하고 표시하는 데 필수적입니다. 이는 많은 복잡한 데이터베이스 작업의 기초를 형성합니다.

기본 SQL 쿼리의 예

SELECT 문

SELECT 문은 하나 이상의 테이블에서 데이터를 검색하는 데 사용됩니다. 간단한 예는 다음과 같습니다.

SELECT * FROM Customers;

이 쿼리는 "Customers" 테이블에서 모든 열을 검색합니다.

WHERE로 데이터 필터링

다음을 사용하여 데이터를 필터링할 수 있습니다. WHERE 절.

SELECT * FROM Employees WHERE Department = 'Sales';

이 쿼리는 "Employees" 테이블에서 "Sales" 부서에서 근무하는 모든 직원을 검색합니다.

ORDER BY로 데이터 정렬

XNUMXD덴탈의 ORDER BY 절은 결과 세트를 정렬하는 데 사용됩니다.

SELECT * FROM Products ORDER BY Price DESC;

이 쿼리는 "제품" 테이블에서 모든 제품을 검색하고 가격이 내림차순으로 정렬됩니다.

GROUP BY로 데이터 집계

다음을 사용하여 데이터를 집계할 수 있습니다. GROUP BY 절.

SELECT Department, AVG(Salary) AS AvgSalary FROM Employees GROUP BY Department;

이 쿼리는 "Employees" 테이블에 있는 각 부서의 평균 급여를 계산합니다.

AND/OR로 조건 결합

다음을 사용하여 조건을 결합할 수 있습니다. ANDOR.

SELECT * FROM Orders WHERE (CustomerID = 1 AND OrderDate >= '2023-01-01') OR TotalAmount > 1000;

이 쿼리는 고객 ID가 1이고 주문 날짜가 1년 2023월 1000일 이후이거나 총액이 XNUMX보다 큰 주문을 검색합니다.

LIMIT를 사용하여 결과 제한

XNUMXD덴탈의 LIMIT 절은 반환되는 행 수를 제한하는 데 사용됩니다.

SELECT * FROM Products LIMIT 10;

이 쿼리는 '제품' 테이블에서 처음 10개 행을 검색합니다.

JOIN을 사용하여 테이블 결합

다음을 사용하여 여러 테이블의 데이터를 결합할 수 있습니다. JOIN.

SELECT Customers.CustomerName, Orders.OrderDate FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

이 쿼리는 CustomerID의 "Customers" 및 "Orders" 테이블을 조인하여 주문한 고객의 고객 이름과 주문 날짜를 검색합니다.

기본 SQL 쿼리의 이러한 예는 관계형 데이터베이스 작업 시 일반적인 시나리오를 다룹니다. SQL 쿼리는 데이터베이스 애플리케이션의 특정 요구 사항에 맞게 사용자 정의하고 확장할 수 있습니다.

SQL 치트 시트

SQL 치트 시트는 필수 SQL 명령, 구문 및 사용법에 대한 빠른 참조를 제공합니다. 초보자와 숙련된 SQL 사용자 모두에게 편리한 도구입니다. SQL 개발자와 데이터베이스 관리자가 SQL 구문과 예제에 빠르게 액세스할 수 있는 편리한 도구가 될 수 있습니다.

다음은 일반적인 SQL 명령과 해당 설명이 포함된 전체 SQL 치트 시트입니다.

SQL 명령 상품 설명
SELECT 테이블에서 데이터를 검색합니다. SELECT FirstName, LastName FROM Employees;
WHERE로 필터링 지정된 조건에 따라 행을 필터링합니다. SELECT ProductName, Price FROM Products WHERE Price > 50;
ORDER BY로 정렬 결과 집합을 오름차순(ASC) 또는 내림차순(DESC)으로 정렬합니다. SELECT ProductName, Price FROM Products ORDER BY Price DESC;
GROUP BY를 사용한 집계 동일한 값을 가진 행을 요약 행으로 그룹화하고 집계 함수를 적용합니다. SELECT Department, AVG(Salary) AS AvgSalary FROM Employees GROUP BY Department;
결합 조건 다음을 사용하여 조건을 결합합니다. ANDOR 연산자. SELECT * FROM Orders WHERE (CustomerID = 1 AND OrderDate >= '2023-01-01') OR TotalAmount > 1000;
제한적인 결과 반환되는 행 수를 제한합니다. LIMIT 행을 건너뜁니다. OFFSET. SELECT * FROM Products LIMIT 10 OFFSET 20;
JOIN을 사용하여 테이블 조인 다음을 사용하여 여러 테이블의 데이터를 결합합니다. JOIN. SELECT Customers.CustomerName, Orders.OrderDate FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
삽입 테이블에 새 레코드를 삽입합니다. INSERT INTO Employees (FirstName, LastName, Department) VALUES ('John', 'Doe', 'HR');
UPDATE 테이블의 기존 레코드를 수정합니다. UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Engineering';
삭제 테이블에서 레코드를 제거합니다. DELETE FROM Employees WHERE Department = 'Finance';
GRANT 사용자 또는 역할에 권한을 부여합니다. GRANT SELECT, INSERT ON Employees TO HR_Manager;
취소 이전에 부여된 권한을 취소합니다. REVOKE DELETE ON Customers FROM Sales_Team;
시작, 커밋, 롤백 거래를 관리합니다: BEGIN 시작, COMMIT 변경 사항을 영구적으로 저장하고 ROLLBACK 변경 사항을 취소하고 롤백합니다. BEGIN; -- SQL statements COMMIT;
이 SQL 치트 시트는 데이터베이스 관리에 일반적으로 사용되는 다양한 SQL 명령 및 개념에 대한 빠른 참조를 제공합니다.

SQL 언어 유형 및 하위 집합

SQL 언어 유형 및 하위 집합 탐색

SQL(Structured Query Language)은 관계형 데이터베이스를 관리하는 데 사용되는 다목적 언어입니다. 시간이 지남에 따라 다양한 데이터베이스 관리 시스템(DBMS)이 SQL에 변형과 확장을 도입하여 다양한 SQL 언어 유형과 하위 집합이 탄생했습니다. 이러한 차이점을 이해하면 특정 데이터베이스 시스템이나 사용 사례에 적합한 SQL 변형을 선택하는 데 도움이 될 수 있습니다.

SQL 언어 유형

1. 표준 SQL(ANSI SQL)

표준 SQL, 종종 ANSI SQL는 SQL의 핵심이자 가장 널리 사용되는 버전을 나타냅니다. 이는 모든 관계형 데이터베이스에 공통적인 표준 구문, 데이터 유형 및 핵심 기능을 정의합니다. 표준 SQL은 한 데이터베이스 시스템용으로 작성된 SQL 코드를 다른 데이터베이스 시스템에서 사용할 수 있도록 보장하므로 이식성에 필수적입니다.

표준 SQL(ANSI SQL)의 주요 특징은 다음과 같습니다.

  • 다음과 같은 일반적인 SQL 문 SELECT, INSERT, UPDATEDELETE.
  • 다음과 같은 표준 데이터 유형 INTEGER, VARCHARDATE.
  • 다음과 같은 표준화된 집계 함수 SUM, AVGCOUNT.
  • 여러 테이블의 데이터를 결합하는 기본 JOIN 작업입니다.

2. Transact-SQL(T-SQL)

Transact-SQL(T-SQL) Microsoft SQL Server DBMS와 함께 사용하기 위해 Microsoft에서 개발한 SQL의 확장입니다. 여기에는 ANSI SQL 표준 이상의 추가 기능이 포함되어 있습니다. T-SQL은 SQL Server 환경 내에서 응용 프로그램 및 저장 프로시저를 개발하는 데 특히 강력합니다.

T-SQL의 고유한 기능은 다음과 같습니다.

  • 향상된 오류 처리 TRY...CATCH 블록.
  • 루프 및 조건문과 같은 절차적 프로그래밍 구성을 지원합니다.
  • 사용자 정의 함수 및 저장 프로시저.
  • 다음과 같은 SQL Server 관련 기능 GETDATE()TOP.

3. PL/SQL(절차적 언어/SQL)

PL / SQL는 Oracle Corporation에서 개발한 SQL의 절차적 확장입니다. 주로 Oracle Database와 함께 사용됩니다. PL/SQL을 사용하면 개발자는 저장 프로시저, 함수 및 트리거를 작성할 수 있으므로 Oracle 환경 내에서 복잡한 애플리케이션을 구축하기 위한 강력한 선택이 됩니다.

PL/SQL의 주요 기능은 다음과 같습니다.

  • 루프 및 조건문과 같은 절차적 구성.
  • 강력한 오류 관리를 위한 예외 처리.
  • 결과 세트를 처리하기 위한 커서 지원.
  • 데이터 조작을 위해 SQL과의 원활한 통합.

SQL 하위 집합

1.SQLite

SQLite는 경량의 서버리스 독립형 SQL 데이터베이스 엔진입니다. 임베디드 시스템, 모바일 애플리케이션, 데스크톱 애플리케이션에서 자주 사용됩니다. SQLite는 표준 SQL을 지원하지만 대규모 DBMS에 비해 몇 가지 제한 사항이 있습니다.

SQLite의 주목할만한 특징은 다음과 같습니다.

  • 제로 구성 설정; 별도의 서버 프로세스가 필요하지 않습니다.
  • 단일 사용자 액세스 높은 동시성 시나리오에는 적합하지 않습니다.
  • 미니멀리즘적이고 독립적인 아키텍처.

2. MySQL

MySQL의 속도와 안정성으로 유명한 오픈 소스 관계형 데이터베이스 관리 시스템입니다. MySQL은 표준 SQL을 지원하는 동시에 InnoDB 및 MyISAM과 같은 다양한 확장 및 스토리지 엔진도 포함합니다.

MySQL 기능 및 확장에는 다음이 포함됩니다.

  • 저장 프로시저, 트리거 및 뷰를 지원합니다.
  • 공간 및 JSON 유형을 포함한 광범위한 데이터 유형.
  • 다양한 성능 및 트랜잭션 요구 사항을 위한 스토리지 엔진 옵션입니다.

3. 포스트그레SQL

PostgreSQLPostgres라고도 하는 는 고급 기능, 확장성 및 표준 준수로 잘 알려진 강력한 오픈 소스 관계형 데이터베이스 시스템입니다. 이는 SQL 표준을 밀접하게 준수하고 사용자 정의 데이터 유형, 연산자 및 함수와 같은 기능으로 SQL을 확장합니다.

주목할만한 PostgreSQL 속성은 다음과 같습니다.

  • 복합 데이터 유형 및 사용자 정의 유형을 지원합니다.
  • 광범위한 인덱싱 옵션 및 고급 쿼리 최적화.
  • PL/pgSQL, PL/Python 등을 포함한 풍부한 절차적 언어 세트.

올바른 SQL 변형 선택

적절한 SQL 변형 또는 하위 집합을 선택하는 것은 특정 프로젝트 요구 사항, 기존 데이터베이스 시스템 및 SQL 특성에 대한 친숙도에 따라 달라집니다. 요구 사항에 가장 적합한 SQL 언어 유형이나 하위 집합을 선택할 때 호환성, 성능, 확장성 및 확장성과 같은 요소를 고려하세요.

Embedded SQL 및 사용법 이해

Embedded SQL은 기존 SQL과 Java, C++ 또는 Python과 같은 고급 프로그래밍 언어 간의 강력하고 원활한 통합을 나타냅니다. 개발자가 애플리케이션 코드 내에 SQL 문을 직접 통합할 수 있도록 하는 브리지 역할을 합니다. 이러한 통합은 애플리케이션 자체 내에서 효율적이고 제어된 데이터베이스 상호 작용을 촉진합니다. Embedded SQL과 그 사용법을 자세히 살펴보겠습니다.

Embedded SQL의 작동 방식

Embedded SQL은 호스트 프로그래밍 언어의 코드 내에 SQL 문을 직접 삽입하여 작동합니다. 이러한 SQL 문은 일반적으로 주변 코드와 구별하기 위해 특수 표시 또는 구분 기호로 묶입니다. 애플리케이션 코드가 컴파일되거나 해석되면 데이터베이스 관리 시스템(DBMS)에 의해 내장된 SQL 문이 추출, 처리 및 실행됩니다.

Embedded SQL의 이점

  1. 완벽한 통합: Embedded SQL은 데이터베이스 작업을 애플리케이션 코드에 완벽하게 통합하므로 개발자는 단일 환경에서 작업할 수 있습니다.
  2. 성능 최적화: SQL 문을 내장함으로써 개발자는 DBMS 고유의 기능과 쿼리 최적화 기능을 활용하여 쿼리 성능을 최적화할 수 있습니다.
  3. 데이터 일관성: Embedded SQL은 애플리케이션 로직 내에서 직접 데이터베이스 트랜잭션을 실행하여 데이터 일관성을 보장하므로 더 나은 오류 처리 및 복구가 가능합니다.
  4. 보안: Embedded SQL을 사용하면 개발자는 데이터베이스 액세스 및 보안을 제어하여 승인된 작업만 수행되도록 할 수 있습니다.
  5. 네트워크 오버헤드 감소: SQL문은 애플리케이션과 동일한 프로세스 내에서 실행되기 때문에 원격 SQL 호출을 사용할 때보다 네트워크 오버헤드가 적은 경우가 많습니다.

사용 시나리오

Embedded SQL은 애플리케이션 코드와 데이터베이스 상호 작용이 밀접하게 얽혀 있는 시나리오에서 특히 유용합니다. 일반적인 사용 사례는 다음과 같습니다.

  1. 웹 응용 프로그램: Embedded SQL은 웹 애플리케이션의 데이터베이스 작업을 처리하는 데 사용되므로 개발자는 데이터를 효율적으로 검색, 조작 및 저장할 수 있습니다.
  2. 엔터프라이즈 소프트웨어: 엔터프라이즈 소프트웨어 애플리케이션은 종종 Embedded SQL을 사용하여 복잡한 데이터 트랜잭션 및 보고를 관리합니다.
  3. 실시간 시스템: 금융거래플랫폼 등 실시간 데이터 처리가 필요한 시스템에서는 임베디드 SQL을 활용하여 고속 데이터 검색 및 분석이 가능합니다.
  4. 임베디드 시스템: 임베디드 시스템 개발에서는 리소스가 제한된 장치에서 데이터 저장 및 검색을 관리하기 위해 SQL 문이 임베디드됩니다.

고려 사항 및 모범 사례

Embedded SQL을 사용하는 경우 다음 모범 사례를 고려하는 것이 중요합니다.

  • SQL 주입: 포함된 SQL 문은 올바르게 처리되지 않으면 이러한 공격에 취약할 수 있으므로 SQL 주입 공격을 방지하기 위해 적절한 입력 유효성 검사 및 매개 변수화를 구현합니다.
  • DBMS 호환성: 다른 데이터베이스 시스템에는 조정이 필요할 수 있으므로 SQL을 포함할 때 DBMS 관련 기능과 구문 변형에 유의하세요.
  • 오류 처리: 데이터베이스 관련 예외를 적절하게 처리하기 위해 강력한 오류 처리를 구현합니다.
  • 성능 최적화: DBMS에서 제공하는 성능 최적화 기능을 활용하여 효율적인 쿼리 실행을 보장합니다.

Embedded SQL은 애플리케이션 코드와 데이터베이스 작업 사이의 격차를 해소하여 개발자가 관계형 데이터베이스와 원활하게 상호 작용하는 강력하고 효율적인 애플리케이션을 구축할 수 있도록 해줍니다. 보안과 성능을 적절하게 고려하고 신중하게 사용한다면 Embedded SQL은 데이터베이스 기반 애플리케이션 개발에서 귀중한 자산이 될 수 있습니다.

SQL 예제 및 연습

연습을 위한 추가 SQL 쿼리 예제

실제 사례를 통해 SQL을 연습하는 것은 언어를 마스터하고 데이터베이스 관리에 능숙해지는 데 중요합니다. 이 섹션에서는 SQL 기술을 강화하는 데 도움이 되는 SQL 예제와 실습에 대한 포괄적인 개요를 제공합니다.

SQL 연습의 중요성

SQL은 관계형 데이터베이스에서 데이터를 쿼리하고 조작하는 데 사용되는 다목적 언어입니다. 데이터베이스 관리자, 개발자, 데이터 분석가 또는 SQL 전문가 지망생이든 관계없이 정기적인 연습은 능숙해지기 위한 열쇠입니다. SQL 연습이 필수적인 이유는 다음과 같습니다.

  1. 기술 개발: 연습을 통해 SQL 구문을 익히고 이를 실제 시나리오에 적용하는 방법을 배울 수 있습니다.
  2. 문제 해결: SQL 연습을 통해 실제적인 문제를 해결하고 문제 해결 능력을 향상할 수 있습니다.
  3. 효율성: SQL에 능숙하면 데이터 검색 및 조작에 드는 시간과 노력을 절약하여 보다 효율적으로 작업할 수 있습니다.
  4. 경력 향상: SQL 능숙도는 취업 시장에서 귀중한 기술이며, 연습을 통해 경력을 발전시키는 데 도움이 될 수 있습니다.

SQL 연습 예

1. 기본 SELECT 쿼리

기본적인 글쓰기 연습 SELECT 데이터베이스에서 데이터를 검색하는 쿼리입니다. 단일 테이블에서 특정 열을 가져오는 간단한 쿼리로 시작하세요. 그런 다음 여러 테이블과 필터링 기준을 포함하는 더 복잡한 쿼리로 진행합니다.

-- Example 1: Retrieve all columns from the "Employees" table.SELECT * FROM Employees; 
-- Example 2: Retrieve the names of employees with a salary greater than $50,000. SELECT FirstName, LastName FROM Employees WHERE Salary > 50000; 
-- Example 3: Join two tables to retrieve customer names and their associated orders. SELECT Customers.CustomerName, Orders.OrderDate FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

2. 데이터 수정 쿼리

글쓰기 연습 INSERT, UPDATEDELETE 데이터베이스의 데이터를 조작하는 명령문. 데이터 무결성에 대한 이러한 쿼리의 의미를 이해하고 있는지 확인하십시오.

-- Example 1: Insert a new record into the "Products" table. INSERT INTO Products (ProductName, UnitPrice) VALUES ('New Product', 25.99);
 -- Example 2: Update the quantity of a product in the "Inventory" table. UPDATE Inventory SET QuantityInStock = QuantityInStock - 10 WHERE ProductID = 101; 
-- Example 3: Delete records of inactive users from the "Users" table. DELETE FROM Users WHERE IsActive = 0;

3. 집계 및 그룹화

다음과 같은 집계 함수를 사용하여 연습해 보세요. SUM, AVG, COUNTGROUP BY 데이터 세트에 대한 계산을 수행하고 요약 통계를 생성합니다.

-- Example 1: Calculate the total sales for each product category. SELECT Category, SUM(UnitPrice * Quantity) AS TotalSales FROM Products INNER JOIN OrderDetails ON Products.ProductID = OrderDetails.ProductID GROUP BY Category; 
-- Example 2: Find the average age of employees by department. SELECT Department, AVG(Age) AS AverageAge FROM Employees GROUP BY Department;

4. 하위 쿼리 및 조인

하위 쿼리 사용 연습 SELECT, INSERT, UPDATEDELETE 진술. 관련 정보를 검색하기 위해 테이블 ​​조인 기술을 익히세요.

-- Example 1: Find employees with salaries greater than the average salary. SELECT FirstName, LastName, Salary FROM Employees WHERE Salary > (SELECT AVG(Salary) FROM Employees); -- Example 2: Update customer records with their latest order date. UPDATE Customers SET LastOrderDate = (SELECT MAX(OrderDate) FROM Orders WHERE Customers.CustomerID = Orders.CustomerID);

온라인 SQL 연습 리소스

SQL 기술을 더욱 향상하려면 온라인 SQL 연습 플랫폼과 튜토리얼을 활용해 보세요. 이러한 플랫폼은 다양한 대화형 연습과 과제를 제공합니다.

  1. SQLZoo: 다양한 데이터베이스 시스템에 대한 SQL 쿼리를 연습할 수 있는 대화형 SQL 튜토리얼과 퀴즈를 제공합니다.
  2. 리트코드: SQL 기술을 테스트하고 향상시킬 수 있는 SQL 과제와 콘테스트를 제공합니다.
  3. HackerRank: 광범위한 SQL 문제와 과제가 있는 SQL 도메인을 제공합니다.
  4. Codecademy: 초보자와 중급자를 위한 실습 연습이 포함된 대화형 SQL 과정을 제공합니다.
  5. SQLFiddle: 온라인에서 SQL 쿼리를 연습할 수 있는 웹 기반의 SQL 환경을 제공합니다.
  6. 카글: 데이터 분석 및 탐색을 위한 SQL 커널 및 데이터세트를 제공합니다.

정기적인 SQL 연습은 언어를 마스터하고 관계형 데이터베이스 작업에 능숙해지는 열쇠입니다. 실제 SQL 문제를 해결함으로써 SQL 능력에 대한 자신감을 쌓고 이를 전문적인 노력에 효과적으로 적용할 수 있습니다. 따라서 SQL 연습에 참여하고, 온라인 리소스를 탐색하고, SQL 기술을 다듬어 데이터 관리 세계에서 탁월한 성과를 거두십시오.

결론

결론적으로, SQL 명령은 효과적인 데이터베이스 관리의 기초입니다. 데이터베이스 구조 정의, 데이터 조작, 액세스 제어, 트랜잭션 관리 등 무엇을 하든 SQL은 필요한 도구를 제공합니다. 이 포괄적인 가이드를 통해 SQL 명령, 해당 범주, 구문 및 실제 예를 깊이 이해하게 되었습니다.

용어사전

  • SQL: 관계형 데이터베이스를 관리하기 위한 도메인별 언어인 구조적 쿼리 언어입니다.
  • DDL: 데이터베이스 구조를 정의하고 관리하기 위한 SQL의 하위 집합인 데이터 정의 언어입니다.
  • DML: 데이터 검색, 삽입, 업데이트 및 삭제를 위한 SQL의 하위 집합인 데이터 조작 언어입니다.
  • DCL: 데이터베이스 보안 및 액세스 제어를 관리하기 위한 SQL의 하위 집합인 데이터 제어 언어입니다.
  • TCL: 데이터베이스 트랜잭션을 관리하기 위한 SQL의 하위 집합인 트랜잭션 제어 언어입니다.
  • DQL: 데이터 쿼리 언어(Data Query Language)는 데이터베이스에서 데이터를 검색하고 쿼리하는 데만 초점을 맞춘 SQL의 하위 집합입니다.

참고자료

특정 SQL 주제에 대해 더 자세히 읽고 자세히 알아보려면 다음 참조 자료를 참조하세요.

spot_img

최신 인텔리전스

spot_img