SELECT문 순서

  • SELECT * 혹은 컬럼
  • FROM [스키마.] 테이블명 혹은 [스키마.] 뷰명
  • WHERE 조건
  • ORDER BY 칼럼;

동작순서

  1. FROM 테이블명 : 메모리상에 테이블명의 모든 컬럼의 데이터가 로딩된다.
  2. WHERE 조건식 : 메모리의 100개의 데이터 중 조건에 해당하는 데이터 추출
  3. ORDER BY : 정렬 명령어를 사용하여, 메모리의 데이터를 정렬시킨다
  4. SELECT 컬럼명, 컬럼명, … : SELECT 절에서 언급한 컬럼을 출력(조회)한다

SELECT 스키마명 사용/생략

-- 일반작업시 스키마명은 생략한다 예) ORA_UESR.EXPLOYEES
-- 접속시 사용한 계정명이 스키마명으로 사용하기 때문에

-- 현재 ORA_USER 사용자이므로, 동일한 구문이 된다
-- 1)스키마명 생략
SELECT EMP_NAME, employee_id, SALARY
FROM EMPLOYEES;

-- 2)스키마명 사용
SELECT EMP_NAME, employee_id, SALARY
FROM ORA_USER.EMPLOYEES;

SELECT 연산기능

-- 연산 기능
-- 사원테이블의 연봉을 2배 인상시 결과를 출력하라
SELECT employee_id, EMP_NAME, SALARY, SALARY * 2
FROM EMPLOYEES;

문자열 연결 연산자 ||

-- 문자열 연결연산자 : ||
SELECT EMP_NAME || '      ' || employee_id || '   :    ' || SALARY
FROM EMPLOYEES;

-- 별칭 : AS 이름
SELECT EMP_NAME || '      ' || employee_id || '   :    ' || SALARY AS PROFILE
FROM EMPLOYEES;

조건 걸어서 정렬하기

ORDER BY : 정렬

  1. 컬럼 1개 지정 – 오름차순 ORDER BY 컬럼명 ASC; – 내림차순 ORDER BY 컬럼명 DESC;

  2. 컬럼 2개 지정 – ORDER BY 컬럼명1 ASC, 컬럼명2 DESC

-- 사원번호 오름차순 정렬
SELECT *
FROM EMPLOYEES -- 107건
WHERE SALARY > 5000 -- 58건
ORDER BY EMPLOYEE_ID; -- ORDER BY EMPLOYEE_ID ASC 동일

-- 이름 오름차순 정렬
SELECT *
FROM EMPLOYEES -- 107건
WHERE SALARY > 5000 -- 58건
ORDER BY EMP_NAME;

-- 부서ID 오름차순 정렬
SELECT EMP_NAME, DEPARTMENT_ID, SALARY
FROM EMPLOYEES -- 107건
WHERE SALARY > 5000 -- 58건
ORDER BY DEPARTMENT_ID;

-- 부서ID 오름차순 정렬 -> SALARY 내림차순 정렬
SELECT EMP_NAME, DEPARTMENT_ID, SALARY
FROM EMPLOYEES -- 107건
WHERE SALARY > 5000 -- 58건
ORDER BY DEPARTMENT_ID, SALARY DESC;

복수조건 AND, OR

-- AND 와 OR 조건식에 함께 사용시 우선순위 AND 높다

-- SALARY가 5000 이상이고, JOB_ID가 'IT_PROG'인 사원을 조회하라
SELECT *
FROM EMPLOYEES
WHERE SALARY >= 5000 AND JOB_ID = 'IT_PROG';

-- SALARY가 5000 이상이거나, JOB_ID가 'IT_PROG'인 사원을 조회하라
SELECT *
FROM EMPLOYEES
WHERE SALARY >= 5000 OR JOB_ID = 'IT_PROG';

컬럼 별칭

-- 사용법 : 컬럼명 AS 별칭

SELECT employee_id AS E_ID, EMP_NAME AS E_NAME
FROM EMPLOYEES;

SELECT employee_id AS 사원번호, EMP_NAME AS 사원명
FROM EMPLOYEES;

SELECT employee_id AS "사 원 번 호", EMP_NAME AS "사 원 명"
FROM EMPLOYEES;

테이블명 생략

-- 1)테이블명, 칼럼명
SELECT EMPLOYEES.employee_id, EMPLOYEES.EMP_NAME
FROM EMPLOYEES;

-- 2)테이블명 생략사용
SELECT employee_id, EMP_NAME
FROM EMPLOYEES;

태그:

카테고리:

업데이트:

댓글남기기