SlideShare a Scribd company logo
스터디 도서: Microsoft 전문가로 가는 지름길 1 SQL Server 2000
SQL Study Written By 유혜원 1/43
책 본문 PT
 요약 정보 처리
 하위 질의(subquery)
 IN / EXISTS
 상관관계의 하위 질위
(Correlated subquery)
 SELECT INTO
 UNION
 따라하기
 JOIN
 GROUP BY / HAVING
 COMPUTE / COMPUTE BY
 RLLUP 과 CUBE
 하위 질의(subquery)
 IN / EXISTS
 SELECT INTO
 UNION
SQL Study Written By 유혜원 2/43
 JOIN 이란?
정규화된 테이블들에 흩어져 있는 컬럼들을
필요에 의해 다시 모아 올 때 사용하는 것.
 JOIN의 종류
• INNER JOIN
• OUTER JOIN
• SELF JOIN
• NAUTURAL JOIN
• EQUI JOIN
• CROSS JOIN
SQL Study Written By 유혜원 3/43
 가장 일반적인 JOIN.
어떤 JOIN인지 지정하지 않으면,
자동적으로 INNER JOIN이 됨.
 두 테이블에 있는 키 값이 일치하는
데이터만 가져 옴.
[TIP] JOIN은 가능한 ANSI 문법으로 작성하는
것을 권장.
SQL Study Written By 유혜원 4/43
 책 제목과 해당 책의 가격, 출판사 이름
데이터가 담겨 있는 목록을 출력하라.
SELECT title, price, pub_name
FROM titles (INNER) JOIN publishers
ON titles.pub_id = publishers.pub_id
SQL Study Written By 유혜원 5/43
 예제 테이블들의 ER-D
SQL Study Written By 유혜원 6/43
Titles 테이블 Publishers 테이블
•Titles 테이블과 Publishers 테이블의
Pub_id가 같은지 비교한다.
• Pub_id가 같은 행의 내용들을
합친다.
• 합쳐진 내용들을 기준으로
title, price, pub_name 을 출력한다.
SQL Study Written By 유혜원 7/43
SQL Study Written By 유혜원 8/43
 JOIN을 하는 테이블들 중 어느 한 쪽의
데이터를 모두 가져옴.
 실무에서 사용 빈도가 높음.
[TIP] 긴 테이블 이름은 alias(별명)로 대체가능.
여러 테이블에서 사용되는 컬럼의 경우 어느 테이블의 컬럼
데이터를 지칭하는지 사용자와 프로그램 모두 알 수 없기
때문에 컬럼명 앞에 테이블명을 붙여준다.
이 때 긴 테이블명의 경우 타이핑의 편리함을 위해 별명을 지정
하여 대체 가능하다.
SQL Study Written By 유혜원 9/43
 책 번호와 그 책의 판매 수량, 제목 데이터
가 담겨있는 목록을 출력하라.
SELECT t.title_id, qty, title
FROM titles t LEFT OUTER JOIN sales s
ON t.title_id = s.title_id
SQL Study Written By 유혜원 10/43
 예제 테이블들의 ER-D
SQL Study Written By 유혜원 11/43
Titles 테이블 Sales 테이블
•Titles 테이블의 데이터를 가져온다.
•Titles 테이블과 Sales 테이블의
title_id가 같은지 비교한다.
• title_id가 같은 행의 내용들은 합치
고Titles 테이블에 없는 title_id는
NULL값으로 처리한다.
• 합쳐진 내용들을 기준으로
title_id, qty, title 을 출력한다.
SQL Study Written By 유혜원 12/43
SQL Study Written By 유혜원 13/43
 자기 자신을 다시 조인하는 경우.
 자기 자신을 다시 조인하여 똑같은 테이블
이름을 두 번 반복해서 사용하기 때문에
구분을 위해 반드시 alias가 필요.
SQL Study Written By 유혜원 14/43
 작가가 두 명 이상인 책 목록을 출력하라.
SELECT t1.title_id, t1.au_id, t2.au_id
FROM titleauthor t1, titleauthor t2
WHERE t1.title_id = t2.title_id
AND t1.au_id < t2.au_id
ORDER BY t1.title_id
SQL Study Written By 유혜원 15/43
•Titlesauthor테이블을 2번 불러온다.
• 이 때 구분을 위해 각각 다른 별명을
붙여준다.
• 서로 title_id가 같은지 비교한 후,
그 결과값의 au_id를 비교하여 더 큰
au_id값을 가진 경우 출력한다.
SQL Study Written By 유혜원 16/43
SQL Study Written By 유혜원 17/43
 GROUP BY
특정 컬럼을 기준으로 데이터들을 그룹
으로 묶음.
 HAVING
GROUP BY된 데이터들 중 특정 조건을
만족하는 값을 가져옴.
 GROUP BY ALL
WHERE 절 조건을 만족시키지 못한 데이터도
결과에 포함하여 출력.
SQL Study Written By 유혜원 18/43
 책 제목에 따라 전체 팔린 개수의 합을
출력하라.
 이 중 팔린 개수의 합이 30권 이상인 것만
출력하라.
SELECT title_id, sum(qty) AS ‘sum’
FROM sales
GROUP BY title_id
HAVING sum(qty) >= 30
SQL Study Written By 유혜원 19/43
•Title_id 기준으로 그룹핑 한 후,
각Title_id별 총 수량을 구한다.
• 그 중 총 수량이 30 이상인 것만 출력
한다.
SQL Study Written By 유혜원 20/43
 책 목록 중에서 책 판매 수량이 40권을 초
과하는 책의 판매 수량 총 합을 출력하라.
SELECT title_id, sum(qty) AS ‘sum’
FROM sales
WHERE qty > 40
GROUP BY ALL title_id
SQL Study Written By 유혜원 21/43
• title_id 기준으로 그룹핑 한다.
• 수량이 40을 초과하는 경우에만 수량
의 총 합을 계산한다.
• 그룹핑 된 title_id 전체 목록이 출력된
다.
• 총 합의 경우 수량이 40을 초과하는
조건을 만족한 경우에만 그 값을 출력
하고, 나머지는 NULL 값으로 한다.
SQL Study Written By 유혜원 22/43
 상세 내역과 함께 평균이나 합계 등을 같이 출력
하고 싶을 때 사용.
 COMPUTE는 전체에 대한 상세 내용과
산술식 계산값을, COMPUTE BY는 BY 뒤에
오는 컬럼 그룹을 기준으로 그룹핑하여
상세 내역과 산술식 계산값을 출력.
 COMPUTE BY를 사용하려면 ORDER BY가
COMPUTE BY 앞에 반드시 와야만 하고,
ORDER BY에서 지정된 순서 또는 그 일부분의
순서대로 COMPUTE BY를 사용 해야 함.
SQL Study Written By 유혜원 23/43
 책의 종류와 타이틀 아이디, 가격의
상세 데이터와 전체 평균을 출력하라.
SELECT type, title_id, price
FROM titles
COMPUTE avg(price)
SQL Study Written By 유혜원 24/43
SQL Study Written By 유혜원 25/43
 책의 종류를 기준으로 그룹핑하여
책의 종류와 타이틀 아이디, 가격의
상세 데이터와 각 책 종류별 평균을
출력하라.
SELECT type, title_id, price
FROM titles
ORDER BY type
COMPUTE avg(price) BY type
SQL Study Written By 유혜원 26/43
SQL Study Written By 유혜원 27/43
 의미 있는 데이터 통계들을 한꺼번에
볼 수 있도록 해 줌.
 데이터웨어하우징 / 데이터마트 /
데이터마이닝을 SQL 서버에서도 미약하게
나마 지원한 것.
SQL Study Written By 유혜원 28/43
 책의 종류와 출판사별 평균 가격,
책 종류별 평균 가격, 책 전체 평균 가격을
출력하라.
SELECT type , pub_id, AVG(price)
FROM titles
GROUP BY type, pub_id
WITH ROLLUP
SQL Study Written By 유혜원 29/43
SQL Study Written By 유혜원 30/43
 책의 종류와 출판사별 평균 가격,
책 종류별 평균 가격, 책 출판사별 평균 가격,
책 전체 평균 가격을 출력하라.
SELECT type , pub_id, AVG(price)
FROM titles
GROUP BY type, pub_id
WITH CUBE
SQL Study Written By 유혜원 31/43
SQL Study Written By 유혜원 32/43
 SELECT 혹은 INSERT, UPDATE, DELETE
문 안에 들어가 있는 SELECT.
 중첩된 SELECT(Nested SELECT)라고도 함.
 괄호로 묶이고,
하위 질의만 수행해도 수행되며,
안쪽 질의가 먼저, 바깥쪽 질의가 나중에
실행되는 특징을 가짐.
SQL Study Written By 유혜원 33/43
 서점 별 판매 총 수량과 판매 비율을
출력하라.
SELECT stor_id
, qty = sum(qty)
, ratio = round(convert(float, sum(qty))
/ (select sum(qty) from sales) * 100, 2)
FROM sales
GROUP BY stor_id
SQL Study Written By 유혜원 34/43
SQL Study Written By 유혜원 35/43
 하위 질의의 한 형태.
 JOIN으로 대체할 수 있음.
 IN은 괄호 안의 항목과 일치하는 것이
있어야 참이 되지만,
EXISTS는 괄호안에 어떤 것이든 결과만
돌려지면(행만 존재하면) 참이 됨.
SQL Study Written By 유혜원 36/43
 판매된 책 이름 목록을 출력하라.
SELECT title
FROM titles
WHERE title_id IN(
SELECT DISTINCT title_id
FROM sales
)
SQL Study Written By 유혜원 37/43
SQL Study Written By 유혜원 38/43
 business 종류의 책을 출판한 출판사 이름을
출력하라.
SELECT pub_name
FROM publishers
WHERE EXISTS
SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = ‘business’)
SQL Study Written By 유혜원 39/43
SQL Study Written By 유혜원 40/43
 현재 있는 테이블의 내용 전체나 일부를
선택하여 새로운 테이블로 만들 때 사용.
 새로운 테이블은 임시 테이블과 영구 테이블
두 종류로 만들 수 있음.
SQL Study Written By 유혜원
만드는 방법 사용할 수 있는 범위 삭제되는 시기
일반 테이블 CREATETABLE 다른 세션에서도 DROPTABLE
세션 임시 테이블 #tablename 해당 세션에서만 세션이 끊어질 때
전역 임시 테이블 ##tablename 다른 세션에서도 세션이 끊어질 때
Tempdh의 일반 테이블 CREATETABLE 다른 세션에서도 SQL 서버가 시작될 때
41/43
 비 정규화된 테이블을 연결시키기 위해
사용.
 비 정규화의 기법 중 자주 사용하는 행들의
성능을 높여주기 위해 하나의 테이블을
행을 기준으로 둘 또는 그 이상으로 나누어
사용하는 방법이 있음.
 이렇게 나누어진 테이블을 합칠 때 사용.
SQL Study Written By 유혜원 42/43
감사합니다.
SQL Study Written By 유혜원 43/43

More Related Content

PDF
(130105) #fitalk trends in d forensics (dec, 2012)
PDF
Korean Word Network
PPTX
Db활용가이드
PDF
Sdn and Security
PPTX
효율적인Sql작성방법 3주차
PPTX
효율적인Sql작성방법 2주차
PPTX
효율적인Sql작성방법 4주차
PDF
Welcome to python
(130105) #fitalk trends in d forensics (dec, 2012)
Korean Word Network
Db활용가이드
Sdn and Security
효율적인Sql작성방법 3주차
효율적인Sql작성방법 2주차
효율적인Sql작성방법 4주차
Welcome to python

Viewers also liked (20)

PDF
(Fios#03) 2. 네트워크 가상화 환경에서의 침해대응
PPT
System hacking basics
PDF
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
PDF
[Nux]12 nux
PDF
[Info01]introduction
PDF
[I3 d]11 designui(2)
PDF
[MSD01]Introduction
PDF
[Msd12]interface design123
DOCX
Excel expert 2010 모의고사 문제만
PDF
[Nux]09 nux
PDF
Socket.io
PDF
Pdf 이교수의 멘붕하둡_pig
PDF
[Msd02]mobile servicedesign
PDF
Directory lists
PPTX
모바일 게임 보안
PDF
[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
PDF
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
PDF
가장 심각한 웹 애플리케이션 보안 위험 10가지-2013
PDF
좋아보이는것들의비밀 인포그래픽 01
PDF
HTML5_security_(next_generation_threats)
(Fios#03) 2. 네트워크 가상화 환경에서의 침해대응
System hacking basics
[20140830, Pycon2014] NetworkX를 이용한 네트워크 분석
[Nux]12 nux
[Info01]introduction
[I3 d]11 designui(2)
[MSD01]Introduction
[Msd12]interface design123
Excel expert 2010 모의고사 문제만
[Nux]09 nux
Socket.io
Pdf 이교수의 멘붕하둡_pig
[Msd02]mobile servicedesign
Directory lists
모바일 게임 보안
[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
가장 심각한 웹 애플리케이션 보안 위험 10가지-2013
좋아보이는것들의비밀 인포그래픽 01
HTML5_security_(next_generation_threats)
Ad

Similar to Sql study 20101113 유혜원 (20)

PPTX
181215 MS SQL로 알아보는 데이터베이스
PPTX
101102 endofdb select.1_rdbms
PDF
일주일만에 끝내는 MySQL
PDF
오라클강의/자바강의/닷넷강의/자마린교육/아두이노교육학원추천_#13.SQL초보에서 Schema Objects까지
PDF
#6.SQL초보에서 Schema Objects까지_구로IT학원/오라클교육/자바교육/국비지원/재직자환급교육/내일배움카드/사업주위탁
PDF
PostgreSQL로 배우는 SQL 기초
PDF
Join(sql)
PDF
데이터베이스 시스템 chapter4_STG박하은
PDF
제2장 데이터 조회하기
PDF
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
PDF
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
PDF
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
PDF
2019 lightning talk_2
PDF
mysql 서브쿼리
PDF
MySQL Select (1)
PDF
Fundamentals of Oracle SQL
PPT
6.테이블만들기
PPTX
MySQL 실행계획
PPT
sqlserver7.0 데이타베이스
181215 MS SQL로 알아보는 데이터베이스
101102 endofdb select.1_rdbms
일주일만에 끝내는 MySQL
오라클강의/자바강의/닷넷강의/자마린교육/아두이노교육학원추천_#13.SQL초보에서 Schema Objects까지
#6.SQL초보에서 Schema Objects까지_구로IT학원/오라클교육/자바교육/국비지원/재직자환급교육/내일배움카드/사업주위탁
PostgreSQL로 배우는 SQL 기초
Join(sql)
데이터베이스 시스템 chapter4_STG박하은
제2장 데이터 조회하기
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
2019 lightning talk_2
mysql 서브쿼리
MySQL Select (1)
Fundamentals of Oracle SQL
6.테이블만들기
MySQL 실행계획
sqlserver7.0 데이타베이스
Ad

Sql study 20101113 유혜원

  • 1. 스터디 도서: Microsoft 전문가로 가는 지름길 1 SQL Server 2000 SQL Study Written By 유혜원 1/43
  • 2. 책 본문 PT  요약 정보 처리  하위 질의(subquery)  IN / EXISTS  상관관계의 하위 질위 (Correlated subquery)  SELECT INTO  UNION  따라하기  JOIN  GROUP BY / HAVING  COMPUTE / COMPUTE BY  RLLUP 과 CUBE  하위 질의(subquery)  IN / EXISTS  SELECT INTO  UNION SQL Study Written By 유혜원 2/43
  • 3.  JOIN 이란? 정규화된 테이블들에 흩어져 있는 컬럼들을 필요에 의해 다시 모아 올 때 사용하는 것.  JOIN의 종류 • INNER JOIN • OUTER JOIN • SELF JOIN • NAUTURAL JOIN • EQUI JOIN • CROSS JOIN SQL Study Written By 유혜원 3/43
  • 4.  가장 일반적인 JOIN. 어떤 JOIN인지 지정하지 않으면, 자동적으로 INNER JOIN이 됨.  두 테이블에 있는 키 값이 일치하는 데이터만 가져 옴. [TIP] JOIN은 가능한 ANSI 문법으로 작성하는 것을 권장. SQL Study Written By 유혜원 4/43
  • 5.  책 제목과 해당 책의 가격, 출판사 이름 데이터가 담겨 있는 목록을 출력하라. SELECT title, price, pub_name FROM titles (INNER) JOIN publishers ON titles.pub_id = publishers.pub_id SQL Study Written By 유혜원 5/43
  • 6.  예제 테이블들의 ER-D SQL Study Written By 유혜원 6/43
  • 7. Titles 테이블 Publishers 테이블 •Titles 테이블과 Publishers 테이블의 Pub_id가 같은지 비교한다. • Pub_id가 같은 행의 내용들을 합친다. • 합쳐진 내용들을 기준으로 title, price, pub_name 을 출력한다. SQL Study Written By 유혜원 7/43
  • 8. SQL Study Written By 유혜원 8/43
  • 9.  JOIN을 하는 테이블들 중 어느 한 쪽의 데이터를 모두 가져옴.  실무에서 사용 빈도가 높음. [TIP] 긴 테이블 이름은 alias(별명)로 대체가능. 여러 테이블에서 사용되는 컬럼의 경우 어느 테이블의 컬럼 데이터를 지칭하는지 사용자와 프로그램 모두 알 수 없기 때문에 컬럼명 앞에 테이블명을 붙여준다. 이 때 긴 테이블명의 경우 타이핑의 편리함을 위해 별명을 지정 하여 대체 가능하다. SQL Study Written By 유혜원 9/43
  • 10.  책 번호와 그 책의 판매 수량, 제목 데이터 가 담겨있는 목록을 출력하라. SELECT t.title_id, qty, title FROM titles t LEFT OUTER JOIN sales s ON t.title_id = s.title_id SQL Study Written By 유혜원 10/43
  • 11.  예제 테이블들의 ER-D SQL Study Written By 유혜원 11/43
  • 12. Titles 테이블 Sales 테이블 •Titles 테이블의 데이터를 가져온다. •Titles 테이블과 Sales 테이블의 title_id가 같은지 비교한다. • title_id가 같은 행의 내용들은 합치 고Titles 테이블에 없는 title_id는 NULL값으로 처리한다. • 합쳐진 내용들을 기준으로 title_id, qty, title 을 출력한다. SQL Study Written By 유혜원 12/43
  • 13. SQL Study Written By 유혜원 13/43
  • 14.  자기 자신을 다시 조인하는 경우.  자기 자신을 다시 조인하여 똑같은 테이블 이름을 두 번 반복해서 사용하기 때문에 구분을 위해 반드시 alias가 필요. SQL Study Written By 유혜원 14/43
  • 15.  작가가 두 명 이상인 책 목록을 출력하라. SELECT t1.title_id, t1.au_id, t2.au_id FROM titleauthor t1, titleauthor t2 WHERE t1.title_id = t2.title_id AND t1.au_id < t2.au_id ORDER BY t1.title_id SQL Study Written By 유혜원 15/43
  • 16. •Titlesauthor테이블을 2번 불러온다. • 이 때 구분을 위해 각각 다른 별명을 붙여준다. • 서로 title_id가 같은지 비교한 후, 그 결과값의 au_id를 비교하여 더 큰 au_id값을 가진 경우 출력한다. SQL Study Written By 유혜원 16/43
  • 17. SQL Study Written By 유혜원 17/43
  • 18.  GROUP BY 특정 컬럼을 기준으로 데이터들을 그룹 으로 묶음.  HAVING GROUP BY된 데이터들 중 특정 조건을 만족하는 값을 가져옴.  GROUP BY ALL WHERE 절 조건을 만족시키지 못한 데이터도 결과에 포함하여 출력. SQL Study Written By 유혜원 18/43
  • 19.  책 제목에 따라 전체 팔린 개수의 합을 출력하라.  이 중 팔린 개수의 합이 30권 이상인 것만 출력하라. SELECT title_id, sum(qty) AS ‘sum’ FROM sales GROUP BY title_id HAVING sum(qty) >= 30 SQL Study Written By 유혜원 19/43
  • 20. •Title_id 기준으로 그룹핑 한 후, 각Title_id별 총 수량을 구한다. • 그 중 총 수량이 30 이상인 것만 출력 한다. SQL Study Written By 유혜원 20/43
  • 21.  책 목록 중에서 책 판매 수량이 40권을 초 과하는 책의 판매 수량 총 합을 출력하라. SELECT title_id, sum(qty) AS ‘sum’ FROM sales WHERE qty > 40 GROUP BY ALL title_id SQL Study Written By 유혜원 21/43
  • 22. • title_id 기준으로 그룹핑 한다. • 수량이 40을 초과하는 경우에만 수량 의 총 합을 계산한다. • 그룹핑 된 title_id 전체 목록이 출력된 다. • 총 합의 경우 수량이 40을 초과하는 조건을 만족한 경우에만 그 값을 출력 하고, 나머지는 NULL 값으로 한다. SQL Study Written By 유혜원 22/43
  • 23.  상세 내역과 함께 평균이나 합계 등을 같이 출력 하고 싶을 때 사용.  COMPUTE는 전체에 대한 상세 내용과 산술식 계산값을, COMPUTE BY는 BY 뒤에 오는 컬럼 그룹을 기준으로 그룹핑하여 상세 내역과 산술식 계산값을 출력.  COMPUTE BY를 사용하려면 ORDER BY가 COMPUTE BY 앞에 반드시 와야만 하고, ORDER BY에서 지정된 순서 또는 그 일부분의 순서대로 COMPUTE BY를 사용 해야 함. SQL Study Written By 유혜원 23/43
  • 24.  책의 종류와 타이틀 아이디, 가격의 상세 데이터와 전체 평균을 출력하라. SELECT type, title_id, price FROM titles COMPUTE avg(price) SQL Study Written By 유혜원 24/43
  • 25. SQL Study Written By 유혜원 25/43
  • 26.  책의 종류를 기준으로 그룹핑하여 책의 종류와 타이틀 아이디, 가격의 상세 데이터와 각 책 종류별 평균을 출력하라. SELECT type, title_id, price FROM titles ORDER BY type COMPUTE avg(price) BY type SQL Study Written By 유혜원 26/43
  • 27. SQL Study Written By 유혜원 27/43
  • 28.  의미 있는 데이터 통계들을 한꺼번에 볼 수 있도록 해 줌.  데이터웨어하우징 / 데이터마트 / 데이터마이닝을 SQL 서버에서도 미약하게 나마 지원한 것. SQL Study Written By 유혜원 28/43
  • 29.  책의 종류와 출판사별 평균 가격, 책 종류별 평균 가격, 책 전체 평균 가격을 출력하라. SELECT type , pub_id, AVG(price) FROM titles GROUP BY type, pub_id WITH ROLLUP SQL Study Written By 유혜원 29/43
  • 30. SQL Study Written By 유혜원 30/43
  • 31.  책의 종류와 출판사별 평균 가격, 책 종류별 평균 가격, 책 출판사별 평균 가격, 책 전체 평균 가격을 출력하라. SELECT type , pub_id, AVG(price) FROM titles GROUP BY type, pub_id WITH CUBE SQL Study Written By 유혜원 31/43
  • 32. SQL Study Written By 유혜원 32/43
  • 33.  SELECT 혹은 INSERT, UPDATE, DELETE 문 안에 들어가 있는 SELECT.  중첩된 SELECT(Nested SELECT)라고도 함.  괄호로 묶이고, 하위 질의만 수행해도 수행되며, 안쪽 질의가 먼저, 바깥쪽 질의가 나중에 실행되는 특징을 가짐. SQL Study Written By 유혜원 33/43
  • 34.  서점 별 판매 총 수량과 판매 비율을 출력하라. SELECT stor_id , qty = sum(qty) , ratio = round(convert(float, sum(qty)) / (select sum(qty) from sales) * 100, 2) FROM sales GROUP BY stor_id SQL Study Written By 유혜원 34/43
  • 35. SQL Study Written By 유혜원 35/43
  • 36.  하위 질의의 한 형태.  JOIN으로 대체할 수 있음.  IN은 괄호 안의 항목과 일치하는 것이 있어야 참이 되지만, EXISTS는 괄호안에 어떤 것이든 결과만 돌려지면(행만 존재하면) 참이 됨. SQL Study Written By 유혜원 36/43
  • 37.  판매된 책 이름 목록을 출력하라. SELECT title FROM titles WHERE title_id IN( SELECT DISTINCT title_id FROM sales ) SQL Study Written By 유혜원 37/43
  • 38. SQL Study Written By 유혜원 38/43
  • 39.  business 종류의 책을 출판한 출판사 이름을 출력하라. SELECT pub_name FROM publishers WHERE EXISTS SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type = ‘business’) SQL Study Written By 유혜원 39/43
  • 40. SQL Study Written By 유혜원 40/43
  • 41.  현재 있는 테이블의 내용 전체나 일부를 선택하여 새로운 테이블로 만들 때 사용.  새로운 테이블은 임시 테이블과 영구 테이블 두 종류로 만들 수 있음. SQL Study Written By 유혜원 만드는 방법 사용할 수 있는 범위 삭제되는 시기 일반 테이블 CREATETABLE 다른 세션에서도 DROPTABLE 세션 임시 테이블 #tablename 해당 세션에서만 세션이 끊어질 때 전역 임시 테이블 ##tablename 다른 세션에서도 세션이 끊어질 때 Tempdh의 일반 테이블 CREATETABLE 다른 세션에서도 SQL 서버가 시작될 때 41/43
  • 42.  비 정규화된 테이블을 연결시키기 위해 사용.  비 정규화의 기법 중 자주 사용하는 행들의 성능을 높여주기 위해 하나의 테이블을 행을 기준으로 둘 또는 그 이상으로 나누어 사용하는 방법이 있음.  이렇게 나누어진 테이블을 합칠 때 사용. SQL Study Written By 유혜원 42/43

Editor's Notes

  • #5: ANSI SQL: 표준 문법 T-SQL: Microsoft SQL 서버에서만 사용하는 문법
  • #10: 별명 사용법에 대해서는 뒤의 예제를 통해 알아보자.
  • #34: 상관관계의 하위 질의,줄여서 상관 하위 질의도 있다. 이것은 바깥쪽 질의와 안쪽 질의가 서로 영향을 주어, 안쪽 질의만으로는 실행이 되지 않는다. 성능향상을 위해서는 하위 질의, 상관 하위 질의는 가급적 사용하지 말아야 한다. 특히, 상관 하위 질의는 피하도록 한다.