# 문제풀이에 사용된 함수
=
- -- 문제1) EMPLOYEES 테이블에서 부서별로
- -- 인원수, 평균 급여,급여의 합,최소 급여,최대 급여를
- -- 포함하는 EMP_DEPTNO 테이블을 생성하라.
- DROP TABLE EMP_DEPTNO;
- CREATE TABLE EMP_DEPTNO(
- "부서번호",
- "인원수",
- "평균 급여",
- "급여의 합",
- "최소 급여",
- "최대 급여"
- )
- AS
- SELECT DEPARTMENT_ID, COUNT(*), ROUND(AVG(SALARY)), SUM(SALARY),
- MIN(SALARY), MAX(SALARY)
- FROM EMPLOYEES
- GROUP BY DEPARTMENT_ID;
- SELECT * FROM EMP_DEPTNO;
- -- 문제2) EMP_DEPTNO 테이블에 ETC COLUMN을 추가하라.
- -- 단 자료형은 VARCHAR2(50) 사용하라.
- ALTER TABLE EMP_DEPTNO
- ADD
- (ETC VARCHAR2(50));
- -- 문제3) EMP_DEPTNO 테이블에 ETC COLUMN을 수정하라.
- -- 자료 형은 VARCHAR2(15)로 하라.
- ALTER TABLE EMP_DEPTNO
- MODIFY
- (ETC VARCHAR2(15));
- DESC EMP_DEPTNO;
- -- 문제4) EMP_DEPTNO 테이블에 있는 ETC 을 삭제하고 확인하라.
- ALTER TABLE EMP_DEPTNO
- DROP (ETC);
- -- 문제5) 이전에 생성한 EMP_DEPTNO 테이블의 이름을 EMP_DEPT로 변경하라.
- RENAME EMP_DEPTNO
- TO
- EMP_DEPT;
- -- 문제6) EMP_DEPT 테이블을 삭제하라.
- DROP TABLE EMP_DEPT;
- -- CASCADE CONSTRAINTS -- 무결성이 있을 시엔
- -- 문제7) EMPLOYEES 테이블을 EMP 테이블을 생성하고 복제하도록 하라.
- -- (데이터 포함)
- CREATE TABLE EMP
- AS
- SELECT * FROM EMPLOYEES
- WHERE 1 = 2; -- 데이터 미포함
- SELECT * FROM EMP;
- -- 문제8) EMP 테이블에 row를 추가해 봅니다.
- -- 다만, 반드시 데이터를 기입을 안해도 되면, NULL로 설정하도록 한다.
- -- 무결성
- -- Primary key : not null + 고유키(unique)
- -- unique : null 허용 + 고유값
- -- Foreign key : null 허용
- INSERT INTO EMP(EMPLOYEE_ID, FIRST_NAME, LAST_NAME,
- EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY,
- COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
- VALUES(100, NULL, '홍',
- 'HGD@NAVER.COM', NULL, SYSDATE, 'IT_PROG', 10000,
- NULL, NULL, NULL);
- SELECT * FROM EMP;
- -- 문제9) EMPLOYEES 테이블에서 EMPNO,ENAME,SAL,HIREDATE의
- -- COLUMN만 선택하여 EMP_10 테이블을 생성(데이터 미포함)한 후
- -- 10번 부서만 선택하여 이에 대응하는 값을 EMP_10테이블에 입력하라.
- CREATE TABLE EMP_10(ID, NAME, SAL, HIREDATE)
- AS
- SELECT EMPLOYEE_ID, LAST_NAME, SALARY, HIRE_DATE
- FROM EMPLOYEES
- WHERE 1 = 2;
- SELECT * FROM EMP_10;
- INSERT INTO EMP_10
- SELECT EMPLOYEE_ID, LAST_NAME, SALARY, HIRE_DATE
- FROM EMPLOYEES
- WHERE DEPARTMENT_ID = 10;
- -- 문제10) 다음은 무결성 제약 조건이 위배된 쿼리이다.
- -- 무엇을 위배했는지 알아보도록 합시다.
- INSERT INTO EMPLOYEES
- VALUES (100, NULL, 'YOON', 'dbs', NULL, SYSDATE, 'ST_MAN',
- NULL, NULL, NULL, NULL);
- INSERT INTO EMPLOYEES
- VALUES (98, NULL, 'YOON', 'dbs', NULL, SYSDATE,
- 'ST_MAN', NULL, NULL, NULL, 100);
- INSERT INTO EMPLOYEES
- VALUES (98, NULL, 'YOON', 'dbs2', NULL, SYSDATE,
- 'ST_MAN', NULL, NULL, NULL, 101);
- --문제11) EMPLOYEES 테이블에서 사원 번호가 180인 사원의 부서를 20, 급여를 3500으로 변경하여라.
- UPDATE EMPLOYEES
- SET DEPARTMENT_ID = 20,SALARY = 3500
- WHERE EMPLOYEE_ID = 180;
- SELECT
- *
- FROM EMPLOYEES
- WHERE EMPLOYEE_ID = 180;
- --문제12) EMPLOYEES 테이블에서 Smith의 업무와 급여가 Hall의 업무와 급여와
- --일치하도록 수정하라.
- SELECT
- JOB_ID,SALARY
- FROM EMPLOYEES
- WHERE LAST_NAME = 'Smith';
- UPDATE EMPLOYEES
- SET (JOB_ID, SALARY) = (SELECT
- JOB_ID,SALARY
- FROM EMPLOYEES
- WHERE LAST_NAME = 'Hall')
- WHERE LAST_NAME = 'Smith';
- -- ex3_6란 테이블을 만들고, 사원테이블(employees)에서
- -- 관리자사번이 124번이고 급여가 2000에서 3000 사이에 있는
- -- 사원의 사번, 사원명, 급여, 관리자사번을 입력하는 INSERT문을 작성해보자
- CREATE TABLE ex3_6(
- EMPLOYEE_ID NUMBER(6),
- FIRST_NAME VARCHAR2(80),
- SALARY NUMBER(8,2),
- MANAGER_ID NUMBER(6)
- );
- INSERT INTO ex3_6
- SELECT
- EMPLOYEE_ID,FIRST_NAME,SALARY,MANAGER_ID
- FROM EMPLOYEES
- WHERE MANAGER_ID = 124 AND SALARY BETWEEN 2000 AND 3000;
- SELECT
- *
- FROM EX3_6;
'오랜된 포스팅 > SQL Developer' 카테고리의 다른 글
SQL developer 새로운 계정만들기 (0) | 2018.11.14 |
---|---|
SQL Developer 기본문제 풀이 SCOTT (+ROUND() / SYSDATE / MONTHS_BETWEEN) (0) | 2018.06.26 |
SQL Developer 기본문제 풀이 SCOTT (+SUB QUERY) (0) | 2018.06.23 |
SQL Developer 기본문제 풀이 SCOTT (+JOIN) (0) | 2018.06.23 |
SQL Developer 기본문제 풀이 SCOTT (+ORDER BY) (0) | 2018.06.23 |