코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

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_INCREMENTPRIMARY 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;

  • 설명: nameposition 필드만 조회합니다.

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_idemployees 테이블의 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은 관계형 데이터베이스와 상호작용하기 위한 표준 언어이며, 이를 통해 복잡한 데이터베이스 관리 작업을 수행할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com