
SELECT COUNT(column)
FROM tablename
WHERE dondition;
SELECT SUM(column)
FROM tablename
WHERE dondition;
SELECT AVG(column)
FROM tablename
WHERE dondition;
SELECT MIN(column)
FROM tablename
WHERE dondition;
SELECT MAX(column)
FROM tablename
WHERE dondition;
TMI
- 동일값이 여러 개인 경우에도 단 한 개만 반환한다.
TMI2
- MIN과 다른 컬럼을 같이 써서 '강도 발생'이 가장 적은 경찰서는 어디일지 찾아보고 싶었다.
SELECT에 MIN과 타 컬럼을 같이 썼더니, 엉뚱한 결과값이 나왔다.
(위에 강도 발생이 가장 적은 경찰서는 중부라고 나오는데, 중부경찰서의 강도발생 건수는 3건이었다.
SELECT column1, column2, ...
FROM tablename
WHERE condition
GROUP BY column1, column2, ...
ORDER BY column1, column2, ...;
GROUP BY, ORDER BY 뒤에는 컬럼 이름을 써도 되지만, SELECT에 사용한 순서대로 숫자만 써도 된다.
SELECT police_station, AVG(case_number) 평균건수 FROM crime_status WHERE (crime_type LIKE '폭력' OR crime_type LIKE '절도') AND status_type LIKE '발생' GROUP BY 1 ORDER BY 2;
SELECT column1, column2, ...
FROM tablename
WHERE condition
GROUP BY column1, column2, ...
HAVING condition (Aggregate Functions)
ORDER BY column1, column2, ...;
SELECT MID(string, start_position, length)
SELECT ROUND(number, decimals_place)
NOW: 현재 날짜, 시간 표시
TMI
SELECT NOW()를 했을 때 현재 시간과 다르게 나올 수 있다.
이는 mysql에서 time zone 세팅으로 인한 차이이다.
- time zone 세팅값 확인
select @@system_time_zone, @@global.time_zone, @@session.time_zone;
- time zone 세팅
SET time_zone='Asia/Seoul';TMI2
system_time_zone은 가장 높은 단계의 설정값으로, OS에 설정된 시간대 정보를 가져와 설정한다.
global.time_zone은 mysql 서버(인스턴스)에 설정된 설정값
session.time_zone은 현재 임의로 설정된 설정값으로, 재접속시 (global_timezone)으로 초기화위 방법으로 time zone 설정시 session.time_zone이 변경된다.
FORMAT: 천 단위 콤마 형식으로 변환
ROUND는 반환값이 숫자인 대신, FORMAT은 문자로 반환한다. (비교 불가능)
SELECT FORMAT(number, decimals_place) # decimals_place는 소수점 표시 위치. 숫자가 없으면 0으로 채워서 표시한다.