SQL로 시작하는 데이터분석 첫걸음
Where
연산자 종류
비교: =, !=, >, >=, <, <=
기타 주요 연산자
BETWEEN: WHERE speed BETWEEN A AND B
IN: Where type IN ('b', 'n') => OR로 보면 된다.
NULL: IS NULL or IS NOT NULL 만 = or != 사용X
-> 논리
And: Where speed <= AND type= ?
OR: where type='bug' OR type= ?
NOT: where speed <= AND NOT(type=?)
컬럼이름(복수개 입력가능) ASC (기본조건) 반대는 DESC (내림차순)
ex. ORDER BY attack DESC, defense 첫 컬럼부터 차례대로 정렬조건에 맞게 진행 첫 정렬에서 값이 같은 애들만 두번째 조건에서 정렬이 일어남.
번호로도 컬럼 지정가능 ex. ORDER BY 3 DESC, 4;
RANK () OVER (ORDER BY 컬럼이름) ->쿼리 안에서만 유효 테이블엔 영향 X, SELECT 절에 위치
=> A가 몇변째인지 알아내는...
여러개면 가장 빠른 순번, 없다면 0 반환
SUBSTRING: SUBSTRINg("ABC", n)
=> n번째 문제부터 반환, 이것도 컬럼이름 사용 가능
n이 문자열보다 크면 NULL 반환
RIGHT, LEFT: 오른쪽or 왼쪽에서 n번쨰까지
UPPER, LOWER: 소->대문자. 대->소문자
LENGTH: 문자열 길이 반환
CONCAT: 문자열 합치기
REPLACE: REPLACE("ABC", "A", "Z")
=> A를 Z로 바꿔
ABS(숫자) -> 절댓값 반환
CEILING, FLOOR: 숫자를 정수로 올림/내림 반환
ROUND, TRUNCATE: (숫자, 자릿수): 소숫점 자릿수까지 반올림/버림해서 반환
POWER: (숫자A, 숫자B) => A^B
MOD: A/B 의 나머지
NOW(날짜와 시간), CURRENT_DATE, CURRENT_TIME
YEAR, MONTH, MONTHNAME ex. YEAR(NOW())
DAYNAME, DAYOFMONTH, DAYOFWEEK(날짜의 요일: 일요일은 1), WEEK(해당 연도에 몇번째 주)
HOUR, MINUTE, SECOND
DATA_FORMAT(날짜/시간,형식): 날짜/시간을 다른 형식으로 바꿔서 ('1996-11-06 15:34:58','%Y년 %m월 %d일 %H시 %i분 %s초')
DATEDIFF, TIMEDIFF 날짜, 시간 차이
SELECT 컬럼이름, -- , 그룹함수
FROM 테이블 이름
WHERE 조건식
GROUP BY 컬럼 이름
HAVING 조건식
갑자기 난이도가 올라간 2주차 SQL 강의 정리 끝 _.