분류 전체보기 (145) 썸네일형 리스트형 [ ORACLE ] 제 2 정규화 제 3 정규화 제 4 정규화 역정규화 /*---------------------------------------------------------------------------------------- ● 제 2 정규화 - 테이블명 : 주문 ------------------------------------------------------------------- 고객ID 제품코드 주문일자 주문수량 +++++++++++++++++++++++++++++++++++++++++ (P.K) ------------------------------------------------------------------- PNH1227(박) SMK123(새우깡) 2021-02-04 11:11:11 50 HHR7733(한) YPR123(양파링) 2021-02-04 1.. [ ORACLE ] 제 1 정규화 -- ■■■ 정규화 (Nomalization) ■■■ -- ● 정규화란? -- 한 마디로 데이터베이스 서버의 메모리 낭비를 막기 위해 -- 어떤 하나의 테이블을... 식별자를 가지는 여러 개의 테이블로 -- 나누는 과정을 말한다. 데이터가 하나의 테이블에 몰려있으면 보기는 편한데 메모리에는 보고싶은 것 외에 다른 컬럼들은 덜 따라오게만들고싶은것이다. DB메모리낭비가 심하게 된다. 메모리가 부족한 상황, 요청이 있으면 정상적인 구동어려워 셧다운해버린다. 뻗어버린다. 그래서 테이블을 여려 형태로 쪼개는건데 이걸 그냥 내가 편하게 쪼개개 된다면 쪼개진 결과물이 누가 정규화를 했는지에 따라 다르기 때문에 규칙을 만들자 이게 정규화다 /*예를 하나 들겠습니다. ex) 유림이가 ... 옥장판을 판매한다. 고객리스트.. [ ORACLE ] INTERSECT 교집합쿼리에 해당하는 부분을 원본쿼리에서 찾기 서브상관쿼리 JOIN 활용... ?? -- 주문백업 테이블과 주문 테이블에서 -- 제품코드와 주문량의 값이 똑같은 행의 정보를 -- 주문번호,제품코드, 주문수량, 주문일자 항목으로 조회한다. 주문번호 1번부터 10 번까지와 938765 번에서 938776 번까지의 교집합 INTERSECT 결과는 이러하다. 이 5개 행의 제품코드와 주문수량이 위에 있는 원본쿼리와 일치하는 것을 찾는 코드 🟪 첫 번째 방법 SELECT T2.JUNO "주문번호", T1.JECODE "제품코드", T1.JUSU "주문수량", T2.JUDAY "주문일자" FROM ( SELECT JECODE, JUSU FROM TBL_JUMUNBACKUP INTERSECT SELECT JECODE, JUSU FROM TBL_JUMUN )T1 JOIN ( SELECT JUNO, J.. [ ORACLE ] JOIN - UNION UNION ALL INTERSECT MINUS SELECT USER FROM DUAL; --==>> SCOTT -- ■■■ UNION / UNION ALL ■■■■ -- ● 실습 테이블 생성(TBL_JUMUN) CREATE TABLE TBL_JUMUN -- 주문번호, 주문된제품코드, 주문수량, 주문일자 ( JUNO NUMBER , JECODE VARCHAR2(30) , JUSU NUMBER , JUDAY DATE DEFAULT SYSDATE ); --Table TBL_JUMUN이(가) 생성되었습니다. --> 고객의 주문이 발생했을 경우 주문내용에 대한 데이터가 입력될 수 있는 테이블 -- ● 데이터 입력 → 고객의 주문 발생/ 접수 INSERT INTO TBL_JUMUN VALUES (1, '쫀득초코칩', 20, TO_DATE('2001-11-01 .. [ ORACLE ] 92, 99 코드를 활용한 세 개 이상의 테이블 JOIN SELECT USER FROM DUAL; -- ● 세 개 이상의 테이블 조인(join) -- 형식 1(SQL 1992 CODE) -- 형식 2(SQL 1999 CODE) -- 형식 1(SQL 1992 CODE) SELECT A.컬럼명, B.컬럼명, C.컬럼명 FROM A,B,C WHERE A.컬럼명1 = B.컬럼명1 AND B.컬럼명2 = C.컬럼명2; -- 형식 2(SQL 1999 CODE) SELECT A.컬럼명, B.컬럼명, C.컬럼명 FROM A JOIN B ON A.컬럼명1 = B.컬럼명1 JOIN C ON B.컬럼명2 = C.컬럼명2; -- ● HR계정 소유의 테이블 또는 뷰 목록 조회 SELECT * FROM TAB; /* COUNTRIES TABLE DEPARTMENTS TABLE EMPL.. [ ORACLE ] JOIN(조인) Equi join Non Equi join CROSS/INNER/OUTER JOIN 부모자식테이블 SELF JOIN --------------------------------------------------------------------------- --■■■ JOIN(조인) ■■■ --관계형 데이터베이스에서 큰테이블은 바람직하지않다. --나누고분리한테이블 원래형태로보이게하려면 결합필요 그게조인이다 -- ●1. SQL 1992 CODE -- ●2. SQL 1999 CODE (92년 99년 으로 표준된 코드 두 개로 나뉜다. 실무에서는 둘다쓰인다) -- ●1. SQL 1992 CODE SELECT * FROM EMP,DEPT; --> 수학에서 말하는 데카르트 곱(CATERSIAN PRODUCT) -- 두 테이블을 합친(결합한) 모든 경우의 수 -- ●Equi join : 서로 정확히 일치하는 데이터들끼리 연결시키는 결.. [ ORACLE ] ROW_NUMBER() SEQUENCE -----■■■ ROW_NUMBER() ■■■■ SELECT ENAME "사원명", SAL "급여", HIREDATE "입사일" FROM EMP; /* SMITH800 1980-12-17 ALLEN16001981-02-20 WARD12501981-02-22 JONES29751981-04-02 MARTIN12501981-09-28 BLAKE28501981-05-01 CLARK24501981-06-09 SCOTT30001987-07-13 KING50001981-11-17 TURNER15001981-09-08 ADAMS11001987-07-13 JAMES950 1981-12-03 FORD30001981-12-03 MILLER13001982-01-23*/ SELECT ROW_NUMBER() OVER (ORDER.. [ ORACLE ] 중첩 그룹함수 / 분석 함수 서브상관쿼리 --■■■ 중첩 그룹함수 / 분석 함수 ■■■ -- 그룹 함수 2 LEVEL 까지 중첩해서 사용할 수 있다. -- 이마저도 MS-SQL 은 불가능하다. SELECT MAX(SUM(SAL)) FROM EMP GROUP BY DEPTNO; --===>> 10875 -- RANK() -- DENS_RANK() -- > 이 함수는요 함수 안에서 정렬기능 포함 리소스소모심함 -- 그런데 함수가 생긴지 얼마 안됨. ORCLA 9i 부터 적용되었고 -- MSSQL 2005 부터 적용... -- ※ 하위 버전에서는 RANK() 나 DENSE_RANK() 를 사용할 수 없기 때문에 -- 이를 대체하여 연산을 수행할 수 있는 방법을 강구해야 한다. -- 예를 들어, 급여의 순위를 구하고자 한다면... SELECT ENAM.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 19 다음