-- 테이블의 모든 데이터 조회
SELECT *
FROM 테이블명;
 
-- 모든 부서 정보 조회하기
SELECT *
FROM DEPARTMENTS;
 
-- 모든 국가 정보 조회하기
SELECT *
FROM COUNTRIES;
 
-- 모든 사원 정보 조회하기
-- 오라클의 키워드와 테이블 이름, 컬럼 이름은 대소문자를 구분하지 않는다.
SELECT *
FROM EMPLOYEES;
 
-- 모든 직종 정보 조회하기
SELECT *
FROM JOBS;
 
-- 모든 직종 변경 이력 정보 조회하기
SELECT *
FROM JOB_HISTORY;
 
-- 테이블의 특정 열(컬럼)의 데이터 조회하기
SELECT 컬럼명, 컬럼명, 컬럼명
FROM 테이블명;
 
-- 부서 정보 중에서 부서 번호와 부서 이름을 조회하기
SELECT DEPARTMENT_ID, DEPARTMENT_NAME
FROM DEPARTMENTS;
 
-- 사원 정보 중에서 사원 아이디, 이름, 급여를 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES;
 
-- 사원 정보 중에서 부서 아이디, 사원 아이디, 직종 아이디, 이름, 급여를 조회하기
SELECT DEPARTMENT_ID, EMPLOYEE_ID, JOB_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES;
 
-- SELECT절에서는 산술 연산자(+, -, *, /)의 사용이 가능하다.
-- 숫자 데이터 및 날짜 데이터에 대해서 사용 가능하다.
-- SELECT 컬럼명+컬럼명, 컬럼명 - 숫자, 컬럼명 * 숫자, 컬럼명/숫자, 컬럼명/컬럼명
-- from 테이블명
 
-- 사원 아이디, 이름, 급여, 연봉을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, SALARY*12
FROM EMPLOYEES;
 
-- 사원 아이디, 이름, 급여(주급), 시급(원으로 환산한 값:1달러 1130원)
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, (SALARY/40)*1130 SALARY_PER_HOUR
FROM EMPLOYEES;
 
-- 별칭 부여하기
-- SELECT 컬럼명 AS 별칭, 컬럼명 AS 별칭, 산술식 AS 별칭
-- FROM 테이블명
 
-- SELECT 컬럼명 별칭, 컬럼명 별칭, 산술식 "별칭" <-- 띄어쓰기 하고 싶을 때
-- FROM 테이블명
 
 
-- 오라클의 예약어는 컬럼명으로 쓸 수 없음.
SELECT EMPLOYEE_ID AS ID, FIRST_NAME AS NAME, HIRE_DATE AS "DATE"
FROM EMPLOYEES;
 
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY || '달러'
FROM EMPLOYEES;
 
-- 문자 이어 붙이기 연산자 ||
-- 문자(열) ''
-- 별칭 ""
 
-- 연결 연산자
-- 연결 연산자(||)는 컬럼과 컬럼, 산술식과 컬럼, 산술식과 산술식을 연결해서 문자를 생성한다.
 
 
 
-- 사원 아이디, 이름, 직종을 조회하기
-- (단, FIRST_NAME과 LAST_NAME을 연결해서 조회하고, 별칭을 FULL_NAME으로 붙이기)
SELECT EMPLOYEE_ID, FIRST_NAME || LAST_NAME AS FULL_NAME, JOB_ID
FROM EMPLOYEES;
 
SELECT EMPLOYEE_ID, FIRST_NAME || ' ' || LAST_NAME AS FULL_NAME, JOB_ID
FROM EMPLOYEES;
 
-- 사원들이 현재 근무하고 있는 직종을 조회하기(중복 제거)
SELECT DISTINCT EMPLOYEE_ID, JOB_ID -- 이 경우 둘 다 같은 게 있어야 중복 제거 됨.
FROM EMPLOYEES;
 
-- 선택되는 행을 제한하기
-- WHERE 절을 사용하면 조회되는(선택되는) 행을 제한할 수 있다(조건절).
-- WHERE 절은 FROM 절 다음에 온다.
-- (조건식 --> WHERE 컬럼 이름 비교 조건 값, WHERE 컬럼이름 비교조건 다른 컬럼)
-- 오라클의 비교 조건 
-- 같다 =
-- 같지 않다. != <>
 
 
-- 사원 정보에서 60번 부서에서 소속된 사원의 아이디, 이름, 직종을 조회하기
SELECT employee_id, first_name, job_id, department_id
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 60;
 
-- 사원 정보에서 급여를 15000달러 이상 받는 사원의 아이디, 이름, 직종, 급여를 조회하기
 
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, JOB_ID, SALARY
FROM EMPLOYEES
WHERE SALARY >= 15000;
 
-- 사원 정보에서 사원 아이디가 200번인 사원의 아이디, 이름, 전화번호, 이메일, 소속부서 아이디 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, PHONE_NUMBER, EMAIL, DEPARTMENT_ID
FROM EMPLOYEES
WHERE EMPLOYEE_ID = 200;
 
-- ! 국가정보에서 아시아 지역에 위치하고 있는 나라의 국가코드, 국가명 조회하기
SELECT COUNTRY_ID, COUNTRY_NAME
FROM COUNTRIES
WHERE REGION_ID = 3;
 
-- WHERE 절에서 사용 가능한 기타 비교조건
-- WHERE 컬럼명 BETWEEN 값1 AND 값2
--      지정된 컬럼이 값1 이상 값2 이하인 행을 선택한다. 문자도?
-- WHERE 컬럼명 IN (값1, 값2, 값3)
--      지정된 컬럼의 값이 값1, 값2, 값3 중의 하나와 일치하는 행을 선택한다.
-- WHERE 컬럼명 LIKE '문자 패턴'
--      지정된 컬럼의 값이 문자 패턴과 유사한 행을 선택한다.
-- WHERE 컬럼명 IS (NOT) NULL
--      지정된 컬럼의 값이 NULL인(NULL이 아닌) 행을 선택한다.
--      컬럼의 값이 NULL인 행을 선택할 때 WHERE 컬럼명 = NULL과 같이 사용하지 않는다.
 
-- 급여가 10000 ~ 15000 달러를 받는 사원의 아이디, 이름, 직종, 급여를 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, JOB_ID, SALARY
FROM EMPLOYEES
WHERE SALARY BETWEEN 10000 AND 15000;
 
-- 사원 아이디가 150 ~ 170에 속하는 사원의 아이디, 이름 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME
FROM EMPLOYEES
WHERE EMPLOYEE_ID BETWEEN 150 AND 170;
 
-- 소속 부서 아이디가 30, 60, 90인 사원의 아이디, 이름, 직종, 부서 아이디를 조회하시오.
SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID, DEPARTMENT_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (306090);
 
-- 직종 아이디가 'ST_MAN'이거나 'ST_CLERK'인 직종의 아이디, 제목, 최소 급여, 최대 급여 조회하기
SELECT JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY
FROM JOBS
WHERE JOB_ID IN ('ST_MAN''ST_CLERK');
 
-- 오라클의 문자 패턴 형식 ( % 0 or 무한대로 이미지화 )
-- WHERE job_id LIKE 'ST%'     <-- JOB_ID가 'ST'로 시작하는 것 검색
-- WHERE job_id LIKE '%ST%'     <-- JOB_ID가 'ST'로 끝나는 것 검색
-- WHERE job_id LIKE '%ST%'     <-- JOB_ID가 'ST'를 포함하는 것 검색
 
-- WHERE NAME LIKE "이_" <-- 이름이 이*인 사람 검색(외자).
 
-- 이름에 'e'를 포함하고 있는 사원의 아이디, 이름을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE '%e%';
 
-- 이름이 'A'로 시작하는 사원의 아이디, 이름을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'A%';
 
-- 이름이 'L'로 시작하고 이름이 4글자인 사원의 아이디, 이름을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'L___';
 
-- 부서 정보에서 담당자가 지정되어 있지 않은 부서의 아이디, 부서 이름 조회하기
SELECT DEPARTMENT_ID, DEPARTMENT_NAME
FROM DEPARTMENTS
WHERE MANAGER_ID IS NULL;
 
-- 사원 정보에서 커미션을 받는 사원의 아이디, 이름, 급여, 커미션을 조회하기
SELECT  EMPLOYEE_ID, FIRST_NAME, SALARY, COMMISSION_PCT
FROM EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL;
 
-- 사원 정보에서 소속 부서가 지정되어 있지 않는 사원의 아이디, 이름, 직종을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID IS NULL;
 
-- 1. 모든 사원 정보 조회하기
SELECT *
FROM EMPLOYEES;
 
-- 2. 모든 부서 정보를 조회하기
SELECT *
FROM DEPARTMENTS;
 
-- 3. 사원 정보에서 사원 아이디가 100번인 사원의 아이디, 이름, 부서 아이디, 급여를 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, SALARY
FROM EMPLOYEES
WHERE EMPLOYEE_ID = 100;
 
-- 4. 사원 정보에서 소속 부서가 60번인 사원의 아이디, 이름, 부서 아이디, 직종을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, JOB_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 60;
 
-- 5. 사원 정보에서 60번 부서 혹은 80번 부서에 소속된 사원의 아이디, 이름, 부서 아이디, 직종을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, JOB_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (6080);
 
-- 6. 직장 정보에서 최소 급여가 5000달러 이상 10000 이하인 직종의 아이디, 제목, 최소 급여, 최고 급여 조회하기
SELECT JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY
FROM JOBS
WHERE MIN_SALARY BETWEEN 5000 AND 10000;
 
-- 7. 사원 테이블에서 커미션을 받는 사원의 아이디, 이름, 급여, 연봉, 시급을 조회하기
SELECT  EMPLOYEE_ID, FIRST_NAME, SALARY AS 급여, SALARY*12 AS 연봉, SALARY/208 AS 시급
FROM EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL;
 
-- 8. 사원 테이블에서 이름이 'Kevin'인 사원의 아이디, 이름, 이메일, 전화번호를 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, EMAIL, PHONE_NUMBER
FROM EMPLOYEES
WHERE FIRST_NAME = 'Kevin';
 
-- 9. 사원테이블에서 급여가 12000달러를 넘는 사원의 아이디, 이름, 급여를 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY > 12000;
 
-- 10. 사원테이블에서 연봉이 100000달러를 초과하는 사원의 아이디, 이름, 급여, 연봉을 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY*12 > 100000;
 
-- 11. 사원테이블에서 관리자가 없는 사원의 이름과 직종을 조회하기
SELECT FIRST_NAME, JOB_ID
FROM EMPLOYEES
WHERE MANAGER_ID;
 
-- 12. 사원테이블에서 커미션을 받는 사원의 아이디, 이름, 급여, 커미션, 커미션 반영 급여를 조회하기 (커미션 반영 급여 = 급여 + 급여*커미션)
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, COMMISSION_PCT, (1+COMMISSION_PCT)*SALARY
FROM EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL;
 
-- 13. 이름의 3번째 문자가 'a'인 사원의 이름을 모두 조회하기
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE '__a%';
 
cs

'Oracle Database SQL' 카테고리의 다른 글

190408  (0) 2019.06.07
190405  (0) 2019.06.07
190404  (0) 2019.06.07
190403  (0) 2019.06.07
190402  (0) 2019.06.07

+ Recent posts