참치코더의 꿈 메모장

2021/07/10 ORACLE- WHERE 절 & WHERE 절 주 연산자 본문

Oracle

2021/07/10 ORACLE- WHERE 절 & WHERE 절 주 연산자

참치깡 2021. 7. 10. 16:37
728x90

WHERE 절 

 

WHERE절은 많은 데이터 중에서 어떤 조건에 일치하는 행만을 골라내어 조회하는데 사용한다.

 

SELECT [조회할 열1 이름],[열 2 이름], ... , [열 N 이름]

FROM [조회할 테이블 이름]

WHERE [조회할 행을 선별할기 위한 조건식]

 

AND, OR 연산자

 

* 테이블 안에 들어 있는 문자 또는 문자열 데이터는 대, 소문자를 구별한다.

 

AND 연산자를 사용하면  A AND B  앞의 조건식 A 와 뒤의 조건식 B의 조건을 충족하는 테이블의 결과를 출력한다.

 

OR 연산자를 사용하면 A OR B 앞의 조건식 A 또는 뒤의 조건식 B 둘중 하나를 만족하거나 둘다를 만족하는 

테이블의 결과를 출력한다.

 

* WHERE절에 사용할 수 있는 조건식의 개수는 사실상 제한이 없다.

 

산술 연산자

 

그냥 흔하게 아는 + - * /

 

WHERE 절의 조건식에도 산술 연산자를 사용할 수 있다.

 

비교 연산자

 

대소 비교 연산자

 

비교 연산자는 

 

연산자 앞뒤에 있는 데이터 값을 비교하는 데 사용한다.

또한 비교 대상인 데이터가 숫자가 아닌 문자열일 때도 사용할 수 있다.

 

> , >= , < , <=

 

* 문자열을 비교할 때 영어 사전처럼 알파벳 순서로 문자열의 '대소'를 비교한다. 

 

A = B : A 값이 B 값과 같을 경우 true, 다를 경우 false 반환

 

A != B OR A <> B OR A ^= B  :  A 값이 B 값과 다를 경우 true, 다를 경우 false 반환

 

논리 부정 연산자(NOT 연산자)

 

A 값이 true일 경우 논리 부정 연산자의 결과 값은 false가 된다. 

반대로 A 값이 false인 경우 논리 부정 연산자의 결과 값은 true가 된다.

 

IN 연산자

 

IN 연산자를 사용하면 특정 열에 해당하는 조건을 여러개 지정할 수 있다.

 

SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름]

FROM [조회할 테이블 이름]

WHERE 열 이름 IN (데이터1, 데이터2, ... 데이터N);

 

BETWEEN A AND B 연산자

 

특정 열 값의 최소, 최고 범위를 지정하여 해당 범위 내의 데이터만 조회할 경우에 대소 비교 연산자 대신 

BETWEEN A AND B 연산자를 사용하면 더 간단하게 표현 가능.

 

SELECT [조회할 열1 이름],[열2 이름], ..., [열N 이름]

FROM [조회할 테이블 이름]

WHERE 열 이름 BETWEEN 최솟값 AND 최대값;

 

LIKE 연산자와 와일드 카드

LIKE 연산자는 이메일이나 게시판 제목 또는 내용 검색 기능처럼 일부 문자열이 포함된 데이터를 조회할 때 사용한다.

 

SELECT *
FROM HR.EMPLOYEES
WHERE EMP_NAME LIKE 'S%';

 

위 조건식에서 사용한 % 기호를 와일드 카드(wild card)라고 한다.

와일드 카드는 특정 문자 또는 문자열을 대체하거나 문자열 데이터의 패턴을 표기하는 특수 문자이다.

 

LIKE 연산자와 함께 사용할 수 있는  와일드 카드는 _와 % 이다.

 

_  : 어떤 값이든 상관없이 한 개의 문자 데이터를 의미 

% : 길이와 상관없이 모든 문자 데이터를 의미 

 

* A\_A%에서 문자 바로 뒤에 있는 _는 와일드 카드 기호로서가 아닌 데이터에 포함된 문자로 인식하라는 의미이다.

 

LIKE 연산자와 와일드 카드 문자의 성능 

 

* 실무에서 LIKE 연산자를 사용하지는 않는다 , 성능이 떨어지기때문 

 

IS NULL 연산자 , IS NOT NULL 연산자

특정 열 또는 연산의 결과값이 NULL인지 여부를 확인하려면 IS NULL 연산자를 사용해야 한다.

그 반대의 경우는 IS NOT NULL 연산자를 사용한다.

 

집합 연산자

 

SQL문에서는 SELECT문을 통해 데이터를 조회한 결과를 하나의 집합과 같이 다룰 수 있는 집합 연산자를 

사용할 수 있다.

 

UNION 연산자라고도 한다.

 

* UNION연산자를 사용할 때 SELECT 문이 출력하려는 열 개수와 각 열의 자료형이 순서별로 일치해야 한다.

*주의 해야 하는게 자료형만 같으면 쓰레기 값이 들어가도 출력이 되기 때문에 조심해야 한다.

*최종 출력되는 열 이름은 먼저 작성한 SELECT 문의 열 이름으로 표기된다.

 

UNION : 연결된 SELECT문의 결과 값을 합집합으로 묶어 준다. (결과 값의 중복은 제거된다)

UNION ALL : 연결된 SELECT 문의 결과 값을 합집합으로 묶어 준다. (중복값 제거 X)

MINUS : 먼저 작성한 SELECT 문의 결과 값에서  다음 결과 값을 차집합 처리 한다.

INTERSECT : 먼저 작성한 SELECT 문과 다음 SELECT 문의 결과 값이 같은 데이터만 출력한다

 

*먼저 수행해야 하는 연산식을 소괄호( )로 묶어 주면 연산자의 기본 우선순위와는 별개로

괄호 안의 연산식을 먼저 수행한다.

728x90

'Oracle' 카테고리의 다른 글

2021/07/13 Oracle - 함수  (0) 2021.07.13
2021/07/13 Oracle - 날짜 & BFILE , BLOB  (0) 2021.07.13
2021/07/12 Oracle - 자료형  (0) 2021.07.12
20210708 ORACLE SQL _ SELECT문  (0) 2021.07.08
21.07.07 Oracle DB - SQL(1)  (0) 2021.07.07
Comments