SQL

기술노트

🗃️ SQL (Structured Query Language)

SQL관계형 데이터베이스(RDBMS)에 저장된 데이터를 관리하고 조작하기 위해 사용하는 표준 프로그래밍 언어입니다. 데이터베이스에 데이터를 저장, 수정, 삭제, 조회하는 모든 작업은 SQL을 통해 이루어집니다.

SQL은 특정 데이터베이스 제품(MySQL, Oracle 등)에 종속되지 않는 표준 언어이지만, 각 제품마다 약간의 문법적 차이나 독자적인 기능이 존재하기도 합니다.


📜 SQL의 주요 명령어 종류

SQL 명령어는 기능에 따라 크게 세 가지로 나뉩니다.

  • DDL (Data Definition Language) : 데이터 정의어

> 테이블이나 데이터베이스의 구조를 정의하고 관리하는 명령어입니다. > * `CREATE` : 데이터베이스, 테이블 등을 생성합니다. > * `ALTER` : 기존 테이블의 구조를 수정합니다. > * `DROP` : 데이터베이스, 테이블 등을 완전히 삭제합니다.

  • DML (Data Manipulation Language) : 데이터 조작어

> 테이블의 데이터를 직접 조작하고 조회하는 명령어입니다. 가장 빈번하게 사용됩니다. > * `SELECT` : 데이터를 조회합니다. > * `INSERT` : 새로운 데이터를 삽입합니다. > * `UPDATE` : 기존 데이터를 수정합니다. > * `DELETE` : 데이터를 삭제합니다.

  • DCL (Data Control Language) : 데이터 제어어

> 데이터베이스 사용자의 접근 권한을 관리하는 명령어입니다. > * `GRANT` : 사용자에게 특정 권한을 부여합니다. > * `REVOKE` : 사용자의 권한을 회수합니다.


💡 개발자 핵심 Point

  • SQL은 백엔드 개발자의 필수 소양입니다. 애플리케이션의 거의 모든 데이터는 데이터베이스에 저장되므로, SQL을 자유자재로 다룰 수 있는 능력은 매우 중요합니다.
  • 특히 여러 테이블의 데이터를 조합하여 원하는 결과를 얻는 JOIN 연산에 대한 깊은 이해가 필요합니다.
  • ORM(Object-Relational Mapping) 프레임워크를 사용하면 SQL을 직접 작성하지 않고도 데이터베이스 작업을 할 수 있지만, 복잡한 쿼리나 성능 최적화를 위해서는 결국 SQL을 알아야 합니다.
  • 잘 작성된 SQL 쿼리 하나가 애플리케이션의 전체 성능을 좌우할 수 있습니다. 실행 계획(Execution Plan)을 분석하고 인덱스(Index)를 적절히 활용하여 쿼리 성능을 최적화하는 능력이 중요합니다.