Database

DB/Mysql SELECT WHERE절

코딩알파 2021. 8. 31. 11:04
728x90

WHERE절

데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는 데 사용

 

SELECT 필드1,필드2필드N... FROM 테이블명 WHERE 조건식;


WHRER 조건식이 TRUE일때 출력.

 

AND , OR , NOT연산자

 

AND :둘다 TRUE이면 TRUE

OR : 둘중 하나만 TRUE면 TRUE

NOT : TRUE 를 FALSE로 바꾼다.

 

SELECT * FROM EMP WHERE DEPTNO =10;

=> DEPTNO =10 인것만 출력

 

SELECT * FROM EMP WHERE NOT DEPTNO =10;

=> DEPTNO = 10이 아닌것만 출력

 

SELECT * FROM EMP WHERE DEPTNO =10 AND  ENAME LIKE 'C%';

=> DEPTNO =10이고 이름이 C로 시작한사람만 출력 

 

SELECT * FROM EMP WHERE DEPTNO =10 OR DEPTNO =20;

=> DEPTNO =10 또는 20 인것만 출력

 

IN 연산자

특정 열에 해당되는 데이터 값을 여러개 조회하고자 할 경우 사용

OR연산자와 같은 기능을 한다.

 

다음 COMM 에 300,500,1400을 출력하라.

SELECT * FROM EMP WHERE COMM IN(300,500,1400);

다음 COMM 에 300,500,1400 아닌것을 출력하라.

SELECT * FROM EMP WHERE COMM NOT IN(300,500,1400);

 

BETWEEN A AND B 연산자

특정 열의 최소, 최대 범위를 지정해 해당 범위 내의 데이터만 조회한다.

AND 연산자와 같은 기능을 한다.

 

다음 SAL에서 1500이상 3000이하를 출력하라.

SELECT * FROM EMP WHERE SAL BETWEEN 1500 AND 3000;

 

LIKE 연산자

문자열 일부가 포한된 데이터조회

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

%: 길이 상관없이 모든 문자 데이터

LIKE 'S%' : 대문자 S로 시작하는 모든 데이터 조회

LIKE '_S%' : 두번째 문자가 S인 데이터 조회

 

이름이 S로 시작하는 사람을 조회

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

위치 상관없이 이름이 중에 A가 들어간 사람을 조회

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

이름이 S로 끝나는 사람을 조회

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

 

IS NULL 

NULL을 출력하려면 어떤 방식으로 해야하는가

NULL 값이 없으므로 = 을 사용할수없다.

그래서 우린 IS를 사용하는것이다.

 

NULL이 있는 값만 출력해보자

SELECT * FROM  EMP WHERE COMM IS NULL;

 

NULL이 아닌 다른 값을 출혁할 경우 IS NOT NULL 을 써주면된다.

 

DISTINCT 

중복된 데이터를 제외한후 데이터 조회

SELECT  DISTINCT JOB FROM EMP ;

728x90