SKILL/DATABASE

MySql 문제

Jedy_Kim 2017. 12. 22. 16:10
728x90

CREATE TABLE t_emp

(

id             INT,

 name           VARCHAR(25),

 mailid         VARCHAR(8),

 start_date     DATE,

 manager_id     INT,

 title          VARCHAR(25),

 dept_id        INT,

 salary         INT,

 commission_pct INT

);


INSERT INTO t_emp VALUES (

  1, '박구곤', 'sky98',

  '1990-03-03', NULL, '사장',

   118, 5000, NULL);


INSERT INTO t_emp VALUES (

   2, '손명성', '2xxsig',

   '1990-03-08', 1, '기획부장',

   110, 3000, NULL);


INSERT INTO t_emp VALUES (

   3, '이은선', 'ch21175',

   '1991-06-17', 1, '영업부장',

   102, 3500, NULL);


INSERT INTO t_emp VALUES (

   4, '서의홍', 'mquickto',

   '1991-08-27', 1, '총무부장',

   101, 3000, NULL);


INSERT INTO t_emp VALUES (

   5, '김심선', 'aropebur',

   '1992-01-02', 1, '인사부장',

   118, 3200, NULL);


INSERT INTO t_emp VALUES (

   6, '전지영', 'murguhar',

   '1993-05-23', 2, '과장',

   110, 2400, NULL);


INSERT INTO t_emp VALUES (

   7, '김정미', 'enchu',

   '1994-01-18', 2, '과장',

   111, 2400, NULL);


INSERT INTO t_emp VALUES (

   8, '신기웅', 'bbiri',

 '1993-08-27', 2, '과장',

   112, 2100, NULL);


INSERT INTO t_emp VALUES (

   9, '이상헌', 'acatchpo',

  '1994-03-24', 2, '과장',

   113, 2300, NULL);


INSERT INTO t_emp VALUES (

   10, '최순철', 'mhavel',

   '1993-09-17', 2, '과장',

   113, 2300, NULL);


INSERT INTO t_emp VALUES (

   11, '최정선', 'cmagee',

   '1993-05-21', 3, '영업대표이사',

   102, 2450, 10);


INSERT INTO t_emp VALUES (

   12, '안은경', 'hgiljum',

   '1993-03-12', 3, '영업대표이사',

   103, 2500, 12.5);


INSERT INTO t_emp VALUES (

   13, '김석우', 'ysedeghi',

   '1995-03-15', 3, '영업대표이사',

   104, 2650, 10);


INSERT INTO t_emp VALUES (

   14, '박성규', 'mnguyen',

   '1992-03-17', 3, '영업대표이사',

   105, 2650, 15);


INSERT INTO t_emp VALUES (

   15, '신종필', 'adumas',

  '1991-01-04', 3, '영업대표이사',

   106, 2400, 17.5);


INSERT INTO t_emp VALUES (

   16, '이기철', 'emaduro',

  '1996-12-05', 6, '사원',

   110, 2400, NULL);


INSERT INTO t_emp VALUES (

   17, '구원상', 'gsmith',

   '1994-06-02', 6, '사원',

   110, 940, NULL);


INSERT INTO t_emp VALUES (

   18, '서정주', 'anozaki',

   '1994-05-21', 7, '사원',

   111, 1200, NULL);


INSERT INTO t_emp VALUES (

   19, '안창환', 'vpatel',

   '1997-03-02', 7, '사원',

   111, 795, NULL);


INSERT INTO t_emp VALUES (

   20, '윤정숙', 'cnewman',

   '1996-09-12', 8, '사원',

   112, 750, NULL);


INSERT INTO t_emp VALUES (

   21, '장현철','amarkari',

   '1996-07-24', 8, '사원',

   112, 850, NULL);


INSERT INTO t_emp VALUES (

   22, '장혜숙', 'echang',

  '1995-03-08', 9, '사원',

   113, 800, NULL);


INSERT INTO t_emp VALUES (

   23, '강연범', 'rpatel',

   '1994-06-11', 9, '사원',

   106, 795, NULL);


INSERT INTO t_emp VALUES (   24, '오은경', 'bdancs',

  '1996-07-08', 10, '사원',

   113, 860, NULL);


INSERT INTO t_emp VALUES (

   25, '이용호', 'sschwart',

  '1998-12-07', 10, '사원',

   113, 1100, NULL);


[[[[ 문제풀기 위해서 제공되는 "쿼리 실습용 테이블 생성.sql"에 있는 실습테이블을 생성합니다. ]]]]


1. 112, 118부서를 대상으로 과장과 사원의 이름, 직급, 급여, 부서ID를 조회하되, 급여는 1500 이상 4000 이하인 직원만 

   출력되도록 하시오. 

   단, 급여가 많은 사람부터 화면에 출력합니다.


select name, title, salary from t_emp where salary >= 1500 and salary <= 4000;


2. 관리자가 없는 직원의 이름, 직급, 급여를 조회하시오. 

   (힌트. manager_id 컬럼이 자신의 상사가 누구인지 알 수 있는 컬럼입니다.)


select name, title, salary from t_emp where manager_id IS null;


3. 직급이 부장이면서 급여가 3000 이상인 직원의 이름, 직급, 급여를 조회하시오. 


SELECT name, title, salary FROM t_emp WHERE (manager_id >= 1 AND manager_id <=2) AND salary >= 3000;


4. 직급이 부장과 과장인 사람들을 대상을 이름, 직급, 급여를 조회하시오. 

   단, 112, 113, 117, 118 부서에 소속되어 있는 사원 중에서 급여가 2300 ~ 3000 사이인 직원만 조회되도록 하시오.

   부서순으로 출력합니다.

SELECT name, title, salary FROM t_emp WHERE (manager_id >= 1 AND manager_id <=2) AND salary >= 2300 AND salary <= 3000 AND dept_id >= 112 AND dept_id <= 118;


5. 직급이 부장 혹은 과장이면서 03월에 입사한 직원의 이름, 직급, 급여, 입사일을 조회하시오. 

SELECT name, title, salary, start_date FROM t_emp WHERE (manager_id >= 1 AND manager_id <=2) AND DATE_FORMAT(start_date, '%m')=3;


6. 직원의 연봉에 1000 을 더한 값을 조회하시오. 

   연봉은 급여에 16을 곱하면 됩니다. 단, 연봉은 ALIAS를 지정하여 화면에 출력시 "직원연봉" 으로 출력되도록 합니다. 

SELECT (salary * 16 + 1000) AS "직원연봉" FROM t_emp;

   

7. 출력결과가 다음과 같도록 조회하시오. 


직원 급여 

--------------------------------- 

박구곤 사장의 급여 5,000 

손명성 기획부장의 급여 3,000 

이은선 영업부장의 급여 3,500 

서의홍 총무부장의 급여 3,000 

김심선 인사부장의 급여 3,200 

... 

... 

select concat(name," " ,title, "의 급여 ",FORMAT(salary, 0)) as '직원급여'  from t_emp;


8. 커미션을 받으면서 자신을 관리하는 관리자가 있는 직원을 대상으로 급여가 2500 이상인 직원을 조회하시오. 

   화면에 출력 시 직원의 연봉이 낮은 사람부터 출력합니다.

반응형

'SKILL > DATABASE' 카테고리의 다른 글

자바 jdbc 설정  (0) 2017.12.31
몽고DB homebrew를 통한 설치 for MAC  (0) 2017.12.31
몽고db 2일차  (0) 2017.12.29
몽고db 연습예시 1일차  (0) 2017.12.28
쿼리 연습  (0) 2017.12.26