성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

DATABASE WHERE 조건절, 연산자 / 데이터베이스 / db 본문

백엔드개발/DATABASE

DATABASE WHERE 조건절, 연산자 / 데이터베이스 / db

hyemi_flora 2023. 10. 31. 09:08

1027 수업내용

# SELECT 컬럼명 FROM 테이블명 WHERE 조건절;

    - SELECT문 뒤에 WHERE절을 추가하여 해당 조건을 만족하는 행만 조회할 수 있다.

    - 오라클의 비교 연산자와 논리 연산자를 통해 조건절을 만들 수 있다.

   

 # 비교연산자

    =           : 같으면 true

    !=, <>, ^=  : 다르면 true

    <, >, <=, >=: 비교

   

# 논리연산자 :     AND, OR, NOT

 

 

 

 

비교연산자 EX>

-- 1. 월급 1000달러 이상인 사람 조회

Select * From employees Where salary >= 10000;

 

-- 2. manager_id 101번 사원 모두 조회

Select * From employees Where manager_id = 101;

 

-- ※ 문자열 데이터는 '  '를 사용한다

-- ※ 데이터는 대소문자 구분한다. 컬럼명, 테이블명, 커리문은 대소문자 구분하지 않는다

Select * From employees WHERE last_name  = 'Austin';

Select * From employees WHERE last_name  = 'austin'; -- 조회되지 않는다.

 

논리연산자 EX>

--1>

SELECT

    first_name,

    department_id

FROM

    employees

WHERE

        department_id = 50

    AND salary < 3000;

 

-- 2>

SELECT

    first_name,

    department_id

FROM

    employees

WHERE

    NOT department_id = 50

    AND salary < 3000;   

 --3>

 SELECT

    first_name,

    department_id

FROM

    employees

WHERE

    NOT (department_id = 50

    AND salary < 3000);  

-- ※ 데이터베이스에서는 문자타입도 비교가 가능하다

SELECT * FROM employees WHERE first_name >='A' AND first_name < 'D';

SELECT * FROM employees WHERE first_name <='Curtis';

 

날짜 타입 비교 EX>

SELECT * FROM employees WHERE hire_date >'2007/12/31';

 


QUIZ

-- 연습 1> 월급이 2000에서 3000사이인 사원들의 풀네임과, 월급, 직책 구하기

SELECT first_name || ' '|| last_name AS full_name, salary, job_id FROM employees WHERE salary >= 2000 AND salary <=3000;

-- 연습 2> 직책이 SH_CLERK 또는 ST_CLERK인 사원들의 이름, 전화번호 조회하기

SELECT first_name, phone_number FROM employees WHERE job_id = 'ST_CLERK' OR job_id = 'SH_CLERK';

-- 연습 3> 30/60/100번 부서에 속한 사원들의 이름, 고용일 조회하기

SELECT first_name, hire_date FROM em ployees WHERE department_id = '30' OR department_id = 60 OR department_id = 100; -- '30'이나 30 모두 가능

-- 연습 4> 월급이 5000달러 이하인 사원이 있는 직책은 어떤 것이 있는지 모두 조회하기

SELECT DISTINCT job_id FROM employees WHERE salary <= 5000;