반응형 SQLD17 타입 1. ORACLE(11g) 문자형 타입 고정 길이 문자열 타입 CHAR(길이) 기본값은 1 bytes, 최대값은 2000 bytes 고정된 길이를 가지며 남은 부분은 공백으로 채워진다. 가변 길이 문자열 타입 VARCHAR2(최대 길이, 소숫점 정확도) CHAR의 길이는 고정 길이지만 VARCHAR2의 길이는 문자열의 최대 길이 문자열 길이에 따라 메모리 공간이 할당된다.(공간 절약) 최대값은 4000 bytes VARCHAR VARCHAR2랑 동의어. 옛날 호환성을 위해 남겨둔 자료형 VARCHAR2를 사용해야한다. 유니코드 문자열 타입 유니코드로 문자열을 저장한다.(유니코드는 한글자 당 3바이트) 가능한 문자열 셋 : "AL16UTF16" 또는 "UTF8" 자료형 : NCHAR, NVARCHAR2 자.. 2020. 12. 5. Row Chaining & Row Migration Row Chaining 컬럼이 너무 길어서 DB BLOCK 사이즈보다 길어진 경우 블록 두개에 이어서 한 Row가 저장된다. Row Migration 데이터가 수정되면서 데이터가 더 켜저서 기존 block에 못들어가는 경우 다른 블록에 데이터를 넣고, 기존 블록 위치에는 링크를 남긴다. 블록이란? DBMS에서 데이터를 저장하는 때 담는 통 데이터의 위치나, 정렬 이런거 관리안한다고 하지만 사실 해야된다. 사용자입장에서 안해도되는 것 그럴때 데이터를 이리저리 조정할때 쓰는 기본 단위 그래서 한 레코드가 한 블록에 다 안담기면 레코드 하나에 두 블록을 조회해야되서 성능이 저하되게 된다. 2020. 11. 29. 계층형 쿼리 START WITH 속성 IS NULL CONNECT BY [NOCYCLE] PRIOR 속성 = 속성 ORDER SIBLINGS BY 속성; 예시> 사원 ID, 관리자 ID를 가지는 사원 테이블인 경우 조회 결과는 TREE 구조를 가진다. PRIOR가 붙은쪽이 내 속성이라고 생각하면 된다. PRIOR가 안붙은쪽이 다음 속성(자식)이라고 생각하면 된다. PRIOR가 붙은 쪽이 부모(상사)인 경우 정방향이다. PRIOR가 붙은 쪽이 자식(부하)인 경우 역방향이다. ORDER SIBLINGS는 같은 레벨의 자식간에 정렬 방식을 나타낸다. LEVEL 속성을 쓸수있는데 맨 처음(루트노트) 레벨은 1이다. 자식으로 내려갈수록 레벨이 올라간다. 계층형 쿼리는 트리가 아니라 그래프가 될 수도 있는데 NOCYCLE을 쓰.. 2020. 11. 29. MERGE MERGE는 MERGE INTO 옆에 적힌 테이블에다가 USING 옆에 적힌 테이블 데이터를 부어주는데 매칭(ON 절)이 된 경우 UPDATE 하고 없는 경우 INSERT 한다. SQLD 30회 42번 문제 실행 결과는 3행이 병합되었다고 뜬다. 1행은 매칭된 A,B,C 중 조건이 맞아서 UPDATE된 'B' 나머지 2행은 매칭안되서 INSERT 된 'D', 'E' 어딘가에서 병합된 3행이 'X', 'D', 'E'라는 설명이 있어서 한참 고민했다. 아래 MERGE 쿼리에서 NOT MATCHED 부분을 빼면 2행이 병합되었다고 뜨는걸 보고 'X'가 아니라 'B'인걸 알았다. CREATE TABLE SQLD_30_42_01 ( COL1 VARCHAR(45) NOT NULL, COL2 VARCHAR(45) N.. 2020. 11. 27. 서브쿼리 SELECT 절의 서브쿼리 SELECT 절에서 서브쿼리가 사용된 경우 하나의 데이터만 나와야 한다. 그래서 보통 조건에 PK를 넣는다. 아니면 DISTINCT나 집계함수를 써야된다. 2020. 11. 27. 조인 A INNER JOIN B 짧게 쓰면 JOIN A LEFT OUTER JOIN B 짧게 쓰면 LEFT JOIN 오라클에서는 A.V1 = B.V1(+) A LEFT OUTER JOIN B WHERE B IS NULL A RIGHT OUTER JOIN B 짧게 쓰면 RIGHT JOIN 오라클에서는 A.V1(+) = B.V1 A RIGHT OUTER JOIN B WHERE A IS NULL A FULL OUTER JOIN B 오라클 : A.V1(+) = B.V1(+) A FULL OUTER JOIN B WHERE A IS NULL OR B IS NULL 각자 자기만 갖고 있는 값 INNER JOIN은 A,B 둘 다 값이 있는것 A CROSS JOIN B 카테시안 곱(CARTESIAN PRODUCT) A X B.. 2020. 11. 26. 이전 1 2 3 다음 반응형