-- DML Data Manipulation language 데이터 조작 언어
-- insert, delete, select(90%), update Data
--SELECT
-- 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어
/*
SELECT
(값, 문자, COLUMN, 함수, SUB QUERY)
FROM
(TABLE명, SUB QUERY)
*/
-- 가상의 테이블에 1의 값을 내보내라
SELECT 1 FROM DUAL;
-- 현재 계정의 테이블을 모두 명세해보고 싶다
SELECT * FROM TAB;
-- * 는 모든 값및
-- EMP 테이블로 부터 모든 컬럼의 값을 출력한다.
SELECT * FROM EMP;
-- 테이블에서 원하는 컬럼의 값만을 가지고오고싶다
SELECT empno, ename, sal
FROM EMP;
SELECT ename, sal, sal + 300
FROM emp;
SELECT empno, sal, sal * 12
FROM emp;
-- alias 별명 int alias[] = array; alias[0] = 12;
-- 항목명에 사원번호가 나오게 된다.
-- AS는 생략이 가능하다
-- "" 로 묶어서 띄어쓰기를 출력 할 수 있다.
SELECT empno AS 사원번호, sal "월급", sal * 12 "연 봉"
FROM emp;
SELECT empno AS 사원번호, sal "월급", sal * 12 일년치연봉
FROM emp;
-- 연결 연산자 + || "ABC" + "DEF" "ABC" || "DEF"
-- SIMTH가 800불을 받는다
SELECT ename || ' has $' || sal
FROM EMP;
--월급
SELECT ename || ' has $' || sal as 월급
FROM EMP;
-- distinct : 중복 행의 삭제 -- group by
SELECT DISTINCT deptno
FROM emp;
-- desc : table의 colum의 자료형
desc emp;
desc dept;
-- emp 테이블에서 사원번호, 사원이름, 월급을 출력하시오.
SELECT empno, ename, sal
FROM emp;
-- emp 테이블에서 사원이름과 월급을 출력하는데 컬럼명은 이 름 월 급 으로 바꿔서 출력하시오
SELECT ename AS "이 름", sal AS "월 급"
FROM emp;
-- emp 테이블에서 사원번호, 사원이름, 월급, 연봉을 구하고 각각 컬럼명은
-- 사원번호, 사원이름, 월급, 연봉으로 출력하시오
SELECT empno "사원번호", ename "사원이름", sal "월급", sal * 12 "연봉"
FROM emp;
-- emp 테이블의 업무(job)를 중복되지 않게 표시하시오.
SELECT DISTINCT job
FROM emp;
-- emp 테이블의 사원명과 업무로 연결(SMITH, CLERK)해서 표시하고
-- 컬럼명은 Employee and Job으로 표시하시오.
-- ||를 통해서
SELECT '(' || ename || ', ' || job || ')' AS "Employee and Job"
FROM EMP;
응용
-- HR 계정
-- EMPLOYEES Table의 모든 자료를 출력하여라
SELECT
*
FROM EMPLOYEES;
-- EMPLOYEES Table의 모든 컬럼들을 출력하여라
desc EMPLOYEES;
-- EMPLOYEES Table에서 사원 번호, 이름, 급여, 담당업무를 출력하여라.
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, JOB_ID
FROM employees;
-- 모든 종업원의 급여를 $300증가 시키기 위해서 덧셈 연산자를
--사용하고 결과에 SALARY+300을 디스플레이 합니다
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, salary + 300
FROM employees;
-- EMP 테이블에서 사원번호, 이름, 급여, 보너스, 보너스 금액을 출력하여라. (참고로 보너스는 월급 + (월급*커미션))
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, SALARY + salary * COMMISSION_PCT, salary * COMMISSION_PCT
FROM employees;
--NVL(컬럼명, 앞의 컬럼의 값이 null일 경우 나타낼 값 )
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, NVL(COMMISSION_PCT, 0), SALARY + NVL(salary * COMMISSION_PCT, 0) "보너스"
FROM employees;
-- EMPLOYEES 테이블에서 LAST_NAME을 이름으로 SALARY을 급여로 출력하여라
SELECT last_name as 이름, salary as 급여
FROM employees;
-- EMPLOYEES 테이블에서 LAST_NAME을 Name으로 SALARY *12를 Annual Salary(연봉)로 출력하여라
SELECT last_name Name, salary*12 as 연봉
FROM employees;
-- EMPLOYEES 테이블에서 이름과 업무를 연결하여 출력하여라.
SELECT first_name || ' ' || job_id as Employees
FROM employees;
-- EMPLOYEES 테이블에서 이름과 업무를 “KING is a PRESIDENT” 형식으로 출력하여라.
SELECT first_name || 'is a ' || job_id as Employees
FROM employees;
--EMPLOYEES 테이블에서 이름과 연봉을 “KING: 1 Year salary = 60000” 형식으로 출력하여라.
/*
SELECT first_name || MONTHS_BETWEEN(TO_DATE(hire_date, 'YY/MM/DD'), TO_DATE(sysdate, 'YY/MM/DD')) || 'Year salary = ' || salary *12 as MONTHLY
FROM employees;
*/
SELECT first_name || '1' || 'Year salary = ' || salary *12 as MONTHLY
FROM employees;
--EMPLOYEES 테이블에서 JOB을 모두 출력하라.
SELECT DISTINCT job_id
FROM employees;
'Oracle > Oracle 기초' 카테고리의 다른 글
Oracle Select 활용및 JOIN (0) | 2019.12.15 |
---|---|
oracle Select 활용 3(Group by, Order by) (0) | 2019.12.15 |
Oracle Select 활용 2 (0) | 2019.12.12 |
오라클 기초 공부 - 함수 부분 (0) | 2019.12.11 |
오라클 기초 공부하기 - 자료형 (0) | 2019.12.11 |