Programming

SQL 기초 완전 정리: SELECT부터 WHERE, DISTINCT, LIKE, NULL, 집계함수까지

Lucas.Kim 2025. 12. 8. 11:12
반응형

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 활용을 다룹니다.

반응형