[SQL] SQL DML 기초(2)

업데이트:     Updated:

카테고리:

태그:

SQL DML 기초 2편

고급 SELECT

[SQL DML 기초 1편]에서 다루지 않았던 SELECT 절의 다양한 활용법을 배워본다.

Select Top

  • SELECT TOP절은 반환할 레코드 수를 지정하는 데 사용됩니다.
  • 수천 개의 레코드가 있는 대형 테이블에서 유용합니다. 많은 수의 레코드를 반환하면 성능에 영향을 줄 수 있기 떄문입니다.
-- MySQL
SELECT column_name
FROM table_name
WHERE condition
LIMIT number;

-- Oracle 12⬆️
SELECT column_name
FROM table_name
ORDER BY column_name
FETCH FIRST number ROWS ONLY;

MIN(), MAX() 함수

  • MIN() 함수는 선택한 열의 가장 작은 값을 반환합니다.
  • MAX() 함수는 선택한 열의 가장 큰 값을 반환합니다.
SELECT MIN(column_name)
FROM table_name
WHERE condition;

SELECT MAX(column_name)
FROM table_name
WHERE condition;

COUNT(), AVG(), SUM 함수

  • COUNT() 함수는 지정된 기준과 일치하는 행 수를 반환합니다.
  • AVG() 함수는 숫자 열의 평균 값을 반환합니다.
  • SUM() 함수는 숫자 열의 총 합계를 반환합니다.
SELECT COUNT(column_name)
FROM table_name
WHERE condition;

SELECT AVG(column_name)
FROM table_name
WHERE condition;

SELECT SUM(column_name)
FROM table_name
WHERE condition;

와일드카드

  • 와일드카드 문자는 문자열에서 하나 이상의 문자를 대체하는 데 사용됩니다.
  • 와일드카드 문자는 LIKE 연산자와 함께 사용됩니다. LIKE 연산자는 열에서 지정된 패턴을 검색하기 위해 WHERE 절에서 사용됩니다.
  • 데이터베이스 시스템에 따라 와일드카드 문자는 상이합니다. 시스템별 와일드카드 문자 목록을 참고하려면 여기를 클릭하세요.

% 와일드카드

-- "ber"로 시작하는 도시가 있는 모든 고객을 선택합니다.
SELECT * FROM Customers
WHERE City Like 'ber%';

-- 도시에 "es" 문자가 포함된 모든 고객을 선택합니다.
SELECT * FROM Customers
WHERE City Like '%es%';

_ 와일드카드

-- 도시가 임의의 한 문자로 시작하고 그 뒤에 "ondon"이 오는 모든 고객을 선택합니다.
SELECT * FROM Customers
WHERE City Like '_ondon';

-- "L"로 시작하고 임의의 문자, "n", 임의의 문자, "on"이 차례로 오는 도시를 가진 모든 고객을 선택합니다.
SELECT * FROM Customers
WHERE City Like 'L_n_on';

[Charlist] 와일드카드

-- 도시가 "b", "s", "p" 중에 한 문자로 시작하는 모든 고객을 선택합니다.
SELECT * FROM Customers
WHERE City Like '[bsp]%';

-- 도시가 "a", "b", c" 중에 한 문자로 시작하는 모든 고객을 선택합니다.
SELECT * FROM Customers
WHERE City Like '[a-c]%';

[!Charlist] 와일드카드

-- 도시가 "b", "s", "p" 중에 한 문자로 시작하지 않는 모든 고객을 선택합니다.
-- (방법 1)
SELECT * FROM Customers
WHERE City Like '[!bsp]%';

-- (방법 2)
SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';

IN 연산자

  • IN 연산자를 사용하면 WHERE절에 여러 값을 지정할 수 있습니다.
  • IN 연산자는 여러 개의 OR 조건의 줄임말입니다.
-- (방법 1)
SELECT column_name
FROM table_name
WHERE column_name IN (value1, value2, ...);

-- (방법 2)
SELECT column_name
FROM table_name
WHERE column_name IN (SELECT STATEMENT);

BETWEEN 연산자

  • BETWEEN 연산자는 주어진 범위 내에서 값을 선택합니다. 값은 숫자, 텍스트 또는 날짜일 수 있습니다.
  • BETWEEN 연산자는 포괄적입니다: 시작 값과 끝 값을 포함합니다.
  • 기본 문법은 다음의 SQL문을 확인하세요.
SELECT column_name
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

NOT BETWEEN

  • 범위를 벗어난 제품을 표시하려면 NOT BETWEEN을 사용합니다.
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN value1 AND value2

Alias

  • Alias는 테이블 또는 테이블의 열에 임시 이름을 지정하는 데 사용됩니다.
  • 별칭은 해당 쿼리 기간 동안에만 존재합니다.
  • 별칭은 AS 키워드로 생성됩니다.
-- 별칭 열
SELECT column_name AS alias_name
FROM table_name;

-- 별칭 테이블
SELECT column_name
FROM table_name AS alias_name;

UNION 연산자

  • UNION 연산자는 둘 이상의 SELECT 명령문의 결과 집합을 결합하는 데 사용됩니다.
  • 각각의 SELECT 명령문의 결과 집합은 같은 수의 열이 있어야 합니다.
  • 또한 열의 순서와 유형도 같아야 합니다.
  • UNION 연산자는 기본적으로 고유한 값만 선택합니다. 중복 값을 허용하려면 UNION ALL 연산자를 사용합니다.
-- UNION
SELECT column_name FROM table1
UNION
SELECT column_name FROM table2

-- UNION ALL
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2

GROUP BY

  • GROUP BY문은 동일한 값을 가진 행을 요약 행으로 그룹화합니다.
  • GROUP BY 명령문은 종종 집계 함수( COUNT(), MAX(), MIN(), SUM(), AVG() )와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화합니다.
SELECT column_name
FROM table_name
WHERE condition
GROUP BY column_name

HAVING

  • GROUP BY문에 의해 공통적인 데이터들끼리 묶인 그룹 중, 주어진 조건에 맞는 그룹들을 추출합니다.
  • WHERE 절에서는 집계 함수 사용을 할 수 없지만, HAVING 절에서는 집계 함수 사용이 가능합니다.
SELECT column_name
FROM table_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_name

SQL 구문 해석 순서

  1. FROM table_name
  2. WHERE codition
  3. GROUP BY column_name
  4. HAVING condition
  5. SELECT column_name
  6. ORDER BY column_name

📌 출처

W3schools-SQL 튜토리얼-SQL Select Top ~ SQL Having


👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄

맨 위로 이동하기

SQL 카테고리 내 다른 글 보러가기

댓글남기기