SQL

3132 ワード

命令語


1.SELECT:データセットに含まれる属性を指定する

SELECT 'hello';

SELECT 2;
SELECT 3 + 7;

2.FROM:その結果をエクスポートするデータベーステーブルを指定する

SELECT A
FROM 테이블이름;

SELECT A, B
FROM 테이블이름;

SELECT *    # 모든특성
FROM 테이블이름;

3.WHERE:フィルタとして使用されるクエリー文

SELECT A, B
FROM 테이블이름
WHERE A = 특정값;    # >, <, >=, <= 가능

SELECT A, B
FROM 테이블이름
WHERE B <> 특정값;    # B에서 특정값을 제외한 데이터

SELECT A, B
FROM 테이블이름
WHERE A LIKE "%특정 문자열%";    # A에서 특정 값과 비슷한 값들을 필터링

SELECT A, B
FROM 테이블이름
WHERE A IN ("특정값1", "특정값2");	# 특정값과 일치하는 데이터
 
SELECT *
FROM 테이블이름
WHERE A IS NULL;	# 값이 없는 NULL을 찾을 경우

SELECT *
FROM 테이블이름
WHERE A IS NOT NULL    # 값이 없는 NULL을 제외하고 찾을 경우

4.ORDER BY:データ結果のソート(デフォルトは昇順)

SELECT *
FROM 테이블이름
ORDER BY A; 	

SELECT *
FROM 테이블이름
ORDER BY A DESC;	# 내림차순

5.LIMIT:データ結果の数を確定する

SELECT *
FROM 테이블이름
LIMIT 10;

6.DISTINCT:独自の値を取得

SELECT DISTINCT A    # 특성A에서 유니크한 값들만 선택
FROM 테이블이름;

SELECT
	DISTINCT	# 특성A, B, C의 유니크한 조합 값들을 선택
    	A
        , B
        , C
FROM 테이블이름;

7.JOIN:共通部分のみ接続



※SQLiteはRIGHT OUTER JOIN/FLL OUTER JOINをサポートしていません
# INNER JOIN(JOIN 또는 INNER JOIN 사용)
SELECT *
FROM 테이블1
JOIN 테이블2 ON 테이블1.특성A = 테이블2.특성B;

# OUTER JOIN

# LEFT INCLUSIVE
SELECT *
FROM 테이블1
LEFT OUTER JOIN 테이블2 ON 테이블1.특성A = 테이블2.특성B;

# RIGHT INCLUSIVE
SELECT *
FROM 테이블1
RIGHT OUTER JOIN 테이블2 ON 테이블1.특성A = 테이블2.특성B;

8.GROUP BY:データの分類とグループ化クエリー

SELECT COUNT(*)
FROM 테이블이름
GROUP BY A; 	# 특성 A를 기반으로 그룹화

9.HAVING:パケット結果値のフィルタリング


(WHEREはパケット化前にクエリのデータをフィルタリングする)
SELECT COUNT(*)
FROM 테이블이름
GROUP BY A
HAVING COUNT(*) > 10; 

10.CASE:if文などの機能

SELECT CASE
	WHEN CustomerId <= 30 THEN 'GROUP 1'
	WHEN CustomerId <= 50 THEN 'GROUP 2'
	ELSE 'GROUP 3'
    END
FROM customers

# 30 이하인 경우에는 'GROUP 1'
31부터 50 사이인 경우에는 'GROUP 2'
51 이상은 'GROUP 3' 으로 분류

11.SUBQUERY:その他の問合せ文を含む


(SELECT、FROM、WHERE等に使用可能)
# 서브쿼리
SELECT customers.LastName ,
       (SELECT COUNT(*) 
       FROM invoices 
       WHERE customers.CustomerId = invoices.CustomerId) AS InvoiceCount
FROM   customers;

# JOIN 사용
SELECT c.LastName , COUNT(*) AS invoceCount
FROM customers c
JOIN invoices i 
ON   c.CustomerId == i.CustomerId
GROUP BY c.CustomerId;

SELECT操作手順

  • FROM
  • WHERE
  • GROUP BY
  • HAVING
  • SELECT
  • ORDER BY