SQL의 기초 쿼리문
DDL
DDL에 대한 설명
DDL은 데이터베이스의 구조를 정의하거나 수정하는 데 사용되는 SQL 문장의 집합이에요. DDL 명령은 데이터베이스 객체(테이블, 인덱스, 뷰 등)를 생성, 변경, 삭제하는 데 사용돼요. 주로 사용하는 DDL 명령에는 CREATE, ALTER, DROP, TRUNCATE가 있어요.
CREATE
설명: 새로운 데이터베이스 객체를 생성해요. 예제: 새로운 테이블을 생성하는 코드예요.
1
2
3
4
5
6
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(100),
salary DECIMAL(10, 2)
);
CREATE TABLE employees: employees라는 이름의 새 테이블을 생성해요. id INT PRIMARY KEY: id 열을 정수형으로 정의하고, 이 열을 기본 키로 설정해요. name VARCHAR(100): name 열을 최대 100자의 가변 길이 문자열로 정의해요. position VARCHAR(100): position 열을 최대 100자의 가변 길이 문자열로 정의해요. salary DECIMAL(10, 2): salary 열을 소수점 이하 2자리를 포함한 10자리 소수형으로 정의해요.
ALTER
설명: 기존 데이터베이스 객체를 변경해요. 예제: 기존 테이블에 새로운 열을 추가하는 코드예요
1
ALTER TABLE employees ADD COLUMN hire_date DATE;
ALTER TABLE employees: employees 테이블을 수정해요. ADD COLUMN hire_date DATE: hire_date라는 새로운 날짜형 열을 추가해요.
TRUNCATE
설명: 테이블의 모든 데이터를 삭제하지만 테이블 구조는 유지해요. 예제: 테이블의 데이터를 모두 삭제하는 코드예요.
1
TRUNCATE TABLE employees;
TRUNCATE TABLE employees: employees 테이블의 모든 행을 삭제해요. 테이블의 구조는 그대로 유지돼요.
DML
DML에 대한 설명
DML(Data Manipulation Language)이라고 하는 데이터 조작 언어는 데이터베이스에서 데이터를 조회하거나 변경할 때 사용되는 SQL 명령어들의 집합이에요. DML 명령어를 통해 데이터베이스 내의 데이터를 검색, 삽입, 수정, 삭제할 수 있습니다. 주요 DML 명령어로는 SELECT, INSERT, UPDATE, DELETE가 있습니다.
FROM
설명: 데이터베이스에서 데이터를 조회할 테이블을 지정해요. 예제: 특정 테이블에서 데이터를 조회하는 코드예요.
1
2
SELECT name, position, salary
FROM employees;
FROM employees: 데이터를 조회할 테이블을 지정해요. 이 경우 employees 테이블에서 데이터를 조회해요.
WHERE
설명: 데이터를 조회할 때 특정 조건을 설정할 수 있어요. 예제: 특정 조건에 맞는 데이터를 조회하는 코드예요.
1
2
3
SELECT name, position, salary
FROM employees
WHERE salary > 50000;
WHERE salary > 50000: salary 열의 값이 50000보다 큰 행만 조회해요.
GROUP BY
설명: 데이터를 그룹으로 묶어 집계 함수와 함께 사용할 때 유용해요. 주로 집계 함수(예: COUNT, SUM, AVG)와 함께 사용돼요. 예제: 부서별 평균 급여를 계산하는 코드예요.
1
2
3
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
GROUP BY department: department 열을 기준으로 데이터를 그룹으로 묶어요. 각 부서별 평균 급여를 계산해요.
HAVING
설명: HAVING 절은 GROUP BY로 그룹화된 데이터에 조건을 적용할 수 있어요. 주로 집계 함수와 함께 사용되며, 그룹화된 데이터의 결과를 필터링할 때 유용해요.
예제: 각 부서별로 직원 수가 10명 이상인 부서만 조회하는 코드예요.
1
2
3
4
SELECT department_id, COUNT(*) AS num_employees
FROM employees
GROUP BY department_id
HAVING COUNT(*) >= 10;
HAVING COUNT(*) >= 10: department_id로 그룹화한 후, 직원 수가 10명 이상인 부서만 결과로 반환해요. HAVING 절은 WHERE 절과 달리 집계 함수와 함께 사용할 수 있어요.
ORDER BY
설명: 조회한 데이터를 특정 열을 기준으로 정렬할 수 있어요. 예제: 급여가 높은 순서로 직원을 정렬하는 코드예요.
1
2
3
SELECT name, position, salary
FROM employees
ORDER BY salary DESC;
ORDER BY salary DESC: salary 열을 기준으로 내림차순으로 정렬해요. ASC를 사용하면 오름차순으로 정렬할 수 있어요.
LIMIT
설명: 조회 결과에서 반환할 행의 수를 제한할 수 있어요. 예제: 상위 5명의 급여가 높은 직원을 조회하는 코드예요.
1
2
3
4
SELECT name, position, salary
FROM employees
ORDER BY salary DESC
LIMIT 5;
LIMIT 5: 조회 결과에서 상위 5개의 행만 반환해요.