<IS NULL 연산자>

 

  • 데이터 값이 null인 경우를 조회하고자 할때 사용하는 연산자

  • null: 값이 없어 알 수 없는 값 (0이나 공백과는 다름)

 

 

  • employees테이블에서 comission_pct가 null인 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE commission_pct IS NULL;
cs

 

 

 

 

  • employees테이블에서 comission_pct가 null이 아닌 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL;
cs

 

 

 

 

 

<IS NULL 연산자 예제> 

 

  • employees 테이블에서 manager_id 가 null 값인 직원 정보를 출력

1
2
3
SELECT *
FROM employees
WHERE manager_id IS NULL;
cs

 

 

 

 

 

<ORDER BY>

 

  • 행에 대해 정렬 순서를 지정

  • ORDER BY 열 이름 [ASC or DESC] (ASC: 오름차순, DESC: 내림차순]

  • ASC 오름차순은 생략 가능

 

 

  • employees 테이블의 모든 데이터를 last_name을 기준으로 내림차순으로 정렬하여 조회

1
2
3
SELECT *
FROM employees
ORDER BY last_name DESC;
cs

 

 

 

 

  • employees 테이블의 모든 데이터를 salary가 낮은 순으로 정렬하여 조회

1
2
3
SELECT *
FROM employees
ORDER BY salary;
cs

 

salary 뒤에 ASC을 생략하였음.

 

 

 

  • employees 테이블의 department_id, employe_id, first_name, last_name을 department_id로 정렬 한 후 employee_id로 정렬하여 조회

     

    1
    2
    3
    SELECT department_id, employee_id, first_name, last_name
    FROM employees
    ORDER BY department_id, employee_id;
    c

     

    department_id가 오름차순으로 정렬하고 department_id가 같을때는 employee_id가 오름차순으로 정렬된다.

     

 


 

 

 

  • employees 테이블의 department_id, last_name, salary*12를 연봉이란 별칭으로 조회하되 연봉으로 정렬

1
2
3
SELECT department_id, last_name, salary*12 AS "연봉"
FROM employees
ORDER BY "연봉" DESC;
cs

 

 

 

 

  • employees테이블에서 department_id, last_name, salary*12를 연봉이란 별칭으로 조회하되 3번째 열의 내림차순으로 정렬

     

    1
    2
    3
    SELECT department_id, last_name, salary*12 AS "연봉"
    FROM employees
    ORDER BY 3 DESC;
    cs

     

     

(ORDER BY 1 DESC이라면 department_id가 큰 순, 2 DESC이라면 last_name이 큰 순으로 정렬된다.)

 

 


 

 

 

 

 

<ORDER BY 예제> 

  • employees 테이블에서 employee_id, first_name, last_name을 출력하고 employee_id를 기준으로 내림차순 정렬

    1
    2
    3
    SELECT employee_id, first_name, last_name
    FROM employees
    ORDER BY employee_id DESC;
    c

     

 

 

  • employees 테이블에서 job_id에 CLERK란 단어가 들어가는 직원들의 salary 가 높은 순으로 정렬

1
2
3
4
SELECT *
FROM employees
WHERE job_id LIKE '%CLERK%'
ORDER BY salary DESC;
cs

 

 


 

 

 

  • employees 테이블에서 employee_id가 120에서 150번까지 직원을 department_id가 큰 순으로 정렬하고 department_id가 같을 시 salary가 큰 순으로 정렬

1
2
3
4
SELECT *
FROM employees
WHERE employee_id BETWEEN 120 AND 150
ORDER BY department_id DESC, salary DESC;
cs

 

 


 

 

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

숫자형 함수  (0) 2020.06.15
문자형 함수  (0) 2020.06.15
LIKE 연산자  (0) 2020.06.15
BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12

<LIKE 연산자>

  • 조회 조건 값이 명확하지 않을 때 사용

  • %, _같은 기호 연산자(wild card)와 함께 사용 (%: 모든 문자, _: 한 글 자)

 

 

  • employees 테이블에서 last_name 값이 B로 시작하는 모든 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE last_name LIKE 'B%';
cs

 

 

 

 

  • employees 테이블에서 last_name 값이 B를 포함하는 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE last_name LIKE '%B%';
cs

 

 

 

  • employees 테이블에서 first_name 값이 첫글자 뒤에 d가 나오는 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE first_name LIKE '_d%';
cs

 

 

 

  • employees 테이블에서 first_name 값의 세번째 문자가 s가 나오는 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE first_name LIKE '__s%';
cs

 

 

 

 

 

 

 

<LIKE 예제>

 

  • employees 테이블에서 job_id 값이 AD를 포함하는 모든 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE job_id LIKE '%AD%';
cs

 

 

 

 

  • employees 테이블에서 job_id 가 AD를 포함하면서 AD뒤에 따라오는 문자열이 3자리인 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE job_id LIKE '%AD___';
cs

 

 

 

 

 

  • employees 테이블에서 전화번호 뒷자리가 1234로 끝나는 직원 정보를 조회

1
2
3
SELECT *
FROM employees 
WHERE phone_number LIKE '%1234';
cs

 

 

 

 

  • employees 테이블에서 전화번호에 3이 들어가지 않으면서 전화번호 끝자리가 9로 끝나는 직원 정보를 조회

1
2
3
SELECT *
FROM employees
WHERE phone_number NOT LIKE '%3%' AND phone_number LIKE '%9';
cs

 

 

 

 

  • employees 테이블에서 job_id에 MGR을 포함하거나, ASST를 포함하는 직원 정보를 조회

1
2
3
SELECT *
FROM employees
WHERE job_id LIKE '%MGR%' OR job_id LIKE '%ASST%';
cs

 

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

문자형 함수  (0) 2020.06.15
IS NULL 연산자, ORDER BY  (0) 2020.06.15
BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12
AND, OR  (0) 2020.06.12

<SELECT-WHRE절의 BETWEEN 연산자>

 

  • employees테이블에서 salary가 9000이상 10000이하인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE salary >= 9000 AND salary <=10000;
cs

 

 

  • BETWEEN 연산자

1
2
3
SELECT *
FROM employees
WHERE salary BETWEEN 9000 AND 10000;
cs

 

출력결과는 같다

 

 

 

 

 

<BETWEEN 예제>

 

  • employees테이블에서 salary가 10000이상이고 20000이하인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE salary BETWEEN 10000 AND 20000;
cs

 

 

 

 

  • employees테이블에서 hire_date가 2004년 1월 1일 부터 2004년 12월 30일 사이인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE hire_date BETWEEN '04/01/01' AND '04/12/30';
cs

 

 

 

 

 

  • employees테이블에서 salary가 7000 미만이거나 17000보다 많은 직원정보를 출력

 

1
2
3
SELECT *
FROM employees
WHERE salary NOT BETWEEN 7000 AND 17000;
cs

 

salary가 7000이 안되거나 17000보다 큰 직원정보가 출력된다.

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

IS NULL 연산자, ORDER BY  (0) 2020.06.15
LIKE 연산자  (0) 2020.06.15
IN, NOT IN  (0) 2020.06.12
AND, OR  (0) 2020.06.12
SELECT-WHERE 절  (0) 2020.06.12

+ Recent posts