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 문을 활용함으로써 원하는 정보를 효과적으로 추출할 수 있게 되며, 이는 데이터베이스를 활용한 정보 관리와 분석의 기초가 됩니다.
'데이타베이스 > MySQL' 카테고리의 다른 글
MySQL 데이터베이스 보안: 안전한 정보 시스템 구축을 위한 필수 가이드 (0) | 2025.04.27 |
---|---|
Java와 MySQL 연동: 데이터베이스 애플리케이션 개발의 기초 (1) | 2025.04.27 |
MySQL 문자열 함수의 모든 것: 데이터 관리의 필수 도구 (0) | 2025.04.27 |
Windows에서 MySQL 설치 가이드 (0) | 2025.04.27 |
MySQL 고급 주제: 저장 프로시저 및 함수의 활용 (0) | 2025.04.27 |