알골의세계정복

[MSSQL] SELECT 문 기초 본문

Etc..

[MSSQL] SELECT 문 기초

알고르 2015. 6. 14. 14:57
반응형

SQL을 Select Query Language라고 할 정도로 SELECT의 역할은 중요하다. DB에 저장된 수 많은 데이터에서 내가 원하는 정보를 꺼내는 SELECT 문, 그 기초에 대해서 알아보도록 하자.

SELECT    select_list
(INTO)       table_name
FROM       source_table_name
WHERE     search_condition
GROUP BY    group_by_expression
HAVING        seach_condition
ORDER BY    order_expression

 

기본적인 SELECT 문

SELECT 문의 가장 기본은 SELECT / FROM / WHERE 이다.

SELECT     나열할 컬럼 목록
FROM         가져올 테이블
[WHERE    가져올 행의 조건]

나열할 컬럼 목록에 전체 컬럼을 가져올 때 : *
일부 컬럼만을 가져올 때 : EXEC sp_help 테이블명, EXEC sp_columns 테이블명 

 

임의의 컬럼 만들기

SELECT '책 번호 : ', title_id FROM titles;

- '책 번호' 라고 채워진 하나의 컬럼이 만들어진다.

 

컬럼 제목 바꾸기

SELECT title_id Title_no, Title_no = title_id, title_id AS Title_no, title_id AS [Title_no] FROM titles;

- as를 넣어도 되고, 빼도 된다.
- '=' 를 사용하게 되면 순서가 바뀐다.
- 제목에 공백이 있다면, '[' 와 ']' 를 사용하도록 하자. 따옴표를 사용해도 된다.

 

조건에 맞는 행 가져오기

=, >, <, >=, <=, <>, !=, !>, !<, IS NULL, IS NOT NULL

price IS NULL,  price IS NOT NULL

 

정렬

ORDER BY column_list [ASC/DESC]

 

몇 개만 검색하기(TOP n)

SELECT TOP 5 title_id FROM titles;

같은 순위의 것을 모두 가져오고 싶으면 : WITH TIES (TOP 5 WITH TIES title_id)
퍼센트를 사용하고 싶으면 : PERCENT (TOP 5 PERCENT title_id)

 

범위

BETWEEN ... AND ...

WHERE qty BETWEEN 10 AND 20    or  qty >= 10 and qty <= 20

 

목록

WHERE title_id IN ('BU1032', 'BU1111')

 

문자열 / LIKE와 패턴 매칭

WHERE title LIKE 'computer%'

_ : 어떤 것이든 한 문자가 와야 한다.
% : 아무것도 없는 경우를 포함하여 어떤것이 와도 상관없음
[] : [] 안에 문자
[^] : ^다음에 있는 문자 제외

 

중복된 행 제거 - DISTINCT

 

WHERE 절 을 사용할 때 고려할 것

- * 를 사용하지 말자. 전체 컬럼을 조회하는 것을 최대한 자제해라.
- 조건 검색 시, 연산자 앞에는 컬럼만 오도록 하자.

반응형
Comments