개인참고자료/오라클(데이터베이스) 6

DML과 With Check Option의 사용

insert into(select s_id, s_name, reg_date, major_id, tuition, discount, sex from student where dept_id = 120) values(199, 'Jojo', to_date('07-JUN-99', 'DD-Mon-RR'), 'ART_309', 3400, null, 'FEMALE'); 위의 문장은 현재 Jojo 라는 학생의 정보를 새롭게 추가할 때 학과아이디(dept_id)가 120라는 값과 select 절에 명시한 컬럼 값을 설정하고 있다. 원래의 의도는 학과아이디(dept_id)값도 함께 추가하는 것이지만 실제 실행결과는 다르게 나온다. select 절에 학과아이디(dept_id)를 명시하지 않았기 때문에 dept_id=120이란 ..

복수 행 서브쿼리의 정의와 In, Any, All 연산자의 사용

IN IN연산자는 리스트에 있는 각각의 값들과 비교하여 값이 같으면 해당하는 결과를 출력시킨다 SELECT s_name, tuition, dept_id FROM student WHERE tuition IN(8900, 9300, 7600, 4500, 16500); Any " Any"는 ANY 연산자 리스트에 있는 값들 가운데 가장 작은 값보다 크기만 하면 조건을 만족한다 SELECT s_name, tuition, dept_id FRO..

NULL관련 함수

NVL2 NVL2(a, b, c) a : 널(null)을 포함하는 컬럼 이름 또는 임의의 값 b : a가 널(null)이 아니면 b를 출력 c : a가 널(null)이면 c를 출력 NULLIF NULLIF(a, b) a : 널(null)을 포함하는 컬럼 이름 또는 임의의 값 b : 널(null)을 포함하는 컬럼 이름, 또는 임의의 값 COALESCE COALESCE(a, b, c) a 값이 널(null)인지를 확인한다. 널(null)이 아니면 a 값을 결과로 돌려주면 널(null)이면 그 다음 b 값을 확인한다. b 값이 널(null)이 아니면 b 값을 결과로 돌려주면 널(null)이면 c 값이 최종 결과가 된다.

단일 행 함수 - 기타 함수(CASE)

CASE CASE value WHEN expr1 THEN 구문1 WHEN expr2 THEN 구문2 ELSE 구문3 END CASE 예제1 SELECT job_id, CASE job_id WHEN 'SA_MAN' THEN 'Sales Dept' WHEN 'SA_REP' THEN 'Sales Dept' ELSE 'Another' END CASE FROM jobs WHERE job_id LIKE 'S%'; 위 CASE 구문에서 CASE job_id ~ END CASE에 이르는 구문을 하나의 칼럼으로 생각한다. 두 번째 칼럼의 값은 job_id 칼럼의 값이 'SA_MAN'이나 'SA_REP'인 경우 'Sales Dept(판매 부서)'라는 이름으로 표현되며, 그 외는 'Another'로 표기된다. ※ CASE는..

단일 행 함수 - 문자 함수(LOWER 함수)

LOWER LOWER(char) 입력된 문자 값을 소문자로 변환한다. 테이블에 저장되어 있는 영문자에 대해서 Oracle은 대소문자를 구분한다. WHERE절에서 지정된 값에 대해 정확하게 대소문자가 표현되어야 한다. 예제1. hr 소유의 사원 테이블에 'Seo'라는 이름을 가진 사원에 관한 정보를 얻는다. SELECT employee_id , last_name FROM employees WHERE last_name = 'seo'; 위의 질의문의 결과를 보면 아무것도 출력하지 않는다. 다음과 같이 수정한다. SELECT employee_id , last_name FROM employees WHERE last_name = 'Seo'; 사원번호 139번인 Seo의 정보를 얻어온다. 이 경우 정확한 대소문자를 ..

단일 행 함수 - 숫자 함수(WIDTH_BUCKET 함수)

WIDTH_BUCKET WIDTH_BUCKET(expr, min_value, max_value, num_buckets) 어떤 값의 최소값에서부터 최대값을 설정하고 bucket을 지정하여 임의의 값이 지정된 범위 내에서 어느 위치에 있는지를 반환한다. 예제1. 0부터 100까지를 10개의 구간으로 나눈 후 92가 몇 번째 구간에 속하는지 알아본다. SELECT WIDTH_BUCKET (92,0,100,10) "Score" FROM dual; 설명. 0에서 100 사이의 값을 10의 크기로 부분하여 0~9를 1로, 10~19를 2로 하여 값을 반환한다. 92는 90~99 사이의 값이므로 10의 값을 반환한다. 예제2. hr 소유의 사원 테이블 에서 급에 대해 등급을 정의한다. 급여의 범위를 0~20,000으..