버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 문제풀이
  • opacity
  • 만들기
  • 기본쿼리
  • 큐
  • 데이터베이스
  • sqld
  • final필드
  • 스택
  • 이것이자바다
  • 포트폴리오
  • dml
  • 이클립스
  • 세션
  • 함수
  • 게시판
  • 객체지향
  • 오라클
  • 코틀린
  • 홈페이지
  • 변수
  • 부트스트랩
  • 배열
  • SQL
  • 버블소트
  • 안드로이드
  • 톰캣
  • 스프링
  • callback
  • foreach

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자
📓 TechNote/SQL

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

📓 TechNote/SQL

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

2022. 12. 6. 12:43
728x90

📌 기본쿼리 3 문제

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

🧐 버터감자 기본쿼리 문제풀이 

-- EMP : EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
-- DEPT : DEPTNO, DNAME 부서명, LOC 지역
-- 공통 : DEPTNO
-- 사용문법이 대부분 JOIN, SUB QUERY 문법위주 연습.
-- 1. 업무(JOB)가 MANAGER인 사원의 이름, 부서명, 입사일을 출력
SELECT dname,ENAME, 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,DNAME, SAL
FROM EMP E, DEPT D
WHERE e.deptno = d.deptno
AND SAL > 1250 AND SAL <= 3000;
-- 4-2. 급여가 1250이상 3000 이하인 사원의이름, 급여(BETWEEN 사용)
SELECT ename, DNAME, SAL
FROM EMP E, DEPT D
WHERE e.deptno = d.deptno
AND 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, DNAME, SAL
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO;
-- 9. FORD의 입사일, 부서명을 출력
SELECT HIREDATE , ENAME
FROM DEPT D , EMP E
WHERE E.DEPTNO = D.DEPTNO
AND ENAME = 'FORD';
-- 10. 사원명이 ALLEN인 사원의 급여, 부서번호, 부서위치를 출력
SELECT ENAME , SAL, loc, E.DEPTNO
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 E, DEPT D
WHERE E.DEPTNO = D.DEPTNO;
-- 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;

 

+ 잊지말자!

= 는 결과값이 하나일때 사용

IN 은 결과값이 두개이상일때 사용한다 ! 

'📓 TechNote > SQL' 카테고리의 다른 글

[SQL 중급쿼리] 연습 문제 풀이 1  (0) 2022.12.21
[SQL 기본쿼리] 연습 문제 풀이 4  (0) 2022.12.06
[SQL 기본쿼리] 연습 문제 풀이 2  (0) 2022.12.06
[SQL 기본쿼리] 연습 문제 풀이 1  (0) 2022.12.06
[DB] SQL관련 온라인북 사이트  (0) 2022.10.13
    '📓 TechNote/SQL' 카테고리의 다른 글
    • [SQL 중급쿼리] 연습 문제 풀이 1
    • [SQL 기본쿼리] 연습 문제 풀이 4
    • [SQL 기본쿼리] 연습 문제 풀이 2
    • [SQL 기본쿼리] 연습 문제 풀이 1
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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