본문 바로가기

Oracle/Oracle 기초

SELECT문 활용 01

 

--  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