반응형
CEIL -> 올림
FLOOR -> 내림
TRUNC, ROUND -> 소수점 m자리에서 연산(default : 0)
MOD(A, B) -> 나머지값 구하기
LAG(expr [,offset] [,default]) -> 이전 행의 값을 리턴
ex) LAG(empno, 2) -> empno
LEAD 함수 -> 다음 행의 값을 리턴
NVL(컬럼,NULL일경우 반환값)
NVL2('컬럼','NULL이 아닐 경우 반환값','NULL일경우 반환값')
ISNULL (A,B) : A가 널이면 B로 출력
NULLIF (A,B) : A,B 같으면 NULL, 아니면 1출력
COALESCE(A,B,C....) : 데이터 중 널이아닌 첫번째 값 반환
LEAF - 해당 데이터가 자손으로도 존재하면 0, 아니면 1
NTILE(n) -> n개의 집합으로 데이터를 나눠준다. 나머지 인원은 앞의 조에서부터 채워분다.
partition by -> 파티션별로 따로 순서를 매긴다.
ex) 1 2 2 4
prior A = B -> 1칸위 행의 A와 현재행의 B가 같다.
A left outer join B이면
where B is NULL
A right outer join B 이면
where A is NULL
이렇게 변경 가능
sum(col1) -> 데이터중에 숫자만 가져옴(varchar데이터가 숫자로 써져있는경우도 가져옴)
col1+col2+col3+col4 -> 데이터에 null이있으면 결과값은 무조건 null
NL Join -> 랜덤 액세스
Sort Merge join -> 등동, 비등동 조인 가능
Hash Joing -> 등동조인만 가능
RANK() -> 동일순위 출력 및 동일순위만큼 순위건너뜀 ex) 1등 1등 3등
DENSE_RANK() -> 동일순위 출력 및 순위 그대로 이어감 ex) 1등 1등 2등
ROW_NUMBER() -> 내부정렬기준으로 row에 번호를 매김(ROWNUM이랑 거의 똑같음)
ROWNUM -> 테이블에 보이는 그대로 row를 매김
CUBE(A, B) -> 합계, 소계(A와 B 각각)를 위에 나타내줌
ROLLUP(A, B) -> 합계, 소계를 밑에 보여줌 (A의 소계만)
GROUPING SETS(A, B) -> A로 분류를 먼저하고 B로 세부분류를 함
OVER(PARTITION BY RANGE BETWEEN A AND B)
A에는 UNBOUNDED PRECEDING
B에는 UNBOUDNED FOLLOWING만 들어갈 수 있음
ORDER BY 1 -> 첫번쨰 컬럼을 기준으로 정렬
WHERE 1=1 -> 아무의미없음, 조건 무시해도됨
SELECT 1....., SELECT 'X'.... -> 로우가 존재하는지만 확인하기위해 아무거나 출력하는거
추상화 : 일정한 형식에 맞춰 표현한다.
단순화 : 제한된 표기법이나 언어로 표현한다.
명확성 : 이해하기 쉽게 표한한다.
엔터티
- 사람, 장소, 물건 등 명사에 해당
- 연관된 것끼리의 묶음
- 저장이 되기 위한 어떤 것
지역사상 투명성 -> mapping
위치투명성 -> 저장장소 명시 불필요
데이터 모델링 3요소
Thing, Attributes, Relationship
TAR
SPACE를 추가하여 길이를 비교하는것은 불변(CHAR)만!!!!
발생 시점에 따른 분류
기본엔티티
중심엔티티
행위엔티티
기중행
조인방식
NL 조인 -> 소트머지 조인 -> 해시조인
조인방식은 N소해!!!!
N소해 반(복)스(캔)동(등)
IOT -> 인덱스키가 붙은 칼럼으로 구성된 테이블, 원래 테이블 참조 X
외부 = 선행
내부 = 후행
옵티마이저: SQL문에 대한 최적의 실행방법을 결정하여 실행 계획 도출, SQL문에 대한 파싱 후 실행됨
SQL문 실행 순서
파싱 -> 실행 -> 인출
옵티마이저 엔진 3가지
- 질의 변환기
- 비용 예측기
- 대안계획 생성기
프로시저 -> 로직을 처리해줌
사용자정의함수 -> 명령문 집합
트리거 -> 특정 조건이 실행되면 자동으로 동작하는 프로그램
PL/SQL
Declare(선언부)
Begin(실행부)
Exception(예외 처리부)
SCOTT : 테스트용 샘플 유저
SYS : 최상위 유저
SYSTEM : 최상위권한을 가진 DB
반응형