SQL 구문 정리
SQL (Structured Query Language)
- 관계형 데이터베이스를 관리하고 조작하기 위해 고안된 프로그래밍 언어
- 데이터베이스와 상호작용하기 위한 정형화된 방식을 제공하는데, 데이터를 쿼리하고 레코드를 업데이트하며, 테이블을 생성하는 작업을 수행할 수 있도록 한다.
1. SQL Statements
- 데이터베이스에서 다양한 운영방식을 제공하기 위해 사용되는 일련의 구문을 제공한다.
- 각 구문들은 목적에 따라서, 타입별로 구분된다.
Data Manipulation Language (DML) | Data Definition Language (DDL) |
Data Control Language (DCL) |
Transaction Control Language (TCL) |
2. Data Manipulation Language (DML)
- 데이터 조작 언어(DML)는 데이터베이스에서 데이터를 조회 / 삽입 / 변경 / 삭제하기 위해 사용된다.
SELECT (retrieves data) |
SELECT FirstName, LastName, Salary FROM Employees WHERE Department = 'Sales'; |
INSERT (adds new records) |
INSERT INTO Employees (EmployeeID, FirstName, LastName, Department, Salary) VALUES (5, 'Sarah', 'Johnson', 'Marketing', 58000.00); |
UPDATE (modifies data) |
UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Marketing'; |
DELETE (removes records) |
DELETE FROM Employees WHERE LastName = 'Smith'; |
3. Data Definition Language (DDL)
- 데이터 정의 언어(DDL)은 데이터베이스 스키마를 정의 / 조작 삭제하기 위해 사용된다.
CREATE (Creating a new table) |
CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), Email VARCHAR(100) ); |
ALTER (Modifying an existing table) |
ALTER TABLE Employees ADD COLUMN BirthDate DATE; |
DROP (Deleting a table) |
DROP TABLE Customers; |
4. Data Control Language (DCL)
- 데이터 제어 언어는 데이터베이스의 허가 및 접근 권한을 관리하기 위해 사용된다.
GRANT (gives permissions) |
GRANT SELECT, INSERT, UPDATE ON Employees TO user123; |
REVOKE (revokes permissions) |
REVOKE SELECT ON Customers FROM user123; |
5. Transaction Control Language (TCL)
- 트랜잭션 제어 언어(TCL)는 트랜잭션을 고나리하고 데이터 연속 일관성을 보장하기 위해 사용된다.
COMMIT (saves changes) |
COMMIT; |
ROLLBACK (undoes changes) |
ROLLBACK; |
6. Joins
- JOIN 명령어를 사용해서, 다수의 테이블의 데이터를 합칠 수 있다.
- 다양한 타입의 JOIN들을 사용하여 데이터를 어떻게 결합하고 조합할 것인지 조절할 수 있다.
INNER JOIN | LEFT JOIN | RIGHT JOIN | FULL JOIN |
7. Filtering, Sorting, and Grouping
WHERE = 조건을 기준으로 행을 필터링 | |
WHERE | SELECT FirstName, LastName FROM Employees WHERE Salary > 55000.00; |
ORDER BY = 지정된 열로 설정된 결과를 정렬 | |
ORDER BY | SELECT FirstName, LastName, Salary FROM Employees ORDER BY Salary DESC; |
GROUP BY= 집계를 위한 열을 기준으로 행을 그룹화 |
|
GROUP BY | SELECT DepartmentID, AVG(Salary) AS AvgSalary FROM Employees GROUP BY DepartmentID |
HAVING= 조건을 기준으로 집계된 결과를 필터링 |
|
HAVING | SELECT DepartmentID, AVG(Salary) AS AvgSalary FROM Employees GROUP BY DepartmentID HAVING AVG(Salary) > 55000.00; |
8. Aggregation
- 데이터베이스에서 조건에 맞는 값을 집계하기 위해, 다양한 기능을 제공한다.
구별 | 구문 | 결과 |
COUNT | SELECT COUNT(*) AS TotalEmployees FROM Employees; |
4 |
SUM | SELECT SUM(Salary) AS TotalSalary FROM Employees; |
213000.00 |
AVG | SELECT AVG(Salary) AS AverageSalary FROM Employees; |
53250.00 |
MIN | SELECT MIN(Salary) AS LowestSalary FROM Employees; |
48000.00 |
MAX | SELECT MAX(Salary) AS HighestSalary FROM Employees; |
60000.00 |
'IT > ㄴ Database' 카테고리의 다른 글
[MariaDB] SQL 구문 연습 [order by / where / like / alter ] (0) | 2023.08.19 |
---|---|
[MariaDB] SQL 구문 연습 [create / select / insert / update / delete / drop] (0) | 2023.08.18 |
[MariaDB] MariaDB UTF-8 설정 [한글 깨짐 방지] (0) | 2023.08.18 |
[MariaDB] MariaDB 설치 및 원격 접속 [계정 패스워드] (0) | 2023.08.18 |
[기초] Database 구성 요소 [ChatGPT] (0) | 2023.08.17 |