728x90
반응형
SMALL

Data Base 163

23.10.12. Oracle SQL JOIN ①

■ JOIN A. 두 개이상의 테이블에서 원하는 테이블를 가지고 오는 방법 SELECT employee_id, last_name, department_id FROM hr.employees; SELECT department_id, department_name FROM hr.departments; 1) Cartesian Product a. 조인 조건이 생략되었을 경우 b. 조인 조건이 잘못 만든 겨우 c. 첫 번째 테이블의 행의 수와 두 번째 테이블 행의 수가 곱해진다. SELECT employee_id, last_name, department_name FROM hr.employees, hr.departments; 2) EQUI JOIN, INNER JOIN, SIMPLE JOIN, 등가조인 a. 조인 ke..

23.10.11. Oracle SQL 그룹 함수

■ 그룹함수 - 여러행 당 하나의 결과를 반환하는 함수 - SUM(합계), AVG(평균; 이상값, 이상치데이터), MEDIAN(중앙값=대표값), VARIANCE(분산, 집계 함수), STDDEV(표준편차), MAX(최대값), MIN(최솟값), COUNT(집계) - 그룹함수에 입력하는 값이 '숫자형'만 입력해야 하는 그룹함수 : SUM, AVG, MEDIAN, VARIANCE, STDDEV - 그룹함수에 입력하는 값이 '모든 타입'이 가능한 그룹함수 : MAX, MIN, COUNT - 그룹함수는 NULL 을 포함하지 않는다. (단, COUNT(*) 만 NULL 포함한 행수를 구한다.) 1) COUNT : 행의 수를 구하는 함수 SELECT count(*) --null 포함 FROM hr.employees;..

23.10.11. Oracle SQL 조건제어문

■ 조건제어문 - SQL문에서 IF문을 사용해서 조건제어문을 수행 할 수 없다. - CASE 표현식, DECODE 함수 사용. IF문 ① IF 기준값 = 비교값 THEN 참값 ELSE 거짓값 END IF; ② IF 기준값 = 비교값 THEN 참값1 ELSE IF 기준값 = 비교값2 THEN 참값2 ELSE IF 기준값 = 비교값3 THEN 참값3 ... ELSE 기본값 END IF; - DECODE 함수는 기준값과 비교값을 내부적으로 같다(=)라는 비교연산자를 사용한다. IF 기준값 = 비교값 THEN 참값 /*FALSE 면 NULL 로 리턴한다.*/ ELSE 거짓값 END IF; - DECODE(기준값, 비교값, 참값) : FALSE 면 NULL 로 리턴한다. - DECODE(기준값, 비교값, 참값, ..

23.10.11. Oracle SQL NULL, NVL, NVL2, COALESCE, NULLIF

■ NULL - null 은 사용할 수 없거나, 할당되지 않았거나, 알 수 없거나 적용할 수 없는 값, 계산할 수 없다. 결측값(치) - null 0, 공백 아니다. SELECT employee_id, salary, commission_pct, ((salary * 12) + (salary * 12 * commission_pct))annual_salary FROM hr.employees; ■ NVL - null 값을 실제값으로 리턴하는 함수 - nvl(컬럼명, 실제값), nvl(인수, 인수) - nvl 함수 사용시에 두 인수의 타입이 일치해야 한다. SELECT employee_id, salary, commission_pct, ((salary * 12) + (salary * 12 * commission_p..

23.10.10. Oracle SQL 형변환 함수

■ 형변환 함수 - to_char : date(날짜형)을 char(문자형)으로 변환하는 함수 - to_char(날짜, '날짜모델요소') SELECT * FROM nls_session_parameters; SELECT sysdate , to_char(sysdate, 'yyyymmdd'), to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss.sssss') , to_char(sysdate + 100, 'yyyy-mm-dd hh24:mi:ss.sssss') , to_char(sysdate - 100, 'yyyy-mm-dd hh24:mi:ss.sssss') FROM dual; SELECT sysdate , to_char(sysdate, 'yyyy yy rr rrrr year'), to_char..

23.10.10. Oracle SQL 숫자 함수, 날짜 함수

■ 숫자 함수 ex) (PL/SQL) ERP(재무, 회계) round (): 지정된 소수점 자릿수 값을 반올림 하는 함수 SELECT round(45.926, 2) "소수점 두번째 반올림", round(45.926, 1) "소수점 첫번째 반올림", round(45.926, 0) "일의 자리 반올림" , round(45.926), --생략 가능 round(45.926, -1) "십의 자리 반올림", round(55.926, -2) "백의 자리 반올림" FROM dual; SELECT round(((salary*12) + (salary*12*nvl(commission_pct, 0))) + 0.123, 0) FROM hr.employees ; - trunc() : 지정된 소수점 자릿수 값을 버리는 함수 SEL..

23.10.06. Oracle SQL 정렬(SORT), 함수(function), 문자함수

■ 정렬(SORT) - ORDER BY 절을 이용해서 정렬한다. - ORDER BY 절은 SELECT문의 가장 마지막절에 기술한다. - 기본값으로 오름차순으로 정렬한다. asc(acsending) - 내림차순 정렬 desc(descending) SELECT employee_id, salary, job_id, department_id FROM hr.employees ORDER BY department_id asc; SELECT employee_id, salary, job_id, department_id FROM hr.employees ORDER BY department_id desc; -- 표현식 사용 SELECT employee_id, salary * 12 FROM hr.employees ORDER BY..

23.10.06. Oracle SQL NULL / LIKE 연산

■ NULL 연산자 - NULL 값을 체크하는 연산자 - IS NULL, IS NOT NULL SELECT * FROM hr.employees WHERE commission_pct IS NULL; SELECT * FROM hr.employees WHERE commission_pct IS NOT NULL; ■ LIKE 연산자 - 문자 패턴만 찾는 연산자 - % : 0개 이상의 문자를 찾을때 사용 - _ : 1개 문자를 찾을때 사용 SELECT * FROM hr.employees WHERE last_name LIKE 'K%'; SELECT * FROM hr.employees WHERE last_name LIKE '_i%'; SELECT * FROM hr.employees WHERE last_name LIKE..

23.10.06. Oracle SQL WHRER 절, IN 연산자

■ WHERE 절 (조건절) - 행을 제한하는 절 - 기준컬럼이 문자열, 날짜열이면 비교값은 작은 따옴표로 묶어야 한다. - 영문자는 대소문자를 구분한다. - 날짜형식은 지역, 언어에 따라 기본 날짜 표시형식이 다르다. 한국(RR/MM/DD), 미국(DD-MON-RR) - 비교연산자 =(같다), >(크다), >=(크거나 같다), = 10000; SELECT * FROM hr.employees WHERE department_id = 20; SELECT * FROM hr.employees WHERE salary >= 10000; SELECT * FROM hr.employees WHERE department_id = 20 AND salary >= 10000; -- 문자형 비교연산자 SELECT * FROM h..

23.10.06. Oracle SQL ② SELECT 문

■ 리터럴 문자열(' ') - 숫자, 날짜, 문자는 작은 따옴표로 묶어야 한다. - 연결연산자인 ||를 사용하지 않고 그대로 '사원 번호는 ' employee_id로 사용한다면 에러발생한다.(문법) SELECT 'My name is '||last_name||' '||first_name as "name" FROM hr.employees; -- 오류발생 SELECT 'My name's '||last_name||' '||first_name as "name" FROM hr.employees; /* My name is = My name's 출력 하기 위해서는 ''s 로 표현 */ SELECT 'My name''s '||last_name||' '||first_name as "name" FROM hr.employee..

728x90
반응형
LIST