데이타베이스/MySQL

SQL의 기초: SELECT 문 완벽 가이드

shimdh 2025. 4. 27. 17:50
728x90

SQL(Structured Query Language)은 데이터베이스에서 데이터를 조회하고 조작하는 데 필수적인 언어입니다. 그 중에서도 SELECT 문은 가장 기본적이고 중요한 명령어로, 데이터베이스에서 원하는 정보를 효율적으로 검색할 수 있게 해줍니다. 이번 포스트에서는 SELECT 문의 기본 구조부터 다양한 활용 방법까지 자세히 살펴보겠습니다.

1. SELECT 문의 기본 구조

SELECT 문의 기본 구문은 다음과 같습니다:

SELECT 열1, 열2, ...  
FROM 테이블명;
  • 열1, 열2: 가져오고 싶은 데이터의 컬럼 이름으로, 여러 개의 열을 동시에 선택할 수 있습니다.
  • 테이블명: 데이터를 조회할 테이블의 이름으로, 데이터베이스 내에서 특정 정보를 저장하고 있는 구조체입니다.

2. 모든 열 선택하기

모든 열을 선택하려면 별표(*) 기호를 사용할 수 있습니다:

SELECT * FROM employees;

위 쿼리는 employees 테이블에 있는 모든 행과 모든 열의 데이터를 반환합니다. 이는 전체 데이터셋을 한눈에 파악하고자 할 때 유용합니다.

3. 조건부 데이터 조회

WHERE 절을 사용하면 특정 조건을 만족하는 데이터만 선택할 수 있습니다. 예를 들어, 직원 중에서 부서가 'Sales'인 직원만 조회하려면 다음과 같이 작성합니다:

SELECT * FROM employees WHERE department = 'Sales';

이 쿼리는 department 컬럼이 'Sales'인 모든 직원 정보를 반환하며, 이를 통해 특정 부서의 인력 현황을 쉽게 파악할 수 있습니다.

4. 여러 조건 결합하기

여러 조건을 결합할 때는 AND 및 OR 연산자를 사용할 수 있습니다:

SELECT * FROM employees  
WHERE department = 'Sales' AND salary > 50000;

위 쿼리는 부서가 'Sales'이며 급여가 50,000 이상인 직원을 찾습니다. 이를 통해 특정 조건을 만족하는 인재를 선별할 수 있습니다.

5. 정렬된 결과 보기

ORDER BY 절을 사용하면 결과를 특정 기준으로 정렬할 수 있습니다. 예를 들어, 급여에 따라 내림차순으로 정렬하려면 다음과 같이 작성합니다:

SELECT * FROM employees  
ORDER BY salary DESC;

이 쿼리는 급여가 높은 순서대로 직원을 나열하여, 급여 분포를 한눈에 확인할 수 있게 해줍니다.

6. 그룹화와 집계 함수 활용하기

GROUP BY 절은 같은 값들을 그룹화하여 집계 함수를 적용하는 데 유용합니다. 예를 들어 각 부서별 평균 급여를 계산하려면 다음과 같이 할 수 있습니다:

SELECT department, AVG(salary) AS avg_salary  
FROM employees  
GROUP BY department;

이 쿼리는 각 부서의 평균 급여(avg_salary)를 보여주며, 이를 통해 부서 간 급여 차이를 분석할 수 있습니다.

7. DISTINCT 키워드로 중복 제거하기

DISTINCT 키워드를 사용하면 중복된 값을 제거하고 고유한 값만 가져올 수 있습니다:

SELECT DISTINCT department FROM employees;

위 쿼리는 employees 테이블에서 고유한 부서 목록을 반환하여, 데이터의 다양성을 확인할 수 있게 해줍니다.

실습 예제

다음은 위에서 설명한 내용을 바탕으로 한 간단한 실습입니다. 가상의 students라는 테이블이 있다고 가정해 보겠습니다.

id name age major
1 Alice 20 Computer Sci
2 Bob 22 Math
3 Charlie 21 Computer Sci
  • 모든 학생 정보 조회

      SELECT * FROM students;
  • 전공이 Computer Sci인 학생들 조회

      SELECT * FROM students WHERE major = 'Computer Sci';
  • 학생들의 전공 목록 (중복 제거)

      SELECT DISTINCT major FROM students;

각기 다른 상황에 맞춰 다양한 방식으로 SELECT 문을 활용함으로써 원하는 정보를 효과적으로 추출할 수 있게 되며, 이는 데이터베이스를 활용한 정보 관리와 분석의 기초가 됩니다.

728x90