목록SQL (24)
쯔이's Dev
[ [ JOIN ] ] 두개 이상의 테이블에서 데이터를 조회하고자 할 때 사용되는 구문조회 결과는 하나의 결과(RESULT SET)를 반환한다.관계형 데이터베이스에서는 최소한의 데이터를 각각의 테이블에 담고 있음(무작정 다 조회해 오는게 아니라 각 테이블간 연결고리(외래키)를 통해 데이터를 매칭시켜 조회해야한다)JOIN은 크게 "오라클 전용구문" "ANSI 구문" [ 용어정리 ] 오라클 전용 구문 ANSI 구문 등가조인(EQUAL JOIN) 내부조인 (INNER JOIN) -> JOIN USING/ON포괄조인 LEFT, RIGHT외부조인 LEFT, RIGHT, FULL 자체조인비증가 조인JOIN ON > 연결시키는 컬럼의 값이 일치하는 행들만 조회(일치하는 값이 없는 행은 조회 제외) *..
Q. 각 직급별 총사원수, 보너스를 받는 사람수, 급여합, 평균급여, 최저급여, 최고급여 (정렬 = 직급 오름차순)SELECT job_code AS "직급", COUNT(*) AS "사원수", COUNT(bonus) AS "보너스 받는 사람", SUM(salary) AS "급여합", round(AVG(salary)) AS "급여평균", MIN(salary) AS "최저급여", MAX(salary) AS "최고급여"FROM employeeGROUP BY job_codeORDER BY job_code;Q. 부서별 보너스를 받는 사원이 없는 부서의 부서코드SELECT ..

그룹기준을 제시할 수 있는 구문(해당 그룹 기준별로 여러 그룹으로 묵을 수 있음)여러개의 값들을 하나의 그룹으로 묶어서 처리하는 목적으로 사용SELECT dept_code, COUNT(*),--(부서별 사원수) SUM(salary) -- 3FROM employee -- 1GROUP BY dept_code -- 2ORDER BY dept_code; -- 4 ORDER BY 무조건 마지막실행 -> 정렬은 마지막 해주는 것이 아니면 의미 X* BY 절함수식 사용 가능여러 컬럼 기술 가능SELECT decode(substr(emp_no, 8, 1), '1', '남', '2', '여'), COUNT(*)FROM employeeGROUP BY subst..

[표현법]SUM(숫자타입컬럼) : 해당컬럼 값들의 총 합계를 구해서 반환해주는 함수SELECT SUM(salary)FROM employee; [표현법]AVG(NUMBER) : 해당 컬럼값들의 평균을 구해서 반환SELECT round(AVG(salary))FROM employee; MIN > [표현법]MIN(모든타입가능) : 해당 컬럼값 중 가장 작은 값을 구해서 반환SELECT MIN(emp_name), MIN(salary), MIN(hire_date)FROM employee; MAX > [표현법]MAX(모든 타입 가능) : 해당 컬럼값들 중 가장 큰 값을 구해서 반환SELECT MAX(emp_name), MAX(salary), MA..
Q. EMPLOYEE테이블에서 이름, 연봉, 총수령액(보너스포함), 실수령액(총수령액 - (연봉*세금 3%)) 조회 SELECT emp_name, salary * 12, ( salary + ( salary * nvl(bonus, 0) ) ) * 12, ( ( salary + ( salary * nvl(bonus, 0) ) ) * 12 ) - ( ( salary + ( salary * nvl(bonus, 0) ) ) * 12 * 0.03 )FROM employee;Q. EMPLOYEE테이블에 월급이 4000000이상이고 JOB_CODE가 J2인 사원의 전체 컬럼 조회 SELECT *FROM employeeWHERE salary >= 4000000 AN..

[ [ NULL처리 함수 ] ] [표현법]NVL(컬럼, 해당컬럼이 NULL일 경우 보여줄 값)EX)SELECT emp_name, nvl(bonus, 0)FROM employee; [표현법]NVL2( 컬럼, 반환값1, 반환값2 )* 반환값1 : 해당컬럼이 존재할 경우 보여줄 값 * 반환값2 : 해당컬럼이 NULL일 경우 보여줄 값EX)SELECT emp_name, bonus, nvl2(bonus, 'O', 'X')FROM employee; [표현법]NULLIF(비교대상1, 비교대상2)* 두 값이 일치하면 NULL 일치하지 않으면 비교대상1 반환SELECT NULLIF('123', '123') FROM DUAL;SELECT NULLIF('123', '456') F..