728x90
반응형
SMALL

분류 전체보기 341

23.10.13. Oracle SQL IN, ANY, ALL

■ 여러행 서브쿼리 a. 서브쿼리 결과가 여러개의 값이 나오는 서브쿼리 b. 여러행 비교연산자(IN, ANY, ALL) SELECT * FROM hr.employees WHERE salary IN ( SELECT min(salary) FROM hr.employees GROUP BY department_id ); SELECT * FROM hr.employees WHERE salary > ( --오류발생: 단일행 비교연산자 SELECT salary FROM hr.employees WHERE job_id = 'IT_PROG' ); ★1. ANY a. ANY 의 의미 OR 범주를 가지고 있다. b. (단일 비교연산자) ANY 1. > ANY : '최소값보다 크다' 의미 SELECT * FROM hr.employ..

23.10.13. Oracle SQL SUBQUERY(서브쿼리)

110번 사원의 급여보다 더 많이 급여를 받는 사원을 출력해주세요 SELECT * FROM hr.employees WHERE salary > 110번 사원의 급여; 방법1) SELECT salary FROM hr.employees WHERE employee_id = 110 ; 방법2) 110번 사원의 급여 = 8200 SELECT * FROM hr.employees WHERE salary > 8200; 방법 1 과 방법 2 를 합치면 질문의 답이 나온다. SELECT * FROM hr.employees WHERE salary > ( -- 서브쿼리문 SELECT salary FROM hr.employees WHERE employee_id = 110 ); ■ SUBQUERY(서브쿼리) a. SQL 문 안에 ..

23.10.13. Class 복습 겸 문제

SQL 실행순서 FROM > ON > JOIN > WHERE > GROUP BY > HAVING > SELECT > ORDER BY tip) ON절의 조건인 JOIN이 되면서 실행되고, WHERE절의 조건은 JOIN이 모두 끝나고 나서 실행됩니다. ON과 WHERE를 같이 사용할 때와, ON만 사용할 때의 결과가 같다면 ON만 사용하는 것이 좋다. [문제1] 2006년도에 입사한 사원들의 부서이름별 급여의 총액, 평균을 출력해주세요. 1) 오라클 버전 SELECT d.department_name 부서명, SUM(e.salary) 총액급여, ROUND(AVG(e.salary)) 평균 급여 FROM hr.employees e, hr.departments h WHERE e.hire_date >= to_date..

문제/SQL 2023.10.13

23.10.12. Oracle SQL JOIN ②

■ ANSI(American National Standards Institue)-SQL(Strutured Query Language) join 문법 A. cartesian product SELECT employee_id, last_name, department_name FROM hr.employees CROSS JOIN hr.departments; B. natural join a. equi join b. 조인조건술어를 자동으로 만들어준다. c. 양쪽 테이블 '(쓰임이 달라도)동일한 이름의 모든 컬럼'을 기준으로 조인조건술어를 만든다. - 동일한 이름의 컬럼이 1개 있을 경우에 쓰는게 좋다. d. 양쪽 테이블의 동일한 이름의 컬럼이 '데이터 타입이 틀릴 경우', 오류 발생한다. SELECT e.employ..

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.11. Class 복습 겸 문제

[문제1] 2005년도에 홀수달에 입사한 사원들의 정보를 출력해주세요. DESC employees SELECT * FROM nls_session_parameters; -- 홀수달 계산 SELECT to_char(hire_date, 'mm') , -- 문자타입(왼쪽) mod(to_number(to_char(hire_date, 'mm')),2) , -- 문자타입(to_char)을 숫자타입(to_number)을 변형후에 mod()함수 사용하기 salary -- 숫자타입(오른쪽) FROM hr.employees; [방법1] BETWEEN - AND SELECT * FROM hr.employees WHERE hire_date BETWEEN to_date('2005/01/01', 'yyyy/mm/dd') AND t..

문제/SQL 2023.10.11
728x90
반응형
LIST