• SELECT, DELETE 등의 작업에서 필터링
  • 여러 조건인 경우 AND 연산자로 연결
-- 일반 조회
SELECT * FROM users;
 
-- 나이가 30세 이상인 사람 조회
SELECT * FROM users WHERE age >= 30;
 
-- 나이가 30세 이상인 사람의 first_name 조회
SELECT first_name FROM users WHERE age >= 30;
 
-- 나이가 30세 이상이고 김씨인 사람들의 나이와 first_name 조회
SELECT age, first_name FROM users
WHERE age >= 30 AND last_name = '김';

  • SELECT 구문에서만 사용

COUNT()

  • 그룹의 항목 수
SELECT COUNT(*) FROM users;

SUM() / AVG()

  • 모든 값의 합계/평균 계산

MAX() / MIN()

  • 그룹의 모든 값의 최대/최솟값

SELECT SUM(col) FROM [table_name];
SELECT AVG(col) FROM [table_name];
SELECT MAX(col) FROM [table_name];
SELECT MIN(col) FROM [table_name];

위의 함수들은 해당 컬럼(col)이 INTEGER인 경우에만 사용 가능


30세 이상인 사람들의 평균 나이

SELECT AVG(age) FROM users WHERE age>=30;

계좌 잔액(balance)이 가장 높은 사람과 그 액수 조회

SELECT first_name, MAX(balance) FROM users;

balance가 가장 높은 record의 정보를 WHERE 조건절 없이 조회 가능


나이가 30 이상인 사람의 계좌 잔액 평균

SELECT AVG(balance) FROM users WHERE age>=30;

  • 패턴 일치를 기반으로 데이터를 조회
  • SQLite는 패턴 구성을 위한 2개의 wildcards 제공
  • whilecard : '%', '_'

  • 구체적인 이름 대신에 여러 파일을 동시에 지정할 목적으로 사용하는 특수 기호
  • 특정한 패턴이 있는 문자열 혹은 파일 탐색, 긴 이름 생략 시 사용
  • 텍스트 값에서 알 수 없는 문자를 사용할 수 있도록 한다.
  • 지정된 패턴 일치를 기반으로 데이터를 수집하는 데 도움

% (percent sign)

  • 0개 이상의 문자
  • 이 자리에 문자열이 있을 수도, 없을 수도 있다.

_ (underscore | underbar)

  • 임의의 단일 문자
  • 이 자리에 반드시 단 하나의 문자가 존재

wildcard pattern 예시

2%            : 2로 시작함
%2            : 2로 끝남
%2%           : 2를 포함
_2%           : 아무 값이 하나 있고, 두 번째가 2로 시작
1___          : 1로 시작하고 총 4자리
2_%_% / 2__%  : 2로 시작하고, 적어도 3자리

문법

SELECT * FROM [table_name] WHERE col LIKE '와일드카드패턴';

users 테이블에서 나이가 20대인 사람

SELECT * FROM users WHERE age LIKE '2_';

users 테이블에서 지역 번호가 02인 사람

SELECT * FROM users WHERE phone LIKE '02-%';

wildcard pattern을 '02%'로 하면 023 지역번호도 포함되므로 범위를 정확히 할 필요가 있다.


users 테이블에서 이름이 '준'으로 끝나는 사람

SELECT * FROM users WHERE first_name LIKE '%준';

users 테이블에서 중간 번호가 5114인 사람

SELECT * FROM users WHERE phone LIKE '%-5114-%';