버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (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)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

📓 TechNote/SQL

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

2022. 12. 6. 12:43
728x90

📌 연습문제 테이블 생성하기

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),
	COMM NUMBER(7,2),
	DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
    
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
 
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
INSERT INTO EMP VALUES
(7788,'SCOTT','ANALYST',7566,to_date('19-4-1987','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('23-5-1987','dd-mm-yyyy'),1100,NULL,20);
 
COMMIT;

📌 기본쿼리 1 문제

1. 업무(JOB)가 MANAGER 인 사원의 이름, 입사일 출력
 
2. 사원명이 WARD 인 사원의 급여, 커미션을 출력
    
3. 30번 부서에 속하는 사원의 이름, 부서번호를 출력
   
4-1. 급여가 1250을 초과, 3000이하인 사원의 이름, 급여를 출력
 
4-2. 급여가 1250이상이고, 3000이하인 사원의 이름, 급여를 출력(범위가 포함됨)
 
5. 커미션이 0 인 사원이 이름, 커미션을 출력
 
6-1. 커미션 계약을 하지 않은 사원의 이름을 출력
 
6-2. 커미션 계약을 한 사원의 이름을 출력
 
7. 입사일이 81/06/09 보다 늦은 사원이 이름, 입사일 출력(입사일을 기준으로 오름차순.)
 
8. 모든 사원의 급여마다 1000을 더한 급여를 출력 
    
9. FORD 의 입사일, 부서번호를 출력 
 
10. 사원명이 ALLEN인 사원의 급여를 출력하세요.
 
11. ALLEN의 급여보다 높은 급여를 받는 사원의 사원명, 급여를 출력
                        
12. 가장 높은/낮은 커미션을 구하세요.(최대값/최소값)
    
13. 가장 높은 커미션을 받는 사원의 이름을 구하세요.
                   
14. 가장 높은 커미션을 받는 사원의 입사일보다 늦은 사원의 이름 입사일을 출력  

15. JOB이 CLERK 인 사원들의 급여의 합을 구하세요.
 
16. JOB 이 CLERK 인 사원들의 급여의 합보다 급여가 많은 사원이름을 출력.
                    
17. JOB이 CLERK 인 사원들의 급여와 같은 급여를 받는 사원의 이름, 급여를 출력(급여 내림차순으로)

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

-- 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 인 사원들의 급여와 같은 급여를 받는 사원의 이름, 급여를 출력(급여 내림차순으로)
    SELECT ENAME, SAL FROM EMP WHERE SAL IN (SELECT SAL FROM EMP WHERE JOB='CLERK')
    ORDER BY SAL;

 

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

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

    티스토리툴바