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)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[SQL 기본쿼리] 연습문제 1
🤯TIL/Oracle SQL

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

2022. 11. 23. 22:54
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

 


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

-- 1. 업무(JOB)가 MANAGER 인 사원의 이름, 입사일 출력
    SELECT ENAME, HIREDATE FROM EMP WHERE JOB = 'MANAGER';

-- 2. 사원명이 WARD 인 사원의 급여, 커미션을 출력
    SELECT SAL, COMM FROM EMP WHERE ENAME = 'WARD';

-- 3. 30번 부서에 속하는 사원의 이름, 부서번호를 출력
    SELECT ENAME, DEPTNO FROM EMP WHERE DEPTNO = 30;

-- 4-1. 급여가 1250을 초과, 3000이하인 사원의 이름, 급여를 출력
    SELECT ENAME, SAL FROM EMP WHERE SAL > 1250 AND SAL <= 3000;

-- 4-2. 급여가 1250이상이고, 3000이하인 사원의 이름, 급여를 출력(범위가 포함됨)
    SELECT ENAME, SAL FROM EMP WHERE SAL BETWEEN 1250 AND 3000;

-- 5. 커미션이 0 인 사원이 이름, 커미션을 출력
    SELECT ENAME, COMM FROM EMP WHERE COMM = 0;

-- 6-1. 커미션 계약을 하지 않은 사원의 이름을 출력
    SELECT ENAME FROM EMP WHERE COMM IS NULL;

-- 6-2. 커미션 계약을 한 사원의 이름을 출력
    SELECT ENAME FROM EMP WHERE COMM IS NOT NULL;

-- 7. 입사일이 81/06/09 보다 늦은 사원이 이름, 입사일 출력(입사일을 기준으로 오름차순.)
    SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE > '81/06/09' ORDER BY HIREDATE;

-- 8. 모든 사원의 급여마다 1000을 더한 급여를 출력
    SELECT SAL + 1000 AS SAL FROM EMP;

 

-- 9. FORD 의 입사일, 부서번호를 출력
    SELECT HIREDATE, DEPTNO FROM EMP WHERE ENAME = 'FORD';

-- 10. 사원명이 ALLEN인 사원의 급여를 출력하세요.
    SELECT SAL FROM EMP WHERE ENAME = 'ALLEN';

-- 11. ALLEN의 급여보다 높은 급여를 받는 사원의 사원명, 급여를 출력
    SELECT ENAME, SAL FROM EMP 
    WHERE SAL > (SELECT SAL FROM EMP WHERE ENAME = 'ALLEN');
                        
-- 12. 가장 높은/낮은 커미션을 구하세요.(최대값/최소값)
    SELECT MAX(COMM), MIN(COMM) FROM EMP;
    
-- 13. 가장 높은 커미션을 받는 사원의 이름을 구하세요.
    SELECT ENAME FROM EMP WHERE COMM = (SELECT MAX(COMM) FROM EMP);
                        
-- 14. 가장 높은 커미션을 받는 사원의 입사일보다 늦은 사원의 이름 입사일을 출력  
    SELECT ENAME, HIREDATE FROM EMP
    WHERE HIREDATE > (SELECT HIREDATE FROM EMP 
                        WHERE COMM = (SELECT MAX(COMM) FROM EMP));

-- 15. JOB이 CLERK 인 사원들의 급여의 합을 구하세요.
    SELECT SUM(SAL) FROM EMP WHERE JOB = 'CLERK';

-- 16. JOB 이 CLERK 인 사원들의 급여의 합보다 급여가 많은 사원이름을 출력.
    SELECT ENAME FROM EMP WHERE SAL 
                        > (SELECT SUM(SAL) FROM EMP WHERE JOB = 'CLERK');
                    
-- 17. JOB이 CLERK 인 사원들의 급여와 같은 급여를 받는 사원의 이름, 급여를 출력(급여 내림차순으로)
    -- 값이 2개 이상이라서 = 사용 불가능? 대신 IN 사용?
    SELECT ENAME, SAL FROM EMP WHERE SAL = (SELECT SAL FROM EMP WHERE JOB = 'CLERK')
    ORDER BY SAL DESC;
    
    -- 값이 1개일 경우엔 = 사용가능?
     SELECT ENAME, SAL FROM EMP WHERE SAL = (SELECT SAL FROM EMP WHERE JOB = 'PRESIDENT')
    ORDER BY SAL DESC;
           
-- 카페정답
SELECT ename, sal FROM EMP WHERE sal IN (SELECT SAL FROM EMP WHERE JOB = 'CLERK')
ORDER BY sal; -- DESC 추가?

 

사원명 같은 건 =로 했는데, 동명이인이 있을 수 있으니 IN으로 처리하는 것이 더 좋은건가??ㅠ


💻 후기

= 와 IN 정리. =은 단일값 비교, IN은 다중값 비교 시 사용

728x90
저작자표시

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

[SQL 기본쿼리] 연습문제 3  (0) 2022.11.23
[SQL 기본쿼리] 연습문제 2  (0) 2022.11.23
[SQL 기본쿼리] 연습문제 테이블 생성 준비  (0) 2022.11.23
[연습문제] 테이블 구조 생성하기  (0) 2022.10.18
[연습문제] 테이블 칼럼 만들기  (0) 2022.10.17
    '🤯TIL/Oracle SQL' 카테고리의 다른 글
    • [SQL 기본쿼리] 연습문제 3
    • [SQL 기본쿼리] 연습문제 2
    • [SQL 기본쿼리] 연습문제 테이블 생성 준비
    • [연습문제] 테이블 구조 생성하기
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바