조건에 맞는 행 가져오기
조건에 맞는 행을 가져오려면 WHERE 절을 사용한다
SELECT title_id, qty FROM sales
중에서 수량이 20 이상인 것만 가져오려면
SELECT title_id, qty FROM sales
WHERE qty >= 20
비교
=, >, <, >=, <=, <>, !=, !>, !<
NULL
만약 NULL값에 대해 어떤 처리를 하고자 한다면 IS [NOT] NULL 또는 =NULL 등으로 조건을 줄수있다
SELECT title_id, price
FROM titles
WHERE price IS NULL
정렬
원하는 컬럼에 대하여 정렬을 하고 싶다면 ORDER BY를 사용한다
SELECT title_id, qty FROM sales
ORDER BY qty
몇 개만 가져오기 (TOP n)
전체 중 일부분의 행만 가져오고 싶다면 TOP n을 사용할 수 있다
SELECT TOP 6 title_id, qty
FROM sales
같은 순위의 것을 모두 가져오고 싶다면 WITH TIES를 사용한다
SELECT TOP 6 WITH TIES title_id, qty
FROM sales
ORDER BY qty DESC
범위
범위를 주고 데이터를 가져올 때는 BETWEEN을 사용한다
SELECT title_id, qty
FROM sales
WHERE qty BETWEEN 10 AND 20
ORDER BY qty
목록
특정한 값들만 가져오려면 IN을 사용한다
SELECT title_id, qty
FROM sales
WHERE title_id IN ('BU1032', 'BU1111', 'MC3021')
문자열 / LIKE와 패턴 매칭
문자열의 비교에 사용되는 pattern matching이라는 것이 있다
패턴 매칭에 사용되는 와일드 카드에 대해 살펴보자
_ : 어떤 것이든 한 문자가 와야한다
% : 아무것도 없는 경우를 포함하여 어떤 것이라도 상관없다
[] : []안에 있는 글자들
[^] : ^ 다음에 있는 글자는 제외한 다른 것이 와야한다
ex)
book_ : books / booka/ booky
book% : book / books / booked
%book% : abook / abooks / book
[st]ring : sing / ting
[b-f]ing : bing / cing / ding / eing / fing
M[^c]% : Mike / Many / Mickey
이것을 like와 함께 사용하면 된다
SELECT title_id, title
FROM titles
WHERE title LIKE '%computer%'
중복된 행 - DISTINCT
둘 이상의 중복된 데이터가 있을때 DISTINCT를 사용한다
SELECT DISTINCT title_id
FROM sales
ORDER BY title_id
WHERE 절을 사용할 때 고려할 것
*를 사용하지 말것 - 많은 부하를 가져오게 된다
연산자 앞에는 컬럼만 오도록한다 - WHERE절에 사용하는 컬럼은 무조건 연산자 왼쪽에 두고 더 이상의 가공을 하지 않도록 하는 것이 좋은 습관이다
적잘한 ()와 띄워쓰기
'SQL' 카테고리의 다른 글
xp_cmdshell (MS SQL Server 2000) (0) | 2009.08.03 |
---|---|
TABLE 정리 스크립트 (0) | 2009.07.24 |
프로시저에서 DTS Package 실행하기 (0) | 2009.07.23 |
SQL 기초 2 (0) | 2009.06.20 |
SQL 기초 1 (0) | 2009.06.19 |