반응형

상위 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

+ Recent posts