상위 N 개의 레코드만 검색 (정렬과 함께 사용)
Top N : select 절에 사용
select top 5 필드리스트 from 테이블명 where 조건 order by 정렬기준
ex) emp 테이블에서 상위 5명만 검색하세요.
select top 5 * from emp
ex) emp 테이블에서 sal 순으로 내림차순 정렬 후 상위 5명의 데이터를 모두 검색하세요.
select top 5 * from emp order by sal desc
- 동순위 데이터가 있는 경우 (Top 5 한 경우 5위 6위 데이터가 동일한 경우)
top 5 with ties
검색 시 날짜 처리
날짜 처리 함수 getdate() : 현재 시스템의 날짜 시간을 얻어오는 함수
year() : datetime 타입의 필드를 대상으로 (예) 2020-07-22 를 정수로 연도만 반환해줌
year(2020-07-22) --> 2020
month() : datetime 타입의 필드를 대상으로 (예) 2020-07-22 를 정수로 월만 반환해줌
year(2020-07-22) --> 7
day() : datetime 타입의 필드를 대상으로 (예) 2020-07-22 를 정수로 일만 반환해줌
year(2020-07-22) --> 22
Between A and B 구문
where 절에 사용, A이상 B이하
select 필드리스트 from 테이블명 where 필드명 between A and B
ex) 월급이 200이상 300이하인 사람의 모든 값을 검색하세요.
select * rom emp where sal between 200 and 300
IN 연산자 (목록)
where 절에 사용
select 필드리스트 from 테이블명 where 필드명 in (값1, 값2, 값3....)
ex) 부서번호가 10, 20 인 사람의 모든 데이터를 검색
select * from emp where deptno in (10,20)
ex) 부서번호가 10도 아니고 20도 아닌 모든 데이터 검색
select * from emp where deptno not in (10,20)
문자열 비교
like 연산자
select 필드리스트 from 테이블명 where 필드명 like '문자+와일드카드 조합'
와일드 카드
_(underscore) : Any one character
% : Any zero or more
[ ] : [ ]안에 있는 글자들 중 한 문자
[^ ] : ^다음에 있는 글자를 제외한 다른 한 문자
예)
book_ : books / booka / booky 가능
book / booked 불가능
book% : book / books / booked 가능
abook / adbooks / acbooked 불가능
%book% : abook / abooks / book 가능
brook / brooks 불가능
[st]ing : sing / ting 가능
ving / king / k / v / vin 불가능
[b-f]ing : bing / cing / ding / eing / fing 가능
Aing / b / f / ging 불가능
M[^c]% : Mike / many / mickey 가능
Mcdonald / mcatur / m / mc 불가능
ex) emp 테이블에서 이씨 사람의 ename 을 찾으세요
select * from emp where ename like '이%'
ex) emp 테이블에서 ename에 '성' 이 포함되 사람의 ename 을 찾으세요
select ename emp where ename like '%성%'
ex) emp 테이블에서 이름의 두번째 글자는 '성' 이고 그 뒤는 무엇이든 관계 없는 사원의 모든 정보를 찾으세요
select * from where ename like '_성%'
'<DB>' 카테고리의 다른 글
[SQL] Create 문, Insert 문 (0) | 2020.07.29 |
---|---|
[SQL] Select 문 (3) (0) | 2020.07.23 |
[SQL] Select 문 (1) (0) | 2020.07.21 |
DataBase 정의와 DBMS 정의 (0) | 2020.07.20 |