데이터베이스

SQL문 간단 정리

린예라 2024. 11. 14. 21:31

예제를 위한 테이블 생성

 

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(50),
    salary INT,
    hire_date DATE
);

CREATE TABLE departments (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

INSERT INTO employees (id, name, department, salary, hire_date) VALUES
(1, 'Alice', 'Engineering', 70000, '2020-01-15'),
(2, 'Bob', 'Engineering', 80000, '2019-03-12'),
(3, 'Charlie', 'Sales', 50000, '2021-08-23'),
(4, 'David', 'Sales', 55000, '2021-06-12'),
(5, 'Eva', 'HR', 60000, '2022-02-20');

INSERT INTO departments (id, name) VALUES
(1, 'Engineering'),
(2, 'Sales'),
(3, 'HR');

 

1,2,3번을 조합하여 SELECT문 작성

1.SELECT (최종적으로 조회할 혹은 화면에 나타낼 칼럼)

AVG(), MAX(), MIN() 등 사용가능

2.FROM (선택할 테이블)

3.WHERE (칼럼조건) or GROUP BY (그룹별) or ORDER BY (정렬)

 

예제를 통한 SELECT 정리

급여가 60000 이상인 직원 조회

SELECT name, salary
FROM employees
WHERE salary >= 60000;

 

부서별 평균 급여 조회

SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;

 

2021년에 입사한 직원 조회

SELECT name, hire_date
FROM employees
WHERE YEAR(hire_date) = 2021;

 

급여가 높은 순(내림차순)으로 직원 정렬

SELECT name, salary
FROM employees
ORDER BY salary DESC;

 

부서별 최고 급여 조회

SELECT department, name, salary
FROM employees e1
WHERE salary = (
    SELECT MAX(salary)
    FROM employees e2
    WHERE e1.department = e2.department
);

'데이터베이스' 카테고리의 다른 글

SELECT문 처리 우선순위 정리  (0) 2024.11.17
인덱스 index  (1) 2024.11.16
동시성 제어  (0) 2024.04.12
트랜잭션 (Transaction)  (1) 2024.04.09
스키마 (Schema)  (0) 2024.04.08