Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • AllArgsConstructor
  • 백준
  • googlecolaboratory
  • Javascript
  • 코딩앙마
  • 독학후기
  • 기간쿼리
  • 노마드코더
  • 서버등록
  • 연습문제
  • java
  • 파이썬온라인
  • 콜라보레이토리
  • 비쥬얼스튜디오코드
  • sql기간
  • oracle
  • SQLD합격후기
  • CSS
  • 창초기화
  • SQL
  • SQLD합격
  • 시작일종료일
  • 기간설정
  • Database
  • HTML
  • colaboratory
  • spring
  • 이것이자바다
  • 오류해결
  • Eclipse

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG
🤯TIL/Oracle SQL

[SQL 기본쿼리] 연습문제 3

🤯TIL/Oracle SQL

[SQL 기본쿼리] 연습문제 3

2022. 11. 23. 23:53
728x90

📢 테이블 준비

https://dorothy-yang.tistory.com/191

 

[SQL 기본쿼리] 연습문제 테이블 생성 준비

CREATE TABLE DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14) , LOC VARCHAR2(13) ) ; CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2

dorothy-yang.tistory.com

 


🕵️‍♂️ 문제 풀이 및 해답

-- EMP : EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
-- DEPT : DEPTNO, DNAME 부서명, LOC 지역
-- 공통 : DEPTNO
-- 사용문법이 대부분 JOIN, SUB QUERY 문법위주 연습.
-- 1. 업무(JOB)가 MANAGER인 사원의 이름, 부서명, 입사일을 출력
SELECT ENAME, DNAME, HIREDATE
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND JOB = 'MANAGER';
-- 2. 사원명이 WARD인 사원의 급여, 부서번호, 부서위치, 커미션을 출력
-- E.DEPTNO 표시 : 어디에서 나온 DEPTNO인지 정확하게 명시해줘야 함!
SELECT SAL, E.DEPTNO, LOC, COMM
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND ENAME = 'WARD';
-- 3. 30번 부서에 속하는 사원의 이름, 부서번호, 부서위치를 출력
SELECT ENAME, E.DEPTNO, LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND E.DEPTNO = 30;
-- 4-1. 급여가 1250을 초과, 3000이하인 사원의 이름, 급여, 부서명을 출력
-- AND 사용
SELECT ENAME, SAL, DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND SAL > 1250 AND SAL <= 3000;
-- 4-2. 급여가 1250이상 3000 이하인 사원의이름, 급여(BETWEEN 사용)
SELECT ENAME, SAL
FROM EMP
WHERE SAL BETWEEN 1250 AND 3000;
-- 5. 커미션이 0 인 사원의 이름, 부서위치, 커미션을 출력
SELECT ENAME, LOC, COMM
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND COMM = 0;
-- 6.커미션 계약을 하지않은 사원의 이름, 부서명을 출력
SELECT ENAME, DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND COMM IS NULL;
-- 7. 입사일이 81/06/09보다 늦은 사원이 이름, 부서위치, 입사일 출력(입사일 오름차순)
SELECT ENAME, LOC, HIREDATE
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND HIREDATE > '81/06/09'
ORDER BY HIREDATE ASC;
-- 8. 모든 사원의 급여마다 1000을 더한 급여액, 사원명, 급여, 부서명을 출력
SELECT SAL+1000, ENAME, SAL, DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO;
-- 9. FORD의 입사일, 부서명을 출력
SELECT HIREDATE, DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND ENAME = 'FORD';
-- 10. 사원명이 ALLEN인 사원의 급여, 부서번호, 부서위치를 출력
SELECT SAL, E.DEPTNO, LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND ENAME = 'ALLEN';
-- 11. ALLEN의 급여보다 높은 급여를 받는 사원의 사원명, 부서명, 부서위치, 급여를 출력
SELECT ENAME, DNAME, LOC, SAL
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND SAL > (SELECT SAL FROM EMP WHERE ENAME = 'ALLEN');
-- 12. 가장 높은/낮은 커미션을 구하세요.
SELECT MAX(COMM), MIN(COMM) FROM EMP;
-- 13. 가장 높은 커미션을 받는 사원의 이름, 부서명을 구하세요.
SELECT ENAME, DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND COMM = (SELECT MAX(COMM) FROM EMP);
-- 14. JOB이 CLERK 인 사원들의 급여의 합을 구하세요
SELECT SUM(SAL) FROM EMP
WHERE JOB = 'CLERK';
-- 15. JOB 이 CLERK 인 사원들의 급여의 합보다 급여가 많은 사원이름, 부서명을 출력
SELECT ENAME, DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND SAL > (SELECT SUM(SAL) FROM EMP WHERE JOB = 'CLERK');
-- 16. JOB이 CLERK인 사원들의 급여와 같은 급여를 받는 사원의 이름,부서명,급여를 출력(급여가 높은순으로 출력)
SELECT ENAME, DNAME, SAL
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND SAL IN (SELECT SAL FROM EMP WHERE JOB = 'CLERK')
ORDER BY SAL DESC;

 


💻 후기

JOIN 관계 생각보다 술술 써 내려져갔다 :) 드디어 완벽이해 완료 !

728x90
저작자표시 (새창열림)

'🤯TIL > Oracle SQL' 카테고리의 다른 글

[Oracle] SQL Developer에서 ERD 출력하는 방법  (0) 2023.01.21
[SQL 기본쿼리] 연습문제 4  (0) 2022.11.29
[SQL 기본쿼리] 연습문제 2  (0) 2022.11.23
[SQL 기본쿼리] 연습문제 1  (0) 2022.11.23
[SQL 기본쿼리] 연습문제 테이블 생성 준비  (0) 2022.11.23
  • 📢 테이블 준비
  •  
  • 🕵️‍♂️ 문제 풀이 및 해답
  • 💻 후기
'🤯TIL/Oracle SQL' 카테고리의 다른 글
  • [Oracle] SQL Developer에서 ERD 출력하는 방법
  • [SQL 기본쿼리] 연습문제 4
  • [SQL 기본쿼리] 연습문제 2
  • [SQL 기본쿼리] 연습문제 1
Dorothy_YANG
Dorothy_YANG
Slowly but Surely, 비전공 문과생의 개발공부

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.