SQL에서 쿼리(Query) 는 데이터베이스에 "무엇을 보여달라"고 요청하는 문장입니다. 마치 “도서관에서 ‘2020년에 가입한 회원들의 이름을 알려줘’”라고 말하는 것과 같습니다.
쿼리는 데이터에서 정보를 찾아내고, 정리하며, 분석하는 데 필수적인 도구입니다.
SQL에서 가장 기본이 되는 구문은 SELECT
입니다.
SELECT column1, column2
FROM table_name;
예시:
SELECT name
FROM patrons;
이 쿼리는 patrons
테이블에서 name
열만 조회합니다.
필요한 열이 여러 개일 경우, 쉼표로 구분하여 나열할 수 있습니다.
SELECT card_num, name, total_fine
FROM patrons;
이렇게 하면 각 회원의 카드번호, 이름, 연체료를 모두 확인할 수 있습니다.
*
와일드카드SELECT *
FROM patrons;
*
는 테이블의 모든 열을 가져오라는 의미입니다. 실습이나 테스트 단계에서 자주 사용되지만, 실제 운영 쿼리에서는 필요한 열만 명시하는 것이 좋습니다.
쿼리 결과의 열 이름이 너무 길거나 의미가 모호할 때 별칭(Alias) 을 사용할 수 있습니다.
SELECT name AS first_name
FROM employees;
AS
키워드를 통해 name
컬럼이 first_name
이라는 이름으로 표시됩니다.
DISTINCT
데이터에 중복된 값이 포함되어 있을 때는 DISTINCT
를 사용해 고유값만 추출할 수 있습니다.
SELECT DISTINCT year_hired
FROM employees;
이 쿼리는 year_hired
열에서 중복 없이 고유한 값만 보여줍니다.
여러 열에 대해 중복을 제거하려면 다음과 같이 작성합니다:
SELECT DISTINCT dept_id, year_hired
FROM employees;
뷰(View) 는 자주 사용하는 쿼리를 저장해두는 가상의 테이블입니다. 데이터를 실제로 저장하지 않고, 쿼리 결과를 구조화해서 다시 사용할 수 있게 해줍니다.
CREATE VIEW employee_hire_years AS
SELECT id, name, year_hired
FROM employees;
사용 시에는 일반 테이블처럼 조회할 수 있습니다:
SELECT id, name
FROM employee_hire_years;
뷰는 복잡한 쿼리를 단순화하거나 재사용할 때 매우 유용합니다.
SQL은 표준 언어지만, 데이터베이스 시스템마다 약간씩 다른 문법을 사용할 수 있습니다.
시스템 | 특징 | 예시 |
---|---|---|
PostgreSQL | 오픈소스, 무료 | LIMIT 2 사용 |
SQL Server | Microsoft 제품, 상용/무료 혼합 | TOP(2) 구문 사용 |
-- PostgreSQL
SELECT id, name
FROM employees
LIMIT 2;
-- SQL Server
SELECT TOP(2) id, name
FROM employees;
기본적인 SQL 구조는 비슷하며, 작은 문법 차이만 유의하면 됩니다.
이제 SELECT
, DISTINCT
, AS
, VIEW
, SQL 버전에 따른 차이까지 배웠다면, 본격적으로 다음 주제인 WHERE
, ORDER BY
, JOIN
등 조건 필터링과 다중 테이블 활용으로 나아갈 준비가 되었습니다.
이번 장에서는 SQL 쿼리의 가장 핵심적인 기능들—SELECT
, DISTINCT
, AS
, VIEW
, 그리고 SQL 문법의 다양한 형태—를 다뤘습니다. 실무에서도 가장 자주 쓰이는 기초 명령어들이므로, 직접 연습하면서 익혀보는 것이 좋습니다.