반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

MySQL 3일차 - 문제풀이 본문

데이터베이스/MySQL

MySQL 3일차 - 문제풀이

비전공개미 2022. 9. 7. 20:34
반응형
SMALL

 

-- 테이블 정보 --
SELECT * FROM emp;
+-------+--------+-----------+------+------------+---------+--------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM   | DEPTNO |
+-------+--------+-----------+------+------------+---------+--------+--------+
|  7369 | SMITH  | CLERK     | 7902 | 2010-12-17 | 1600.00 | 300.00 |     30 |
|  7499 | ALLEN  | SALESMAN  | 7698 | 2011-02-20 | 1600.00 | 300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 2011-02-22 | 1250.00 | 500.00 |     30 |
|  7566 | JONES  | MANAGER   | 7839 | 2011-04-02 | 2975.00 |   NULL |     20 |
|  7698 | BLAKE  | MANAGER   | 7839 | 2011-05-01 | 2850.00 |   NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 2011-06-09 | 2450.00 |   NULL |     30 |
|  7788 | SCOTT  | ANALYST   | 7566 | 2017-07-13 | 3000.00 |   NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 2011-11-17 | 5000.00 |   NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 2011-09-08 | 1500.00 |   0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 2017-07-13 | 1100.00 |   NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 2011-12-03 |  950.00 |   NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 2011-12-03 | 3000.00 |   NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 2012-01-23 | 1300.00 |   NULL |     10 |
|  8800 | kim    | teacher   | 7782 | 2022-01-23 |  600.00 |   NULL |     10 |
|  8811 | goo    | teacher   | 7782 | 2022-09-06 | 7900.00 |   NULL |     30 |
|  9900 | lee    | teacher   | 7782 | 2022-10-14 |  350.00 |   NULL |     10 |
|  9911 | choi   | teacher   | 7782 | 2022-09-06 | 4500.00 |   NULL |     20 |
+-------+--------+-----------+------+------------+---------+--------+--------+

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

문제1] job컬럼 필드에서 manager가 아닌 데이터조회
SELECT * FROM emp WHERE job NOT IN ('MANAGER');
SELECT * FROM emp WHERE job != 'MANAGER';
+-------+--------+-----------+------+------------+---------+--------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM   | DEPTNO |
+-------+--------+-----------+------+------------+---------+--------+--------+
|  7369 | SMITH  | CLERK     | 7902 | 2010-12-17 | 1600.00 | 300.00 |     30 |
|  7499 | ALLEN  | SALESMAN  | 7698 | 2011-02-20 | 1600.00 | 300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 2011-02-22 | 1250.00 | 500.00 |     30 |
|  7788 | SCOTT  | ANALYST   | 7566 | 2017-07-13 | 3000.00 |   NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 2011-11-17 | 5000.00 |   NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 2011-09-08 | 1500.00 |   0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 2017-07-13 | 1100.00 |   NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 2011-12-03 |  950.00 |   NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 2011-12-03 | 3000.00 |   NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 2012-01-23 | 1300.00 |   NULL |     10 |
|  8800 | kim    | teacher   | 7782 | 2022-01-23 |  600.00 |   NULL |     10 |
|  8811 | goo    | teacher   | 7782 | 2022-09-06 | 7900.00 |   NULL |     30 |
|  9900 | lee    | teacher   | 7782 | 2022-10-14 |  350.00 |   NULL |     10 |
|  9911 | choi   | teacher   | 7782 | 2022-09-06 | 4500.00 |   NULL |     20 |
+-------+--------+-----------+------+------------+---------+--------+--------+

문제2] comm컬럼 필드에서 null인 데이터조회
SELECT * FROM emp WHERE comm IS NULL;
SELECT * FROM emp WHERE comm IS NULL OR comm <= 0;
+-------+--------+-----------+------+------------+---------+------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+--------+-----------+------+------------+---------+------+--------+
|  7566 | JONES  | MANAGER   | 7839 | 2011-04-02 | 2975.00 | NULL |     20 |
|  7698 | BLAKE  | MANAGER   | 7839 | 2011-05-01 | 2850.00 | NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 2011-06-09 | 2450.00 | NULL |     30 |
|  7788 | SCOTT  | ANALYST   | 7566 | 2017-07-13 | 3000.00 | NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 2011-11-17 | 5000.00 | NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 2011-09-08 | 1500.00 | 0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 2017-07-13 | 1100.00 | NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 2011-12-03 |  950.00 | NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 2011-12-03 | 3000.00 | NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 2012-01-23 | 1300.00 | NULL |     10 |
|  8800 | kim    | teacher   | 7782 | 2022-01-23 |  600.00 | NULL |     10 |
|  8811 | goo    | teacher   | 7782 | 2022-09-06 | 7900.00 | NULL |     30 |
|  9900 | lee    | teacher   | 7782 | 2022-10-14 |  350.00 | NULL |     10 |
|  9911 | choi   | teacher   | 7782 | 2022-09-06 | 4500.00 | NULL |     20 |
+-------+--------+-----------+------+------------+---------+------+--------+

문제3] deptno컬럼 필드별 sal급여합계 구하기
SELECT deptno, sum(sal) FROM emp GROUP BY deptno;
+--------+----------+
| deptno | sum(sal) |
+--------+----------+
|     30 | 20100.00 |
|     20 | 14575.00 |
|     10 |  7250.00 |
+--------+----------+

문제4] ename컬럼 필드에서 SCOTT, FORD 데이터조회
SELECT * FROM emp WHERE ename IN ('SCOTT', 'FORD');
SELECT * FROM emp WHERE ename = 'SCOTT' OR ename = 'FORD';
+-------+-------+---------+------+------------+---------+------+--------+
| EMPNO | ENAME | JOB     | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+-------+---------+------+------------+---------+------+--------+
|  7788 | SCOTT | ANALYST | 7566 | 2017-07-13 | 3000.00 | NULL |     20 |
|  7902 | FORD  | ANALYST | 7566 | 2011-12-03 | 3000.00 | NULL |     20 |
+-------+-------+---------+------+------------+---------+------+--------+

문제5] hiredate컬럼 필드의 2011년도에 입사한 사람 like
SELECT * FROM emp WHERE hiredate LIKE '2011%';
+-------+--------+-----------+------+------------+---------+--------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM   | DEPTNO |
+-------+--------+-----------+------+------------+---------+--------+--------+
|  7499 | ALLEN  | SALESMAN  | 7698 | 2011-02-20 | 1600.00 | 300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 2011-02-22 | 1250.00 | 500.00 |     30 |
|  7566 | JONES  | MANAGER   | 7839 | 2011-04-02 | 2975.00 |   NULL |     20 |
|  7698 | BLAKE  | MANAGER   | 7839 | 2011-05-01 | 2850.00 |   NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 2011-06-09 | 2450.00 |   NULL |     30 |
|  7839 | KING   | PRESIDENT | NULL | 2011-11-17 | 5000.00 |   NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 2011-09-08 | 1500.00 |   0.00 |     30 |
|  7900 | JAMES  | CLERK     | 7698 | 2011-12-03 |  950.00 |   NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 2011-12-03 | 3000.00 |   NULL |     20 |
+-------+--------+-----------+------+------------+---------+--------+--------+

문제6] sal컬럼 필드의 2000~5000사이 데이터조회
SELECT * FROM emp WHERE sal BETWEEN 2000 AND 5000;
+-------+-------+-----------+------+------------+---------+------+--------+
| EMPNO | ENAME | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+-------+-----------+------+------------+---------+------+--------+
|  7566 | JONES | MANAGER   | 7839 | 2011-04-02 | 2975.00 | NULL |     20 |
|  7698 | BLAKE | MANAGER   | 7839 | 2011-05-01 | 2850.00 | NULL |     30 |
|  7782 | CLARK | MANAGER   | 7839 | 2011-06-09 | 2450.00 | NULL |     30 |
|  7788 | SCOTT | ANALYST   | 7566 | 2017-07-13 | 3000.00 | NULL |     20 |
|  7839 | KING  | PRESIDENT | NULL | 2011-11-17 | 5000.00 | NULL |     10 |
|  7902 | FORD  | ANALYST   | 7566 | 2011-12-03 | 3000.00 | NULL |     20 |
|  9911 | choi  | teacher   | 7782 | 2022-09-06 | 4500.00 | NULL |     20 |
+-------+-------+-----------+------+------------+---------+------+--------+

문제7] ename컬럼 필드의 M/m 포함된 사람
SELECT * FROM emp WHERE ename LIKE '%M%';
+-------+--------+---------+------+------------+---------+--------+--------+
| EMPNO | ENAME  | JOB     | MGR  | HIREDATE   | SAL     | COMM   | DEPTNO |
+-------+--------+---------+------+------------+---------+--------+--------+
|  7369 | SMITH  | CLERK   | 7902 | 2010-12-17 | 1600.00 | 300.00 |     30 |
|  7876 | ADAMS  | CLERK   | 7788 | 2017-07-13 | 1100.00 |   NULL |     20 |
|  7900 | JAMES  | CLERK   | 7698 | 2011-12-03 |  950.00 |   NULL |     30 |
|  7934 | MILLER | CLERK   | 7782 | 2012-01-23 | 1300.00 |   NULL |     10 |
|  8800 | kim    | teacher | 7782 | 2022-01-23 |  600.00 |   NULL |     10 |
+-------+--------+---------+------+------------+---------+--------+--------+

문제8] job컬럼 필드 그룹별 sal급여합계 구하기 합계가 많은 순으로 sort
SELECT job, sum(sal) as total FROM emp GROUP BY job ORDER BY total DESC;
+-----------+----------+
| job       | total    |
+-----------+----------+
| teacher   | 13350.00 |
| MANAGER   |  8275.00 |
| ANALYST   |  6000.00 |
| PRESIDENT |  5000.00 |
| CLERK     |  4950.00 |
| SALESMAN  |  4350.00 |
+-----------+----------+

문제9] job그룹별 급여총합계가 5000이하인 그룹을 조회한다
SELECT job, sum(sal) as total FROM emp GROUP BY job HAVING 5000 >= total ORDER BY total DESC;
+-----------+---------+
| job       | total   |
+-----------+---------+
| PRESIDENT | 5000.00 |
| CLERK     | 4950.00 |
| SALESMAN  | 4350.00 |
+-----------+---------+

 

반응형
LIST
Comments