본문 바로가기

Oracle DB

(9)
[실습]커피숍 DB 만들기 [프로젝트 구성원 : 조은수, 장지혜] erd->릴레이션 1.엔티티명->릴레이션명 2.식별자->기본키(pk) 3.1(강):N(강) 관계->소거 N쪽에서 1쪽의 PK를 FK로 가져온다. 4.1(강):N(약) 관계->소거 N쪽에서 1쪽의 PK를 PK로 가져온다. 5.N:N 관계->엔티티 양쪽의 PK를 PK로 가져온다. #식별 관계와 비식별 관계의 차이 식별:기본키에 포함/강-약에서 PK로 가져올때!
Oracle DB의 INDEX와 시퀀스 ## index -- 검색속도 향상 -- 기본키, 유일키 자동 인덱스 생성 ## 인덱스 생성 CREATE TABLE EMP1 AS SELECT * FROM EMP; CREATE INDEX EMP_ID_IDX ON EMP1(EMPLOYEE_ID); SELECT * FROM EMP WHERE EMPLOYEE_ID=105; ==> 조건 컬럼에 인덱스가 없으므로 풀스캔 한다. SELECT * FROM EMP1 WHERE EMPLOYEE_ID=105; ==> 조건 컬럼에 인덱스가 생성되어 있으므로 인덱스 검색하여 빠르게 접근 ==>인덱스가 있는 두번째 쿼리가 응답 빠르다. ## 인덱스 수정 안함 --> 재건한다. ALTER INDEX EMP_ID_IDX REBUID; ## 인덱스 삭제 DROP INDEX 인덱스명..
[5일차]set 연산자 # hr 로그인 grant select on JOB_HISTORY to public; #aa01 로그인 하여 작업 create table JOB_HISTORY as select * from hr.JOB_HISTORY; ## union -쿼리 결과를 위아래로 합치는 것 -두 쿼리문의 스키마가 같아야 한다.(컬럼의 개수, 타입이 같아야 한다.) -첫번째 쿼리문의 컬럼명이 대표 컬럼명이 된다. =중복 불가:한번만!!! =첫번째 컬럼값을 기준으로 오름차순으로 정렬 ## union all -쿼리 결과를 위아래로 합치는 것 -두 쿼리문의 스키마가 같아야 한다.(컬럼의 개수, 타입이 같아야 한다.) -첫번째 쿼리문의 컬럼명이 대표 컬럼명이 된다. =중복 허용!!! =정렬 안됨!!! select last_name, s..
[4일차 과제]sql 조인문제 ## SQL 조인문제 -- 오라클 구문, Ansi 표준 구문 중 하나로 작성해 주세요. EX1. 모든 사원의 이름, 부서 번호, 부서 이름을 표시하는 질의를 작성하시오. SELECT EMPLOYEE_ID,DEPARTMENT_ID,DEPARTMENT_NAME FROM EMP,DEPT ON (WHERE EMP.DEPARTMENT_ID=DEPT.DEPARTMENT_ID); EX2. 부서 60에 속하는 모든 사원의 이름과 부서이름을 표시하는 질의를 작성하시오. SELECT LAST_NAME,DEPARTMENT_NAME FROM EMP,DEPT ON (WHERE EMP.DEPARTMENT_ID=60&&DEPT.DEPARTMENT_ID=60); EX3. 커미션을 받는 모든 사원의 이름과 부서이름을 표시하는 질의를 ..
[4일차]서브쿼리 ## SQL - 서브쿼리 #서브쿼리 -쿼리 안의 내부 쿼리 -서브쿼리는 괄호로 감싼다. -수행순서:서브쿼리 수행 => 메인쿼리에 전달 -서브쿼리의 결과값이 null 이면 메인쿼리의 결과값도 null 이다. -사용위치 =>select:스칼라 서브쿼리:함수로 구현하여 사용하는 추세 =>where : 중첩 서브쿼리 : 조건식의 우항에 위치 =>from:IN-LINE 뷰 : 서브쿼리의 결과를 테이블 처럼 사용 Chen 보다 많은 급여를 받는 사원의 이름과 급여 SELECT LAST_NAME, SALARY FROM EMP WHERE SALARY>( SELECT SALARY FROM EMP WHERE LAST_NAME='Chen') ORDER BY SALARY DESC; -- 부서가 101번 사원과 같으며, 월급이..
[3일차 과제]급여 최고액, 최저액, 총액, 평균 구하기 EX1. 모든 사원의 급여 최고액, 최저액, 총액 및 평균액을 표시합니다. 열 레이블을 각각 Maximun, Minimum, Sum 및 Average로 지정하고 결과를 정수로 반올림하는 질의를 작성하시오. SELECT MAX(SALARY) AS Maximum, MIN(SALARY) AS Minimum, SUM(SALARY) AS Sum, ROUND(AVG(SALARY)) AS Average FROM EMP; EX2. 각 직무에 대한 급여 최저액, 최고액, 총액 및 평균액을 표시하도록 한다. 평균은 소숫점 둘째자리까지 표현하시오. SELECT JOB_ID,MIN(SALARY),MAX(SALARY),SUM(SALARY), ROUND(AVG(SALARY), 2)//소수점이 어디갔지?! FROM EMP GROU..
[3일차]JOIN 함수 ## SQL - 조인(JOIN) -- 부서테이블 복사 CREATE TABLE DEPT AS SELECT * FROM HR.DEPT; -- 지역 테이블 복사 CREATE TABLE LOCATIONS AS SELECT * FROM HR.LOCATIONS; -- JOB_GRADES 테이블 복사 CREATE TABLE JOB_GRADES AS SELECT * FROM HR.JOB_GRADES; --------------------------------------- #조인 -하나 이상이 테이블을 합치는 것 (좌우로 합침) -오라클 전용 조인, ANSI 표준 조인 # 조인의 유형 -EQUI JOIN (등가 조인 : INNER JOIN, NATURAL JOIN ) -NON EQUI JOIN -OUTER JOIN -S..
[1일차 과제]select절과 쿼리 실행 순서 SQL 1일차 실습 문제 (SELECT) 이름 : 조은수 EX1. 급여가 $10000를 넘는 사원의 이름 및 급여를 표시하는 질의를 작성하시오. SELECT LAST_NAME, SALARY FROM EMP WHERE SALARY>10000; King 24000 Kochhar 17000 De Haan 17000 Greenberg 12008 Raphaely 11000 Russell 14000 Partners 13500 Errazuriz 12000 Cambrault 11000 Zlotkey 10500 Vishney 10500 Ozer 11500 Abel 11000 Hartstein 13000 Higgins 12008 EX2. 사원의 번호가 100인 사원의 이름 및 부서 번호를 표시하는 질의를 작성하시오. SE..