Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

SQL SELECT 문 완벽 가이드: 기본 구조부터 조건 검색까지

데이터베이스는 단순히 정보를 저장하는 공간이 아니라, 데이터를 손쉽게 조회하고 활용할 수 있도록 설계된 시스템입니다. 이때 SELECT 문을 활용하면 데이터베이스에서 원하는 값을 언제든 자유롭게 가져올 수 있습니다.

이 글에서는 SQL SELECT 문이 무엇인지, 어떤 방식으로 동작하는지 살펴보고, 실제 예제를 통해 SQL 서버에서 SELECT 문을 활용하는 방법까지 단계별로 알아보겠습니다.

SQL SELECT 문이란?

SELECT 문은 이름 그대로 데이터베이스 테이블에서 데이터를 '선택(조회)'하는 구문입니다. SQL에서 가장 기본이 되면서도 가장 많이 사용되는 문장이라고 할 수 있습니다.

SELECT 문을 사용하면 하나 이상의 테이블에서 데이터를 가져올 수 있습니다. 테이블의 전체 행을 조회할 수도 있고, 특정 조건을 만족하는 행만 골라서 추출할 수도 있습니다.

SELECT 절은 다음과 같은 기본 구조를 갖습니다.

SELECT column1, column2 FROM table;

이 구문은 'table'이라는 테이블에서 'column1'과 'column2' 두 열을 선택합니다. 세미콜론(;)은 쿼리의 끝을 나타내며, SQL 서버에 따라 생략할 수도 있습니다.

역시 예제로 확인하는 것이 가장 이해하기 쉽습니다. 현재 employees라는 테이블이 있고, 아래와 같은 값이 들어 있다고 가정해 보겠습니다.

idnametitlehired_datesalary
1Thomas CarltonSales Representative09-08-201929400
2Lisa NelsonSales Representative12-09-201929400
3Victoria CarlisleSales Director04-02-201737800

이 테이블에는 세 개의 레코드가 저장되어 있습니다. 참고로 이런 테이블을 만들고 데이터를 삽입·수정하는 방법은 SQL INSERT 및 SQL UPDATE 관련 튜토리얼에서 자세히 다룹니다.

그렇다면 이 데이터베이스에 담긴 레코드를 화면으로 조회하려면 어떻게 해야 할까요? 바로 SELECT 문을 사용하면 됩니다.

특정 열 선택하기

경영진으로부터 '직원 명단과 각 직원의 급여 목록'을 요청받았다고 가정해 보겠습니다. 이름과 급여만 필요하고, 그 외의 정보는 필요하지 않습니다.

이럴 때 SELECT 문으로 필요한 열만 지정해서 조회할 수 있습니다.

SELECT name, salary
FROM employees;

이 쿼리는 employees 테이블에서 직원 이름(name)과 급여(salary)만 골라 반환합니다. 실행 결과는 다음과 같습니다.

NameSalary
Thomas Carlton29400
Lisa Nelson29400
Victoria Carlisle37800

이처럼 테이블에서 원하는 열의 개수에는 제한이 없습니다. 필요한 열 이름을 쉼표로 구분하여 나열하기만 하면 됩니다.

모든 열 선택하기

테이블의 모든 열을 조회하고 싶다면 열 이름을 하나씩 나열하는 방법도 있습니다.

SELECT id, name, title, hired_date, salary
FROM employees;

다만 이 방식은 쿼리가 다소 장황해집니다. 열이 몇십 개에 달하는 대형 테이블이라면 쿼리가 훨씬 더 길어지겠죠. 바로 이럴 때 *(애스터리스크) 연산자가 유용합니다.

* 연산자는 테이블의 모든 열을 선택하는 와일드카드(wildcard) 연산자로, '전부'라는 의미를 가집니다.

SELECT * FROM employees;

이 쿼리는 employees 테이블에 있는 모든 값을 한 번에 보여 줍니다.

idnametitlehired_datesalary
1Thomas CarltonSales Representative09-08-201929400
2Lisa NelsonSales Representative12-09-201929400
3Victoria CarlisleSales Director04-02-201737800

간편하지만, 운영 환경에서는 불필요한 열까지 조회되어 성능 저하의 원인이 될 수 있으므로 실무에서는 필요한 열만 명시적으로 지정하는 것이 좋은 습관입니다.

조건에 맞는 데이터 선택하기

WHERE 절을 함께 사용하면 특정 조건 또는 여러 조건을 만족하는 데이터만 선택할 수 있습니다.

예를 들어, 직급(title)이 영업 사원(Sales Representative)인 직원 목록만 찾고 싶다고 해 보겠습니다. 이때 WHERE 절을 사용하면 다음과 같이 작성할 수 있습니다.

SELECT * FROM employees
WHERE title = 'Sales Representative';

이 쿼리는 employees 테이블의 모든 열을 조회하되, title 값이 'Sales Representative'인 레코드만 반환합니다. 실행 결과는 다음과 같습니다.

idnametitlehired_datesalary
1Thomas CarltonSales Representative09-08-201929400

WHERE 절은 비교 연산자(=, <, > 등)와 논리 연산자(AND, OR)를 조합해 훨씬 더 복잡한 조건 검색도 가능하게 해 줍니다. WHERE 절의 다양한 활용법은 별도의 심화 튜토리얼에서 확인할 수 있습니다.

마무리

지금까지 SELECT 문의 핵심 내용을 정리해 보면 다음과 같습니다.

  • SELECT 문은 데이터베이스 테이블에서 레코드를 조회하는 구문이다.
  • 열 이름을 쿼리에 명시하면 특정 열만 선택할 수 있다.
  • 와일드카드 연산자(*)를 사용하면 테이블의 모든 열을 한 번에 조회할 수 있다.
  • WHERE 절을 추가하면 조건을 만족하는 행만 골라서 가져올 수 있다.

이해했는지 확인할 수 있는 간단한 과제를 드립니다. 다음 결과를 출력하는 SELECT 쿼리를 직접 작성해 보세요.

  • 직원 이름 목록 조회하기
  • 직급이 'Sales Director'인 직원 목록 조회하기
  • 직원의 직급(title)과 급여(salary) 목록 조회하기

이제 여러분도 SQL 전문가처럼 SELECT 문을 자유롭게 사용할 준비가 되었습니다!