WHERE
조건: SQL 문에 조건을 추가하며 SELECT 뿐만 아니라 UPDATE 와 DELETE 에도 사용가능# 테이블 내의 특정 칼럼에 대한 데이터를 조회
SELECT column1, column2 FROM tablename;
# 테이블 내의 모든 컬럼에 대한 데이터를 조회
SELECT * FROM tablename;
# 테이블 내에서 조건을 만족하는 데이터 조회
SELECT column1, column2 FROM tablename WHERE condition;
SELECT column1, column2,..
FROM tablename
WHERE condition
GROUP BY column1, column2,..
ORDER BY column1, column2,..;
# crime_status 에서 경찰서별로 그룹화 하여 경찰서 이름을 조회
# DISTINCT와 비슷해보이지만 ORDER BY를 사용할 수 있다
SELECT police_station
FROM crime_status
GROUP BY police_station
ORDER BY police_station
LIMIT 5;
# 경찰서 별로 총 발생 범죄 건수를 검색
SELECT police_station, sum(case_number) 발생건수
FROM crime_status
WHERE status_type LIKE '발생'
GROUP BY police_station
ORDER BY 발생건수 DESC
LIMIT 5;
SELECT column1, column2,..
FROM tablename
WHERE condition
GROUP BY column1, column2,..
HAVING condition (Aggregate Functions)
ORDER BY column1, column2,..;
# 경찰서 별로 발생한 범죄 건수의 합이 4000 건보다 보다 큰 경우를 검색
SELECT police_station, sum(case_number) 발생건수
FROM crime_status
WHERE status_type LIKE '발생'
GROUP BY police_station
HAVING 발생건수 > 4000;
SELET column1, column2
FROM tablename
ORDER BY column1, column2 asc | desc;
# celeb 테이블에서 이름과 나이를 나이의 역순으로 정렬한 뒤 이름순으로 정렬하여 조회
SELECT age, name FROM celeb
ORDER BY age DESC, name ASC;
SELECT CONCAT('string1', 'string2', ..);
SELECT CONCAT('이름: ', name) FROM celeb;
SELECT column AS alias FROM tablename;
SELECT column1, column2 FROM tablename AS alias;
SELECT name AS '이름', agency AS '소속사' FROM celeb;
SELECT CONCAT(name, ' : ', job_title) AS profile FROM celeb;
SELECT CONCAT(s.season, '-', s.episode, '(', s.broadcast_date, ')') '방송정보',
CONCAT(c.name, '(', c.job_title, ')') '출연정보'
FROM celeb c, snl_show s
WHERE c.name= s.host;
SELECT DISTINCT column1, column2.. FROM tablename;
SELECT DISTINCT sex, agency FROM celeb WHERE agency LIKE '%엔터테이먼트' ORDER BY sex, agency;
SELECT column1, column2,..
FROM tablename
WHERE condition
LIMIT number;
# celeb 테이블에서 남자 연예인 중 나이가 가장 많은 2명을 조회
SELECT * FROM celeb WHERE sex='M' ORDER BY age DESC LIMIT 2;
Reference
1) 제로베이스 강의자료