1) 자료형
문자열 데이터
to_date(‘값’, ‘YYYYMMDD’), date 형은 쓰기가 까다롭다
실기 문제에 나오지만 내가 사용할 수 있는 패턴 하나만 숙지하면 된다!!
참고) TIMESTAMP는 밀리세컨드 까지 커버가능(단, 시험x)
TO_DATE('1994/12/22 13:00:00 PM', 'yyyy/mm//dd hh24/mi/ss pm');
TO_CHAR(start_date, 'dd-mm-yyyy hh24:mi:ss pm');
start_data + 1 // 1일
start_date + 1/24 // 1시간
start_date + (1/24)/60 // 1분
2) Statements
서로 참조하고 있는 Table에서 삭제하고 삽입하는 과정 어떻게 할 것인지
시험문제 출제!!
기본적으로 삭제는 restrict가 되어 있음
-> set null, cascade를 통해 해결 가능함
기본적으로 수정도 마찬가지 restrict 되어있음
ALTER TABLE emp DROP foregin_ref;
ALTER TABLE emp ADD foreign_ref (did) REFENCES dept(dno)
ON DELETE SET NULL;
색인 관리
색인 재구축도 좋지만 Drop 후에 새로 만드는 것도 방법
Foreign Key에 대해서는 색인 생성x
가능하면 색인 생성하는 것이 낫다(성능 향상)
여러 Column(이름 오름차순, 나이 내림차순) index 형성도 가능
3) Query & DML
Sub Query vs Implicit Query
Sub Query는 쿼리 내에서 ()로 묶여 특정 값을 가져와서 처리하는 데 필요한 부질의이다.
Implicit Query는 명시하지 않아도 이미 Query 내용 안에 포함되어 있는 질의이다.
INSERT 예제, WHERE 예제
특히 INSERT 예제에서 자재과에 근무한다
-> 그럼 바로 자재과의 DID 값을 넣지 않고
SELECT로 값을 찾아오기(SUBQUERY 활용!!!!)
DELETE FROM EMP
WHERE did IN (SELECT did FROM DEPT WHERE dname='Research' ) ;
기본적인 INSERT UPDATE DELETE
INSERT INTO TABLE values(내용,...)
DELETE FROM TABLE where 조건
UPDATE TABLE set 변경내용 WHERE 조건
Singleton은 결과 Tuple이 1개 인 것!(Col이 여러 개여도 상관x)
DISTINCT를 사용하면 SET이 된다!
MultiSet은 중복허용, SET은 중복허용x
List는 중복허용, 중복허용x 구분 개념x(정렬된 것은 다 List)
조인에서 +는 의미는 없으면 임의로 NULL로 만들어서 JOIN을 참여하라는 의미
즉, +가 없는 쪽이 JOIN의 기준이 된다!
ROWNUM으로 출력 범위 지정하기
select rownum, eid, ename from emp;
select * from (select * from proj order by pname)
where rownum >= 2 and rownum <=3;
'Archived(CSE Programming) > Database(Oracle)' 카테고리의 다른 글
Chap 5-6. Database 권한(Privilege) (0) | 2019.11.12 |
---|---|
Chap 5-4. DataBase 뷰(View) (1) | 2019.11.12 |
Chap 3. Table Index & B+tree (0) | 2019.10.22 |
Chap 2. ER diagram (0) | 2019.10.22 |
Chap 1. DBMS & Relational Model (0) | 2019.10.22 |