5월 20일 목요일 (8일차) - 연산자1ㅇ

@_@·2021년 5월 20일
0

Database

목록 보기
12/28

<목차>
ㅇ 비교연산자
ㅇ BETWEEN A AND B
ㅇ IN 연산자
ㅇ IS NULL


ㅇ 참고자료 <Do it! 오라클로 배우는 데이터베이스 입문>



ㅇ 비교연산자

  • 단일연산자
    • 값을 하나의 값만 비교하니까 단일연산자
    • 예) department_id = 90, 16 이러면 안 돼
  • 같지 않음(<>)은 != 이렇게도 사용해
    성능적으로는 != 이게 살~~짝 더 빨라
    • <> 얘는 크다 작다. 인데
    • != 얘는 부정이라서
  • 예)
WHERE salary >= 6000
WHERE last_name = 'Smith'
WHERE hire_date ='03/05/23'
  • WHERE 절에는 별칭을 사용할 수 없다.
    ∵ 별칭을 적는 SELECT절 보다 WHERE절을 먼저 실행하므로

ㅇ 실습 : 연봉이 150000이상인 사원의 이름과 연봉을 구하시오.
단, 이름은 NAME, 연봉은 AnnSal로 출력하시오.

(정답)

SELECT last_name AS name, salary*12 " AnnSal"
FROM employees
WHERE salary*12>=150000
  • 오류1 : 웨어절에 별칭 앤셀 씀
  • 오류2 : AnnSal은 대소문자 구분하니까 " " 사용하기
  • 수정3 : name으로 써도 기본값 대문자 나와
  • 불필요 : "NAME"
    • " " 굳이 안 붙여도 대문자가 디폴트인데
    • 쌍따옴표 붙이면 포맷대로 출력하기 위해 변환작업을 해

CF. 선생님이 작업하신 순서

  • 1셀렉트 2프럼 3웨어 작성한 뒤, 다시 올라가서 4알리아스 붙이심



ㅇ BETWEEN 연산자

  • 두 값의 사잇값, 범위 값을 찾을 때 (지정한 값 포함)

  • 문자도 가능해

    • 아스키코드 사용하므로 모든 데이터타입에 다 사용 가능은 해
  • 다만, 숫자와 날짜에서 더 많이 사용

  • 예) hire_date BETWEEN '2020/01/01' AND '2020/05/01'
    : 2020년 1월 1일 에서 2020년 5월 1일까지

ㅇ 실습

SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500



ㅇ IN 연산자

  • =의 확장판
    • =는 1개였지만 IN은 복수연산자
  • 여러 개를 동시에 찾을 때 사용
  • OR 연산자를 반복하는 것보다 IN 하나 사용하는 게 좋아

ㅇ 실습

SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201)
  • 직역 : 매니저 아이디가 100 or 101 or 201 인 애들을 찾아서 그 사람들의 ~,~,~,~를 찾아라
  • 의역 : 100번, 101번, 201번에게 보고하는 사원의 정보를 보자.
    • 매니저 아이디는 나를 관리하는 관리자 사원번호니까
  • 모든 데이터 타입에 사용 가능
    • 문자나 날짜는 ' ' 사용



ㅇ IS NULL 연산자

  • 널 값을 찾을 때

ㅇ 실습1

SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL
  • 직역 : 매니저 아이디가 없다.
  • 의역 : 관리자가 없다 (회장님만 나와ㅋㅋㅋ)

ㅇ 실습2

SELECT last_name, job_id, commission_pct
FROM employees
WHERE commission_pct IS NULL
  • 직역 : 커미션피시티 널값 찾아라
  • 의역 : 보너스 받지 않는 사람 찾아라

profile
STEP BY STEP

0개의 댓글