ch33 서브쿼리
내가 만들고 싶은 쿼리랑 실제 쿼리가 원하는 쿼리 순서가 다를때 사용한다
SELECT * FROM MEMBER
ORDER BY REGDATE DESC
WHERE ROWNUM BETWEEN 1 AND 10
-> 순서 오류 : S->F->W
SELECT * FROM MEMBER
(
SELECT * FROM MEMBER ORDER BY REGDATE DESC
)
WHERE ROWNUM BETWEEN 1 AND 10
ch34 이너조인(JOIN)
SELECT *
FROM MEMBER INNER JOIN NOTICE ON MEMBER.ID == NOTICE.ID
조인결과 몇개의 행이 나오는지 알아야 제대로 이해한 것이다
ch35 아우터 조인(OUTER JOIN)
FULL OUTER == LEFT + RIGHT
LFET,RIGHT == 기준이 되는곳
ch36 아우터 조인 활용
아우터 조인은 주인공을 정하는것
이너 조인을 사용하면 사라질 케이스도 아우터 조인에서 주인공이 되면 사라지지 않고 유지된다
->아우터 조인이 활용도가 높다
ch37 SELF JOIN
칼럼을 확장하고 싶은데 확장하고 싶은 칼럼이 자기 자신한테 이을때 사용한다
SELECT M.*, B.NAME BOSS_NAME
FROM MEMBER M LEFT OUTER JOIN MEMBER B ON B.ID = M.BOSS_ID
BOSS_NAME칼럼을 추가한다
ch38 ORACLE JOIN
ch39 유니온
별개의 테이블을 하나로 합칠때 사용한다
조인처럼 몇개의 행이 사라지거나 하지 않고 유지 된다
UNION = 중복은 삭제한다
UNION ALL = 중복도 포함한다
ch40 뷰(VIEW)
하나의 테이블에서 처리가 안되는 복잡한 쿼리를 가상의 테이블로 만들어 작업자에게 도움을 준다
더욱이 뷰는 테이블의 열개수를 제한해서 보여줄 수 도 있어서 보안상으로도 사용가능하다
CREATE VIEW VIEW_NAME AS ...
ch41 데이터 딕셔너리
테이블의 스키마를 확인하기 위해서 사용한다
지금은 GUI형식의 프로그램이 있어서 사용하지는 않는다
ch42 제약조건
도메인 : 유효한 값의 범위
EX) 학번 : 0보다 큰 정수, 이름 : 20자내의 문자...
NOT NULL
EX) ID VARCHAR2(50) NOT NULL
DEFAULT
EX) ID VARCHAR2(50) 홍길동
ch43 체크 제약 조건
값이나 형식이 올바른지 확인
EX) CHECK(PHONE LIKE '010-%-____');
ch44 정규식을 이용한 체크제약 조건
ch45 ENTITY-제약조건
PRIMARY KEY : 중복 X, NULL X
UNIQUE : 중복 X, NULL O
COLUMN=NOTICE
CREATE할때 제약
ID NUMBER CONSTARINT NOTICE_ID PRIMARY KEY
ID NUMBER CONSTARINT NOTICE_ID UNIQUE
ID NUMBER
CONSTRAINT NOTICE_ID_PK PRIMARY KEY(ID)
CONSTRAINT NOTICE_ID_PK UNIQUE(ID)
ALTER제약
ALTER TABLE NOTICE
ADD CONSTRAINT NOTICE PRIMARY KEY(ID)
ch46 시퀀스 (SEQUENCE)
인덱스 시작을 내마음대로 조절 할 수 있다, 증가폭도 조절 가능