코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

SQL Intro

SQL 소개: 구조적 질의 언어 (SQL) 기본 개념과 사용법

  • *SQL(Structured Query Language)**은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하고 조작하기 위한 표준 언어입니다. SQL은 데이터를 생성, 조회, 수정, 삭제하는 작업에 사용되며, 대부분의 데이터베이스 시스템(MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등)에서 지원됩니다. 이 글에서는 SQL의 기본 개념과 주요 명령어, 그리고 실전 예제를 통해 SQL 사용법을 설명하겠습니다.

1. SQL이란 무엇인가?

SQL은 관계형 데이터베이스에서 데이터를 처리하기 위해 사용되는 언어로, 데이터를 관리하는 다양한 작업을 수행할 수 있습니다. SQL의 주요 목적은 다음과 같습니다:

  • 데이터베이스 정의: 테이블, 인덱스, 뷰 등의 데이터베이스 구조를 정의하는 명령어를 제공.
  • 데이터 조작: 데이터를 삽입, 수정, 삭제, 조회하는 작업을 수행.
  • 데이터 제어: 데이터 접근 권한을 설정하고 보안을 관리.

SQL은 관계형 데이터베이스에서 데이터를 테이블 형식으로 관리하며, 각 테이블은 행(row)과 열(column)로 구성되어 있습니다.

2. SQL의 주요 명령어

SQL 명령어는 크게 데이터 정의 언어(DDL), 데이터 조작 언어(DML), **데이터 제어 언어(DCL)**로 구분됩니다.

2.1 데이터 정의 언어 (DDL)

데이터베이스의 구조를 정의하는 명령어입니다.

  • CREATE: 테이블, 데이터베이스, 뷰, 인덱스를 생성합니다.

    CREATE TABLE employees (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      department VARCHAR(100),
      salary DECIMAL(10, 2)
    );
    
    
  • ALTER: 기존 테이블 또는 데이터베이스의 구조를 변경합니다.

    ALTER TABLE employees ADD hire_date DATE;
    
    
  • DROP: 테이블, 데이터베이스 등을 삭제합니다.

    DROP TABLE employees;
    
    

2.2 데이터 조작 언어 (DML)

데이터를 삽입, 조회, 수정, 삭제하는 명령어입니다.

  • SELECT: 테이블에서 데이터를 조회합니다.

    SELECT name, department FROM employees WHERE salary > 5000;
    
    
  • INSERT: 테이블에 데이터를 삽입합니다.

    INSERT INTO employees (id, name, department, salary)
    VALUES (1, 'John Doe', 'Sales', 6000.00);
    
    
  • UPDATE: 기존 데이터를 수정합니다.

    UPDATE employees SET salary = salary * 1.1 WHERE department = 'Sales';
    
    
  • DELETE: 테이블에서 데이터를 삭제합니다.

    DELETE FROM employees WHERE department = 'HR';
    
    

2.3 데이터 제어 언어 (DCL)

데이터베이스 사용자에게 권한을 부여하거나 회수하는 명령어입니다.

  • GRANT: 사용자에게 데이터베이스 작업 권한을 부여합니다.

    GRANT SELECT, INSERT ON employees TO 'username'@'localhost';
    
    
  • REVOKE: 사용자에게 부여한 권한을 회수합니다.

    REVOKE INSERT ON employees FROM 'username'@'localhost';
    
    

3. SQL의 주요 기능과 개념

3.1 SELECT 문

SQL에서 가장 많이 사용되는 명령어는 SELECT 문입니다. SELECT 문은 테이블에서 데이터를 조회할 때 사용됩니다. 기본 형식은 다음과 같습니다:

SELECT 열이름1, 열이름2, ... FROM 테이블이름 WHERE 조건;

예시:

SELECT name, salary FROM employees WHERE department = 'Sales';

이 쿼리는 employees 테이블에서 Sales 부서에 속한 직원의 이름과 급여를 조회합니다.

3.2 WHERE 절

WHERE 절은 데이터를 조회할 때 조건을 지정하여 특정 조건에 맞는 데이터만 필터링합니다. 여러 조건을 사용할 때는 AND, OR, NOT 등의 논리 연산자를 사용할 수 있습니다.

SELECT * FROM employees WHERE salary > 5000 AND department = 'Sales';

위 쿼리는 급여가 5,000 이상이고 부서가 Sales인 직원들을 조회합니다.

3.3 ORDER BY

ORDER BY 절을 사용하면 결과를 특정 열을 기준으로 정렬할 수 있습니다. 기본값은 오름차순이며, 내림차순으로 정렬하려면 DESC 키워드를 사용합니다.

SELECT name, salary FROM employees ORDER BY salary DESC;

이 쿼리는 급여가 높은 순으로 직원을 정렬하여 이름과 급여를 조회합니다.

3.4 GROUP BY

GROUP BY는 데이터를 그룹화하여 집계함수를 사용한 결과를 얻을 때 사용합니다. 집계 함수로는 COUNT, SUM, AVG, MAX, MIN 등이 있습니다.

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

이 쿼리는 각 부서별 평균 급여를 조회합니다.

3.5 JOIN

JOIN은 두 개 이상의 테이블을 연결하여 데이터를 조회하는 데 사용됩니다. 자주 사용되는 JOIN 유형은 다음과 같습니다:

  • INNER JOIN: 두 테이블의 공통된 값을 가지는 행만 반환합니다.

    SELECT employees.name, departments.department_name
    FROM employees
    INNER JOIN departments ON employees.department = departments.id;
    
    
  • LEFT JOIN: 왼쪽 테이블의 모든 행과, 일치하는 경우 오른쪽 테이블의 값을 반환합니다.

    SELECT employees.name, departments.department_name
    FROM employees
    LEFT JOIN departments ON employees.department = departments.id;
    
    

3.6 집계 함수 (Aggregate Functions)

SQL에서 집계 함수는 여러 행에서 하나의 값을 반환하는 함수입니다.

  • COUNT(): 특정 컬럼의 개수를 셉니다.

    SELECT COUNT(*) FROM employees;
    
    
  • SUM(): 특정 컬럼 값들의 합계를 계산합니다.

    SELECT SUM(salary) FROM employees;
    
    
  • AVG(): 특정 컬럼 값들의 평균을 계산합니다.

    SELECT AVG(salary) FROM employees WHERE department = 'Sales';
    
    
  • MAX(), MIN(): 특정 컬럼에서 최대값과 최소값을 반환합니다.

    SELECT MAX(salary) FROM employees;
    
    

4. SQL 실전 예제

4.1 테이블 생성 및 데이터 삽입

CREATE TABLE products (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  price DECIMAL(10, 2),
  stock INT
);

INSERT INTO products (name, price, stock)
VALUES ('Laptop', 1500.00, 10), ('Phone', 800.00, 50);

위 명령어는 products 테이블을 생성하고, 제품 데이터를 삽입하는 예제입니다.

4.2 데이터 조회

SELECT name, price FROM products WHERE stock > 10;

이 쿼리는 stock이 10보다 큰 제품의 이름과 가격을 조회합니다.

4.3 데이터 업데이트

UPDATE products SET price = price * 0.9 WHERE name = 'Laptop';

이 쿼리는 Laptop 제품의 가격을 10% 인하합니다.

4.4 데이터 삭제

DELETE FROM products WHERE stock = 0;

이 쿼리는 재고가 없는 제품을 삭제합니다.

요약

SQL은 데이터베이스에서 데이터를 관리하고 처리하는 강력한 언어로, 테이블 생성, 데이터 조회, 수정, 삭제 등 다양한 작업을 수행할 수 있습니다. SELECT, INSERT, UPDATE, DELETE와 같은 기본 명령어를 통해 데이터를 효과적으로 다룰 수 있으며, JOIN, 집계 함수, WHERE 절 등의 기능을 사용하여 더 복잡한 쿼리를 작성할 수 있습니다.


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