1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng cơ sở dữ liệu SQLServer 2000 doc

10 281 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 753,21 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Siêu tập hợp Rollup và Cube ðể thêm các dòng tóm tắt bổ sung tham khảo như là các siêu tập hợp, sử dụng các tóan tử Rollup và Cube với mệnh ñề Group By Cú pháp: Tóan tử Rollup sinh ra

Trang 1

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 51

5.4.10 Siêu tập hợp Rollup và Cube

ðể thêm các dòng tóm tắt bổ sung tham khảo như là các siêu tập hợp, sử dụng các tóan

tử Rollup và Cube với mệnh ñề Group By

Cú pháp:

Tóan tử Rollup sinh ra các dòng siêu kết hợp

Ví dụ:

Select Sodh,Masp, Sum(SLDat) as TongSLDat From Chitietdh

Where Sodh in('00001','00002','00003') Group By sodh,masp With RoLLup

Sinh ra một dòng ñối với mỗi ñơn hàng cùng với thông tin tổng hợp các dòng với giá trị Null trong MaSP thể hiển tổng số của tất cả các MaSP Và sinh ra một dòng tổng cộng cho tất cả các ñơn ñặt hàng

Tóan tử Cube sinh ra các dòng siêu kết hợp

SELECT <DS các cột>

FROM <TênTable>

WHERE <ðiều kiện>

[Group By <DS Các cột gom nhóm> ] [With ROLLUP | CUBE]

This is trial version www.adultpdf.com

Trang 2

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 52

Giống như tóan tử Rollup tóan tử Cube chẳng những sinh ra các giá trị trung bình và tổng cộng ñộng mà còn trả về các dòng tổng bổ sung

Ví dụ:

Select Sodh,Masp, Sum(SLDat) as TongSLDat From chitietDH

Where Sodh in('00001','00002') Group By Sodh,Masp With Cube

5.5 TƯƠNG QUAN DỮ LIỆU

Cách thực hiện kết nối ñể trích dữ liệu từ 1 hoặc nhiều bảng Các kết quả sẽ xuất hiện như một bảng ñơn với các cột từ tất cả các bảng ñược chỉ ñịnh trong SELECT Column_List và

so khớp với ñiều kiện tìm kiếm Khi sử dụng nhiều Table nguồn chúng ta cần chú ý ñến mối liên kết giữa các Table nguồn

5.5.1 Khái niệm

 Loại kết nối - JoinType

 Inner Join (Liên kết trong bảng A và B) : Khi chọn các thông tin của bảng A hoặc

bảng B thì các thông tin ấy bắt buột phải có mặt ñồng thời trong cả 2 bảng A,B

 Left Join (Liên kết ngoài bên trái của A với B ):

Khi chọn thông tin của A: Thông tin ấy mặc nhiên ñược lấy Khi chọn thông tin của B : Thông tin ấy phải có mặt trong A thì mới lấy ñược

 Right Join: (Liên kết ngoài bên phải của A với B ):

Khi chọn thông tin của A: Thông tin ấy phải có mặt trong B thì mới lấy ñược Khi chọn thông tin của B : Thông tin ấy mặc nhiên ñược lấy

 Full Join (Liên kết ngoài toàn phần):

Khi chọn thông tin của A: Thông tin ấy mặc nhiên ñược lấy Khi chọn thông tin của B : Thông tin ấy mặc nhiên ñược lấy

 Toán tử kết nối- JoinOperator

This is trial version www.adultpdf.com

Trang 3

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 53

Trong SQL Server 2000 có toán tử kết nối =

5.5.2 Cú pháp kết nối

Khi thực hiện kết nối các bảng có thể sử dụng 2 cú pháp:

Hoặc

Ví dụ: Liệt kê kết quả học tập sinh viên khoa “TH” thông tin gồm : Masv, Hosv,

Tensv, Phai, Ngaysinh, Makhoa, Mamh, Diem

SELECT Sinhvien.masv, Sinhvien.hosv, Sinhvien.tensv, Sinhvien.phai,

Sinhvien.ngaysinh, Sinhvien.makhoa, Ketqua.mamh, Ketqua.diem; FROM sinhvien , Ketqua

WHERE sinhvien.masv=ketqua.masv and Sinhvien.makhoa = "TH"

Hoặc

SELECT Sinhvien.masv, Sinhvien.hosv, Sinhvien.tensv, Sinhvien.phai,

Sinhvien.ngaysinh, Sinhvien.makhoa, Ketqua.mamh, Ketqua.diem;

FROM sinhvien INNER JOIN ketqua ON Sinhvien.masv = Ketqua.masv;

WHERE Sinhvien.makhoa = "TH"

Ghi chú: Tập kết quả của 2 cú pháp này sẽ giống nhau Tuy nhiên có một sự khác nhau

Ví dụ: Liệt kê các sản phẩm thuộc loại 1 chưa có ñặt hàng

Cú pháp 1:

Select MaSp, TenSP, QuiCach

From SanPham

Where MaLoai=1 and MaSP Not In (Select MaSP From ChitietDH)

Cú pháp 2:

Select MaSp, TenSP, QuiCach

From SanPham Left Join ChiTietDH ON SanPham.MaSP=ChiTietDh.MaSP

Where MaLoai=1

Nhận xét:

 ðối với các câu truy vấn thông thường thì sử dụng cú pháp 1 rõ ràng và dễ hiểu hơn

SELECT <Tên Table>.<Tên cột> [, ]

FROM <DS Các Table>

WHERE <Tên Table 1>.<Tên cột> <Toán tử> <Tên Table2>.<Tên cột>[, ]

SELECT <Tên Table>.<Tên cột>[, ]

FROM <Tên Table 1> [Loại kết nối> <Tên Table 2> ON

<Tên Table 1>.<Tên cột>=<Tên Table 2>.<Tên cột> [, ]

WHERE <BT ðiều kiện>

This is trial version www.adultpdf.com

Trang 4

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 54

 ðối câu truy vấn liên kết thì cú pháp 2 ngắn gọn hơn Tuy nhiên nếu câu truy vấn có

nhiều bảng thì sẽ phức tạp hơn

 Sử dụng cú pháp nào tùy theo người sử dụng

5.5.3 Làm việc với các truy vấn con

Một truy vấn con có thể trả về một cột ñơn hoặc một giá trị ñơn ở bất kỳ nơi ñâu 1 giá

trị ñơn có thể sử dụng Và có thể ñược so sanh bởi các toá tử so sánh Các từ khoá In và Exist

Ví dụ: Liệt kê các sản phẩm Mã loại là 1 có ñặt hàng

Cú pháp 1: Select MaSp, TenSP, QuiCach

From SanPham Where MaLoai=1 and MaSP In (Select MaSP From ChitietDH)

Cú pháp 2: Select MaSp, TenSP, QuiCach

From SanPham Where Exists (Select * From ChiTietDh

Whrere MaSP=SanPham.MaSP and MaLoai=1)

5.5.4 Tạo Union Query – Query hợp nhất

Danh sách vùng chọn phải giống nhau trong các mệnh ñề SELECT

Ví dụ: Lliệt kê ds khách mời dự họp tất niên gồm khách hàng và nhân viên

Select TenKH AS TenKM, DiaChiKh As DiaChiKM, DienThoaiKh As DienThoaiKM From KhachHang

UNION

Select Trim(HoNV)+” “+ Trim(TenNV) , DiaChiNV, DienThoaiNV

From NhanVien

5.5.5 Select Into

Phát biểu Select InTo cho phép tạo kết quả mới dựa trên kết quả truy vấn Bảng mới

ñược tạo dựa trên các cột xác ñịnh trong danh sách chọn lựa

Cú pháp:

SELECT <DS Các cột>

FROM <DS Các Table>

[WHERE <ðiều kiện>]

UNION

SELECT <DS Các cột>

FROM <DS Các Table>

[WHERE <ðiều kiện>]

UNION

This is trial version www.adultpdf.com

Trang 5

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 55

Ví dụ: Select * Into TempKhachHang rom KhachHang

Có 2 loại bảng:

Bảng thường trực : Sử dụng Select InTo ñịnh nghĩa một bảng và ñưa dữ liệu vào

trong ñó

Bảng tạm thời : Các bảng này sẽ nằm trong CSDL TempDb

Ví dụ:

Select * Into #TempKhachHang

From KhachHang

Ghi chú : Nếu muốn thêm các dòng vào một bảng ñã có ta sử dụng INSERT Hoặc INSERT INTO

Ví dụ:

INSERT TempKhachHang

Select * From KhachHang

Select <DS Các cột> Into <Tên Table>

From <DS Các Table>

[Where <ðiều kiện>]

This is trial version www.adultpdf.com

Trang 6

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 56

Chương 06

VIEW – KHUNG NHÌN

Mục tiêu

 Giới thiệu

 Tạo View

 Xoá View

 ðiều chỉnh View

6.1 GIỚI THIỆU

View là phương tiện cho phép ta lưu 1 câu truy vấn thành một ñối tượng trong CSDL sau khi tạo xong ta có thể làm việc với View tương tư như làm việc với Table Tuy nhiên View chỉ là khung nhìn, dữ liệu thực sự chì chứa trong Table mà thôi

Các View có lợi ích như sau:

 ðiều khiển người sử dụng vào xem dữ liệu khả năng này hữu ích về an tòan và dễ sử dụng Người dùng không thể xem dữ liệu mà họ không yêu cầu

 ðơn giản giao diện người sử dụng bằng cách tạo View cho các câu truy vấn thường sử dụng

 Các View là ñối tượng rất mạnh và hữu dụng trong thiết kế CSDL là phuơng pháp ưa thích trong vấn ñề chia sẽ thông tin

6.2 TẠO VIEW – BẢNG NHÌN

6.2.1 Sử Dụng Enterprise Manager Tạo View

 Tại cửa sổ EnterPriseManager chọn mục View

 Click phải bên cửa sổ phải chọn New View

Các thao tác tại cửa sổ Design View

 Thêm các Table/View vào cửa sổ thiết kế : Chọn AddTable

 Lọai bớt các Table/View khỏi cửa sổ thiết kế : Chọn Table/ Delete(Nhấn Delete)

 Thiết lập quan hệ khi cần thiết

 Chức năng thanh công cụ

Chức năng

Cửa sổ xác ñịnh các thuộc tính Xóa 1 ñối tượng ñược chọn

This is trial version www.adultpdf.com

Trang 7

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 57

An hiện khung lưới chọn lựa thông tin Lọc dữ liệu

 Các thành phần tại lưới thiết kế View

Column : Các cột chọn

Alias : Bí danh tên mới cho cột

Table : Tên Table chứa cột chọn

Output : Hiện hay không hiện cột dữ liệu ñã chọn

Sort Type : Chọn lọai sắp xết dữ liệu kết quả

Sort Order : Trật tự ưu tiên sắp xếp

Criteria : ðiều kiện

Or : ðiều kiện hoặc

Ví dụ: Tạo View liệt kê các ñơn ñặt hàng trong tháng hiện tại thông tin gồm : (SoDH,

NgayDat, NgayGiao, MaKH, TenKH, MaSP, TenSP, DonGia, SLDat, ThanhTien)

Biết : ThanhTien=SLDat x DonGia

6.2.2 Sử Dụng SQL Analyzer Tạo View

Tại cửa sổ Query Analyzer thực hiện các câu lệnh theo cú pháp

This is trial version www.adultpdf.com

Trang 8

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 58

Ví dụ 1:

CREATE VIEW VIEW02

As

SELECT D.SoDH, D.NgayDat, D.NgayGiao, K.MaKH, K.TenKH, C.MaSp,

S.TenSP, S.DonGia, C.SLDat, C.SLDat*S.DonGia As ThanhTien FROM ChiTietDH C INNER JOIN DonDatHang D ON C.SoDH = D.SoDH

INNER JOIN KhachHang K ON D.MaKH = K.MaKH

WHERE MONTH(D.NgayDat) = MONTH(GETDATE()) AND

YEAR(D.NgayDat) = YEAR(GETDATE()) ORDER BY D.SoDH, D.NgayDat DESC

Ví dụ 2: CREAT VIEW SanPhamGiaCao

AS

SELECT * FROM SanPham WHERE DonGia > 1000000

Ví dụ 3: CREAT VIEW ThongKe (MaLoai, SoSP)

AS

SELECT MaLoai,Count(*) FROM SanPham

GROUP BY MaLoai

6.3 XÓA VIEW

6.3.1 Sử dụng công cụ Enterprise Manager

 Tại cửa sổ EnterPrise Manager chọn tên View cần xóa

 Chọn Delete (Hoặc nhấn Delete)

 Chọn Drop All

6.3.2 Sử dụng công cụ Query Analyzer

CREATE VIEW <TênView> [(Cột 1[, )]

AS Select From

This is trial version www.adultpdf.com

Trang 9

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 59

Tại cửa sổ QueryAnalyzer thực hiện câu lệnh theo cú pháp

Ví dụ:

Drop View View02

6.4 ðIỀU CHỈNH VIEW

6.4.1 Sử dụng công cụ Enterprise Manager

 Tại cửa sổ EnterPrise Manager chọn tên View cần ñiều chỉnh

 Chọn Action/Design View (Hoặc Click phải chọn Design View)

6.4.2 Sử dụng công cụ Query Analyzer

Tại cửa sổ QueryAnalyzer thực hiện câu lệnh theo cú pháp

Ví dụ 1:

ALTER VIEW NVLuongCao

AS

SELECT * FROM NhanVien WHERE Luong > 2000000

ALTER VIEW <Tên View>[(Column1[, )]

AS

Select From DROP VIEW <TênView>

This is trial version www.adultpdf.com

Trang 10

Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 60

Chương 07

STORED PROCEDURE - THỦ TỤC LƯU TRỮ

Mục tiêu

 Giới thiệu

 Tạo Stored Procedure sử dụng ngôn ngữ SQL

 Tạo Stored Procedure sử dụng Enterprise Manager

7.1 GIỚI THIỆU

Stored Procedure là tập các phát biểu SQL lưu trữ trên Server Là phương pháp hiệu quả cho phép thực hiện lại các phát biểu ñó Bao gồm:

Các nhóm phát biểu và gọi các thủ tục khác

Chấp nhận tham số truyền vào

SQL hộ trợ 5 loại Stored Procedure

+ System :Nằm trong CSDL Master dùng cho các công việc Quản trị hệ thống

+ Temporary : Nằm trong CSDL Tempdb và tự ñộng bị xóa

+ User_Define : Tạo trong CSDL người dùng

+ Remote: ðược gọi từ Server từ xa hoặc các client kết nối với Server từ xa

+ Extended: Dữ LIệUL bên ngoài môi truờng SQL ñược hiểu như Stored Procedure

mở rộng

7.2 TẠO STORED PROCEDURE SỬ DỤNG NGÔN NGỮ SQL

7.2.1 Tạo mới Stored Procedure

Ví dụ 1:

CREATE PROCEDURE NhanVienLuong

Select * From NhanVien Where LuongCB>300000

Ví dụ 2:

CREATE PROC NhanVien

CREATE PROC [ EDURE ] <Tên thủ tục>

[ @<Tham số> <Kiểu DL>] [ , n ]

AS

<Các câu lệnhSQL>

This is trial version www.adultpdf.com

Ngày đăng: 14/08/2014, 04:20

HÌNH ẢNH LIÊN QUAN

Bảng B thỡ cỏc thụng tin ấy bắt buột  phải cú mặt ủồng thời trong cả 2 bảng A,B - bài giảng cơ sở dữ liệu SQLServer 2000 doc
ng B thỡ cỏc thụng tin ấy bắt buột phải cú mặt ủồng thời trong cả 2 bảng A,B (Trang 2)

TỪ KHÓA LIÊN QUAN

w