1 / 58

MS SQL Server 2000

MS SQL Server 2000. 한권으로 끝내기 김 병 직 ㈜ 사이버출판사. 1. SQL Server 2007 소개 . SQL server 의 변천사 . SQL Server 1.0 의 등장 . Unix 기반의 sybase 제품의 DbLibrary 이용 1989 년 OS/2 기반으로 등장 .

tamber
Download Presentation

MS SQL Server 2000

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MS SQL Server 2000 한권으로 끝내기 김 병 직 ㈜ 사이버출판사 MS SQL Server 2000

  2. 1. SQL Server 2007 소개. • SQL server의 변천사. • SQL Server 1.0의 등장. • Unix 기반의 sybase제품의 DbLibrary이용 • 1989년 OS/2 기반으로 등장. • SQL Server v4.2 • OS/2 기반으로 16Bit 버전으로 1992년에 처음 발표 • Windows NT를 위해 32Bit 버전으로 포팅되기 시작하면서 대중적인 눈길을 끌게됨. • OS/2버전을 포기하고, Windows NT 만을 위한 제품을 만들게 됨. • SQL Server v6.x • Sybase의 Dblibrary의 소스를 완전하게 소유하게 됨. 소스 수정 가능 • 1995년에 자체 업그레드한 v6,0 개발. • V6.5는 인터냇을 지원하기 시작 했으며, 데이터 웨어하우스 기능도 일부 지원. MS SQL Server 2000

  3. 1. SQL Server 2007 소개.(cont) • SQL server의 변천사.(cont) • Spnix의 등장(V7.0) • 전 버전들과는 완전히 차별화된 구조를 지님. • Sybase의 Dblibrary를 버리고 COM을 기반의 MSDE(Microsoft Database Engine) 1.0 개발 • Tera단위의 대용량 데이터베이스를 훌륭하게 운영하게 됨. • 1999년 1월에 발표. • MS SQL Server 2000 (V8.0) • v7.0이 출시 2년 후 등장. • Windows DNA 플랫폼 지원 • MS SQL Server 2002 • .NET 플랫폼을 위한 데이터 서비스 제공 • MS SQL Server 2007 • 데이터 웨어하우스, 비즈니스 인텔리전스에 효과적으로 대응하기 위함 • .NET, C#, CLR(Common Language Runtime) 기반 언어 이용한 프로그램 편의 제공 MS SQL Server 2000

  4. 1. SQL Server 2007 소개.(cont) • Windows DNA(Distributed interNet Architecture) • Windows DNA의 목표는 상호 운영성이 있는 웹 응용프로그램을 위한 하나의 공통된 패러다임. • Windows DNA는 다음과 같은 기술을 포함하고 있다. • 메시징 • 데이터 관리부분 • 데이터 웨어하우징 • 다른 기업 응용프로그램과의 통합성 • XML 기술 • 웹 브라우저를 비롯하여 모든 종류의 클라이언트를 통한 프리젠테이션. MS SQL Server 2000

  5. 1. SQL Server 2007 소개.(cont) • SQL Server의 새로운 기능. • 관계형 엔진의 기능 향상. • XML지원. • 사용자 정의 함수 • 인덱스된 뷰, 분산 분할된 뷰의 지원. • 새로운 데이터형의 도입 : big_int, sql_variant, table 형 • 인덱스 기능의 향상 : 계산된 컬럼에 인덱스 사용 • 연계 참조 무결성 지원. • 컬럼 단위 다국어 지원. • INSTEAD OF 및 AFTER 트리거. • Admin 기능의 기능 향상. • 다중 인스턴스의 지원. • 64GB 메모리 지원 : 대용량의 메모리 지원 • 새롭게 디자인된 SQL Server 쿼리 분석기. MS SQL Server 2000

  6. 1. SQL Server 2007 소개.(cont) • SQL Server의 새로운 기능. • Admin 기능의 기능 향상.(cont’d) • 로그 전달 • 데이터베이스 복사 마법사. • 복제(Replication) 기능 향상 • DTS(Data Transformation Service) 기능 향상 MS SQL Server 2000

  7. MS SQL Server 구조 210.115.58.68 MS SQL Server 2000

  8. MS SQL Server 구조(계속) MS SQL Server 2000

  9. 3. SQL Server 2000 설치. • SQL Server 2000의 버전들. • Handled PC version : Windows CE를 운영체제로 사용하는 Handled PC에서 설치되고 운영될 수 있는 버전. • Personal Edition : Desktop 운영체제에서 사용되는 개인용 Edition. • Standard Edition : 소규모 회사나 대규모 Enter-prise의 작업용으로 사용. • Enterprise Edition : 대규모 웹사이트나 초대형 데이터 웨어하우스 등에 사용. • SQL Server 인스턴스 옵션 선택. • 설치 전 SQL Server 인스턴스에 대한 계획을 세운다. • SQL Server2000은 하드웨어 리소스가 허용하는 한도에서 여러 번 설치 가능하며, 각각 서로 다른 인스턴스로 구분. MS SQL Server 2000

  10. 5. SQL Server 2000 구조. • 네트워크 구조 • Super Socket과 공유 메모리. • 모든 통신은 Super Socket이 책임, 여러 인스턴스간의 통신은 공유 메모리가 책임. • TCP/IP나 명명된 파이트등의 이제까지 알려진 네트워크 구성요소들은 위 두개의 Net-Library와는 별도로 운영. • SAN ( System Area Network) • SQL Server 2000 Enterprise Edition에서 이용가능. • 현재 사용되는 네트워크 대역보다 훨씬 빠른 속도로 통신. • ODS (Open Data Services) • SQL Server에서 클라이언트 관리자처럼 동작. • 외부로부터의 통신을 책임지는 Net-Library와 내부의 관계형 엔진간 교두보 역할. MS SQL Server 2000

  11. 5. SQL Server 2000 구조.(cont) • 관계형 데이터베이스 엔진 • 관계형 엔진 : ODS로 부터 접수되는 모든 쿼리를 해석하고 최적화하는 역할을 담당하는 구성요소들로 이루어짐. • SQL 문장의 해석 • 수행계획의 최적화 • 수행계획에 정의된 내용대로 SQL 문장을 수행하는 역할 • 수행된 결과를 볼 수 있는 포맷으로 바꾸어 주는 역할 • 저장소 엔진 • PAGE : 가장 기본적인 저장단위, 연속된 8KByte로 이루어짐. • 익스텐트 : 여덟 개의 연속된 패이지는 하나의 익스텐트가 됨. • 연속된 여덟 개의 익스텐트는 0.5MByte의 크기가 됨. • 0.5MByte는 SQL Server 2000에서 생성할 수있는 데이터베이스의 최소 크기( 실제로는 1MByte 단위로 생성) • NTFS파일 시스템을 이용한 데이터 파일 또는 로그파일위에 생성되고 저장됨. MS SQL Server 2000

  12. 5. SQL Server 2000 구조.(cont) • 메모리 관리 • SQL Server 2000은 동적 자기관리를 수행, 메모리 관리자는 이러한 동적 메모리 관리의 책임을 진다. • 메모리 관리자는 다음과 같은 구성요소들로 이루어짐. • 버퍼 관리자. • Lazy Writer • 체크포인트. • 메모리 관리자의 특징. • In-Memory Page에 엑세스 : 버퍼에 접근하기 위해 버퍼에 대한 포인터를 메모리에 보관하며 이를 위해 해싱 알고리즘을 사용. • Merry – Go – Round 방식의 스캔 : SQL Server 2000 기업용 버전에서만 제공됨, 패이지에 대한 동시 접근을 허용. MS SQL Server 2000

  13. 5. SQL Server 2000 구조.(cont) • 트랜잭션과 복구 구조 • SQL Server 2000에서 모든 작업은 모두 트랜잭션 로그라는 특별한 구조에 저장. • 로그 관리자. • 버퍼에 올려진 내용은 어느 시점에서 물리적인 디스크에 존재하는 트랜잭션 로그로 옮겨지게 됨 하지만 버퍼 패이지에 기록되어 있는 내용이 곧바로 트랜잭션 로그로 옮겨 질 수는 없다. • 이렇게 곧바로 옮겨 담을 수 없는 버퍼 페이지의 내용을 트랜잭션 로그에 담을 수 있도록 특정한 형태로 포맷하는 역할. • 트랜잭션 로깅. • 시스탬 오류가 발생할 경우, 복구를 위해 트랜잭션 로그는 모든 내용이 적용될지, 하나도 적용되지 않을지를 판단하는 기준이 됨. • LSN을 이용하는 SQL Server • LSN (Log Sequence Number) : SQL Server에서 각 로그 레코드를 구분. MS SQL Server 2000

  14. 사용자 테이블 데이터 화일 사용자 논리적 데이타베이스 물리적 데이타베이스 6.데이터베이스와 파일. • 데이타베이스의 간단한 구조 MS SQL Server 2000

  15. 6.데이터베이스와 파일. • 파일과 파일 그룹 • SQL Server 2000에서는 세 종류의 파일을 사용. • .mdf : 주 데이터베이스를 저장, 시스템 테이블이 저장 되며 테이블이나 기타 오브젝트를 생성. • .ndf : 보조적으로 사용되는 데이터 파일. 시스템 테이블들을 제외한 사용자 테이블 또는 기타 SQL Server의 오브젝트들이 저장. • .ldf : 로그가 저장되는 파일. • SQL Server 2000 파일 그룹. • 파일들의 논리적 집합을 의미. • 여러 개의 ‘.mdf’파일들은 PRIMARY라고 하는 파일 그룹의 일원이 될 수 있다. • ‘.ndf’파일들은 EXTENDED 라고 하는 파일 그룹의 일원이 될 수 있다. • 파일의 구성 • Page : 최소의 저장 단위, 8Kbytes • Extent : 8개 페이지, 64Kbytes, 하나의 테이블이나 인덱스는 하나의 extent에 저장됨 • 파일 그룹을 서로 다른 디스크에 저장하여 성능 향상 및 안정성을 높일 수 있음 MS SQL Server 2000

  16. 6.데이터베이스와 파일.(cont) • 데이터베이스 생성. • SQL Server Management Studio를 이용하여 데이터베이스 생성. • 해당 SQL Server에서 Databases 객체 위에서 마우스 오른쪽 버튼을 눌러 New Database.. 선택. MS SQL Server 2000

  17. 6.데이터베이스와 파일.(cont) • 데이터베이스를 만드는 화면이 표시. • 새 데이터베이스 이름을 입력, 편의상 dbpgm 이라고 입력.. • dbpgm.mdf와 dbpgm_log.ldf와 같은 명을 가진 파일이 생성. MS SQL Server 2000

  18. 6.데이터베이스와 파일.(cont) • CREATE DATABASE문을 이용한 데이터베이스 생성 • Mydb라는 데이터 베이스를 만드는 예제. o NAME : 내부적으로 사용될 데이터베이스 파일의 놀리적인 이름o FILENAME : 데이터베이스 파일의 물리적인 위치와 파일명o SIZE : 데이터베이스의 초기 사이즈o MAXSIZE : 데이터베이스가 증가될 수 있는 최대 사이즈, 지정되지 않으면 하드디스크가 허용하는한 무작정 사이즈 증가.o FILEGROWTH : 데이터베이스 공간이 부족할 떄 자동으로 증가하게되는 사이즈 • 쿼리 분석기를 통해서 create database문을 이용하여 mydb데이터 베이스를 만든다. ( F5로 작성한 sql문을 실행) MS SQL Server 2000

  19. 6.데이터베이스와 파일.(cont) < ‘Mydb’데이터베이스를 만드는 T-SQL 문.> CREATE DATABASE MyDB ON(NAME = MyDB_Data, FILENAME = 'C:\Temp\MyDB.mdf', SIZE = 10MB, MAXSIZE = 40MB, FILEGROWTH = 5MB ) LOG ON (NAME = MyDB_Log, FILENAME = 'C:\Temp\MyDB.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB) GO MS SQL Server 2000

  20. 6.데이터베이스와 파일.(cont) • < ‘Mydb’데이터베이스를 만드는 T-SQL 문.>설명. • 우선 C:\Temp 폴더가 존재하고 있어야 합니다. 그렇지 않으면 오류가 발생. • 실제 OS상에서 데이터는 MyDB.mdf로 로그는 MyDB.ldf로 C:\Temp 폴더에 저장. • Mydb.mdf와 MyDB.ldf는 SQL Server 내에서는 MyDB_Data와 MyDB_Log라는 이름으로 관리. • 만들어지는 데이터베이스의 사이즈는 10MB이며, 40MB까지 5MB씩 증가 할 수 있다. • 로그의 경우는 처음 5MB 사이즈로 만들어지고 25MB까지 5MB씩 증가 할 수 있다. • 위에서 제시한 MAXSIZE에 도달하면 더 이상 데이터 기록이 불가능, MAXSIZE를 지정하지 않으면 디스크가 허용하는 한 무작정 증가합니다. • T-sql 부분에서 sql 사용과 쿼리 분석기의 사용에 대해 설명. MS SQL Server 2000

  21. 6.데이터베이스와 파일.(cont) • 데이터 베이스 관리. • 데이터베이스 관리에 포함되는 작업들. • 데이터 증가에 따른 파일 사이즈 변경 • 트랜잭션 로그 모니터링 • 필요에 따른 데이터베이스 사이즈 줄이기 • 데이터베이스 삭제 • ALTER DATABASE와 DROP DATABASE등의 SQL 구문을 사용하여 데이터베이스를 관리, 혹은 SQL Server Management Studio를 이용하여 관리 MS SQL Server 2000

  22. 7.테이블 • 테이블의 향상된 기능. • 다국어 지원 기능 • 다국어 지원기능을 위해 unicode 데이터형이라는 새로운 데이터형이 도입 • 새로운 데이터형. • Bigint : -2^63~2^63-1까지의 정수를 저장. • sql_variant : 비쥬얼 베이직의 variant 데이터형과 유사. 어떤 값이 저장 될지 잘 모를때 사용. • Table : 결과값으로 return 될 수 있는 결과집합 등을 저장할 수 있는 새롭게 도입된 데이터형. • 연계 참조 무결성 제약조건. • Text In Row MS SQL Server 2000

  23. 6.테이블(cont) • 테이블 생성. • SQL Server Management Studio를 이용한 테이블 생성 MS SQL Server 2000

  24. 6.테이블(cont) • 테이블 생성(cont) • CREATE TABLE문을 이용한 테이블 생성 • MyDB에 MyTable이라는 테이블을 추가. • New Query 창을 연 후 다음의 SQL을 작성 실행 시킨다. USE MyDB GO CREATE TABLE MyTable ( UserID char(05) NOT NULL primary key, UserName varchar(20) NOT NULL, birthyear int, Address varchar(100) NULL, Deptno int foreign key references Dept(Dnumber) on update cascade, check (birthyear >= 1900 and birthyear <= year(getdate() ) ) MS SQL Server 2000

  25. 6.테이블(cont) • 데이터 형식의 이해. MS SQL Server 2000

  26. 6.테이블(cont) • 데이터 형식의 이해.(cont) MS SQL Server 2000

  27. 6.테이블(cont) • 데이터 형식의 이해.(cont) MS SQL Server 2000

  28. 7.Transact-SQL • Transact-SQL이란? • 보통은 줄여서 T-SQL이라고 표기. • SQL Server의 SQL 구문은 ANSI와 ISO에서 정한 ANSI SQL 표준의 최신 버젼인 ANSI SQL-92 의 기준을 따르고 있다. • 새로운 기능 수행을 위해 MS사는 새로운 SQL 구문을 추가, 이를 Transact-SQL 이라 함. • SQL Server Management Studio의 질의창에서 실행 MS SQL Server 2000

  29. 7.Transact-SQL MS SQL Server 2000

  30. 7.Transact-SQL(cont) • SQL Server 2000이 제공하는 연산자 MS SQL Server 2000

  31. 7.Transact-SQL(cont) • SQL Server 2000이 제공하는 연산자 (cont) MS SQL Server 2000

  32. 7.Transact-SQL(cont) • SQL Server 2000이 제공하는 연산자 (cont) MS SQL Server 2000

  33. 7.Transact-SQL(cont) • SELECT 구문. • SELECT 문의 기본구성 • SELECT : 검색할 컬럼들을 지정 • FROM : 검색할 테이블을 지정 • WHERE : 검색할 테이블 내의 행과 검색조건을 지정 WHERE절이 없는 경우에는 해당 테이블의 모든 행들을 검색한다. • GROUP BY : 결과 데이터를 그룹화 한다. HAVING으로 그룹 된 데이터에서 검색 조건을 지정. • ORDER BY : 데이터를 정렬한다. • SELECT 문의 기본 문법. • SELECT 선택한 컬럼 FROM 테이블 이름 WHERE 찾을 조건 • 기본 데이터 베이스의 변경. • 도구모음 줄의 콤보박스를 이용 혹은 아래 쿼리를 이용. • USE pubs • GO MS SQL Server 2000

  34. 7.Transact-SQL(cont) • SELECT 구문.(cont) • SQL Server2000에 포함되어져 있는 셈플 데이터베이스인 ‘Pubs’안의 ‘sales’테이블에서 qty가 10권 이상인 책을 검색하시오. use pubs go select * from sales where qty>10 <‘sales’테이블에서 qty가 10권 이상인 책을 검색하기 위한 SQL문> MS SQL Server 2000

  35. 7.Transact-SQL(cont) • SELECT 구문.(cont) • 컬럼 명 변경 (NorthWind 데이터베이스 사용) • “=“ , “AS”를 사용. • SELECT EmployeeID AS '사번', LastName '이름', '성'= FirstName FROM employees • 결과 사번 이름 성 ----------- -------------------- 1 Davolio Nancy 2 Fuller Andrew 3 Leverling Janet 4 Peacock Margaret 5 Buchanan Steven 6 Suyama Michael 7 King Robert 8 Callahan Laura 9 Dodsworth Anne MS SQL Server 2000

  36. 7.Transact-SQL(cont) • WHERE, AND, OR를 이용한 결과의 제한. (NorthWind 데이터베이스 사용) • WHERE 절에서 AND 연산의 예.(Spain의 Madrid에 있는 고객의 고객ID와 이름 검색) • SELECT CustomerID, ContactName FROM customers WHERE country = ‘Spain’ AND City = ‘Madrid’ • CustomerID ContactName ---------- -------------------- BOLID Martín Sommer FISSA Diego Roel ROMEY Alejandra Camino • WHERE 절에서 OR 연산의 예(Berlin 또는 Madrid에 있는 고객의 고객ID와 이름 검색) • SELECT CustomerID, ContactName FROM customers WHERE City = ‘Berlin’ OR City = ‘Madrid’ MS SQL Server 2000

  37. 7.Transact-SQL(cont) • BETWEEN 등을 이용한 범위 연산 (<,>) • 어떤 값과 또 하나의 값 사이에 존재하는 값들을 얻고자 하는 경우에 사용. • Orders 테이블에서 화물의 운임이 100에서 110 사이인 값을 구하는 예. • SELECT OrderID, CustomerID, EmployeeID, ShipName FROM Orders WHERE Freight BETWEEN 100 AND 110 • BETWEEN은 부등호를 사용하여 같은 결과를 얻을 수 있다. • 부등호를 사용한 예. • SELECT OrderID, CustomerID, EmployeeID, ShipName FROM Orders WHERE Freight >= 100 AND Freight <=110 MS SQL Server 2000

  38. 7.Transact-SQL(cont) • IN을 사용하여 목록과 일치하는 값 찾기. • OR 연산의 예. • SELECT CustomerID, CompanyName, ContactName FROM customers WHERE Country = 'Germany' OR Country = 'Mexico' OR Country = 'UK‘ • OR를 사용하여 존재함을 찾는 목록연산을 할 떄는 이러한 연산을 IN을 사용하는 연산으로 바꿀수 있다. • SELECT CustomerID, CompanyName, ContactName FROM customers WHERE Country IN ('Germany', 'Mexico', 'UK ) MS SQL Server 2000

  39. 7.Transact-SQL(cont) • LIKE를 이용하여 SQL에서 와일드카드(WildCard) 사용하기. MS SQL Server 2000

  40. 7.Transact-SQL(cont) • LIKE를 이용하여 SQL에서 와일드카드(WildCard) 사용하기.(cont) • Customers 테이블에서 직책이 manager인 고객들의, 고객ID, 회사명, 이름을 출력. • SELECT CustomerID, CompanyName, Contactname, ContactTitle FROM Customers WHERE Contacttitle like '%manager‘ • Customer 테이블에서 고객ID가 B로 시작하고 S로 끝나는 고객들에 대한 검색. • SELECT CustomerID, CompanyName, Contactname, ContactTitle FROM Customers WHERE CustomerID LIKE '[B]%S' • Customers 테이블에서 고객ID가 ‘A’,’B’,’C’,’D’로 시작하는 고객에 대한 검색. • SELECT CustomerID, CompanyName, Contactname, ContactTitle FROM Customers WHERE CustomerID LIKE '[A-D]%' MS SQL Server 2000

  41. 7.Transact-SQL(cont) • SELECT에 산술연산 적용. • SQL에서는 SELECT를 이용하여 값을 가져올 때, 각 칼럼에 대핸 원하는 값으로 산술연산을 행하여 출력할 수 있는 기능을 제공. • 각 제품가격에 부가세를 포함하여 금액을 계산하고, ‘부가세 포함’이라는 칼럼에 결과를 출력 • SELECT ProductID, ProductName, '부가세포함가격' = ((UnitsInStock * UnitPrice)+(UnitsInStock*UnitPrice)*0.1) FROM products • ProductID ProductName 부가세포함가격 ----------- ---------------------------------------- 1 Chai 772.20000 2 Chang 355.30000 3 Aniseed Syrup 143.00000 4 Chef Anton's Cajun Seasoning 1282.60000 5 Chef Anton's Gumbo Mix .00000 6 Grandma's Boysenberry Spread 3300.00000 7 Uncle Bob's Organic Dried Pears 495.00000 결과 생략 (77 row(s) affected) MS SQL Server 2000

  42. 7.Transact-SQL(cont) • SQL 집계함수 MS SQL Server 2000

  43. 7.Transact-SQL(cont) • SQL 집계함수 (cont) • COUNT예 • COUNT를 사용하여, Customer 테이블에 등록되어 있는 전체 고객의 숫자를 계산하는 예제. • SELECT count(*) '고객의 총수' FROM Customers • 고객의 총수 ----------- 91 • SUM • Products 테이블에서 제품들의 UnitPrice의 총합을 구하는 예제. • SELECT sum(UnitPrice) 'Total Price' FROM products • Total Price --------- 2222.7100 MS SQL Server 2000

  44. 7.Transact-SQL(cont) • SQL 집계함수 (cont) • MIN과 MAX • Orders 테이블에서 화물운임(Freight)이 가장 비싼 것과 가장 싼 것을 구하는 예. • SELECT MAX(Freight) '최고값' FROM Orders SELECT MIN(Freight) '최소값' FROM Orders • 최고값 --------------------- 1007.6400 (1 row(s) affected) 최소값 --------------------- .0200 (1 row(s) affected) MS SQL Server 2000

  45. 7.Transact-SQL(cont) • SQL 집계함수 (cont) • AVG • Products 테이블에서 NorthWind사 제품들의 평균 UnitPrice를 구하는 예 • SELECT AVG(UnitPrice) as '제품평균가격' FROM Products • 제품평균가격 --------------- 28.8663 (1 row(s) affected) MS SQL Server 2000

  46. 7.Transact-SQL(cont) • ORDER BY 사용. (Pubs 데이터베이스 사용) • 데이터를 검색할 때 특정 컬럼을 기준으로 정렬을 하여 보고자 하는 경우 사용. • Eg. 사원정보를 검색했는데 그 결과를 무작위로 보는게 아니라 이름순으로 정렬을 하거나 부서별로 정렬 • 데이터 베이스 ‘Pubs’안의 Titles 테이블에서 가격을 기준으로 정렬 • USE PubsGO SELECT title_id, pub_id, price FROM titles ORDER BY price • 가격이 작은 것부터 큰 순으로 보여짐. • 위 예를 사용하여 가격이 큰 순에서 작은 순으로 표시하도록 정렬 • USE PubsGO SELECT title_id, pub_id, price FROM titles ORDER BY price DESC • 정렬 방식이 지정되지 않으면 기본적으로 오름 차순이 됨 MS SQL Server 2000

  47. 7.Transact-SQL(cont) • ORDER BY 사용(cont) • ‘titles’에서 pub_id를 기준으로 오름차순으로 정렬하고, 같은 pub_id이면 price를 기준으로 내림차순으로 정렬 • USE PubsGO SELECT title_id, pub_id, price FROM titles ORDER BY pub_id ASC, price DESC • GROUP BY 사용 (Pubs 데이터베이스 사용) • 어떤 컬럼을 기준으로 합을 구하거나 평균을 구하거나 또는 최대값이나 최소값을 구할 수 있는데 이때 사용되는 것이 GROUP BY • 각 pub_id별로 price의 합을 검색. • USE PubsGO SELECT pub_id, SUM(price) AS tot_price FROM titles GROUP BY pub_id MS SQL Server 2000

  48. 7.Transact-SQL(cont) • GROUP BY 사용.(cont) • ‘Titles’테이블의 ‘pub_id’칼럼의 레코드의 갯수를 구하는데, 갯수가 5보다 큰것만을 검색. • USE PubsGO SELECT pub_id, COUNT(*) AS cnt_price FROM titles GROUP BY pub_idHAVING COUNT(*) > 5 • pub_id cnt_price ------ ----------- 0877 7 1389 6 • HAVING은 GROUP BY와 항상 같이 사용되며 GROUP BY를 사용할 때 조건을 주는 방법. MS SQL Server 2000

  49. 7.Transact-SQL(cont) • 조인(JOIN)연산 • 조인의 종류. • INNER JOIN • OUTER JOIN • FULL JOIN • CROSS JOIN • ‘Pubs’데이터 베이스를 사용한 INNER JOIN의 예. • USE pubsSELECT *FROM authors AS a INNER JOIN publishers AS pON a.city = p.cityORDER BY a.au_lname DESC • authors 테이블과 publishers 테이블을 조인. • authors 테이블과 publishers 테이블에서 city 가 같은 행을 조인. • "SELECT * " 에 의해 두 테이블에 있는 컬럼 전체가 표시. • "ORDER BY a.au_lname DESC" 에 의해 표시되는 내용은 au_lname를 기준으로 내림차순으로 정렬됩니다. MS SQL Server 2000

  50. 7.Transact-SQL(cont) • 조인(JOIN)연산(cont) • ‘Pubs’데이터 베이스를 사용한 OUTER JOIN의 예. • USE pubsSELECT a.au_fname, a.au_lname, p.pub_nameFROM authors a LEFT OUTER JOIN publishers pON a.city = p.cityORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC • LEFT OUTER JOIN 이므로 왼쪽의 authors 테이블이 기준이 됩니다. • publishers 테이블에는 없더라도 authors 테이블에 있는 행은 표시됩니다. MS SQL Server 2000

More Related