SQL 61

그룹 함수 - group by 절

**** 그룹함수와 함께 사용되는 group by 절에 대해서 알아봅니다. **** -- employees 테이블에서 부서번호별로 인원수를 나타내기 -- select department_id 부서번호 , count(*) 인원수 from employees group by department_id -- department_id 컬럼의 값이 같은 것끼리 그룹을 짓는다. order by 1; /* --------------- 부서번호 인원수 101 202 306 401 5045 605 701 8034 903 1006 1102 NULL 1 */ -- employees 테이블에서 성별로 인원수를 나타내기 -- select Gender 성별, count(*) 인원수 from ( select case when subs..

SQL 2022.07.05

VIEW - inline view, stored view응용(대출 이자 납부액 구하기)

[목표] ------------------------------------------------------------------------------------------------------------------------- 통장번호 대출금 이자율 저번달이자지급일자 이번달이자지급일자 대출일수 이자금액 ------------------------------------------------------------------------------------------------------------------------ 테이블 생성, 값 생성 create table tbl_loan (gejanum varchar2(10) -- 통장번호 ,loanmoney number -- 대출금 ,interestrate num..

SQL 2022.07.05

VIEW - 개념, inline view 응용(퇴직금 구하기)

---- **** !!!! 아주 중요중요중요중요중요중요중요 아주 !!!! **** ---- -- VIEW(뷰)란? 테이블은 아니지만 select 되어진 결과물을 마치 테이블 처럼 보는것(간주하는 것)이다. -- VIEW(뷰) 는 2가지 종류가 있다. -- 첫번째로 inline view 가 있고, 두번째로 stored view 가 있다. -- inline view 는 바로 위의 예제에 보이는 V 인 것이다. 즉, select 구문을 괄호( )를 쳐서 별칭(예 : V)을 부여한 것을 말한다. -- stored view 는 복잡한 SQL(Structured Query Language == 정형화된 질의어)을 저장하여 select 문을 간단하게 사용하고자 할 때 쓰인다. -- 그래서 inline view 는 1..

SQL 2022.07.04

단일행함수 - 기타함수

case when then else end decode greatest , least rank ==> 등수(석차)구하기, dense_rank ==> 서열구하기 lag , lead -- 5.1 case when then else end !! 필수암기 !! -- 5.2 decode !! 필수암기 !! select case 5-2 -- 5.2 가 when 4 then '5-2=4입니다.' -- 4 이라면 '5-2=4입니다.' when 1 then '5-2=1입니다.' -- 1 이라면 '5-2=3입니다.' when 3 then '5-2=3입니다.' -- 3 이라면 '5-2=3입니다.' else '나는 수학을 몰라요' end 결과 , decode(5-2, 4, '5-2=4입니다.' , 1, '5-2=1입니다.' ..

SQL 2022.07.04

단일행함수 - 변환함수

------------ >> 4. 변환 함수 1, 4월~6월 => 2, 7월~9월 => 3, 10월~12월 => 4 , to_char(sysdate, 'day') AS 요일명 -- 월요일(Windows) , Monday(Linux) , to_char(sysdate, 'dy') AS 줄인요일명 -- 월(Windows) , Mon(Linux) from dual; select to_char(sysdate, 'd') -- 1(일요일) 2(월요일) 3(화요일) 4(수요일) 5(목요일) 6(금요일) 7(토요일) from dual; select case to_char(sysdate, 'd') when '1' then '일' when '2' then '월' when '3' then '화' when '4' then '수..

SQL 2022.07.04

단일행함수 - 날짜함수

------------ >> 3. 날짜 함수 날짜1 에서 숫자(일수)만큼 뺀 값이 날짜2가 된다. 여기서 중요한 것은 숫자의 단위가 '일수' 라는 것이다. --- 단위 환산 --- 1 kg = 1000 g 1 g = 1/1000 kg 1 일 = 24 시간 1 시간 = 1/24 일 1 시간 = 60 분 1 분 = 1/60 시간 1 분 = 60 초 1 초 = 1/60 분 select sysdate - 1, to_char(sysdate -1, 'yyyy-mm-dd hh24:mi:ss') 어제시각 , sysdate , to_char(sysdate , 'yyyy-mm-dd hh24:mi:ss') 현재시각 , sysdate + 1, to_char(sysdate +1, 'yyyy-mm-dd hh24:mi:ss') 내..

SQL 2022.07.04

단일행함수 - 숫자함수

------------ >> 2. 숫자 함수 입력된 실수보다 큰 최소의 정수를 나타낸다. -- ceil(정수) ==> 입력된 정수를 그대로 나타낸다. select ceil(10.1), ceil(10), ceil(-10.1), ceil(-10) from dual; -- 1110-10-10 -- 2.10 floor(실수) ==> 입력된 실수보다 작은 최대의 정수를 나타낸다. -- floor(정수) ==> 입력된 정수를 그대로 나타낸다. select floor(10.1), floor(10), floor(-10.1), floor(-10) from dual; -- 1010-11-10 -- 2.11 ascii, chr select ascii('A'), ascii('a'), ascii(0), ascii(' ') fr..

SQL 2022.07.04

단일행 함수 - 문자 함수

------------ >> 문자 함수 '문자열' 을 모두 소문자로 변환 select 'kOreA SEoul', lower('kOreA SEoul') from dual; -- 1.3 initcap('문자열') ==> '문자열' 을 단어별(구분자 공백)로 첫글자만 대문자, 나머지는 소문자로 변환 select 'kOreA SEoul', initcap('kOreA SEoul') from dual; select * from employees where lower(last_name) = lower('King'); -- 1.4 substr('문자열', 시작글자번호, 뽑아야 할 글자길이) -- ==> '문자열' 중에 문자열의 특정 일부분을 선택할 때 사용한다. select '쌍용교육센터' , substr('쌍용교육센..

SQL 2022.07.04