본문 바로가기

DB/Oracle21

[Oracle] 테이블 구상해보기 위 페이지를 만들기 위해 몇개의 테이블이 필요할까? 1. 영화 -영화 번호 -제목 -장르 -개봉일 -감독 -출연진 -평점 -상영시간 -등급 2. 장르 -장르번호 -장르명 (하나의 영화는 여러개의 장르를 가질 수 있다.하나의 장르는 여러개의 영화에 속할 수 있다.) -> 다:다 관계 해소를 위한 중간 테이블(다큐, 다큐멘타리, 다큐멘터리 등 다르게 쓰는 것 또한 방지할 수 있다.) 3. 영화 - 장르 -영화-장르 번호 -영화 번호 -장르 번호 4. 감독 -감독 번호 -감독 명 5. 영화 - 감독 -영화-감독 번호 -영화 번호 -감독 번호 6. 출연진 -배우 번호 -배우 명 7. 영화 - 출연진 -영화-출연진 번호 -영화 번호 -배우 번호 8. 등급 -등급 번호 -등급 명 Logical로 만든 테이블 Phy.. 2016. 2. 22.
[Oracle] ERwin을 이용한 ERD ERDER-DIAGRAMEntity Relation Diagram ERD를 그리기 위해ERwin을 사용했다. License key를 입력한뒤 Continue를 누른다. ERwin 새로 만들때 Logical/Phusical을 선택해준다. Model properties에 들어가서 Notation 설정을 IE로 바꿔준다. 이제 테이블을 새로 만들어보자.노란색 부분 테이블 모양을 눌러 새로 만들어주었다. 설정을 Physical로 바꿔주어 안에 칼럼명을 써준다.Physical에는 디비의 이름대로 적고Logical에는 사람이 알아보기 편한걸로 적음 선기준으로 위에는 PK아래는 FK이다. 더블클릭해서 적는 방법F2 눌러서 편집하는 방법이있다.Tab을 누르면 다음칸으로 넘어간다. EMPLOYEES와 DEPARTMENT.. 2016. 2. 19.
[Oracle] DECODE, CASE, DUAL, LPAD, || JOB_ID가 AD_PRESS이면 A로 출력해라DECODE를 이용하여 사용할 수 있다. 13. 직업이 AD_PRESS 인 사람은 A 등급을, ST_MAN 인 사람은 B 등급을, IT_PROG 인 사람은 C 등급을,SA_REP 인 사람은 D 등급을,ST_CLERK 인 사람은 E 등급을 기타는 0 을 부여하여 조회한다. 만약 JOB_GRADE가 B인 사원만 뽑아내고 싶다면? WHERE절은 FROM에 있는 것을 쓸수 있다.SELECT에 있는 ALIAS는 쓸수없기 때문에 뷰로 만들어서 사용한다. DECODE를 CASE문으로 바꿔서 사용할 수 있다.형식은 아래와 같다. 다른 칼럼끼리 비교하고 싶으면 WHEN절 안에 조건을 걸어줄 수 있다. WHEN절 안에 비교구문을 사용할 수 있다. THEN절에도 쿼리를 추가할 .. 2016. 2. 18.
[Oracle] NOT EXISTS EXISTS는 컬럼이 필요없다데이터가 있느냐 없느냐로만 판단한다. JOB_ID = 'ST_CLERK'인 사람을 1로 출력한다고 서브쿼리를 작성한다. -> ROW가 있다. NOT EXISTS -> ROW가 없는 데이터를 뽑아라 즉 JOB_ID = 'ST_CLERK'인 데이터만 뺀 JOB_ID = 'ST_CLERK'아닌 데이터만 나온다. NOT EXISTS 구문안에 부서가 존재하는 LOCATION_ID를 뽑아낸다. LOCATION_ID로 COUNTRIES와 조인하여 COUNTRY NAME을 뽑아낸다.부서가 존재하지 않는 나라를 찾기 위해 NOT EXISTS를 사용한다.중복된 값을 제거하기위해 DISTINCT를 써준다. 2016. 2. 18.