본문 바로가기

Oracle Database /SQL-문제풀이

(7)
[ORACLE] DB의 FUNCTION 문제 풀이 두 숫자를 제공하면 덧셈을 해서 결과값을 반환하는 함수를 정의하시오.(함수명 add_num)ACREATE OR REPLACE FUNCTION SUM_FUNC(num1 IN NUMBER, num2 IN NUMBER) RETURN NUMBER IS result NUMBER; BEGIN DBMS_OUTPUT.ENABLE; result := num1+num2; DBMS_OUTPUT.PUT_LINE(result); RETURN result; END; / SELECT SUM_FUNC(10, 20) FROM DUAL; 부서번호를 입력하면 해당 부서에서 근무하는 사원 수를 반환하는 함수를 정의하시오.(함수명 get_emp_count)CREATE OR REPLACE FUNCTION get_emp_count(deptno ..
SQL PROCEDURE(프로시져) 문제 --이름, 급여, 부서번호 입력란 EMPLOYEES 테이블에서 자료를 등록하는 SCRIPT를 작성하여라.--부서번호가 10 일때 급여를 20% 올려서 주고--시퀀스가 9000~ 9999 로 1씩 증하게 만들기 CREATE SEQUENCE TEST_SEQ --시퀀스 생성INCREMENT BY 1 -- (++,1씩 증가)START WITH 9000 -- ~ 부터 시작MAXVALUE 9900; -- ~ 끝 SET SERVEROUTPUT ON;SET VERIFY OFF; ACCEPT p_name PROMPT ' 이름 : '; --AWT 비슷 ?ACCEPT p_sal PROMPT ' 급여 : '; --AWT 비슷 ?ACCEPT p_deptno PROMPT ' 부서번호를 입력 : '; --AWT 비슷 ? DECLA..
[ORACLE] DB의 서브 쿼리 문제 풀이 33) 각 사원의 이름을 표시하고 근무 달 수(입사일로부터 현재까지의 달수)를 계산하여열 레이블을 MONTHS_WORKED로 지정하시오. 결과는 정수로 반올림하여 표시하고 근무달 수를 기준으로 오름차순으로 정렬하시오.(MONTHS_BETWEEN 함수 참고) SELECT ENAME, ROUND(MONTHS_BETWEEN(SYSDATE, HIREDATE)) "MONTHS_WORKED"FROM EMPORDER BY MONTHS_WORKED ASC; --ROUND 반올림/*MONTHS_BETWEEN 함수MONTHS_BETWEEN은 두 날짜 사이의 월 수를 계산합니다.첫 번째 날짜가 두 번째 날짜 이후인 경우에는 결과 값이 양수이고, 그렇지 않으면 결과 값이 음수입니다. 두 인수 중 하나라도 NULL이면 결과 값..
[ORACLE] DB의 테이블 생성 문제 풀이 --1번) 테이블에서 부서별로 -- 인원수,평균,급여-- 급여의 합,최소급여, 최대 급여를 포함하는 EMP_DEPTNO테이블을 생성하라 CREATE TABLE EMP_DEPTNO( DEPNO, E_COUNT, E_AVG, E_SUM, E_MIN, E_MAX )AS ( SELECT DEPARTMENT_ID DEPTNO, COUNT(DEPARTMENT_ID), AVG(SALARY), SUM(SALARY), MIN(SALARY), MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT_ID); --문제2)EMP_DEPTNO 테이블에 ETC COLUMN을추가하여라. --단 자료형은 VARCHAR2(50)사용하라 ALTER TABLE EMP_DEPTNO ADD ETC VARCHAR2(..
Oracle Database - 확인하기 --문제1) King 의 정보를 소문자로 검색하고-- 사원번호, 성명, 담당업무(소문자),부서번호 출력하여라. SELECT EMPLOYEE_ID, LAST_NAME, LOWER(JOB_ID), DEPARTMENT_IDFROM EMPLOYEESWHERE LOWER(LAST_NAME)='king';-- * LOWER -> 대문자를 소문자로 변환시켜주는 함수 --문제2) King 의 정보를 소문자로 검색하고-- 사원번호, 성명, 담당업무(대문자),부서번호 출력하여라.SELECT EMPLOYEE_ID, LAST_NAME, UPPER(JOB_ID), DEPARTMENT_IDFROM EMPLOYEESWHERE UPPER (LAST_NAME) ='KING';-- * UPPER -> 소문자를 대문자로 변환시켜주는 함수..
[ORACLE] DB 정렬 문제 ORDER BY == 정렬(SORT)오름/내림 --오름차순 HR 사용자SELECT FIRST_NAME, SALARYFROM EMPLOYEESORDER BY SALARY; --내림차순 (월급 기준 내림차순이 편합니다.)SELECT FIRST_NAME, SALARYFROM EMPLOYEESORDER BY SALARY DESC; -- 부서 : IT_PROG 사람에 월급 정렬 SELECT FIRST_NAME, JOB_ID, SALARYFROM EMPLOYEESWHERE JOB_ID = 'IT_PROG'ORDER BY SALARY DESC; --MANAGER_ID 중 NULL값인 사람을 첫번쨰로SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, MANAGER_IDFROM EMPLOYEESORD..
[ORACLE] DB SELECT 문제풀이 -- 문제1) EMPLOYEES Table의 모든 자료를 출력하여라. SELECT * FROM EMPLOYEES; -- 문제2) EMPLOYEES Table의 컬럼들을 모두 출력하라. DESC EMPLOYEES; -- 문제3) EMPLOYEES Table에서 사원 번호, 이름, 급여, 담당업무를 -- 출력하여라. SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, JOB_IDFROM EMPLOYEES; -- 문제4) 모든 종업원의 급여를 $300증가 시키기 위해서 덧셈 연산자를 -- 사용하고 결과에 SALARY+300을 디스플레이 합니다. SELECT LAST_NAME, salary + 300FROM EMPLOYEES; -- 문제5) EMP 테이블에서 사원번호, 이름, 급여, 보너스,..