본문 바로가기

Archived(CSE Programming)/Database(Oracle)

Chap 5. SQL

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은 결과 Tuple1개 인 것!(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