테이블 생성
* 먼저 아래 코드를 입력해서 연습 할 테이블을 만들어 줍니다. *
CREATE TABLE DEPT (
DEPTNO DECIMAL(2),
DNAME VARCHAR(14),
LOC VARCHAR(13),
CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO)
);
CREATE TABLE EMP (
EMPNO DECIMAL(4),
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR DECIMAL(4),
HIREDATE DATE,
SAL DECIMAL(7,2),
COMM DECIMAL(7,2),
DEPTNO DECIMAL(2),
CONSTRAINT PK_EMP PRIMARY KEY (EMPNO),
CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)
);
CREATE TABLE SALGRADE (
GRADE TINYINT,
LOSAL SMALLINT,
HISAL SMALLINT
);
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,STR_TO_DATE('17-12-1980','%d-%m-%Y'),800,NULL,20);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,STR_TO_DATE('20-2-1981','%d-%m-%Y'),1600,300,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,STR_TO_DATE('22-2-1981','%d-%m-%Y'),1250,500,30);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,STR_TO_DATE('2-4-1981','%d-%m-%Y'),2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,STR_TO_DATE('28-9-1981','%d-%m-%Y'),1250,1400,30);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,STR_TO_DATE('1-5-1981','%d-%m-%Y'),2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,STR_TO_DATE('9-6-1981','%d-%m-%Y'),2450,NULL,10);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,STR_TO_DATE('13-7-1987','%d-%m-%Y')-85,3000,NULL,20); INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,STR_TO_DATE('17-11-1981','%d-%m-%Y'),5000,NULL,10);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,STR_TO_DATE('8-9-1981','%d-%m-%Y'),1500,0,30);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,STR_TO_DATE('13-7-1987', '%d-%m-%Y'),1100,NULL,20);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,STR_TO_DATE('3-12-1981','%d-%m-%Y'),950,NULL,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,STR_TO_DATE('3-12-1981','%d-%m-%Y'),3000,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,STR_TO_DATE('23-1-1982','%d-%m-%Y'),1300,NULL,10);
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
COMMIT;
INSERT INTO 테이블명 [(컬럼1, 컬럼2, ...)] VALUES (값1, 값2, ...);
문제은행
* 아래 문제들을 풀어봅니다 - 정답지 링크 : ( https://u-n-joe.tistory.com/24 ) *
# 1. 사원테이블의 모든 레코드를 조회하시오
# 2. 사원명과 입사일을 조회하시오
# 3. 사원 번호와 이름을 조회하시오
# 4. 사원테이블에 있는 직책의 목록을 조회하시오
# 5. 총 사원수를 구하시오
# 6. 부서번호가 10인 사원을 조회하시오.
# 7. 월 급여가 2500 이상 되는 사원을 조회하시오.
# 8. 이름이 'king'인 사원을 조회하시오.
# 9. 사원들중 이름이 S로 시작하는 사원의 사원번호와 이름을 조회하시오.
# 10. 사원 이름에 T가 포함된 사원의 사원번호와 이름을 조회하시오.
# 11. 커미션이 300, 500, 1400 인 사원의 사번,이름,커미션을 조회하시오.
# 12. 월급여가 1200 에서 3500 사이의 사원의 사번,이름,월급여를 조회하시오.
# 13. 직급이 매니저이고 부서번호가 30번인 사원의 이름,사번,직급,부서번호를 조회하시오.
# 14. 부서번호가 30인 아닌 사원의 사번,이름,부서번호를 조회하시오.
# 15. 커미션이 300, 500, 1400 이 모두 아닌 사원의 사번,이름,커미션을 조회하시오.
# 16. 이름에 S가 포함되지 않는 사원의 사번,이름을 조회하시오.
# 17. 급여가 1200보다 미만이거나 3700 초과하는 사원의 사번,이름,월급여를 조회하시오.
# 18. 직속상사가 NULL 인 사원의 이름과 직급을 조회하시오.
# 19. 부서별 평균월급여를 구하는 쿼리
# 20. 부서별 전체 사원수와 커미션을 받는 사원들의 수를 구하는 쿼리
# 21. 부서별 최대 급여와 최소 급여를 구하는 쿼리
# 22. 부서별로 급여 평균 (단, 부서별 급여 평균이 2000 이상만)
# 23. 월급여가 1000 이상인 사원만을 대상으로 부서별로 월급여 평균을 구하라. 단, 평균값이 2000 이상인 레코드만 구하라.
# 24. 급여가 높은 순으로 조회하되 급여가 같을 경우 이름의 철자가 빠른 사원순으로 사번,이름,월급여를 조회하시오.
# 25. 사원명과 부서명을 조회하시오.
# 26. 이름,월급여,월급여등급을 조회하시오.
# 27. 이름,부서명,월급여등급을 조회하시오
# 28. 이름,직속상사이름을 조회하시오
# 29. 이름,부서명을 조회하시오.단, 사원테이블에 부서번호가 40에 속한 사원이 없지만 부서번호 40인 부서명도 출력되도록 하시오.
# 30. 이름,부서번호,부서이름을 조회하시오.
# 31. 부서번호가 30번인 사원들의 이름, 직급, 부서번호, 부서위치를 조회하시오.
# 32. 커미션을 받는 사원의 이름, 커미션, 부서이름,부서위치를 조회하시오.
# 33. DALLAS에서 근무하는 사원의 이름,직급,부서번호,부서명을 조회하시오.
# 34. 이름에 A 가 들어가는 사원의 이름,부서명을 조회하시오
# 35. 이름, 직급, 월급여, 월급여등급을 조회하시오
# 36. ALLEN과 같은 부서에 근무하는 사원의 이름, 부서번호를 조회하시오.
# 37. 사원명 'JONES'가 속한 부서명을 조회하시오
# 38. 10번 부서에서 근무하는 사원의 이름과 10번 부서의 부서명을 조회하시오.
# 39. 평균 월급여보다 더 많은 월급여를 받은 사원의 사원번호,이름,월급여 조회하시오.
# 40. 부서번호가 10인 사원중에서 최대급여를 받는 사원과 동일한 급여를 받는 사원의 사원번호, 이름을 조회하시오.
# 41. 번호라는 이름의 컬럼에 int형으로 primary key와 생성할때 마다 숫자를 증가 시키고, 이름은 varchar(20), primary key를 선언하세요, 나이는 int형으로 무조건 입력, 성별은 char(5)의 컬럼을 갖는 'Students'라는 이름의 테이블을 만드세요.
# 42. Students 테이블에서 번호는 1 이름은 훈빠 나이는 20 성별은 남자의 값을 갖는 쿼리는 추가하세요.
# 43. Students 테이블에서 훈빠의 나이를 25로 바꿔주세요.
# 44. 부서 번호가 10번인 부서의 사람 중 사원번호, 이름, 급여를 출력하라"
# 45. 사원번호가 7639인 사람 중 이름, 입사일자, 부서번호를 출력하라.
# 46. 이름이 ALLEN인 사람의 모든 정보를 출력하라.
# 47. 입사일자가 81/02/20인 사원의 이름, 부서 번호, 급여를 출력하라.
# 48. 직업이 MANAGER가 아닌 사람의 모든 정보를 출력하라.
# 49. 입사일자가 81/04/02 이후에 입사한 사원의 정보를 출력하라.
# 50. 급여가 $800이상인 사람의 이름, 급여, 부서 번호를 출력하라.
# 51. 부서번호가 20번 이상인 사원의 모든 정보를 출력하라.
# 52. 성명이 K로 시작하는 사람들의 평균 급여보다 높은 급여를 가진 사람의 모든 정보를 출력하라.
# 53. 입사일자가 81/12/09 보다 먼저 입사한 사람들의 모든 정보를 출력하라.
# 54. 입사번호가 7698 보다 작거나 같은 사람들의 입사번호와 이름을 출력하라.
# 55. 입사일자가 81/04/02 보다 늦고 82/12/09 보다 빠른 사원의 이름, 월급, 부서 번호를 출력하라.
# 56. 급여가 1,600 보다 크고 3,000보다 작은 사람은 이름, 직무, 급여를 출력하라.
# 57. 사원번호가 7654와 7782 사이 이외의 사원의 모든 정보를 출력하라.
# 58. B와 J 사이의 스펠링이 맨 앞글자에 포함된 이름의 모든 사원의 정보를 출력하라.
# 59. 입사일자가 81년 이외에 입사한 사람의 모든 정보를 출력하라.
# 60. 직무가 MANAGER와 SALESMAN이 아닌 모든 사람의 정보를 출력하라.
# 61. 부서 번호가 20, 30번호인 사람들을 제외한 모든 사람의 이름, 사원번호, 부서 번호를 출력하라.
# 62. 이름이 S로 시작하는 사원의 사원번호, 이름, 입사일자, 부서번호를 출력하라.
# 63. 입사일자가 81년도인 사람의 모든 정보를 출력하라.
# 64. 이름 중 S자가 들어가 있는 사람만 모든 정보를 출력하라.
# 65. 이름이 S로 시작하고 마지막 글자가 T인 사람의 모든 정보를 출력하라 (단, 이름은 전체 5자리이다.)
# 66. 이름의 두 번째 문자가 A인 사람의 모든정보를 출력하라.
# 67. 커미션이 NULL인 사람의 정보를 출력하라.
# 68. 커미션이 NULL이 아닌 사람의 모든 정보를 출력하라.
# 69. 부서가 30번 부서이고 급여가 1,500 이상인 사람의 이름, 부서이름, 월급을 출력하라.
# 70. 부서번호로 정렬된 이름의 첫 글자가 K로 시작하거나 부서 번호가 30인 사람들의 사원번호, 이름, 부서 번호를 부서번호기준으로 조회하라.
# 71. 급여가 1,500이상이고 부서 번호가 30번인 사원 중 직업이 MANAGER인 사람의 정보를 출력하라.
# 72. 부서 번호가 30인 사람들을 출력하고 사원번호로 정렬 하라.
# 73. 급여가 많은 순으로 SORT하라.
# 74. 부서 번호로 ASCENDING SORT한 후 급여가 많은 사람 순으로 출력하라.
# 75. 부서 번호로 DESCENDING NSORT하고 이름 순으로 ASCENDING SORT, 급여 순으로 DESCENDING SORT하라.
# 76. EMP와 DEPT TABLE을 JOIN하여 부서 번호, 부서명, 이름, 급여를 출력하라.
# 77. 이름이 'ALLEN'인 사원의 부서명을 출력하라.
# 78. EMP Table의 데이터를 출력하되 해당사원에 대한 상관번호와 상관의 성명을 함께 출력하라.
# 79. DEPT Table 에는 존재하는 부서코드이지만 해당부서에 근무하는 사람이 존재하지 않는 경우의 결과를 출력하라.
# 80. 'ALLEN'의 직무와 같은 사람의 이름, 부서명, 급여, 직무를 출력하라.
# 81. 'JONES'가 속해있는 부서의 모든 사람의 사원번호, 이름, 입사일자, 급여를 출력하라.
# 82. 전체 사원의 평균 임금보다 많은 사원의 사원번호, 이름, 부서명, 입사일, 지역, 급여를 출력하라.
# 83. 10번 부서 사람들 중에서 20번 부서의 사원과 같은 업무를 하는 사원의 사원번호, 이름, 부서명, 입사일, 지역을 출력하라.
# 84. 10번 부서 중에서 30번 부서에는 없는 업무를 하는 사원의 사원번호, 이름, 부서명, 입사일자, 지역을 출력하라.
# 85. 10번 부서에 근무하는 사원의 사원번호, 이름, 부서명, 지역, 급여를 급여가 많은 순으로 출력하라.
# 86. 'MARTIN'이나 'SCOTT'의 급여와 같은 사원의 사원번호, 이름, 급여를 출력하라.
# 87. 급여가 30번 부서의 최고 급여보다 높은 사원의 사원번호, 이름, 급여를 출력하라.
# 88. 급여가 10번 부서의 최저 급여보다 낮은 사원의 사원번호, 이름, 급여를 출력하라.
# 89. 급여가 1000 이상인 사원들의 부서별 평균 급여를 출력해보세요 단, 부서별 평균 급여가 2000 이상인 부서만 출력하세요.
# 90. 각 부서별 같은 업무(job)를 하는 사람의 인원수를 구해서 부서번호, 업무(job), 인원수를 부서번호에 대해서 오름차순 정렬해서 출력해 보세요.
# 91. 사원번호,부서번호,부서명을 출력하세요 단, 사원이 근무하지 않는 부서명도 같이 출력해보세요.
# 92. 'DALLAS' 에서 근무하는 사원의 이름, 부서번호를 출력해보세요.
# 93. 급여를 3000 이상받는 사원이 소속된 부서와 동일한 부서에서 근무하는 사원들의 이름과 급여, 부서번호를 출력해 보세요 그리고 부서번호와 급여가 높은 순으로 정렬하세요.
# 94. IN 연산자를 이용, 이용하지 않고 부서별로 가장 급여를 많이 받는 사원의 사원번호, 급여, 부서번호를 출력해보세요.
# 95. 30번 부서의 사원중에서 급여를 가장 많이 받는 사원보다 더 많은 급여를 받는 사원의 이름과 급여를 출력해보세요.
# 96. 부서번호가 30번인 사원들의 급여중 평균 급여보다 높은 급여를 받는 사원의 이름, 급여를 출력해보세요.
# 97. 월급여가 1000 이상인 사원만을 대상으로 부서이름 별로 월급여 평균을 구하라. 단, 평균값이 2000 이상인 레코드만 구하라.
# 98. 급여가 높은 순으로 조회하되 급여가 같을 경우 이름의 철자가 빠른 사원순으로 사번,이름,월급여를 조회하시오.
# 99. 이름에 W 가 들어가는 사원의 이름,부서명을 조회하시오
# 100. 이름, 직급, 월급여, 월급여등급을 조회하시오
'workSpace > MYSQL' 카테고리의 다른 글
[mysql][mac] mac에 mysql 설치/삭제/재설치 하는 방법 (4) | 2020.12.16 |
---|---|
[mysql] 접근 권한 시스템 (0) | 2020.12.05 |
[mysql] 주석 사용법 (0) | 2020.12.05 |
[mysql][백문백답] 기본 문법 연습 문제 정답 (0) | 2020.12.05 |
[mysql]데이터 베이스 만들기 (0) | 2020.12.05 |