본문 바로가기
DATABASE/ORACLE

[Oracle] SQL LIKE / SORT

LIKE / SORT








LIKE 연산자는 검색하고자 하는 값을 정확히 모를 경우에도 검색 가능하도록 하기 위해서 와일드 카드와 함께 사용하여 원하는 내용을 검색 하도록 한다.


형식 : column_name LIKE pattern


와일드 카드 

의미 

% 

문자가 없거나, 하나 이상의 문자가 어떤 값이 와도 상관없다. 

_

하나의 문자가 어떤 값이 와도 상관없다. 



와일드 카드 %

찾으려는 이름이 F로 시작 하는 것은 알지만 그 뒤의 문자는 모를 경우

SELECT *FROM EMP WHERE ENAME LIKE 'F%';


F가 이름 안에 포함될 때

SELECT *FROM EMP WHERE ENAME LIKE '%F%';


F로 끝이 날 때

SELECT *FROM EMP WHERE ENAME LIKE '%F';





와일드 카드 _

※ %와 마찬가지로 어떤 문자가 오든 상관 없다, 차이점은 %는 몇개의 문자가 오든 상관 없지만, _는 단 한문자에 대해서만 와일드 카그 역할을 한다.


두번째 글자가 A인 사원 이름 찾기

SELECT *FROM EMP WHERE ENAME LIKE _A%;


세번째 글자가 A인 사원 이름 찾기

SELECT *FROM EMP WHERE ENAME LIKE _ _A%;





NOT LIKE 연산자

A를 포함하지 않은 데이터를 출력하고 싶을 때

SELECT *FROM EMP WHERE ENAME NOT LIKE '%A%';





NULL 연산자

SELECT *FROM EMP WHERE COMM=NULL:


※ NULL 값을 가진 데이터와 비교연산한 결과는 '선택된 레코드가 없습니다.' 라고 나온다.

NULL이 저장되어 있는 경우에는 = 연산자로 판단 할 수 없다.


IS NULL 연산자를 사용해야 한다.

형식 : 대상컬럼 IS (연산자) NULL (비교값)


커미션을 받지 않는 사원을 검색

SELECT *FROM EMP WHERE COMM IS NULL;





정렬을 위한 ORDER BY 절


정렬이란 크기 순서대로 나열하는 것을 의미

● 오름차순 정렬 방식 : 작은 것이 위에 출력되고 아래로 갈수록 큰 값이 출력, 디폴트로 오름 차순으로 지정되어 있음

● 내림차순 정렬 방식 : 큰 값이 위에 출력되고 아래로 갈수록 작은 값이 출력

● 로우를 정렬하기 위해서는 SELECT 문에 ORDER BY 절을 추가하고 어떤 컬럼을 기준으로 어떤 정렬을 할 것인지 결정 해야 한다.



 

 오름차순(ASC)

내림차순(DESC)

숫자 

작은 값부터 정렬 

큰 값부터 정렬 

문자 

사전 순서로 정렬 

사전 반대 순서로 정렬 

날짜 

빠른 날짜 순서로 정렬 

늦은 날짜 순서로 정렬 

NULL 

가장 마지막에 나온다 

가장 먼저 나온다 



SELECT * FROM EMP ORDER BY SAL ASC;


SELECT *FROM EMP ORDER BY SAL: (디폴트로 오름차순 정렬)


 문자 데이터의 경우 아스키 코드 값을 기준으로 정렬 한다



정렬 방식에도 여러가지 조건을 제시 할 수 있다.


예: 급여가 같은 사람이 존재 할 경우 이름의 철자가 빠른 사람부터 출력 되도록

SELECT *FROM EMP ORDER BY SAL DESC, ENAME ASC;





'DATABASE > ORACLE' 카테고리의 다른 글

[Oracle] SQL 문자 함수  (0) 2018.04.19
[Oracle] SQL 숫자 함수  (0) 2018.04.19
[Oracle] SQL 논리 연산자 / Between in  (0) 2018.04.19
[Oracle] SQL where query (SQL 조건연산자)  (1) 2018.04.19
[Oracle] SQL Operator  (0) 2018.04.18