캐싱
---------------------------------
오라클은 한번 실행한 쿼리코드는 컴파일 하지 않는다(이미 컴파일 된 것으로 실행)
----------------------------------
인덱스
자바 db연동
웹 db 연동
데이터베이스 설계 - 포트폴리오
https://cafe.naver.com/busanit2018db
----------------------------------
DBMS = 계정(USER)
SYSTEM (ROOT)에서 "MADANG"
GRANT
테이블생성
데이터입력
----------------------------------
넓은 의미의 스키마 - 인덱스 패키지 시퀀스 테이블 등 모든 것(오브젝트, 객체)들을 포함
아래 모든 것들은 객체(오브젝트,객체,resource)
GRANT CONNECT, RESOURCE TO c##madang; -- connect 연결 , resource 자원(객체, 오브젝트)
계정안에서 resource 권한을 쓰도록하는것 RESOURCE
conn c##madang/c##madang;
관리자 -> c##madang 으로 이동
------------------------------------------
DCL - control
DML - manipulation
DDL - define
------------------------------------------
------------------------------------------
오라클 자체 명령어
좁은 의미의 스키마 - 칼럼명(열이름)
------------------------------------
DISTINCT 는 SELECT에 한번만 적으면 모든 레코드(행)의 중복을 모두 없앤다
단항연산자 NOT
문자열은 = 보다 LIKE를 사용하는게 관례
% 아무거나 여러개
'%김%' ->앞에 갯수상관없이 아무거나(0개도 가능) 중간에 김, 뒷쪽에 갯수상관없이 아무거나
'_김%' -> 첫글자 아무거나 두번째 김 나머지 아무거나
ORDER BY 는 성능을 많이 잡아먹는다(느리다) -> 인덱스를 이용해서 전처리해야함
AS "별칭" - 앨리어스
-------------------------------------
스칼라 서브쿼리
1. 드라이빙 테이블은 무조건 풀스캔
2. 드리븐 테이블이 PK가 아니면 스칼라 서브쿼리 사용금지
3. 드리븐 테이블의 내용이 커질 것으로 예상 된다면 안쓰는 것이 좋다
- LEFT OUTER JOIN으로 바꿔서 이용하는 것이 좋다
드리븐 테이블이 작으면 작을수록 성능이좋다
SELECT ID, TITLE, (SELECT COUNT(*) FROM REPLY WHERE BOARDID = B.ID)
FROM BOARD B;
WHERE BOARDID = B.ID
BOARDID는 드라이빙 테이블 - 모두 읽는다(FULL SCAN)
B.ID는 드리븐 테이블 - 프라이머리 키이기 때문에 일치하면 검색멈춤
---------------------------------
프라이머리키 테이블에 하나씩
프라이머리키가 있는 테이블을 먼저 생성해야한다
외래키(참조) - 원본테이블에 있는 프라이머리키가 있어야만 갖고오는 것
---------------------------------
'Database > OracleSQL' 카테고리의 다른 글
200409 (0) | 2020.04.09 |
---|---|
오라클 예제 및 문제 (0) | 2020.04.08 |
오라클 서브쿼리 문제 (0) | 2020.04.03 |
200402 // SYNONYM, VIEW, CRUD, 인덱스 INDEX, , 클러스터링 (0) | 2020.04.02 |
오라클 서브쿼리, IN, EXISTS 차이 (0) | 2020.04.02 |