반응형

SQL(Structured Query Language)은 데이터베이스에서 데이터를 조회하고, 정렬하고, 계산하고, 가공할 수 있는 표준 언어입니다. 본 글에서는 SQL의 가장 핵심이 되는 기초 기능들인 SELECT, DISTINCT, WHERE, LIKE, IN, BETWEEN, NULL 처리, 집계 함수(SUM, AVG 등)를 정리합니다.
1. SQL과 테이블(Table)의 기본 개념
- SQL = Structured Query Language
- 데이터베이스(DB)는 여러 개의 테이블(table) 로 구성됩니다.
- 테이블은 행(row, record) + 열(column) 로 구성됩니다.
- 테이블 이름은
- 소문자 사용
- 공백 없이
- 필요한 경우 언더스코어(_) 사용 권장
- 각 행을 고유하게 식별하는 값 → KEY (Primary Key)
2. SELECT 기본
SELECT * FROM tableName;
전체 데이터를 조회할 때 사용합니다.
3. DISTINCT (중복 제거)
SELECT DISTINCT fieldName
FROM tableName;
특정 컬럼의 중복을 제거하여 고유값만 조회합니다.
Aliasing(별칭)도 함께 사용할 수 있습니다.
SELECT DISTINCT author AS unique_author
FROM books;
4. VIEW (가상의 테이블)
VIEW는 저장된 SQL 쿼리이며, 실제 데이터를 저장하지 않습니다.
CREATE VIEW library_authors AS
SELECT DISTINCT author AS unique_author
FROM books;
5. LIMIT (일부 데이터만 조회)
SELECT genre
FROM books
LIMIT 10;
6. COUNT
SELECT COUNT(*) FROM tableName; -- NULL 포함
SELECT COUNT(field) FROM tableName; -- NULL 제외
SELECT COUNT(DISTINCT field) FROM tableName;
예제:
SELECT COUNT(DISTINCT country) AS count_distinct_countries
FROM films;
7. WHERE (조건 필터링)
사용 가능한 연산자
< = >= <= <> (not equal)
SELECT film_id, facebook_likes
FROM reviews
WHERE facebook_likes < 1000
LIMIT 10;
SELECT COUNT(*) AS films_over_100K_votes
FROM reviews
WHERE num_votes >= 100000;
8. Multiple conditions: AND · OR · BETWEEN
SELECT *
FROM films
WHERE language = 'German'
AND release_year > 2000
AND release_year < 2010;
SELECT *
FROM films
WHERE release_year BETWEEN 1990 AND 2000;
SELECT title, release_year
FROM films
WHERE (release_year = 1990 OR release_year = 1999)
AND (language = 'English' OR language = 'Spanish')
AND gross >= 2000000;
9. 텍스트 패턴 검색: LIKE / NOT LIKE / IN
와일드카드
- % : 0개 이상
- _ : 정확히 1개 문자
SELECT name
FROM people
WHERE name LIKE '_r%';
SELECT name
FROM people
WHERE name NOT LIKE 'A%';
IN 사용:
SELECT title, language
FROM films
WHERE language IN ('English', 'Spanish', 'French');
10. NULL 처리 (IS NULL / IS NOT NULL)
SELECT title AS no_budget_info
FROM films
WHERE budget IS NULL;
SELECT COUNT(language) AS count_language_known
FROM films;
11. 집계 함수: AVG, SUM, MIN, MAX, ROUND
SELECT SUM(duration) AS total_duration
FROM films;
SELECT AVG(duration) AS average_duration
FROM films;
SELECT MAX(release_year) AS latest_year
FROM films;
SELECT MIN(duration) AS shortest_film
FROM films;
ROUND 사용:
SELECT ROUND(AVG(facebook_likes), 1) AS avg_facebook_likes
FROM reviews;
이번 글에서는 SQL의 기초 기능을 총정리했습니다. SELECT, DISTINCT, WHERE, LIKE, NULL 처리, 집계 함수는 SQL의 모든 분석 작업의 기초가 되므로 반드시 숙지해야 합니다. 다음 글에서는 ORDER BY, GROUP BY, HAVING, JOIN 등 더 실무적인 SQL 활용을 다룹니다.
반응형
'Programming' 카테고리의 다른 글
| SQL 고급: 윈도우 함수(Window Functions) & 서브쿼리(Subquery) 완전 정복 (1) | 2025.12.08 |
|---|---|
| SQL 중급 완전 정리: ORDER BY, GROUP BY, HAVING, INNER JOIN (0) | 2025.12.08 |
| 파이썬 가상환경(Mac & Windows) 설정 완전 가이드 (0) | 2025.12.08 |
| Matplotlib 완전 정리: 기본 리스트/딕셔너리로 배우는 Line Plot · Scatter Plot · Histogram (0) | 2025.12.08 |
| NumPy 완전 정리: ndarray 생성부터 reshape, axis, 벡터와 행렬 연산까지 한 번에 배우기 (0) | 2025.12.08 |