본문 바로가기

데이터베이스/Oracle

SQL 기본 예제 1

-- : SQL 주석처리

--EMPLOYEES table
NUMBER(6, 0) NUMBER(6) : 전체자리 6자리 소숫점 이하 0자리 = 정수
SALARY NUMBER(8,2) : 전체자리 8자리 중 소숫점 이하 2자리

                                         999,999.99 salary로 표현할 수 있는 최대값
FIRST_NAME VARCHAR2(20 BYTE) : 최대 20자리까지 가능

 

--부서번호가 30번, 50번인 사원의 사번, 이름, 부서번호를 출력하시오
SELECT employee_id, first_name, department_id
FROM employees
WHERE department_id = 30 or department_id = 50;

결과

--부서번호가 30번, 50번인 사원 중 급여가 5000이상 20000이하인
사원의 사번, 이름, 급여, 부서번호를 출력하시오
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id = 30 or department_id = 50
AND salary >= 5000 AND salary <= 20000;
--이렇게 하면 department_id = 30 모두 나옴

SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE (department_id = 30 or department_id = 50)
AND (salary >= 5000 AND salary <= 20000);

결과

--BETWEEN 연산자: AND 연산 축약가능

--급여가 5000이상 20000이하인 사원의 사번, 이름, 급여를 출력하시오
SELECT employee_id, first_name, salary
FROM employees
WHERE salary BETWEEN 5000 AND 20000;

--IN연산자:OR연산축약가능

--부서번호가 30번, 50번인 사원의 사번, 이름, 부서번호를 출력하시오
SELECT employee_id, first_name, department_id
FROM employees
WHERE department_id IN (30,50);

--BETWEEN과 IN 연산

--부서번호가 30번, 50번인 사원 중 
급여가 5000이상 20000이하인 사원의 사번, 이름, 급여, 부서번호를 출력하시오--6건
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id IN (30,50)
AND salary BETWEEN 5000 AND 20000;

--LIKE 연산자, : 패턴종류 - %, _ 글자 하나, 처리속도 떨어져서 권장하지 않음

--입사년도가 03년도인 사원들을 출력하시오
SELECT *
FROM employees
--WHERE hire_date BETWEEN '03/01/01' AND '03/12/31'; 2003년 입사자들
WHERE hire_date LIKE '03%';  
--03으로 시작하면서 뒤에 몇개의 문자가 와도 상관없다
--% 0개 이상의 모든 문자
--직무명이 Manager로 끝나는 직무들을 출력하시오
SELECT *
FROM jobs
WHERE job_title LIKE '%Manager';
--사원명의 두번째글자가 'e'인 사원들을 출력하시오
SELECT *
FROM employees
WHERE first_name LIKE '_e%';

'데이터베이스 > Oracle' 카테고리의 다른 글

내장함수(단일행 함수)  (1) 2023.08.21
방화벽 오라클만 풀기  (0) 2023.08.21
SQL Developer 시작하기  (0) 2023.08.21
SQL  (0) 2023.08.21
객체의 종류, 스키마, 모델링, 엔티티  (0) 2023.08.20