캐싱

---------------------------------

오라클은 한번 실행한 쿼리코드는 컴파일 하지 않는다(이미 컴파일 된 것으로 실행)

----------------------------------

인덱스
자바 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

+ Recent posts