목록DATABASE (18)
온풀투데이
20220303_01_hr.sql / 오라클 11일 차 정규화(Normalization) 정규화란? 한 마디로 데이터베이스 서버의 메모리 낭비를 막기 위해 어떤 하나의 테이블을... 식별자를 가지는 여러 개의 테이블로 나누는 과정을 말한다. -- ex) 호석이가... 옥장판을 판매한다. -- 고객 리스트 → 거래처 직원 명단이 적혀있는 수첩의 정보를 -- 데이터베이스화 하려고 한다. -- 테이블명 : 거래처직원 /* 10Byte 10Byte 10Byte 10Byte 10Byte 10Byte 10Byte ------------------------------------------------------------------------------- 거래처회사명 회사주소 회사전화 거래처직원명 직급 이메일 휴대폰..
20220225_01_scott.sql / 오라클 9일 차 JOIN(조인) -- 1. SQL 1992 CODE -- CROSS JOIN SELECT * FROM EMP; SELECT * FROM DEPT; SELECT * FROM EMP, DEPT; --> 수학에서 말하는 데카르트 곱(CARTESIAN PRODUCT) -- 두 테이블을 결합한 모든 경우의 수 -- EQUI JOIN : 서로 정확히 일치하는 것들끼리 연결하여 결합시키는 결합 방법 SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO; SELECT * FROM EMP E, DEPT D -- 별칭 부여 WHERE E.DEPTNO = D.DEPTNO; -- NON EQUI JOIN : 범위 안에 적합..
20220225_01_scott.sql / 오라클 9일 차 ROW_NUMBER SELECT ROW_NUMBER() OVER(ORDER BY SAL DESC) "테스트" , ENAME "사원명", SAL "급여", HIREDATE "입사일" FROM EMP; --==>> /* 1 KING 5000 1981-11-17 2 FORD 3000 1981-12-03 3 SCOTT 3000 1987-07-13 4 JONES 2975 1981-04-02 5 BLAKE 2850 1981-05-01 6 CLARK 2450 1981-06-09 7 ALLEN 1600 1981-02-20 8 TURNER 1500 1981-09-08 9 MILLER 1300 1982-01-23 10 WARD 1250 1981-02-22 11 M..
20220224_01_scott.sql / 오라클 8일 차 ROLLUP() --○ ROLLUP 사용 SELECT DEPTNO "부서번호", SUM(SAL) "급여합" FROM TBL_EMP GROUP BY ROLLUP(DEPTNO); --==>> /* 10 8750 20 10875 30 9400 (null) 8700 -- 부서번호를 갖지 못한 직원들의 급여합 (null) 37725 -- 모든부서 직원들의 급여합 */ SELECT DEPTNO "부서번호", SUM(SAL) "급여합" FROM EMP GROUP BY ROLLUP(DEPTNO); --==>> /* 10 8750 20 10875 30 9400 (null) 29025 */ --==>> /* -------- ------ 부서번호 급여합 ------..
20220223_01_scott.sql / 오라클 7일 차 - 그룹함수 SUM() 합, AVG() 평균, COUNT() 카운트, MAX() 최대값, MIN() 최솟값, VERIENCE() 분산, STDDEV() 표준편차 - 그룹함수의 가장 큰 특징 처리해야 할 데이터들 중 NULL 이 존재한다면(포함되어 있다면) 이 NULL 은 제외한 상태로 연산을 수행한다는 것이다. 즉, 그룹 함수가 작동하는 과정에서 NULL 은 연산의 대상에서 제외된다. --○ SUM() 합 -- EMP 테이블을 대상으로 전체 사원들의 급여 총합을 조회한다. SELECT SAL FROM EMP; --==>> /* 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300..
20220223_01_scott.sql / 오라클 7일 차 --○ TBL_SAWON 테이블을 활용하여 -- 다음과 같은 항목들을 조회할 수 있도록 쿼리문을 구성한다. -- 사원번호, 사원명, 주민번호, 성별, 입사일 SELECT SANO "사원번호", SANAME "사원명", JUBUN "주민번호" , CASE WHEN SUBSTR(JUBUN, 7, 1) IN ('1', '3') THEN '남성' WHEN SUBSTR(JUBUN, 7, 1) IN ('2', '4') THEN '여성' ELSE '성별확인불가' END "성별" , HIREDATE"입사일" FROM TBL_SAWON; --==>> /* 1001..
20220222_01_scott.sql / 오라클 7일 차 CASE 구문(조건문, 분기문) /* CASE WHEN THEN ELSE END */ SELECT CASE 5+2 WHEN 4 THEN '5+2=4' ELSE '5+2는 몰라요' END FROM DUAL; --==>> 5+2는 몰라요 SELECT CASE 5+2 WHEN 7 THEN '5+2=7' ELSE '5+2=6' END FROM DUAL; --==>> 5+2=7 SELECT CASE 1+1 WHEN 2 THEN '1+1=2' WHEN 3 THEN '1+1=3' WHEN 2 THEN '1+1=4' ELSE '난산수싫어' END ..
20220222_01_scott.sql / 오라클 7일 차 ROUND(), TRUNC(), MOD(), POWER(), SQRT(), LOG(), 삼각함수, SIGN(), ASCII(), CHR() --○ ROUND() 반올림을 처리해 주는 함수 SELECT 48.678 "COL1" -- 48.678 , ROUND(48.678, 2) "COL2" -- 48.68 -- 소수점 이하 둘째자리까지 표현 → 두 번째 파라미터 , ROUND(48.674, 2) "COL3" -- 48.67 , ROUND(48.674, 1) "COL4" -- 48.7 , ROUND(48.674, 0) "COL5" -- 49 -- 정수로 표현 , ROUND(48.674) "COL6" -- 49 -- 두 번째 파라미터 값이 0일 경우 ..
20220221_01_scott.sql / 오라클 6일 차 INSTR() SELECT 'ORACLE ORAHOME BIORA' "COL1" , INSTR('ORACLE ORAHOME BIORA', 'ORA', 1, 1) "COL2" -- 1 , INSTR('ORACLE ORAHOME BIORA', 'ORA', 1, 2) "COL3" -- 8 , INSTR('ORACLE ORAHOME BIORA', 'ORA', 2, 1) "COL4" -- 8 , INSTR('ORACLE ORAHOME BIORA', 'ORA', 2) "COL5" -- 8 , INSTR('ORACLE ORA..
20220221_01_scott.sql / 오라클 6일 차 CONCAT() 문자열을 결합하는 기능을 가진 함수 CONCAT() 오로지 2개의 문자열만 결합시켜줄 수 있다. 내부적으로 형 변환이 일어나며 결합을 수행하게 된다. CONCAT()은 문자열과 문자열을 결합시켜 주는 함수이지만 내부적으로 숫자나 날짜를 문자로 바꾸어주는 과정이 포함되어 있다. SUBSTR() 추출 갯수 기반 / SUBSTRB() 추출 바이트 기반 SELECT ENAME "COL1" , SUBSTR(ENAME, 1, 2) "COL2" FROM EMP; --> 문자열을 추출하는 기능을 가진 함수 -- 첫 번째 파라미터 값은 대상 문자열(추출의 대상, TARGET) -- 두 번째 파라미터 값은 추출을 시작하는 위치(인덱스는 1부터 시작..