IT/SQLD(SQL개발자)

[SQLD] WHERE

pandada 2019. 6. 27. 10:18
반응형

WHERE

 

WHERE 절 

  - 두 개 이상의 테이블에 대한 Join 조건을 기술하거나 결과를 제한하기 위한 조건을 기술 할 때.

SELECT 칼럼명 FROM 테이블명 WHERE 조건식;

  - WHERE 절은 FROM 절 다음에 위치한다.

  - Column명은 보통 조건식의 좌측에 위치한다.

  - 비연산자

  - 문자, 숫자, 표현식 (보통 조건식의 우측에 위치)

  - 비교 칼럼명(Join 사용 시)

 

연산자 종류

  비교연산자나 논리 연산자는 아실거라고 생각하고 이 2개는 빼고 서술하겠습니다.

 

연산자의 종류

구분

연산자 

연산자 의미 

SQL 

연산자 

Between A and B 

A와 B의 값 사이에 있으면 된다. (A와 B값 포함) 

IN (list) 

List에 있는 값 중에서 어느 하나라도 일치하면 된다. 

Like '문자열' 

문자열과 형태가 일치하면 된다. (%, _ 사용) 

IS NULL 

NULL 값인 경우 

 부정 

 비교 

연산자

!= 

같지 않다. 

^= 

같지 않다. 

<> 

같지 않다.(ISO 표준, 모든 운영체제에서 사용 가능) 

NOT 칼럼명 =  

~와 같지 않다. 

NOT 칼럼명 > 

~보다 크지 않다. 

 부정 

 SQL 

연산자

Not Between A and B 

A와 B의 값 사이에 있지 않다. (A와 B 값을 포함하지 않는다.) 

NOT IN (list) 

list 값과 일치하지 않는다. 

IS NOT NULL 

NULL 값을 같지 않는다. 

 

 

연산자 우선순위

 연산 우선 순위

설명 

 괄호 () 

 NOT 연산자 

 비교 연산자, SQL 비교 연산자 

 AND 

 OR 

 

 

비교 연산자

 

문자 유형 비교 방법

구분

비교 방법 

비교 연산자의 양쪽이 모두 CHAR 유형 타입인 경우  

길이가 서로 다른 CHAR형 타입이면 작은 쪽에 SPACE를 추가하여 길이를 같게 한 후에 비교한다. 

서로 다른 문자가 나올 때까지 비교한다. 

달라진 첫 번째 문자의 값에 따라 크기를 결정한다. 

BLACK의 수만 다르다면 서로 같은 값으로 결정한다. 

 비교 연산자의 어느 한 쪽이 VARCHAR 유형 타입인 경우

서로 다른 문자가 나올 때까지만 비교한다. 

길이가 다르다면 짧은 것이 끝날 때까지만 비교한 후에 길이가 긴 것이 크다고 판단한다. 

길이가 같고 다른 것이 없다면 같다고 판단한다. 

VARCHAR는 NOT NULL까지 길이를 말한다. 

 상수 값과 비교할 경우

상수 쪽을 변수 타입과 동일하게 바꾸고 비교한다. 

변수 쪽이 CHAR 유형 타입이면 위의 CHAR유형 타입의 경우를 적용한다. 

변수 쪽이 VARCHAR 유형의 타입이면 위의 VARCHAR 유형 타입의 경우를 적용한다. 

 

 

SQL연산자 예제

 

예제(IN사용하기.)

소속팀 코드가 K02이거나 K03인 선수들을 구하라.

select player_name as 선수이름, position 포지션, back_no 백넘버, height 키

from player where team_id in('K02','K03');

 

 

 

 

예제(Like연산자 사용하기)

"장"씨 성을 가진 선수들의 이름을 출력하시오.

select player_name as 선수이름, position 포지션, back_no 백넘버, height 키

from player where player_name LIKE '장%';

 

 

LIKE관련 사용 정의

%

0개 이상의 어떤 문자를 의미한다.

Ex) LIKE "장%" -> "장"으로 시작하는 문자열 (문자열 길이는 상관 없다.)

_

1개의 단일 문자를 의미한다. 

Ex) LIKE"장_" -> "장"으로 시작하는 문자열("장"을 포함한 2글자)

 

 

IS NULL연산자

  * NULL은 값이 존재하지 않는 것으로 확정되지 않은 값을 표현할 때 사용한다. 따라서 어떤 값보다 크거나 작지도 않고 공백이나 0과 달리 비교 자체가 불가능한 값이다.

  - NULL값과의 수치연산은 NULL 값을 리턴한다.

  - NULL값과의 비교연산은 거짓(FALSE)을 리턴한다.

  - 어떤 값과 비교할 수도 없으며, 특정 값보다 크다, 적다라고 표현할 수 없다.

  - NULL값의 비교 연산은 IS NULL,IS NOT NULL 이라는 정해진 문구를 사용해야 결과를 얻을 수 있다.

 

반응형

'IT > SQLD(SQL개발자)' 카테고리의 다른 글

[SQLD] GRORP BY, HAVING 절  (0) 2019.06.29
[SQLD] 함수(Function)  (0) 2019.06.28
[SQLD] TCL (Transaction Control Language)  (1) 2019.06.26
[SQLD] DML(Data Manipulation Language)  (0) 2019.06.24
[SQLD] DDL(Data Definition Language)  (0) 2019.06.23