Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Servlet 맵핑
- 형변환
- oracle 연동
- downcasting
- react
- static메서드
- 깃 명령어
- static 예제
- 객체협력
- 이클립스 오라클 연동
- 오라클 비교연산자
- 추상 메서드
- 싱클톤패턴
- order by
- Java
- AOP란?
- IP
- 리스트 모달창
- 다운캐스팅
- 모달창 여러개
- static
- 스프링 모달창
- 사용자 데이터그램 프로토콜
- 다중 모달창
- 템플릿
- SUB Query
- GROUP BY
- singleton
- spring annotation
- 상속
Archives
- Today
- Total
모든지 기록하자!
[Oracle] SELECT문과 예제 본문
728x90
Scott 계정에 존재하는 기본 테이블과 hr 계정에 존재하는 기본 테이블로
SELECT문과 WHERE의 사용법을 예제를 통해 알아보자
이번 게시물에 핵심 기능을 요약해보자
SELECT문의 형식 :
SELECT (값, 컬럼명(항목), 함수, SUB QUERY)
FROM (테이블명, SUB QUERY)
SELECT 1 FROM DUAL; --가상 테이블
SELECT * FROM emp; --emp 테이블 정보 명세
-- 현재 계정 (SCOTT) 의 테이블 정보 모두 명세
SELECT * FROM TAB;
-- ALIAS --별칭 사이에 공백이 있는경우 ""를 반드시 사용해야한다.
SELECT 컬럼명 AS 별칭
FROM 테이블명;
-- || 연결연산자 --문자열은 '' 를 사용한다.
SELECT 컬럼명 || '출력내용' || 컬럼명 || '출력내용' AS "별칭"
FROM 테이블명;
-- distinct : 중복행 삭제
SELECT distinct 컬럼명
FROM 테이블명;
-- desc : table의 column(항목)의 명세
DESC emp;
-- NVL 함수 --NUll값은 자바로 넘어갈 때 오류가 많으므로 0으로 변경
NVL(대상컬럼, 대상컬럼이 NULL인 경우에 출력할 값)
사용 예시와 실습문제
/*
형식 :
SELECT (값, 컬럼명(항목), 함수, SUB QUERY)
FROM (테이블명, SUB QUERY)
*/
SELECT 1 FROM DUAL; --가상 테이블
SELECT * FROM emp; -- 해당 테이블(emp) 정보 출력
-- 현재 계정 (SCOTT) 의 테이블 정보 모두 명세
SELECT * FROM TAB;
SELECT empno, ename, sal
FROM emp;
SELECT empno, ename, sal*12 -- sal은 월급 sal*12는 연봉을 뜻 한다.
FROM emp;
-- ALIAS
SELECT empno AS 사원번호, sal as "월 급", sal * 12 "일년치 월급"
FROM emp; -- 컬럼명을 AS를 이용해 별칭으로 바꿀 수 있다.
-- || 연결연산자
SELECT ename || '의 월급은 ' || sal || '입니다.' as "이름 + 월급"
FROM emp;
-- distinct : 중복행 삭제
SELECT distinct job
FROM emp;
-- desc : table의 column(항목)의 명세
DESC emp;
--[실습문제]
--1)emp 테이블에서 사원번호, 사원이름, 월급을 출력하시오
SELECT ename, empno, sal
FROM emp;
--2)emp 테이블에서 사원이름과 월급을 출력하는데 컬럼명은 이 름, 월 급 으로 바꿔서 출력
SELECT ename as "이 름", sal as "월 급"
FROM emp;
--3)emp 테이블에서 사원번호, 사원이름, 월급, 연봉을 구하고 각각 컬럼명은
-- 사원번호, 사원이름,월급,연봉으로 출력
SELECT empno as 사원번호, ename as 사원이름, sal as 월급, sal*12 연봉
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(commission_pct * salary, 0)
FROM EMPLOYEES;
-- NVL 함수 : NVL(대상컬럼, 대상컬럼이 NULL인 경우에 출력할 값)
-- 문제6) EMPLOYEES 테이블에서 LAST_NAME을 이름으로 SALARY을 급여로 출력하여라.
SELECT last_name 이름, SALARY 급여
FROM EMPLOYEES;
-- 문제7) EMPLOYEES 테이블에서 LAST_NAME을 Name으로 SALARY * 12를 Annual Salary(연봉)로 출력하여라
SELECT last_name Name, SALARY*12 "Annual Salary(연봉)" -- AS는 생략이 가능하다.
FROM EMPLOYEES;
-- 문제8) EMPLOYEES 테이블에서 이름과 업무를 연결하여 출력하여라.
SELECT first_name ||', ' || job_id as "Name + job"
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 job_title
FROM jobs;
728x90
'Database' 카테고리의 다른 글
[Oracle] ORDER BY , GROUP BY 와 예제 (0) | 2021.05.26 |
---|---|
[Oracle] WHERE절과 비교연산자와 예제 (0) | 2021.05.26 |
[Oracle] Standard Function (0) | 2021.05.25 |
[Oracle] 기본 입출력 (0) | 2021.05.25 |
[Oracle] 기본 SQL (0) | 2021.05.25 |
Comments