21일차//[Oracle] / SELECT☑️ /standard Function(2)
/*
형식:
SELECT ( 값, 컬럼명(항목), 함수, SUB QUERY )
FROM ( 테이블명, SUB QUERY )
*/
SELECT 1 FROM DUAL;
SELECT * FROM EMP;
-- 현재 계정(SCOTT)의 테이블의 정보 모두 명세
SELECT * FROM TAB;
SELECT empno, ename, sal
FROM EMP;
SELECT empno, ename || 300, sal + 300
FROM EMP;
SELECT empno, ename, sal * 12
FROM emp;
-- aliasSELECT empno AS 사원번호, sal as "월 급", sal * 12 "일년치 연봉"
FROM emp;
-- || 연결 연산자
SELECT ename || '의 월급은 ' || sal || '입니다' as "이름 + 월급"
FROM emp;
-- distinct : 중복행 삭제
SELECT DISTINCT job
FROM emp;
-- desc : table의 column의 명세
DESC emp;
-- scott
--실습문제
--1)emp 테이블에서 사원번호, 사원이름, 월급을 출력하시오.
SELECT empno, ename, sal
FROM emp;
--2)emp 테이블에서 사원이름과 월급을 출력하는데 컬럼명은 이 름, 월 급으로
--바꿔서 출력하시오.
SELECT ename as "이 름", sal AS "월 급"
FROM emp;
--3)emp 테이블에서 사원번호, 사원이름, 월급, 연봉을 구하고 각각 컬럼명은
--사원번호,사원이름,월급,연봉으로 출력하시오.
SELECT empno 사원번호, ename "사원이름", sal as "월급", sal * 12 AS 연봉
FROM emp;
--4)emp 테이블의 업무(job)를 중복되지 않게 표시하시오.
SELECT DISTINCT job
FROM emp;
--5)emp 테이블의 사원명과 업무로 연결(SMITH,CLERK)해서 표시하고
--컬럼명은 Employee and Job으로 표시하시오.
SELECT '(' || ename || ', ' || job || ')' AS "Employee and Job"
FROM emp;
-- hr
-- 문제1) EMPLOYEES Table의 모든 자료를 출력하여라.
SELECT * FROM employees;
-- 문제2) EMPLOYEES Table의 컬럼들을 모두 출력하라.
DESC employees;
-- 문제3) EMPLOYEES Table에서 사원 번호, 이름, 급여, 담당업무를 출력하여라.
SELECT employee_id, first_name, salary, job_id
FROM employees;
-- 문제4) 모든 종업원의 급여를 $300증가 시키기 위해서 덧셈 연산자를 사용하고 결과에 SALARY+300을 디스플레이 합니다.
SELECT first_name, salary, salary + 300 AS "SALARY+300"
FROM employees;
-- 문제5) EMP 테이블에서 사원번호, 이름, 급여, 보너스, 보너스 금액을 출력하여라.
-- (참고로 보너스는 월급 + (월급*커미션))
SELECT employee_id, first_name, salary, NVL(commission_pct * salary, 0),
salary + NVL(salary + commission_pct, 0)
FROM employees;
-- NVL(대상이 되는 컬럼, 대상이 되는 컬럼이 null이었을 때 설정 값)
-- 문제6) EMPLOYEES 테이블에서 LAST_NAME을 이름으로 SALARY을 급여로 출력하여라.
SELECT last_name as "이름", salary AS "급여"
FROM employees;
-- 문제7) EMPLOYEES 테이블에서 LAST_NAME을 Name으로 SALARY * 12를 Annual Salary(연봉)로 출력하여라
SELECT last_name Name, SALARY * 12 as "Annual Salary(연봉)"
FROM employees;
-- 문제8) EMPLOYEES 테이블에서 이름과 업무를 연결하여 출력하여라.
SELECT first_name || ' ' || job_id
FROM employees;
-- 문제9) EMPLOYEES 테이블에서 이름과 업무를 “KING is a PRESIDENT” 형식으로 출력하여라.
SELECT first_name || ' is a ' || job_id
FROM employees;
-- 문제10) EMPLOYEES 테이블에서 이름과 연봉을 “KING: 1 Year salary = 60000” 형식으로 출력하여라.
SELECT first_name || ': 1 Year salary = ' || salary * 12
FROM employees;
-- 문제11) EMPLOYEES 테이블에서 JOB을 모두 출력하라.
SELECT DISTINCT job_id
FROM employees;
SELECT DISTINCT department_id
FROM employees;