[SQL] 다양한 SQL 언어 개념 이해

김현수·2024년 5월 24일
0

sql

목록 보기
2/2

🖍️ SQL Query

  • 구조적 쿼리 언어

  • 관계형 DB 내에서 데이터를 정의, 조작 및 제어하는데 사용하고 다양한 유형의 SQL 문과 명령을 이해



@ DDL (데이터 정의 언어)

  • Table, Index, Schema 같은 DB 개체의
    구조 정의하고 수정하는데 사용

  • CREATE

    • 새 Table, View, Index 또는 기타 DB 개체 생성

    • CREATE TABLE employees (
              id INT PRIMARY KEY, 
              first_name VARCHAR(50),
              last_name VARCHAR(50), 
              hire_data DATE 
      );

  • ALTER

    • 기존 DB 개체 수정

    • ALTER TABLE employees ADD COLUMN email VARCHAR(100);


  • DROP

    • 기존 DB 개체 삭제

    • DROP TABLE employees;


  • TRUNCATE

    • Table 에서 모든 Record 제거하지만 Table 구조는 그대로 유지

    • TRUNCATE TABLE employees;



@ DML (데이터 조작 언어)

  • SELECT

    • DB 에서 데이터를 검색

    • Select first_name, last_name FROM employees;


  • INSERT

    • Table 에 새 행을 추가

    • INSERT INTO employees (id, first_name, last_name, hire_date) VALUES (1, 'John', 'Doe', '2023-01-01');


  • UPDATE

    • Table 의 기존 데이터를 수정

    • UPDATE employees SET email = 'john.doe@example.com WHERE id = 1;


  • DELETE

    • Table 에서 행을 제거

    • DELETE FROM employees WHERE id = 1;



@ DCL (데이터 제어 언어)

  • GRANT

    • 사용자에게 권한 부여

    • Select first_name, last_name FROM employees;


  • REVOKE

    • 사용자의 권한 제거

    • INSERT INTO employees (id, first_name, last_name, hire_date) VALUES (1, 'John', 'Doe', '2023-01-01');



@ TCL (트랜잭션 제어 언어)

  • COMMIT

    • 현재 트랜잭션 중에 변경된 내용 저장

    • COMMIT;


  • ROLLBACK

    • 현재 트랜잭션 중에 변경된 내용 취소

    • ROLLBACK;


  • SAVEPOINT

    • 나중에 롤백할 수 있는 트랜잭션 내 지점 설정

    • SAVEPOINT savepoint1;


  • RELEASE SAVEPOINT

    • 저장점 제거

    • RELEASE SAVEPOINT savepoint1;



@ DQL (데이터 쿼리 언어)

  • SELECT

    • 하나 이상의 Table 에서 Data 를 검색

    • SELECT * FROM employees;



@ 추가 SQL 개념

  • INNER JOIN

    • 두 Table 모두에서 일치하는 값을 가진 Record 선택

    • SELECT e.first_name, d.department_name FROM employees e INNER JOIN department d ON e.department_id = d.id;



  • LEFT JOIN (또는 LEFT OUTER JOIN)

    • Left Table 의 모든 Record 를 선택하고
      Right Table 의 일치하는 Record 선택

    • SELECT e.first_name, d.department_name FROM employees e LEFT JOIN department d ON e.department_id = d.id



  • RIGHT JOIN (또는 RIGHT OUTER JOIN)

    • Right Table 의 모든 Record 를 선택하고
      Left Table 의 일치하는 Record 선택

    • SELECT e.first_name, d.department_name FROM employees e RIGHT JOIN department d ON e.department_id = d.id



  • FULL JOIN (또는 FULL OUTER JOIN)

    • Left Or Right Table 중 하나에 일치하는
      Record 가 있을 때 모든 Record 선택

    • SELECT e.first_name, d.department_name FROM employees e FULL OUTER JOIN department d ON e.department_id = d.id



  • INDEX

    • CREATE INDEX : Table 에 Index 를 생성

    • CREATE INDEX idx_last_name ON employees(last_name)

    • DROP INDEX : Index 를 삭제

    • DROP INDEX idx_last_name

profile
일단 한다

0개의 댓글