SQL 초보자용 깨끗이 알 수 있는 SQL 4장(검색 결과의 가공)

2808 단어 SQL

소개



그런데 이번에도 옵니다! 깨끗이 아는 SQL3장입니다!
본 기사도 이 가계부 테이블을 소재로 하고 있습니다.


검색 결과 처리



실은 SELECT문에만 가능한 수식이 있습니다.
추출한 검색문을 가공(정렬이나 중복 삭제 등)할 수 있습니다.

검색결과를 처리하는 주요 키워드




비교 연산자
의미


DISTINCT
검색 결과에서 중복 행 제외

ORDERBY
검색결과 순서 재정렬

LIMIT
검색결과에서 건수를 제한하여 취득

UNION
검색결과에 다른 검색결과를 더하기

EXCEPT
검색결과에서 다른 검색결과 빼기

INTERSECT
검색결과와 다른 검색결과에서 중복되는 부분 검색


가득합니다! 빨리 쓰는 방법 설명합니다.

DISTINCT - 중복 행 제외


SELECT DISTINCT 入金額 
  FROM 家計簿

이제 추출한 결과는 중복되지 않습니다!

ORDERBY - 검색 결과 정렬



ASC에서 오름차순, DESC로 내림차순을 설정할 수 있습니다.
다만, 디폴트는 ASC(오름차순)이므로, ASC는 쓰지 않아도 됩니다!
SELECT * 
  FROM 家計簿
ORDER BY 出金額

가계부 테이블의 출금액이 낮은 순서로 정렬되어 출력됩니다.
SELECT * 
  FROM 家計簿
ORDER BY 出金額 DESC  ←DESCを追加

가계부 테이블의 출금액이 높은 순서로 정렬되어 출력됩니다.

여러 열로 정렬



예를 들어 입금액의 내림차순으로 정렬한다. 입금액이 동일한 행에 대해서는
또한 출금액 내림차순으로 정렬하는 여러 열을 정렬 할 수 있습니다.
SELECT * 
  FROM 家計簿
ORDER BY 入金額 DESC, 出金額 DESC  ←複数の列

열 번호를 지정한 정렬



ORDER BY에서는, 정렬의 기준으로 하는 열을 열명이 아니고 열 번호로 지정하는 것도 가능.

열 번호란, 선택예 리스트에 있어서의 열의 순서로, SELECT명령에 기술한 순서로 1부터 카운트합니다.
SELECT * 
  FROM 家計簿
ORDER BY 4 DESC, 5 DESC

(ORDER BY 입금액 DESC, 출금액 DESC ) 이 문장과 같습니다.

LIMIT - 처음부터 몇 줄만 가져옵니다.



LIMIT 취득 행수 (OFFSET 선두로부터 제외하는 행수)

실제로 해보겠습니다.
출금액이 높은 순서로 3건 취득
SELECT 費目, 出金額 
FROM 家計簿
ORDER BY 出金額 DESC LIMIT 3

세 번째로 높은 출금액만 취득
SELECT 費目, 出金額 
FROM 家計簿
ORDER BY 出金額 DESC LIMIT 1 OFFSET 2

여기에서 두 테이블을 다룰 때 사용할 집합 연산자 소개



데이터 수가 많아서 2 개의 테이블로 나눌 때 SELECT 문을 2 개의 테이블에 넣는 것은 번거롭기 때문에
단번에 해보자! 할 수있는 것
※集合演算子は、選択列リストと列数のそれぞれのデータ型が一致していないといけない。

UNION - 두 가지 결과를 더한 것



가계부 테이블과 가계부 아카이브 테이블이 2개 있었을 때.
SELECT 費目,入金額,出金額 FROM 家計簿
UNION
SELECT 費目,入金額,出金額 FROM 家計簿アーカイブ
ORDER BY 2,3,1

EXCEPT(엑셉트) - 최초의 검색 결과로부터 다음의 검색 결과와 중복하는 것을 제거한 것


SELECT 費目 FROM 家計簿
EXCEPT
SELECT 費目 FROM 家計簿アーカイブ

INTERSECT - 두 개의 검색 결과에서 중복되는 것 (공통 행을 수집)


SELECT 費目 FROM 家計簿
INTERSECT
SELECT 費目 FROM 家計簿アーカイブ

요약



· 검색 결과를 가공하고, 취득 데이터를 여러가지 가공할 수 있다.
· 집합 연산자를 사용하여 두 테이블에서 쉽게 데이터를 얻을 수 있습니다.

참고 기사


  • 깨끗이 아는 SQL 입문 드릴
  • 좋은 웹페이지 즐겨찾기