
SQL은 데이터를 다루는 데 있어 가장 핵심적인 언어
데이터를 조회하고 분석할 때 필요한 필수 기능 중 LIKE, 와일드카드, 별칭(alias), 정렬, 중복 제거, 조건문, 데이터 타입 변환까지
조회 조건 값 불명확할 경우 사용한다.
문자, 숫자 모두 조건에 포함할 수 있다.
Wildcard와 같이 사용한다.
SELECT * FROM bike
WHERE weekday LIKE '%ur';
SQL에서 문자열 패턴을 지정할 때 사용하는 기호
% : 0개 이상의 모든 문자 (아무 글자나 몇 개든 상관없음)
_ : 정확히 한 글자 (글자 수를 정할 때 사용)
SELECT * FROM bike
WHERE mnth LIKE 'ma_';
임시로 컬럼명 변경 시 사용한다.
기존 컬럼명의 물리적 변경은 없다.
사용방법
SELECT 컬럼명 AS 별칭
FROM 테이블명 AS 별칭
AS는 생략 가능
대소문자, 공백, 특수문자가 있을 경우 " " 혹은 ' '으로 묶기
SELECT hum AS humidity, temp
FROM bike;
hum 컬럼에 humidity라는 이름을 붙여서 조회
SELECT b.temp, b.hum
FROM bike AS b;
bike 테이블에 b라는 별칭을 붙여 간결하게
SELECT
FROM
WHERE
ORDER BY
LIMIT
때로는 특정 조건에 따라 데이터를 오름차순 또는 내림차순으로 정렬해야 한다.
기본문법
SELECT ...
FROM ...
WHERE ...
ORDER BY 컬럼명 [ASC|DESC];
ASC : 오름차순 (기본값, 생략 가능)
DESC : 내림차순 (생략 불가능)
SELECT dteday, temp, cnt
FROM bike
ORDER BY cnt DESC, temp ASC
LIMIT 100;
데이터에서 중복된 값을 제거하고 고유값만 보고 싶을 때 사용한다.
SELECT DISTINCT 컬럼명
FROM 테이블명;
모든 column을 고려해서 중복을 제거한다.
집계함수도 사용 가능하다
단일 조건에 따라 값을 다르게 반환할 수 있다.
SELECT customer_name,
birthday,
IF(birthday >= '1990-01-01', '이후', '이전') AS '1990년 기준'
FROM customers;
다중 조건이 필요한 경우 CASE WHEN
SELECT customer_name,
credit_limit,
CASE
WHEN credit_limit >= 100000 THEN '10만원 이상'
WHEN credit_limit >= 50000 THEN '5만원 이상'
ELSE '5만원 미만'
END AS limit_group
FROM customers;
데이터 타입 변환 함수
SELECT CAST(컬럼 AS 타입)
FROM 테이블;
사용 가능한 타입:
INT : 정수
FLOAT : 실수
VARCHAR(n) : 최대 n자리 문자열
DATETIME : 날짜/시간