SELECT <col> FROM [table] WHERE [value]
=(greater than or equal to)
select * from company
where symbol = 'AAPL' or symbol = 'MSFT' or symbol = 'TSLA'select * from company
where symbol in('AAPL','MSFT', 'TSLA')SELECT * FROM users
WHERE name LIKE '홍%'; //홍으로 시작하는 이름을 찾아줌SELECT * FROM users
WHERE name NOT LIKE '%현서%'; //현서가 포함되지 않은 이름 검색해줌SELECT * FROM company
WHERE year BETWEEN 2010 AND 2011 //2010~2011 범위에 해당하는 값 반환ORDER BY문의 기본 형식
SELECT [열] FROM [테이블] WHERE [열] = [조건값] ORDER BY [열] [ASC, DESC]
SELECT * FROM company
WHERE sector IS NOT NULL sector <> ''
ORDER BY sector ASC, symbol DESC
WHERE sector IS NOT NULL AND sector <> '' : sector열의 값이 NULL이 아니고, 빈 문자열('')이 아닌 레코드를 필터링한다.ORDER BY sector ASC, symbol DESC: sector열을 기준으로 오름차순(ASC)으로 정렬하고, 같은 sector값을 가진 행들에 대해서는 symbol열을 기준으로 내림차순(DESC)으로 정렬한다.ORDER BY로 데이터를 정렬한 다음, 상위나 하위가 아닌 특정 구간의 데이터를 검색해야 하는 경우도 있다.
게시판을 예로 들면, 최근에 작성한 글이 첫 페이지에 나타나기 마련인데 2페이지나 3페이지에 있는 데이터를 보고 싶은 경우를 말한다.
이럴 땐 OFFSET ... FETCH NEXT를 이용한다.
SELECT * FROM company
ORDER BY symbol
OFFSET 1000 ROWS //1000개의 데이터를 건너뛰고 출력
FETCH NEXT 10 ROWS ONLY // 1001번째부터 10개의 데이터만 출력
FETCH NEXT는 반드시 OFFSET과 함께 사용해야 한다.
출력할 행의 개수를 지정할 수 있다. 게시판을 예로들면 한 페이지에 10개만 보여주는 기능과 같다.
GROUP BY와 HAVING 문의 기본 형식은 다음과 같다.
SELECT [열] FROM [테이블] WHERE [열] = [조건값] GROUP BY [열] HAVING [열] = [조건값]
GROUP BY: 데이터를 그룹화하는 구문이다.[열] : 그룹화 기준의 열 이름을 지정한다. 1개 이상 그룹화할 수 있다.HAVING : WHERE과 비슷한 기능을 하며 그룹화된 결과의 필터링 기능을 한다. [조건값]: HAVING 필터에 적용할 조건값을 입력한다.SELECT sector, industry FROM company
GROUP BY industry, sector
industry열로 우선 그룹화한 다음 sector열 순서로 그룹화한 결과를 출력한다.
SELECT sector, COUNT(*) AS cnt FROM company
GROUP BY sector
sector 열 기준으로 그룹화한 각 행의 개수를 검색해주는 쿼리이다.
AS cnt를 붙였는데, 이는 개수를 센 결과를 출력할 때 열 이름을 cnt로 한다는 뜻이다.
SELECT sector, industry FROM company
GROUP BY sector, industry
HAVING industry = 'Advertising'
HAVING문은 SELECT문이나 GROUP BY문에 사용한 열에만 적용할 수 있다.
위 코드는 sector, industry열을 기준으로 그룹화한 데이터에서 industry가 'Advertising'인 데이터만 검색한다.