SQL Examples
SQL Examples: 기본적인 SQL 예제
SQL(Structured Query Language)은 데이터베이스와 상호작용하기 위한 언어로, 데이터를 조회, 삽입, 수정, 삭제하는 작업을 할 수 있습니다. 이 가이드는 SQL의 주요 기능을 간단한 예제들을 통해 설명합니다.
1. 데이터베이스 생성
새로운 데이터베이스를 생성하는 예제입니다.
CREATE DATABASE company;
- 설명:
CREATE DATABASE
는 새로운 데이터베이스를 생성하는 명령어입니다. company
: 생성하려는 데이터베이스의 이름입니다.
2. 데이터베이스 선택
생성된 데이터베이스를 선택하여 작업합니다.
USE company;
- 설명:
USE
는 작업할 데이터베이스를 선택하는 명령어입니다.
3. 테이블 생성
새로운 테이블을 생성하는 예제입니다.
CREATE TABLE employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(100),
hire_date DATE,
salary DECIMAL(10, 2)
);
- 설명:
employee_id
: 고유한 직원 ID로AUTO_INCREMENT
와PRIMARY KEY
제약 조건이 적용됩니다.name
: 직원 이름을 저장할 필드로, 최대 100자의 문자열을 저장.position
: 직원의 직위.hire_date
: 직원의 입사일.salary
: 직원의 급여(소수점 둘째 자리까지).
4. 데이터 삽입
테이블에 데이터를 삽입하는 예제입니다.
INSERT INTO employees (name, position, hire_date, salary)
VALUES ('John Doe', 'Manager', '2020-01-15', 75000.00);
- 설명:
INSERT INTO
: 테이블에 새로운 데이터를 삽입.VALUES
: 삽입할 값들을 지정.- 여기서
employee_id
는 자동으로 증가하므로, 명시적으로 값을 제공하지 않아도 됩니다.
5. 여러 데이터 삽입
한 번에 여러 데이터를 삽입할 수 있습니다.
INSERT INTO employees (name, position, hire_date, salary)
VALUES
('Jane Smith', 'Engineer', '2019-06-20', 65000.00),
('Michael Johnson', 'Analyst', '2021-03-10', 55000.00),
('Emily Davis', 'HR Specialist', '2018-09-05', 60000.00);
- 설명: 여러 행의 데이터를
VALUES
를 사용해 한 번에 삽입할 수 있습니다.
6. 데이터 조회
테이블에서 데이터를 조회하는 기본 예제입니다.
SELECT * FROM employees;
- 설명:
SELECT *
는 모든 필드를 조회합니다.employees
테이블에서 모든 데이터를 반환합니다.
특정 컬럼만 조회:
SELECT name, position FROM employees;
- 설명:
name
과position
필드만 조회합니다.
7. 조건을 사용한 데이터 조회 (WHERE
)
특정 조건에 맞는 데이터를 조회할 수 있습니다.
SELECT * FROM employees WHERE salary > 60000;
- 설명:
salary
가 60,000 이상인 직원들만 조회합니다.
문자열 조건 조회:
SELECT * FROM employees WHERE position = 'Manager';
- 설명:
position
이'Manager'
인 직원들을 조회합니다.
8. 데이터 정렬 (ORDER BY
)
조회된 데이터를 정렬하여 출력할 수 있습니다.
SELECT * FROM employees ORDER BY salary DESC;
- 설명:
salary
를 기준으로 내림차순(DESC
)으로 데이터를 정렬합니다.
오름차순 정렬:
SELECT * FROM employees ORDER BY hire_date ASC;
- 설명:
hire_date
를 기준으로 오름차순(ASC
)으로 데이터를 정렬합니다.
9. 데이터 수정 (UPDATE
)
테이블의 기존 데이터를 수정하는 예제입니다.
UPDATE employees SET salary = 80000 WHERE name = 'John Doe';
- 설명:
UPDATE
: 데이터를 수정하는 명령어.SET
: 수정할 값을 지정.WHERE
: 조건을 설정하여 특정 행만 수정.
10. 데이터 삭제 (DELETE
)
테이블의 데이터를 삭제하는 예제입니다.
DELETE FROM employees WHERE name = 'John Doe';
- 설명:
name
이'John Doe'
인 행을 삭제합니다.
11. 테이블 삭제 (DROP TABLE
)
테이블을 삭제하는 예제입니다.
DROP TABLE employees;
- 설명:
DROP TABLE
은 테이블 자체를 완전히 삭제합니다.
12. 데이터 제한 조회 (LIMIT
)
조회할 데이터의 개수를 제한할 수 있습니다.
SELECT * FROM employees LIMIT 3;
- 설명: 최대 3개의 행만 조회합니다.
13. 데이터 그룹화 (GROUP BY
) 및 집계 함수 (COUNT
, SUM
, AVG
)
그룹화 예제:
SELECT position, COUNT(*) AS total_employees FROM employees GROUP BY position;
- 설명: 각 직위별로 직원 수를 그룹화하여 계산합니다.
집계 함수 예제:
SELECT AVG(salary) AS average_salary FROM employees;
- 설명: 모든 직원의 평균 급여를 계산합니다.
14. 테이블 구조 확인 (DESCRIBE
)
테이블의 구조를 확인하는 명령어입니다.
DESCRIBE employees;
- 설명:
employees
테이블의 필드, 데이터 타입, 기본값 등을 보여줍니다.
15. JOIN을 사용한 테이블 결합
두 개 이상의 테이블을 결합하여 데이터를 조회하는 INNER JOIN 예제입니다.
SELECT orders.order_id, customers.name, orders.order_date
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
- 설명:
INNER JOIN
: 두 테이블에서 일치하는 데이터를 결합하여 조회합니다.orders.customer_id = customers.customer_id
:orders
테이블과customers
테이블의customer_id
를 기준으로 결합.
16. 테이블 수정 (ALTER TABLE
)
테이블에 새로운 필드를 추가하는 예제입니다.
ALTER TABLE employees ADD COLUMN department VARCHAR(50);
- 설명:
employees
테이블에department
라는 필드를 추가합니다.
17. 기본 키 설정 및 제약 조건
테이블 생성 시 기본 키와 제약 조건을 설정하는 예제입니다.
CREATE TABLE departments (
department_id INT AUTO_INCREMENT PRIMARY KEY,
department_name VARCHAR(100) UNIQUE
);
- 설명:
PRIMARY KEY
: 테이블에서 고유한 값을 가지는 필드.UNIQUE
: 해당 필드 값이 중복될 수 없음을 보장.
18. 외래 키 설정
테이블 간의 관계를 설정하기 위해 외래 키를 추가하는 예제입니다.
CREATE TABLE projects (
project_id INT AUTO_INCREMENT PRIMARY KEY,
project_name VARCHAR(100),
employee_id INT,
FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
);
- 설명:
employee_id
는employees
테이블의employee_id
필드를 참조하는 외래 키로 설정됩니다.
19. 트랜잭션 관리
SQL에서 트랜잭션을 관리하는 예제입니다.
START TRANSACTION;
UPDATE employees SET salary = salary + 5000 WHERE name = 'Jane Smith';
DELETE FROM employees WHERE name = 'John Doe';
COMMIT;
- 설명:
START TRANSACTION
: 트랜잭션을 시작.COMMIT
: 트랜잭션을 완료하고 변경 사항을 저장.- 만약 트랜잭션을 취소하려면
ROLLBACK
명령어를 사용합니다.
요약
이 가이드는 SQL에서 데이터베이스, 테이블 생성, 데이터 삽입 및 조회, 데이터 수정 및 삭제, JOIN 및 집계 함수와 같은 기본 작업을 실습할 수 있는 예제들로 구성되었습니다. SQL은 관계형 데이터베이스와 상호작용하기 위한 표준 언어이며, 이를 통해 복잡한 데이터베이스 관리 작업을 수행할 수 있습니다.