SQL - 다중 컬럼 서브쿼리 / 인라인 뷰
·
DB/SQL
-- -- 서브쿼리에서 여러 개의 컬럼값을 검색하여 메인쿼리의 조건절과 비교하는 서브쿼리 -- 컬럼을 쌍으로 묶어서 동시에 비교하는 pairwise 방식 -- 컬럼별로 나누어 비교하고 나중에 AND 연산으로 처리하는 unpairwise 방식 SELECT last_name, department_id, salary FROM employees WHERE (department_id, salary) IN ( SELECT department_id, MAX(salary) FROM employees GROUP BY department_id ) ORDER BY 2; -- -- -- FROM 절에서 사용하는 서브쿼리 -- FROM절에서 참조하는 테이블의 크기가 클 경우에 필요한 행과 컬럼만으로 구성된 집합을 -- 재정의하..
SQL - 단일행/복수행 서브쿼리
·
DB/SQL
-- : 서브쿼리가 실행되어 반드시 한 개의 행을 반환하는 서브쿼리 -- 1. 비교 연산자 -- : 서브쿼리가 실행되어 반환되는 결과가 하나 이상의 행일 때 사용하는 서브쿼리 -- -- 1. IN 연산자: 서브쿼리 반환값이 복수이고 메인 쿼리와 동등 연산자(=) 방식으로 비교할 때 SELECT last_name, salary FROM employees WHERE salary IN ( SELECT salary FROM employees WHERE last_name IN ('Whalen','Fay') ); -- 2. 다중 연산자 > ALL : 최대값보다 큰 값을 조회 ( 최대 월급보다 많은 ) SELECT last_name, department_id, salary FROM employees WHERE sal..
SQL - 서브쿼리(sub query)
·
DB/SQL
서브쿼리 (sub query) query => select문 의미 sub query는 하나의 SQL문에 여러 개의 select문을 사용할 수 있다. 이유? 하나의 select문으로는 원하는 데이터를 못 얻을 때 사용 가능한 SQL **select 문** ( where절, from절, select, having절 ) **DML 문** ( insert, update, delete문 ) **DDL 문** ( create 문 ) **==> 값을 지정할 수 있는 곳이면 sub query 사용 가능하다.** sub query 특징 반드시 () 사용 다른 main sql문보다 먼저 실행하고 실행된 결과를 가지고 main sql문이 사용한다. main query와 sub query 간에 사용되는 연산자는 정해져 있다...
SQL - 그룹함수
·
DB/SQL
그룹함수 그룹핑 방법 기본적으로 테이블은 하나로 묶여 있음 - 그룹함수를 제한없이 사용할 수 있다. 가. 자동으로 묶임 나. 명시적으로 묶임 - 요청 text가 ~별로 요청하면 무조건 묶어야 된다. 예)학년별, 부서별, 성별, ... - group by 표현식 해석 순서 ⑤ SELECT 컬럼명 | 함수식 ① FROM 테이블명 [ + JOIN ] ② WHERE 컬럼명 | 함수식 비교연산자 비교값 ③ GROUP BY 컬럼명 ④ HAVING 그룹함수식 비교연산자 비교값 ⑥ ORDER BY 컬럼명 | 순번 | 별칭 정렬기준 SUM 함수 널(null)값을 제외한 해당 컬럼 값들의 총합을 구하는 함수 인자로 DISTINCT를 사용하면 중복된 값을 제외하고 총합 계산이 처리된다. ALL은 중복된 값을 모두 포함하여 ..
SQL - 날짜함수, 변환함수, 조건함수
·
DB/SQL
날짜 함수 select * from NLS_SESSION_PARAMETERS; create table exam (a date, b date); insert into exam (a, b) values (to_date('15/01/01','RR/MM/DD'), to_date('15/01/01','YY/MM/DD')); select to_char(a, 'RRRR'), to_char(b, 'YYYY') from exam; -- 시스템의 년도를 1995년도 변경 insert into exam (a, b) values (to_date('15/01/01','RR/MM/DD'), to_date('15/01/01','YY/MM/DD')); select to_char(a, 'RRRR'), to_char(b, 'YYYY')..
xoo | 수진
xoo의 성장기록