SELECT 'hello';
SELECT 2;
SELECT 3 + 7;
SELECT A
FROM 테이블이름;
SELECT A, B
FROM 테이블이름;
SELECT * # 모든특성
FROM 테이블이름;
SELECT A, B
FROM 테이블이름
WHERE A = 특정값; # >, <, >=, <= 가능
SELECT A, B
FROM 테이블이름
WHERE B <> 특정값; # B에서 특정값을 제외한 데이터
SELECT A, B
FROM 테이블이름
WHERE A LIKE '문자%'; # 특정 문자로 시작하는 데이터 확인
--------------------
WHERE A LIKE '%문자'; # 특정 문자로 종료하는 데이터 확인
WHERE A LIKE '%문자%'; # 문자 시작 ~ 종료까지 특정 문자 포함 여부 확인
SELECT A, B
FROM 테이블이름
WHERE A IN ("특정값1", "특정값2"); # 특정값과 일치하는 데이터
SELECT *
FROM 테이블이름
WHERE A IS NULL; # 값이 없는 NULL을 찾을 경우
SELECT *
FROM 테이블이름
WHERE A IS NOT NULL # 값이 없는 NULL을 제외하고 찾을 경우
SELECT *
FROM 테이블이름
ORDER BY A;
SELECT *
FROM 테이블이름
ORDER BY A DESC; # 내림차순
SELECT *
FROM 테이블이름
ORDER BY A, B DESC # 다중정렬=A정렬 후 같은값이면 B로 정렬
SELECT *
FROM 테이블이름
LIMIT 10;
SELECT DISTINCT A # 특성A에서 유니크한 값들만 선택
FROM 테이블이름;
SELECT
DISTINCT # 특성A, B, C의 유니크한 조합 값들을 선택
A
, B
, C
FROM 테이블이름;
※ SQLite 에서는 RIGHT OUTER JOIN / FULL 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;
SELECT COUNT(*)
FROM 테이블이름
GROUP BY A; # 특성 A를 기반으로 그룹화
(WHERE는 그룹화하기 전에 조회되는 데이터를 필터링)
SELECT COUNT(*)
FROM 테이블이름
GROUP BY A
HAVING COUNT(*) > 10;
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' 으로 분류
# 서브쿼리
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;