다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Slides:



Advertisements
Similar presentations
북한기도제목 4 월 3 주 (4/15-4/21). 1. 북한정치 - 통일부와 국방부는 11 일 잇따라 열린 정례 브리핑에서 지난 7 일 북한 해외 식당 종업원 들이 집단 탈북한 데 이어 북한 정찰총국 출 신 북한군 대좌와 북한 외교관이 지난해 잇 따라 한국으로 망명한.
Advertisements

널 (null) 의 처리 널을 검색하는 방법 형식 예 ) takes 테이블에서 아직 학점이 부여되지 않은 학생의 학번을 검색 is null is not null ( 질의 64) select stu_id from takes where grade is null.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL 언어 SQL.
데이터베이스 9주차 : 데이터베이스 설계 2교시 : 데이터베이스 설계(3)
Nested Queries CSED421: Database Systems Labs.
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
SQL 0613.
오라클 데이터베이스 성능 튜닝.
데이터 모델링 방법론 2003년 03월.
PL/SQL.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
대용량 데이터베이스 솔루션 발표자: 박보영 2007년 5월19일.
오라클 데이터베이스 성능 튜닝.
DataBase 기본 교육 신입사원용 최지철.
Database & Internet Computing Laboratory 한 양 대 학 교
박시우 ( 업무에 바로 쓰는 SQL 튜닝 박시우 (
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
제 5 장 인덱스 생성 및 관리.
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
7장 조인.
DBMS실습(I) 데이터베이스 기본개념 2015년 1학기 동서울대학교 컴퓨터소프트웨어과.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
8장 서브 쿼리.
요약 정보 만들기.
오라클 데이터베이스 성능 튜닝.
kHS 데이터베이스 테이블 및 인덱스 kHS.
데이터 베이스 설계 및 실습 #3 - SQL 함수.
14장 뷰.
9. 데이터베이스 9.5 SQL을 사용하는 프로그램 9.6 데이터폼 작성기를 사용하는 프로그램
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
I. SQL 성능 향상 가이드.
08 조인(JOIN) 조인의 개념 칼럼 이름의 애매모호성, 테이블 별명, 조인 조건식 조인의 종류.
09 서브쿼리(Subquery) 서브쿼리의 개념 서브쿼리의 종류 데이터베이스 실무에서 서브쿼리 사용시 주의 사항.
14 뷰(View) 뷰의 개념 뷰 관리.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
SELECT empno, ename, job, sal, dname FROM emp, dept
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
3장 SQL*Plus 명령어.
9장 테이블 생성 및 변경, 삭제하기(DDL).
SQL.
Quiz #1.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
제 4 장 관계 데이터 연산 1. 개요 2. 관계 대수 3. 관계 해석.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
13장 무결성 제약조건.
1장. SELECT 문장을 이용하여 원하는 데이터 가져오기
View(뷰) 1 가상 테이블(Virtual Relation)
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
오라클 쿼리 문제 EMP (사원 테이블) DEPT (부서 테이블) 컬럼명 설명 EMPNO 사원번호 ENAME 사원명 JOB
기본적인 SELECT문 작성.
8장 테이블의 생성 및 변경 정인기.
SQL INJECTION MADE BY 김 현중.
06. SQL 명지대학교 ICT 융합대학 김정호.
How I Approach Tuning a SQL Statement
순천향대학교 공연영상미디어학부 미디어콘텐츠전공
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
14 뷰(View) 뷰의 개념 뷰 관리.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Presentation transcript:

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 서진수 저

5장. Sub Query 를 배웁니다 1

5. Sub Query 1. Sub Query 란? Main Query , Outer Query Sub Query , SELECT select_list FROM table 또는 View WHERE 조건 연산자 ( SELECT select_list FROM table WHERE 조건 ) ; Sub Query , INNER Query 2

5. Sub Query Emp 테이블에서 ‘SCOTT’ 보다 급여를 많이 받는 사람의 이름과 급여를 출력하세요. 3 SCOTT>SELECT ename , sal 2 FROM emp 3 WHERE sal > ( SELECT sal 4 FROM emp 5 WHERE ename='SCOTT') ; 3

5. Sub Query -Sub Query 작성 시 주의 사항 Sub Query 부분은 Where 절에 연산자 오른쪽에 위치해야 하며 반드시 괄호로 묶어야 합니다. 특별한 경우 (Top-n 분석 등)를 제외하고는 Sub Query 절에 Order by 절이 올 수 없습니다. - 단일 행 Sub Query 와 다중 행 Sub Query 에 따라 연산자를 잘 선택해야 합니다. 4

5. Sub Query 2. Sub Query의 종류 5

5. Sub Query 1) 단일 행 Sub Query 6 연산자 의 미 = 같다 (Equal to) <> 의 미 = 같다 (Equal to) <> 같지 않다 (Not Equal to) > 크다 (Greater Than) >= 크거나 같다 (Greater Than or Equal to) < 작다 (Less Than) <= 작거나 같다 (Less Than or Equal to) 6

5. Sub Query 단일 행 Sub Query 연습문제 1: Student 테이블과 department 테이블을 사용하여 이윤나 학생과 1 전공(deptno1)이 동일한 학생들의 이름과 1전공 이름을 출력하세요. 7

Select s. name, d. dname From student s, department d Where s Select s.name, d.dname From student s, department d Where s.deptno1 = d.deptno And s.deptno1 = (select deptno1 from student where name=‘이윤나’);

5. Sub Query (2) 단일 행 Sub Query 연습문제 2:   Professor 테이블에서 입사일이 송도권 교수보다 나중에 입사한 사람의 이름과 입사일, 학과명을 출력하세요. 8

Select p. name, p. hiredate, d Select p.name, p.hiredate, d.dname From professor p, department d Where p.deptno = d.deptno And hiredate > (select hiredate from professor where name = ‘송도권’);

5. Sub Query (3) 단일 행 Sub Query 연습 문제 3: Student 테이블에서 1 전공(deptno1)이 101번 인 학과의 평균 몸무게보다 몸무게가 많은 학생들의 이름과 몸무게를 출력하세요. 9

Select name, weight From student Where weight > (select avg(weight) from student where deptno1=101);

5. Sub Query (4) 단일 행 Sub Query 예 4: Professor 테이블에서 심슨 교수와 같은 입사일에 입사한 교수 중에서 조인형 교수보다 월급을 적게 받는 교수의 이름과 급여, 입사일을 출력하세요. 10

Select name, pay, hiredate From professor Where hiredate = (Select hiredate From professor where name=‘심슨’) And pay < (select pay from professor where name=‘조인형’);

5. Sub Query 2) 다중 행 Sub Query 11 연산자 의 미 IN 같은 값을 찾음 >ANY 최소값을 반환함 의 미 IN 같은 값을 찾음 >ANY 최소값을 반환함 <ANY 최대값을 반환함 <ALL >ALL EXIST Sub Query 의 값이 있을 경우 반환함 11

5. Sub Query (1) 다중 행 Sub Query 예 1:   Emp2 테이블과 Dept2 테이블을 참조하여 근무지역(dept2 테이블의 area 컬럼)이 서울 지사인 모든 사원들의 사번과 이름, 부서번호를 출력하세요. SCOTT> SELECT empno, name, deptno 2 FROM emp2 3 WHERE deptno IN (SELECT dcode 4 FROM dept2 5 WHERE area='서울지사') ; 12

5. Sub Query (2) 다중 행 Sub Query 연습문제 1:   Emp2 테이블을 사용하여 전체 직원 중 과장 직급의 최소 연봉자보다 연봉이 높은 사람의 이름과 직급 , 연봉을 출력하세요. 단 연봉 출력 형식은 아래와 같이 천 단위 구분기호와 원 표시를 하세요. 13

Select name, position, to_char(pay, ‘999,999,999’)||’ 원’ From emp2 Where pay > any (select pay from emp2 where position=‘과장’) ;

5. Sub Query (3) 다중 행 Sub Query 연습문제 2:   Student 테이블을 조회하여 전체 학생 중에서 체중이 4학년 학생들의 체중에서 가장 적게 나가는 학생보다 몸무게가 적은 학생의 이름과 학년과 몸무게를 출력하세요 14

Select name, grade, weight From student Where weight < all (select weight from student where grade=4);

5. Sub Query 3) 다중 컬럼 Sub Query (1) 다중 컬럼 Sub Query 예 1 :   Student 테이블을 조회하여 각 학년별로 최대키를 가진 학생들의 학년과 이름과 키를 출력하세요. 15

5. Sub Query 16 SCOTT> SELECT grade "학년" ,name "이름" , height "키" 2 FROM student 3 WHERE (grade,height) IN (SELECT grade, MAX(height) 4 FROM student 5 GROUP BY grade ) 6 ORDER BY 1 ; 16

5. Sub Query (2) 다중 컬럼 Sub Query 연습문제 1 :   Professor 테이블을 조회하여 각 학과별로 입사일이 가장 오래된 교수의 교수번호와 이름, 학과명을 출력하세요. (학과이름순으로 오름차순 정렬하세요) 17

Select p. profno, p. name, p. hiredate, d Select p.profno, p.name, p.hiredate, d.dname From professor p, department d Where p.deptno=d.deptno And (p.deptno, p.hiredate) in (select deptno, min(hiredate) from professor group by deptno) Order by 4;

5. Sub Query (3) 다중 컬럼 Sub Query 연습문제 2:   Emp2 테이블을 조회하여 직급별로 해당 직급에서 최대 연봉을 받는 직원의 이름과 직급, 연봉을 출력하세요. 연봉순으로 오름차순 정렬하세요. 18

Select name, position, pay From emp2 Where (position, pay) in (select position, max(pay) from emp2 group by position) Order by 3;

5. Sub Query (4) 다중 컬럼 Sub Query 연습문제 3:   Emp2 테이블을 조회하여 각 부서별 평균 연봉을 구하고 그 중에서 평균 연봉이 가장 적은 부서의 평균 연봉보다 적게 받는 직원들의 부서명, 직원명, 연봉을 출력하세요 19

Select d,dname, e. name, e. pay From emp2 e, dept2 d Where e. deptno=d Select d,dname, e.name, e.pay From emp2 e, dept2 d Where e.deptno=d.dcode And e.pay < all (select avg(pay) from emp2 group by deptno) Order by 3;

5. Sub Query 4) 상호 연관 Sub Query 상호 연관 Sub Query 예 1: Emp2 테이블을 조회해서 직원 들 중에서 자신의 직급의 평균연봉과 같거나 많이 받는 사람들의 이름과 직급, 현재 연봉을 출력하세요. SCOTT>SELECT name "사원이름", position "직급" , 2 pay "급여" 3 FROM emp2 a 4 WHERE pay >= ( SELECT AVG(pay) 5 FROM emp2 b 6 WHERE a.position=b.position) ; 20

3. Scalar Sub Query (스칼라 서브쿼리) 21

5. Sub Query - Scalar Sub Query 예 : emp2 테이블과 dept2 테이블을   emp2 테이블과 dept2 테이블을 조회하여 사원들의 이름과 부서이름을 출력하세요. 22