SQL 쿼리 입문: 데이터를 조회하는 가장 기본적인 기술

Sue·2025년 7월 5일
0
post-thumbnail

SQL 쿼리 입문: 데이터를 조회하는 가장 기본적인 기술


1. 쿼리란 무엇인가?

SQL에서 쿼리(Query) 는 데이터베이스에 "무엇을 보여달라"고 요청하는 문장입니다. 마치 “도서관에서 ‘2020년에 가입한 회원들의 이름을 알려줘’”라고 말하는 것과 같습니다.

쿼리는 데이터에서 정보를 찾아내고, 정리하며, 분석하는 데 필수적인 도구입니다.


2. SELECT 문: SQL의 핵심

SQL에서 가장 기본이 되는 구문은 SELECT입니다.

기본 문법

SELECT column1, column2
FROM table_name;

예시:

SELECT name
FROM patrons;

이 쿼리는 patrons 테이블에서 name 열만 조회합니다.


3. 여러 열 조회하기

필요한 열이 여러 개일 경우, 쉼표로 구분하여 나열할 수 있습니다.

SELECT card_num, name, total_fine
FROM patrons;

이렇게 하면 각 회원의 카드번호, 이름, 연체료를 모두 확인할 수 있습니다.


4. 모든 열 조회: * 와일드카드

SELECT * 
FROM patrons;

*는 테이블의 모든 열을 가져오라는 의미입니다. 실습이나 테스트 단계에서 자주 사용되지만, 실제 운영 쿼리에서는 필요한 열만 명시하는 것이 좋습니다.


5. 컬럼 이름 바꾸기 (Aliasing)

쿼리 결과의 열 이름이 너무 길거나 의미가 모호할 때 별칭(Alias) 을 사용할 수 있습니다.

SELECT name AS first_name
FROM employees;

AS 키워드를 통해 name 컬럼이 first_name이라는 이름으로 표시됩니다.


6. 중복 제거: DISTINCT

데이터에 중복된 값이 포함되어 있을 때는 DISTINCT를 사용해 고유값만 추출할 수 있습니다.

SELECT DISTINCT year_hired
FROM employees;

이 쿼리는 year_hired 열에서 중복 없이 고유한 값만 보여줍니다.

여러 열에 대해 중복을 제거하려면 다음과 같이 작성합니다:

SELECT DISTINCT dept_id, year_hired
FROM employees;

7. 뷰(View): 쿼리의 저장 버전

뷰(View) 는 자주 사용하는 쿼리를 저장해두는 가상의 테이블입니다. 데이터를 실제로 저장하지 않고, 쿼리 결과를 구조화해서 다시 사용할 수 있게 해줍니다.

CREATE VIEW employee_hire_years AS
SELECT id, name, year_hired
FROM employees;

사용 시에는 일반 테이블처럼 조회할 수 있습니다:

SELECT id, name
FROM employee_hire_years;

뷰는 복잡한 쿼리를 단순화하거나 재사용할 때 매우 유용합니다.


8. SQL의 다양한 버전(Flavors)

SQL은 표준 언어지만, 데이터베이스 시스템마다 약간씩 다른 문법을 사용할 수 있습니다.

시스템특징예시
PostgreSQL오픈소스, 무료LIMIT 2 사용
SQL ServerMicrosoft 제품, 상용/무료 혼합TOP(2) 구문 사용

예시 비교:

-- PostgreSQL
SELECT id, name
FROM employees
LIMIT 2;

-- SQL Server
SELECT TOP(2) id, name
FROM employees;

기본적인 SQL 구조는 비슷하며, 작은 문법 차이만 유의하면 됩니다.


9. 다음 단계

이제 SELECT, DISTINCT, AS, VIEW, SQL 버전에 따른 차이까지 배웠다면, 본격적으로 다음 주제인 WHERE, ORDER BY, JOIN조건 필터링다중 테이블 활용으로 나아갈 준비가 되었습니다.


마무리

이번 장에서는 SQL 쿼리의 가장 핵심적인 기능들—SELECT, DISTINCT, AS, VIEW, 그리고 SQL 문법의 다양한 형태—를 다뤘습니다. 실무에서도 가장 자주 쓰이는 기초 명령어들이므로, 직접 연습하면서 익혀보는 것이 좋습니다.

profile
AI/ML Engineer

0개의 댓글