[광주직업학교] 스마트인재개발원에서 배운 데이터베이스 - 복습2-7

ㅇ 본 수업은 "스마트인재개발원"에서 진행되었습니다.

https://www.smhrd.or.kr/


#스마트인재개발원 #국비지원코딩교육 #데이터베이스 #실습문제 #11번~15번 #연산자 #웨어절 #오더바이절




<목차>
ㅇ 실습문제 11
ㅇ 실습문제 12
ㅇ 실습문제 13
ㅇ 실습문제 14




ㅇ DB 한 개 더 실행시켜서 desc 테이블 구조 띄워 넣고 보자.

ㅇ 어떤 상황에서 어떤 연산자를 사용할 지 잘 선택해야 해

  • 사잇값을 찾을 때 -> BETWEEN
  • 여러 개 값 찾을 때 -> IN
  • 값이 없을 때 -> IS NULL
  • 1개의 값을 찾을 때 -> 이큐연산자 (=)



ㅇ 결과가 no rows selected 나올 때

  • 진짜 데이터가 없는 경우도 있지만 (실습 6번)
  • 보통은 코드가 잘못됐다고 생각해야 해
  • no rows selected 가 뜨면 코드가 잘못된 에러 사항이라고 간주하고 고민해 보아야 해
  • 결과가 실행되는 게 중요한 게 아냐. 데이터에 대한 분석이 중요해



ㅇ 실습문제 11

SELECT last_name
FROM employees
WHERE last_name LIKE '___a%'
  • '_ _ _ a' : 이름이 4글자인데 네번째가 a인 사람만 찾은 게 돼
  • % 문장 전체를 의미
    _ 문자 하나를 의미
  • %와 _는 like 안에서만 허용



ㅇ 실습문제 12

SELECT last_name
FROM employees
WHERE last_name LIKE '%a%'
AND last_name LIKE '%e%'
  • AND나 OR 연산자로 조건 추가할 때는 반드시 새로운 조건식으로 추가해야 해
    • last_name LIKE '%a%' AND '%e%' (X)
    • last_name LIKE '%a%' AND LIKE '%e%' (X)
  • '%a%e%' : 순서가 a, e인 애들만 나와. e가 앞인 애들은 찾을 수 없어



ㅇ 실습문제 13

SELECT last_name, salary, job_id
FROM employees
WHERE salary NOT IN (2500, 3500, 7000)
AND job_id IN ('SA_REP', 'ST_CLERK')



ㅇ 실습문제 14

SELECT DISTINCT job_id
FROM employees
WHERE department_id in (30, 90)
ORDER BY job_id
  • 포함이라는 의미 : 90번 부서 또한 유일한 값으로 출력하라
  • 유일하다 = 중복이 없다. =>DISTINCT
  • 90번을 포함하는 과정은 하나의 연산자(IN)로 처리하기 (and나 or쓰지 말고)





ㅇ 실습문제 15

SELECT E.EMPLOYEE_ID, E. LAST_NAME, D.DEPARTMENT_NAME, D.DEPARTMENT_ID
FROM EMPLOYEES E, DEPARTMENTS D
WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID;
  • 사원 이름은 테이블에 e테이블, 부서 이름 및 부서번호는 d 테이블 => 조인
  • e.id는 확인 차 적어 주심
  • 조인조건의 99%는 PK=FK


좋은 웹페이지 즐겨찾기