SQL Select 명령어
SELECT문 순서
- SELECT * 혹은 컬럼
- FROM [스키마.] 테이블명 혹은 [스키마.] 뷰명
- WHERE 조건
- ORDER BY 칼럼;
동작순서
- FROM 테이블명 : 메모리상에 테이블명의 모든 컬럼의 데이터가 로딩된다.
- WHERE 조건식 : 메모리의 100개의 데이터 중 조건에 해당하는 데이터 추출
- ORDER BY : 정렬 명령어를 사용하여, 메모리의 데이터를 정렬시킨다
- 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개 지정 – 오름차순 ORDER BY 컬럼명 ASC; – 내림차순 ORDER BY 컬럼명 DESC;
컬럼 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;
댓글남기기