주석 |
-- 한줄주석 /* 여러 줄 주석 */ |
ResultSet !!중요!! |
SELECT 구문을 통해 조회된 데이터의 결과물, 조회된 행들의 집합 |
SELECT |
데이터를 조회하거나 검색할 때 사용하는 명령어 [표현법] SELECT 조회하고자 하는 컬럼, 컬럼 , ... FROM 테이블명; [예시] SELECT * FROM EMPLOYEE; -- EMPLOYEE 테이블의 전체 사원들의 모든 컬럼 조회 SELECT ID, NAME, SALARY FROM EMPLOYEE; -- EMPLOYEE 테이블의 전체 사원들의 사번, 이름, 급여컬럼 조회 |
컬럼 값을 통한 산술연산 |
조회하고자 하는 컬럼들을 나열하는 SELECT 절에 산술 연산을 기술해서 결과를 조회할 수 있다. 산술 연산 : +, -, *, / [예시] SELECT NAME, SALARY, SALARY*12 FROM EMPLOYEE; -- EMPLOYEE 테이블로부터 직원명, 월급, 연봉 * 산술연산 하는 과정에 NULL 값이 존재할 경우 결과도 NULL이 된다. * DATE 타입끼리 연산 가능 [예시] SELECT NAME, HIRE_DATE, STSDATE - HIRE_DATE FROM EMPLOYEE -- EMPLOYEE 테이블로부터 직원명, 입사일, 근무일수(오늘날짜 - 입사일) 조회 -- 오늘 날짜 : SYSDATE -- 결과 값은 일 수 단위로 출력 |
컬럼명에 별칭 지정하기 |
[표현법] 1) 컬럼명 AS 별칭 2) 컬럼명 AS "별칭" 3) 컬럼명 별칭 -- AS를 붙이든 안붙이든 상관X -- 별칭에 특수문자, 띄어쓰기 공백이 포함될 경우 반드시 "" 묶어서 표기 [예시] SELECT NAME "이 름", SALARY AS "급 여", BONUS 보너스 FROM EMPLOYEE; |
리터럴 |
임의로 지정한 문자열(' ')을 SELECT절에 기술하면 실제 그 테이블에 존재하는 데이터처럼 조회가 가능하다 [예시] SELECT ID, NAME, SALARY, '원' 단위 -- 단위는 별칭 지정한 것 FROM EMPLOYEE; |
DISTINCT |
조회하고자 하는 컬럼의 중복된 값을 딱 한 번 씩만 조회할 때 해당 컬럼명 앞에 기술 [표현법] DISTINCT 컬럼명 * SELECT 절에 DISTINCT 구문은 단 한 개만 가능하다!! [예시] SELECT DISTINCT DEPT_CODE 사번 FROM EMPLOYEE; -- 사번의 중복값을 한 번 씩만 조회 |
WHERE !!중요!! |
조회하고자 하는 테이블에 특정 조건 제시 그 조건에 만족하는 데이터만을 조회하고자 할 때 기술 [표현법] SELECT 컬럼, 컬럼, ... FROM 테이블명 WHERE 조건식; -- 조건식에 다양한 연산자 사용 가능 [예시] SELECT * FROM EMPLOYEE WHERE SALARY >= 4000000; |
* 비교연산자 <, >, <= ,>= = 일치하는가? : 자바에서는 == !=, ^=, <> 일치하지 않는가? |
논리연산자 |
여러 개의 조건을 엮을 때 사용 AND( 그리고, ~이면서) OR ( 또는, ~이거나) [예시] SELECT NAME, ID, SALARY, JOB_CODE FROM EMPLOYEE WHERE 3500000<= SALARY AND SALARY <= 6000000; |
BETWEEN AND |
몇 이상 몇 이하인 범위에 대한 조건을 제시할 때 사용 [표현법] 비교대상컬럼명 BETWEEM 하한값 AND 상한값; [예시] SELECT NAME, ID, SALARY, JOB_CODE FROM EMPLOYEE WHERE SALARY BETWEEN 3500000 AND 600000; -- 급여 350 이상 600 이하 SELECT NAME, ID, SALARY, JOB_CODE FROM EMPLOYEE WHERE SALARY NOT BETWEEN 3500000 AND 600000; -- 급여 350미만, 600만원 초과 * 오라클에서의 NOT은 자바의 논리부정연산자 (!)와 동일한 의미 * DATE 형식간에도 사용 가능 |
LIKE '특정패턴' |
비교하려는 컬럼값이 내가 지정한 특정 패턴에 만족될 경우 조회 [표현법] 비교대상컬럼명 LIKE '특정패턴' * 특정 패턴에 와일드카드인 %와 _를 가지고 제시할 수 있음 % : 0글자 이상 비교대상컬럼명 LIKE '문자%' => 컬럼값 중에 '문자'로 시작되는 것 비교대상컬럼명 LIKE '%문자' => 컬럼값 중에 '문자'로 끝나는 것 비교대상컬럼명 LIKE '%문자%' => 컬럼값 중에 '문자'가 포함되는 것을 조회 '_' : 1글자 비교대상컬럼명 LIKE '_문자' => 해당 컬럼갑 중에 '문자' 앞에 무조건 1글자가 있을 경우 조회 비교대상컬럼명 LIKE '__문자' => 해당 컬럼값 중에 '문자' 앞에 무조건 2글자가 있을 경우 조회 |
IS NULL |
[표현법] 비교대상컬럼 IS NULL : 컬럼값이 NULL일 경우 비교대상컬럼 IS NOT NULL : 컬럼값이 NULL이 아닌 경우 |
IN |
비교대상 컬럼 값에 내가 제시한 목록들 중에 일치하는 값이 있는지 [표현법] 비교대상컬럼 IN (값, 값, 값, ...) [예시] -- 부서코드가 D6이거나 D8이거나 또는 D5인 사원들의 이름, 부서코드, 급여 SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE IN ('D6', 'D8', 'D5'); -- 그 외의 사원들 SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE NOT IN ('D6', 'D8', 'D5'); |
연결연산자 ( || ) |
여러 컬럼값들을 마치 하나의 컬럼인 것처럼 연결시켜주는 연산자 컬럼과 리터럴(임의의 문자열)을 연결할 수 있다 |
ORDER BY |
SELECT문 가장 마지막에 기입하는 구문 실행순서 또한 가장 마지막! [실행순서] SELECT --3 FROM --1 WHERE --2 ORDER BY --4 [표현법} SELECT 조회할 컬럼, 컬럼, AS "별명", 컬럼... FROM 조회할 테이블 이름 WHERE 조건식(생략가넝) ORDER BY [정렬할 컬럼/ 별칭/ 컬럼순번] [ASC/DESC] [NULLS FIRST/NULLS LAST](생략가능) - ASC 오름차순정렬 (생략시 기본값) - DESC : 내림차순 정렬 NULLS FIRST : NULL이 포함되어 있을 경우 앞으로 배치 (내림차순 시 기본값) NULL LAST : NULL이 포함되어 있을 경우 뒤로 배치 (오름차순 시 기본값) - ASC 또는 DESC 생략 시 기본값이 ASC(오름차순) - ASC는 기본적으로 NULLS LAST - DESC는 기본적으로 NULLS FIRST |
'국비 > Oracle' 카테고리의 다른 글
[03-1] Oracle DML (SELECT) SUBQUERY (0) | 2022.05.03 |
---|---|
[02-3] Oracle DML (SELECT) JOIN (0) | 2022.05.02 |
[02-2] Oracle DML (SELECT) , GROUP BY (0) | 2022.05.02 |
[02-1] Oracle DML (SELECT) 그룹함수 ☆☆ (0) | 2022.05.02 |
[01-2] Oracle DML (SELECT) 단일행함수 (0) | 2022.04.29 |