05.20(SUBQUERY)
2020. 5. 20. 20:00
프로그래밍/SQL
서브쿼리(SUBQUERY)란? 하나의 SQL문(main query)에 포함되어 있는 또다른 SQL문(sub query) 서브쿼리는 order by 문법 지원 안됨 ①서브쿼리는 메인쿼리가 실행되기 이전에 한번만 실행 ②비교연산자의 오른쪽에 기술해야 함 ③반드시 괄호로 묶어야 함 ④또한 서브쿼리와 비교할 항목은 반드시 서브쿼리의 select한 항목의 개수와 자료형을 일치시켜야 함 예제1)관리자 아이디로 관리자 이름 조회 select emp_name from employee where emp_id = (select manager_id from employee where emp_name = '권정열'); 예제2)급여 평균보다 급여를 많이 받는 사원 조회 select emp_name, salary from emp..
05.19(join의 종류)
2020. 5. 19. 20:00
프로그래밍/SQL
inner join과 outer join 두 개 이상의 테이블을 조인할 때, 일치하는 값이 없는 행은 조인에서 제외됨 이것을 inner join이라고 하며, 명시적으로 사용하지 않을 시에는 기본적으로 inner join임 하지만 일치하지 않은 값 또한 join에 포함시킬 수도 있음 이것을 outer join이라고 하며, 반드시 outer join임을 명시해야 함 inner join 교집합 기준컬럼값이 null이거나 상응하는 컬럼값이 없는 경우는 제외됨(유령부서 떠올리기) select distinct dept_id from employee E join department D on E.dept_code = D.dept_id; outer join 합집합 left (outer) join dept_code가 nu..
05.18(join)
2020. 5. 18. 20:00
프로그래밍/SQL
join이란? 한 개 이상의 테이블에서 데이터를 조회하기 위해 사용하는 것으로, 수행 결과는 하나의 result set으로 나옴 존재하는 테이블의 레코드를 조합하여 표현하는 가상테이블 연관된 컬럼을 기준으로 하여 데이터(행)를 조합함 join과 union join : 열 추가 union : 행 추가 join의 두가지 문법 1. ANSI 표준 문법 : DBMS에 상관 없이 공통적으로 사용가능한 표준 SQL문법(표준문법이기때문에 잘 알아두기) 2. oracle 전용 문법 : oracle DBMS에서만 사용가능한 문법 join의 두가지 종류 1. equi join : 기준컬럼에 대해 동등조건(=)을 사용한 join (대부분의 join) 두테이블의 기준컬럼이 다른 경우, 테이블명 생략 가능(가독성을 위해 별칭을..
05.15(union, union all, intersect, minus)
2020. 5. 15. 23:00
프로그래밍/SQL
set operation 여러 개의 select 결과물을 하나의 쿼리로 만드는 연산자 여러개의 질의결과(결과 집합)를 세로로 연결한 방식 집합연산자 조건 1. 두개 이상의 결과집합에 대해 컬럼수가 동일해야함(행의 갯수는 달라도 됨) 2. 같은 위치의 컬럼은 데이터 타입이 상호 호환 가능해야 함(완전히 똑같진 않아도 호환 가능하면 됨) union union과 union all은 여러 개의 쿼리 결과를 하나로 합치는 연산자 그 중 union은 중복된 영역을 제외하여 하나로 합치는 연산자 첫번째 컬럼 기준으로 오름차순 정렬 예제)부서가 D5이거나 급여가 300만원 이상인 사원 조회(합집합) select emp_id, emp_name, dept_code, salary from employee where dept..
05.14(group by & having)
2020. 5. 14. 21:54
프로그래밍/SQL
order by절 select한 컬럼에 대해 정렬을 할 때 작성하는 구문 select 구문의 가장 마지막에 작성하며, 실행순서도 가장 마지막에 수행됨 group by절 세부그룹을 지정함 그룹함수는 단 한 개의 결과값만 산출하기 때문에, 그룹함수를 이용하여 여러 개의 결과값을 산출하기 위해서는 그룹함수가 적용될 그룹의 기준을 group by절에 기술하여 사용해야 함 예제1)성별 인원수 체크 select decode(substr(emp_no, 8,1), '1', '남', '3', '남', '여') 성별, count(*) from employee group by decode(substr(emp_no, 8,1), '1', '남', '3', '남', '여'); 예제2)부서내 직급별 인원수 구하기 2개 이상의 컬럼..
05.13(Oracle 내장 함수)
2020. 5. 13. 20:00
프로그래밍/SQL
Function 오라클에 내장되어 있는 함수 값(인자=파라미터)전달 호출 → 작업 수행 → 결과값 리턴 (오라클은 무조건 값을 리턴함) 함수 종류 1. 단일행 처리 함수 : 행단위로 실행되는 함수(행마다 한 번 씩 실행되기에 결과값도 행 갯수와 같음) a. 문자처리 함수 b. 숫자처리 함수 c. 날짜처리 함수 d. 형변환 함수 *확실히 알아두기* e. 기타 함수 2. 그룹함수(다중행 처리 함수) : 여러행을 그룹지어 처리하는 함수 1. 단일행 처리함수 a. 문자처리 함수 length(문자열) 문자열의 길이를 리턴 select email, length(email), --가상컬럼으로 매행마다 결과값 리턴(단일행 함수) lengthb(email), emp_name, length(emp_name), length..
05.12(SQL기본 구문 select, where, order by)
2020. 5. 12. 20:00
프로그래밍/SQL
1. SELECT 존재하는 컬럼외에 산술연산의 결과를 조회할 수 있음 연봉 salary * 12 컬럼별 별칭부여가능 select emp_name, salary as "1달 급여", salary * 12 연봉, --임의로 생성됨(가상컬럼), 오라클 문자열 '' 별칭은 "", as 생략가능, "" 생략가능(공백있을시 ""표시) bonus, salary + (salary *bonus) 실제급여, --보너스(0.3) sal*1.3 salary + (salary * nvl(bonus, 0)) "실제급여 (null)처리", (salary + (salary * nvl(bonus, 0))) * 12 "연봉", '원' from employee; select * from employee; 산술연산 중에 null이 사용되면..
05.11(SQL)
2020. 5. 11. 20:00
프로그래밍/SQL
SQL이란? Structured Query Language의 약자 (구조화된 질의 언어) 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성함 DBMS(벤더)에 따라 사용되는 SQL 문법이 다름 기본 SQL 문법 종류 1. DDL (Data Definition Language) : 데이터 정의어 데이터베이스의 구조를 정의하거나 변경, 삭제 하기 위해 사용하는 언어 주로 DB 관리자 또는 설계자가 사용함 CREATE(개체 생성), ALTER(개체 수정), DROP(개체 삭제), TRUNCATE(개체 초기화) ex) DB를 생성/수정/삭제 하거나 TABLE을 생성/수정/삭제 등 2. DML (Data..