Thực hành CSDL với SQL Server 2000
Thực hành CSDL với SQL Server 2000
BÀI TẬP 0
Thực hành theo chương 7 trong giáo trình Database system để làm quen với QBE.
BÀI TẬP 1
1. Khởi động SQL Server Service Manager
- Start\ Program File\ MicroSoft SQL Server\ Service Manager
- Thực hiện Start, Pause, Stop các Sevice của một Server trên máy hiện hành.
▪ Server: Chọn tên Server có service cần chạy. Nếu máy hiện hành là Server thì có
thể gõ vào dấu chấm (.) hoặc chữ Local.
▪ Services: Chọn tên Service cần chạy.
▪ Chọn Star/Continue: Khởi động chạy
Pause: Tạm dừng Sevice
Stop: Ngưng Service
- Bạn hãy cho khởi động các dịch vụ SQL Server, SQL Server Agent.
- Đóng hộp thoại SQL Server Service Manager.
- Quan sát góc phải trên thanh task bar có biểu tượng
không?
1/24
Thực hành CSDL với SQL Server 2000
2. Khởi động Enterprise Manager
- Start\ Program File\ MicroSoft SQL Server\ Enterprise Manager
- Lần lượt mở các nhánh của cây MicroSoft SQL Servers.
- Tìm hiểu sơ lược cửa sổ, trình đơn, thanh công cụ.
3. Tại Enterprise Manager, thực hiện:
- Quan sát các thành phần đối tượng trên cửa sổ và hãy cho biết:
▪ Có bao nhiêu SQL Server Group, mỗi Server tên là gì? Đang connect hay disconnect?
...............................................................................................................................
...............................................................................................................................
▪ Liêt kê các thành phần trong Server hiện hành
...............................................................................................................................
...............................................................................................................................
▪ Trong server hiện hành, có các Database nào?
...............................................................................................................................
(Hãy so sánh tên của các database với các database của máy bên cạnh)
▪ Trong mỗi Database có những đối tượng nào?
2/24
Thực hành CSDL với SQL Server 2000
...............................................................................................................................
...............................................................................................................................
(Các database khác nhau thì các đối tượng có khác nhau không? )
- Mở database Master, khảo sát các đối tượng:
▪ Vào đối tượng Table, tìm hiểu cấu trúc và dữ liệu của bảng (lưu ý: chỉ được chọn xem
không nên xoá hay sửa dữ liệu): Sysdatabases, SysObjects, systypes, syslogins,
sysusers, sysmessages, syspermissions…
▪ Vào đối tượng Stored Procedures, tìm hiểu nội dung của các thủ tục sau (lưu ý: chỉ
được chọn xem không nên xoá hay sửa): sp_help, sp_helpdb, sp_helpcontraint,
sp_rename, sp_renamedb, sp_table, sp_addlogin, sp_addmessage, sp_addrole …
▪ Lần lượt vào đối tượng còn lại User, Role, …
- Mở database Northwind, khảo sát các đối tượng:
▪ Cho biết trong số các bảng thuộc database Master được liệt kê ở trên, bảng nào có
trong database NorthWind?
▪ Trong stored procedure có các thủ tục liệt kê ở trên hay không?
▪ Tìm hiểu cấu trúc và dữ liệu của các bảng: Customers, Orders, Order Detail,
Products, Suppliers, Regions, Shippers, …. Hãy cho biết mối quan hệ giữa các bảng
này (đưa ra mô hình quan hệ)
▪
Tạo một diagram giữa các bảng trên. (Hướng dẫn: Nhấp nút phải chuột tại diagrams
của database Northwind, chọn New database diagram, hoàn tất các hộp thoại Create
database diagrams wizard.
- Tương tự khảo sát các đối tượng trong database Pubs
4. Khởi động Books online. Lần lượt tìm hiểu các lệnh Create DataBase, Create Table, Alter
Table, Select Statement, Select into, Update Statement, Insert Statement, DataType,
Triggers… (Hướng dẫn: Gõ tên lệnh/từ khóa cần tìm và nhấn Enter)
5. Khởi động Query Analayzer
- Start\ Program File\ MicroSoft SQL Server\ Query Analyzer. Xuất hiện hộp thoại sau.
3/24
Thực hành CSDL với SQL Server 2000
- Khai báo thông tin kết nối:
▪ SQL Server: <chọn tên Server cần kết nối>
▪ Connect using: Chọn chế độ xác thực là Windows authentication hoặc SQL Server
authentication. Nếu chọn chế độ là SQL Server authentication thì phải cho biết
Login name (mặc định là sa) và Password.
- Chọn OK. Nếu kết nối thành công thì cửa sổ Query Analayzer xuất hiện
cửa sổ Editor
Object Brower
Cửa sổ Result
4/24
Thực hành CSDL với SQL Server 2000
6. Tại Query Analyzer, quan sát các thành phần đối tượng trong cửa sổ:
- Có bao nhiêu database?
- Trong database Master và Northwind, khảo sát các đối tượng và so sánh xem chúng có
tương tự như được nhìn thấy trong Enterprise Manager hay không?
- Tìm hiểu các chức năng trong thanh trình đơn, thử bật tắt cửa sổ Object Brower, cửa sổ
Result.
- Tìm hiểu các lựa chọn trong hộp thoại Tool, Options.
- Chọn File, Disconnect. Sau đó File, Connect lại.
7. Trong cửa sổ Editor của Query Analyzer, gõ lần lược các câu lệnh, cho thực hiện (đánh
dấu chọn, nhấn F5) và quan sát kết quả.
USE Northwind
SELECT * FROM Employees
SELECT * FROM Customers
SELECT * FROM Customers WHERE companyName LIKE 'W%'
Sp_helpDB
Sp_help Orders
Sp_helpconstraints [Order Details]
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
SELECT * FROM INFORMATION_SCHEMA.TABLES
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
8. Tiếp tục thực hiện
- Đánh dấu chọn câu lệnh sp_helpDB, nhấn Shift_F1.
- Lưu các câu lệnh đang gõ vào tập tin có tên là Truyvan.SQL, trong thư mục tùy ý.
- Disconnect và sau đó Connect lại
- Mở lại tập tin Truyvan.SQL.
- Cho thực hiện lại từng câu lệnh.
5/24
Thực hành CSDL với SQL Server 2000
BÀI TẬP 2:
Chọn database hiện hành là Northwind, dùng câu lệnh Select … From … Where … để
truy vấn dữ liệu như sau, với cấu trúc của các bảng như sau:
Products(ProductID,ProductName, SupplierID, UnitPrice, UnitInStock, … )
Customers(CustomerID, CompanyName, Address, City, Region, Country, …)
Employees(EmployeeID, LastName, FirstName, BirthDate, City, …)
Orders(OderID, CustomerID, EmployeeID, OrderDate,…)
Order Details(OrderID, ProductID, UnitPrice, Quantity, Discount)
1. Danh sách các customers. Thông tin gồm CustomerID, CompanyName, City, Phone.
2. Danh sách các products. Thông tin bao gồm ProductId, ProductName, UnitPrice.
3. Danh sách các employees. Thông tin bao gồm EmployeeId, EmployeeName, Phone, Age.
Trong đó EmployeeName được ghép từ LastName và FirstName; Age là tuổi được tính từ
năm hiện hành (GetDate()) và năm của Birthdate.
4. Cho xem danh sách employees có năm sinh <=1960.
5. Danh sách các products có từ ‘Boxes’ trong cột QuantityPerUnit.
6. Danh sách các products có Unitprice lớn hớn 10 và nhỏ hơn 15.
7. Danh sách các orders có OrderDate được lập trong tháng 9 năm 1996.
8. Danh sách các products ứng với tiền tồn vốn. Thông tin bao gồm ProductId, ProductName,
Unitprice, UnitsInStock, TotalAccount. Trong đó TotalAccount= UnitsInStock *
Unitprice.
9. Danh sách các customer có city là Paris.
10.Danh sách 5 customer có city bắt đầu ‘M’.
11.Danh sách 2 employee có tuổi lớn nhất. Thông tin bao gồm EmployeeID, EmployeeName,
Age. Trong đó, EmployeeName được ghép từ LastName và FirstName, Age là năm hiện
hành từ cho năm sinh.
12.Danh sách các product đã từng có khách hàng đặt hàng (tức là ProductId có trong Order
Details). Thông tin bao gồm ProductId, ProductName, Unitprice.
13.Danh sách các order ứng với tổng tiền của từng order. Thông tin bao gồm OrderId,
OrderDate, TotalAmount. Trong đó TotalAmount là Sum của Quantity * Unitprice, kết
nhóm theo OrderId.
14.Danh sách các order ứng với tổng tiền của từng hóa đơn có ShipCity là ‘Madrid’. Thông
tin bao gồm OrdersId, OrderDate, TotalAmount. Trong đó TotalAmount là Sum của
Quantity * Unitprice, kết nhóm theo OrderId.
15.Danh sách các product có tổng số lượng lập hóa đơn lớn nhất.
6/24
Thực hành CSDL với SQL Server 2000
16.Cho biết mỗi customer đã lập bao nhiêu lượt hóa đơn bao. Thông tin gồm CustomerID,
CompanyName, CountOfOrder. Trong đó CountOfOrder (tổng số hóa đơn) được đếm
(Count) theo từng Customer.
17.Cho biết mỗi Employee đã lập được bao nhiêu hóa đơn với tổng tiền là bao nhiêu?
18.Cho biết những Customer chưa từng lập hóa đơn.
7/24
Thực hành CSDL với SQL Server 2000
BÀI TẬP 3:
1. Ở tại cửa sổ Enterprise Manager, thực hiện:
a. Dùng Enterprise Manager hoặc Database Wizard tạo database GhiDanh có tham số như
sau:
Tham số
Giá trị
Database name
GhiDanh
Tên logic của data file chính
Tên tập tin và đường dẫn của data file chính
Kích cở khởi tạo của database
Kích cở tối đa của database
Gia số gia tăng tập tin database
Tên logic của transaction log
GhiDanh_data
D:\GhiDanh\GhiDanh_Data.mdf
20 MB
40 MB
1 MB
GhiDanh_Log
Tên tập tin và đường dẫn của transaction log D:\GhiDanh\GhiDanh_Log.ldf
Kích cở khởi tạo của transaction log
Kích cở tối đa của transaction log
Gia số gia tăng tập tin transaction log
6 MB
8 MB
1 MB
b. Xem lại thuộc tính (property) của database GhiDanh. (HD: Nhắp phải chuột tại tên
database, chọn properties). Quan sát và cho biết các trang thể hiện thông tin gì?.
c. Tại cửa sổ properties của database, khai báo thêm
▪ Một Group File mới có tên là DuLieuGhiDanh
▪ Một tập tin dữ liệu (data file) thứ hai nằm trong Group file vừa tạo ở trên và có thông
số như sau Tên login của data file là GhiDanh_Data2; Tên tập tin và đường dẫn vật lý
của data file là D:\GhiDanh\GhiDanh_Data2.ndf.
▪ Chọn thuộc tính ReadOnly, sau đó đóng cửa sổ properies. Quan sát màu sắc của
database. Bỏ thuộc tính ReadOnly.
2. Ở tại Query Analyzer (lưu ý: sau mỗi lần có sự thay đổi thì phải dùng các lệnh để kiểm tra sự
thay đổi đó)
a. Dùng lệnh Create DataBase, tạo một database với các tham số được liệt kê như trong bảng
dưới. Lưu ý rằng database này gồm một data file và nó được nằm trong primary filegroup
Tham số
Giá trị
Database name
SalesDB
Tên logic của data file chính
SalesDB_data1
Tên tập tin và đường dẫn của data file chính D:\data\database\SalesDb_data1.mdf
8/24
Thực hành CSDL với SQL Server 2000
Kích cở khởi tạo của database
10 MB
Kích cở tối đa của database
Gia số gia tăng tập tin database
Tên logic của transaction log
40 MB
1 MB
SalesDB_Log
Tên tập tin và đường dẫn của transaction log D:\data\database\SalesDb.ldf
Kích cở khởi tạo của transaction log
Kích cở tối đa của transaction log
Gia số gia tăng tập tin transaction log
6 MB
8 MB
1 MB
b. Xem lại thuộc tính của database SalesDB bằng Enterprise Manager và bằng thủ tục dựng
sẵn của hệ thống sp_helpDb, sp_spaceused.
c. Thêm một filegroup có tên là DuLieuSalesDB (HD: dùnglệnh Alter DataBase <Tên
Database> ADD FILEGROUP <Tên filegroup>)
d. Khai báo một secondary file có tên logic là SalesDb_data2, tên vật lý SalesDB_data2.ndf
nằm ở D:\Data\Database, các thông số khác tuỳ bạn chọn, data file này nằm trong file
group là DuLieuSalesDB. (HD: Dùng lệnh Alter Database …ADD FILE …TO
FILEGROUP …)
e. Dùng Books Online, bạn tìm hiểu thủ tục hệ thống sp_helpfilegroup dùng để làm gì?
f. Dùng lệnh Alter Database … Set … để cấu hình cho database SalesDB có thuộc tính là
Read_Only. Dùng sp_helpDB để xem lạ thuộc tính của database. Hủy bỏ thuộc tính
Read_Only.
g. Dùng lệnh Alter DataBase … MODIFY FILE … để tăng SIZE của SalesDB_data1 thành
50 MB. Tương tự tăng SIZE của tập tin SalesDB_log thành 10 MB. Nếu trong Enterprise
Manager để thay đổi SIZE của các tập tin bạn làm như thế nào?
3. Ở tại cửa sổ Enterprise Manager, thực hiện:
a. Dùng Enterprise manager tạo cấu trúc của các bảng sau trong database GhiDanh:
LOP (MaLop char(5) , TenLop char(20), SiSoDuKien Int,
NgayKhaiGiang DateTime)
SV (MaSV char(5), TenHo NVarchar(50), NgaySinh DateTime,
MALOP char(5))
Lưu ý: gạch chân là khóa chính, in đậm là Not Null
b. Tạo Diagram giữa hai bảng vừa tạo.
c. Nhập dữ liệu tùy ý vào hai bảng, mỗi bảng khoảng 3 mẫu tin.
d. Dùng tác vụ General Script, để tạo đoạn Script cho database và tất cả các đối tượng của
database thành một tập tin Script có tên là GhiDanh.SQL
9/24
Thực hành CSDL với SQL Server 2000
e. Vào Query Analyzer, mở tập tin Script vừa tạo và khảo sát công dụng và cú pháp của các
lệnh có trong tập tin script.
f. Dùng thao tác xóa để xoá toàn bộ database GhiDanh
4. Tìm hiểu về kiểu dữ liệu (datatype):
a. Tìm hiểu và trả lời các câu hỏi sau:
- Có bao mấy loại datatype, hãy liệt kê.
- Các system datatype được SQL Server lưu trữ trong Table nào ở trong database nào.
- Các User-defined datatype được SQL Server lưu trữ trong Table nào ở trong database
nào?
b. Vào Query Analyzer, chọn SalesDB là database hiện hành, định nghĩa các datatype:
Kiểu dữ liệu (Data type)
MaVung
Mô tả dữ liệu (Description of data)
10 ký tự
STT
STT không vượt quá 30,000
13 ký tự , chấp nhận NULL
Số ký tự thay đổi đến 15 ký tự
SoDienThoai
Shortstring
HD: Dùng thủ tục sp_addtype để định nghĩa
Ví dụ: EXEC sp_addtype SoDienThoai, 'char(13)', NULL
c. Các User-defined datatype vừa định nghĩa được lưu trữ ở đâu và phạm vi sử dụng của nó ở
đâu (trong toàn bộ một instance hay chỉ ở trong database hiện hành).
d. Có bao nhiêu cách liệt kê danh sách các các User-Defined datatype vừa định nghĩa.
SELECT domain_name, data_type, character_maximum_length
FROM information_schema.domains
ORDER BY domain_name
Hoặc SELECT * From Systype
e. Muốn User-Defined datatype được dùng trong tất cả các database thì bạn định nghĩa nó ở
đâu?
f. Hãy xóa kiểu dữ liệu SoSienThoai.
10/24
Thực hành CSDL với SQL Server 2000
BÀI TẬP 4:
Ở tại cửa sổ Query Analyzer, thực hiện:
a. Dùng lệnh Create Table … để tạo cấu trúc của các bảng sau trong database SalesDB:
Lưu ý - Chỉ khai báo Null hoặc Not Null, không cần khai báo khóa chính, khóa ngoại.
SanPham
MaSP
int
Not null
Not null
TenSP
nvarchar(50)
nvarchar(50)
nvarchar(20)
Money
MoTa
ĐonViTinh
GiaGoc
>=0
HoaDon
MaHD
Int
Not null
Not Null
NgayLapHD
NoiChuyen
MaKH
DateTime
nvarchar(50)
char(5)
CT_HoaDon
MaHD
Int
Not null
Not null
>=0
MaSP
int
SoLuong
DonGia
ChietKhau
Int
Money
Money
11/24
Thực hành CSDL với SQL Server 2000
NhaCungCap
MaNCC
TenNCC
DiaChi
Phone
Int
Not null
Not Null
Nvarchar(50)
Nvarchar(50)
Varchar(24)
Varchar(24)
Varchar(50)
Fax
Email
KhachHang
MaKH
TenKH
DiaChi
Phone
Char(5)
Not null
Not null
Nvarchar(50)
Nvarchar(50)
Varchar(24)
Varchar(24)
varchar(50)
Fax
Email
b. Dùng lệnh Alter Table … khai báo các ràng khóa chính ở các bảng.
c. Dùng lệnh Alter Table … khai báo các ràng khóa ngoại ở các bảng.
d. Dùng lệnh Alter Table … khai báo các ràng buộc miền giá trị (Check Constraint) như sau:
Dongia>=0; ChietKhau>=0;
e. Thêm cột LoaiHD vào bảng HOADON, LoaiHD có kiểu dữ liệu char(1), chỉ chấp nhận
‘N’ hoặc ‘X’, giá trị mặc định là ‘N’.
12/24
Thực hành CSDL với SQL Server 2000
BÀI TẬP 5
Dùng database Northwind, dùng câu lệnh SELECT … FROM … để cho biết:
1. Các product có đơn giá lớn hơn đơn giá trung bình của tất cả product.
2. Các product có đơn giá > đơn giá trung bình của các product có tên bắt đầu là ‘N’.
3. Các customer không có đơn hàng (order) trong tháng 7/1997.
4. Các customer có đơn hàng trong 15 ngày đầu tiên của 7/1997.
5. Danh sách các customer ứng với tổng tiền của các hoá đơn được lập từ 31/12/1996 đến
1/1/1998.
6. Danh sách các customer ứng với tổng tiền các hoá đơn, mà các hóa đơn được lập từ
31/12/1996 đến 1/1/1998 và tổng tiền các hóa đơn >20000.
7. Danh sách các customer ứng với tổng số hoá đơn, tổng tiền các hoá đơn, mà các hóa đơn được
lập từ 31/12/1996 đến 1/1/1998 và tổng tiền các hóa đơn >20,000.
8. Danh sách các Customer chưa từng lập hóa đơn (viết bằng ba cách: dùng NOT EXISTS, dùng
LEFT OUTER JOIN, dùng NOT IN)
9. Danh sách các City có nhiều hơn 3 customer.
10. Danh sách các Category có tổng số lượng tồn (UnitsInStock) lớn hơn 300, đơn giá trung bình
nhỏ hơn 25. Thông tin kết quả bao gồm CategoryID, CategoryName, Total_UnitsInStock,
Average_Unitprice.
11. Danh sách các Category có tổng số product lớn hớn 10. Thông tin kết quả bao gồm
CategoryID, CategoryName, Total_UnitsInStock.
12. Danh sách các product, thông tin bao gồm: Productname, CategoryName, Unitprice. Có dùng
mệnh đề COMPUTE để liệt kê đơn giá trung bình theo từng CategoryName.
13. Danh sách các product theo từng CategoryName, thông tin bao gồm: Productname,
CategoryName,Unitprice, UnitsinStock. Có dùng mệnh đề COMPUTE để liệt kê đơn giá
trung bình, tổng số lượng tồn (sum of UnitsinStock) theo từng CategoryName.
14. Bổ sung COMPUTE vào câu trên để thống kê thêm đơn giá trung bình và tổng số lượng tồn
của tất cả các product.
15. Liệt kê danh sách các City có Customers hoặc Employee (dùng Union).
16. Liệt kê danh sách các Country có Customers hoặc Employee (dùng Union).
17. Kết danh sách các Customer và Employee lại với nhau. Thông tin gồm CodeID, Name,
Address, Phone. Trong đó CodeID là CustomerID/EmployeeID, Name là
Companyname/LastName + FirstName, Phone là Homephone.
18. Danh sách các Customer ứng với tổng tiền của các hóa đơn ở từng tháng. Thông tin bao gồm
CustomerID, CompanyName, Month_Year, Total. Trong đó Month_year là tháng và năm lập
hóa đơn, Total là tổng của Unitprice* Quantity, có thống kế tổng của total theo từng Customer
và Month_Year . (có dùng COMPUT).
13/24
Thực hành CSDL với SQL Server 2000
BÀI TẬP 6
Dùng database SalesDB, thực hiện tạo các view sau:
1. Tạo một view có tên là vwSanPham_1, chính là danh sách các sản phẩm, được sắp xếp theo
tên sản phẩm. Thông tin bao gồm Masp, TenSp, Mota, Donvitinh, GiaGoc, MaNCC.
2. Lần lượt tạo view có tên là vwSanPham_2, vwSanPham_3, thông tin giống như
vwSanPham_1 nhưng có thêm từ khóa WITH ENCRYPTION, WITH SCHEMABINDING.
3. Bạn thực hiện: Nhớ kiểm tra và cho nhận xét.
▪ Dùng lệnh Insert … values chèn mẫu tin sau vào bản NhaCungCap:
MaNCC TenNCC
DiaChi
Phone
Fax
Email
101
Công ty ABC 155 Sư Vạn 8459232
8459232
Hạnh
▪ Dùng lệnh Insert … values chèn mẫu tin sau thông qua view vwSanPham_1
MaSP TenSP MoTa DonViTinh GiaGoc MaNCC
10000000 101
1111 Phan mem Quan Ly Version 1.0 Dia
Nhan Su
1112 Dia Chuong Trinh Thi CD
Trac Nghiem SQL
Dia
6000
6000
101
101
1113 Dia Chuong Trinh Thi CD
Trac Nghiem VB
Dia
▪ Dùng sp_helptext <ViewName> để lần lược xem text của các view vwSanPham_1,
vwSanPham_2, vwSanPham_3
▪ Dùng lệnh Alter Table để hiệu chỉnh kiểu dữ liệu của cột DonViTinh thành
nvarchar(25), có hiệu chỉnh được không? Tại sao? Muốn hiệu chỉnh được thì phải như
thể nào? Bạn thử thực hiện.
4. Tạo view có tên là vwSanPhamABC, chỉ có những sản phẩm có của nhà cung cấp mã số là
101, với lựa chọn WITH CHECK OPTION.
5. Tạo view có tên là vwSanPhamNCC123, chỉ có những sản phảm của các nhà cung cấp có mã
số là 1 hoặc 2 hoặc 3, không dùng WITH CHECK OPTION.
14/24
Thực hành CSDL với SQL Server 2000
6. Dùng câu lệnh Insert … Values để đưa mẫu tin thông qua view vwSanPhamCDCN4. Bạn có
chèn được không? Tại sao? Bạn thử chèn mẩu tin này thông qua vwSanphamNCC123, có
chèn được không? Bạn thử dùng câu lệnh SELECT để xem toàn bộ dữ liệu từ
vwSanPham123, bạn có thay mẫu tin này không? Tại sao?
MaSP TenSP
MoTa
Donvitinh GiaGoc
MaNCC
1114 Giai phap CNTT trong Giai phap
doanh nghiep nho
Mo hinh 10000000 4
7. Dùng lệnh Delete để xoá mẫu tin vừa chèn ở trên. Sau đó chèn mẫu tin này với mã nhà cung
lấp là 101 nhưng chèn thông qua view vwSanPhamABC.
8. Dùng lệnh Update và thông quan vwSanPhamABC để cập nhật MaNCC thành 1 cho mẫu tin
có mã sản phẩm là 1114. Bạn có cập nhật được không? Nếu cập nhật thông qua view
vwSanPhamABC thì kết quả như thế nào?
9. Tạo 3 bảng lần lượt có tên là KhangHang_Bac, KhachHang_Trung, KhachHang_Nam, dùng
để lưu danh sách các khách hàng ở ba miền, có cấu trúc như sau: MaKh, TenKH, DiaChi,
KhuVuc. Trong đó,
KhachHang_Bac có một Check Constraint là Khuvuc là ‘Bac Bo’
KhachHang_Nam có một Check Constraint là Khuvuc là ‘Nam Bo’
KhachHang_Trung có một Check Constraint là Khuvuc là ‘Trung Bo’
Khoá chính là MaKH và KhuVuc.
10.Tạo một partition view từ ba bảng trên, sau đó chèn mẫu tin tuỳ ý thông qua view. Kiểm tra
xem mẫu tin được lưu vào bảng nào?
11.Lần lược tạo các view sau, đặt tên tùy ý, sau khi tạo kiểm tra sự tồn tại và kết quả truy vấn từ
view.
▪ Danh sách các sản phẩm có chữ ‘Boxes’ trong DonViTinh.
▪ Danh sách các sản phẩm có đơn giá <10.
▪ Các sản phẩm có đơn giá gốc lớn hơn hay bằng đơn giá gốc trung bình.
15/24
Thực hành CSDL với SQL Server 2000
▪ Danh sách các khách hàng ứng với các hóa đơn được lập. Thông tin gồm MaKH,
TenKH, và tất cả các cột trong bảng HoaDon và CT_HoaDon.
12.Trong các view ở câu trên view nào có thể INSERT, UPDATE, DELETE dữ liệu thông qua
view được? Hãy Insert/Update/Delete thử dữ liệu tùy ý.
16/24
Thực hành CSDL với SQL Server 2000
BÀI TẬP 7
Cho lược đồ cơ sở dữ liệu sau:
SINHVIEN(MASV, TEN, NAM, KHOA): Mỗi sinh viên đều có tên, mã, năm đang học, khoa theo học.
MONHOC(MAMH , TENMH, TINCHI, KHOA): Mỗi môn học đều có tên, mã, số tín chỉ, khoa phụ
trách.
DIEUKIEN(MAMH, MAMHTRUOC): Mỗi môn học (MAMH) đều phải học sau môn học trước nó
(MAMHTRUOC)
KHOAHOC(MAKH, MAMH, HOCKY, NAM, GV): Mỗi khoá học đều có mã khoá học, mã môn học
của khoá đó, học kỳ và năm của khoá học, giảng viên phụ trách khoá đó. Chú ý là các khoá khác nhau có
thể có chung môn học.
KETQUA(MASV, MAKH, DIEM): Cho biết sinh viên nào học khoá nào và đạt điểm bao nhiêu.
Sau đây là một thể hiện của lược đồ cơ sở dữ liệu trên:
SINHVIEN
MASV
TEN
Sơn
Bảo
NAM
KHOA
CNTT
CNTT
TOAN
17
8
25
1
2
2
Nam
MONHOC
MAMH
TENMH
TINCHI
KHOA
1310
3320
2410
Nhập môn tin học
Cấu trúc dữ liệu
Toán rời rạc
4
4
3
3
CNTT
CNTT
TOAN
CNTT
3380
Cơ sở dữ liệu
KHOAHOC
MAKH
MAMH
HOCKY
NAM
GV
17/24
Thực hành CSDL với SQL Server 2000
85
92
102
112
119
2410
1310
3320
2410
1310
3380
1
1
2
1
1
1
86
86
87
87
87
87
Kim
An
Nien
Chan
An
135
Son
KETQUA
DIEUKIEN
MASV MAKH DIEM
MAMH MAMHTRUOC
17
17
8
8
8
112
119
85
92
102
135
8
6
10
10
8
3380
3380
3320
3320
2410
1310
8
10
Thực hiện các yêu cầu sau:
1. Thêm vào SINHVIEN bộ (25,”Nam”, 2,”CNTT”).
2. Thêm vào KETQUA hai bộ (25, 102, 7) và (25, 135, 9).
3. Sửa bộ (8, 102, 8) thành (8, 102, 9) trong bảng KETQUA.
4. Xoá bộ (8, 135, 10) trong bảng KETQUA.
5. Liệt kê tên các sinh viên.
6. Liệt kê tên các môn học và số tín chỉ.
7. Cho biết kết quả học tập của sinh viên có mã số 8.
8. Cho biết tên sih viên, tên môn học và điểm của từng sinh viên.
9. Cho biết các mã số môn học phải học ngay trước môn có mã số 3320.
10. Cho biết các mã số môn học phải học ngay sau môn có mã số 3320.
11. Cho biết tên sinh viên và các môn học có kết quả trên 7.
12. Cho biết tên các sinh viên thuộc về khoa có phụ trách môn học “Toán rời rạc”.
13. Cho biết tên các môn học phải học ngay trước môn “Cơ sở dữ liệu”.
14. Cho biết tên các môn học phải học liền sau môn “Cấu trúc dữ liệu”.
15. Tính điểm trung bình của mọi sinh viên.
16. Liệt kê tên sinh viên và điểm trung bình của các sinh viên đó.
17. Tính tổng số khoá học và tổng số điểm của từng sinh viên.
18. Cho biết tên sinh viên và điểm trung bình của sinh viên đó trong từng học kỳ, từng năm học.
19. Cho biết tên sinh viên đạt điểm cao nhất.
20. Cho biết tên sinh viên có điểm trung bình nhỏ hơn hay bằng 7.
21. Cho biết tên sinh viên tham dự tất cả các môn học.
18/24
Thực hành CSDL với SQL Server 2000
BÀI 8.
Cho lược đồ cơ sở dữ liệu sau:
NHANVIEN(MANV, HONV, TENLOT, TENNV, NS, DC, PHAI, LUONG, NQL, PHONG): Mỗi
nhân viên đều có một mã duy nhất, được ghi nhận lại họ, tên lót , tên, có ngày sinh, địa chỉ, phái (giới
tính), lương, sẽ được phụ trách trực tiếp bởi một người quản lý (cũng là một nhân viên) và thuộc về một
phòng ban duy nhất.
THANNHAN(MANV, TENTN, PHAI, NS, QUANHE): Để quan tâm nhiều hơn đến các nhân viên,
công ty sẽ ghi nhận một số thông tin về các thân nhân của các nhân viên: Tên, ngày tháng năm sinh và
mối quan hệ của các thân nhân sẽ được ghi lại.
PHONGBAN(MAPHONG, TENPHONG, TRUONGPHONG, NGAYNHANCHUC): Mỗi phòng
ban đều có mã duy nhất, có tên phòng, do một nhân viên nào đó phụ trách, và ghi nhận cả ngày trưởng
phòng đó bắt đầu phụ trách phòng.
DIADIEMPHONGBAN(MAPHONG, DIADIEM): Mỗi phòng ban có thể có một hay nhiều địa
điểm.
DEAN(MADA, TENDA, DIADIEMDA, PHONG): Công ty sẽ thực hiện các đề án khác nhau. Do đó
mỗi đề án đều ghi lại mã và tên đề án, địa điểm thực hiện đề án cũng như phòng ban chủ trì đề án đều
được ghi nhận.
PHANCONG(MANV, MADA, THOIGIAN): Mỗi nhân viên có thể tham gia vào nhiều đề án khác
nhau, và mỗi đề án có thể được nhiều nhân viên tham gia. Khi nhân viên tham gia đề án, thì mã nhân viên
đó, mã đề án đó cũng như thời gian làm việc của nhân viên cho đề án trong một tuần sẽ được ghi lại.
19/24
Thực hành CSDL với SQL Server 2000
Dưới đây là một thể hiện của cơ sở dữ liệu trên:
NHANVIEN
MAN HONV TENLO TENN
NS
DC
PHAI LUON NQL PHONG
123
Dinh
Ba
Tien
09/01/1955 731 Tran Hung Dao,
Q.1 TP HCM
Nam
30000 333
5
333
Nguyen Thanh
Tran Thanh
Nguyen Manh
Tung
08/12/1945 638 Nguyen Van Cu,
Q.5 TP HCM
Nam
40000 888
5
453
666
888
987
777
999
Tam
31/07/1962 543 Mai Thi Luu, Q.1
TP HCM
Nam
Nam
25000 333
38000 333
55000
5
5
1
4
4
4
Hung
Quyen
Nhan
Quang
Vu
15/09/1952 975 Thong Nhat,
VUNG TAU
Vuong
Le
Ngoc
Thi
10/10/1927 450 Trung Vuong, HA Nu
NOI
20/06/1931 291 Ho Van Hue, Q.PN Nu
TP HCM
43000 888
25000 987
25000 987
Tran
Bui
Hong
Thuy
29/03/1959 980 Le Hong Phong,
Q.10 TP HCM
Nam
19/07/1958 332 Nguyen Thai Hoc, Nam
Q.1 TP HCM
PHONGBAN
MAPHONG TENPHONG TRUONGPHONG NGAYNHANCHUC
1
4
5
Quan ly
Dieu hanh
Nghien cuu
888
777
333
19/06/1971
01/01/1985
22/05/1978
DIADIEMPHONGBAN
DEAN
MAPHONG
DIADIEM
MADA
TENDA
DIADIEMDA PHONG
1
TP HCM
1
San pham X
VUNG TAU
NHA TRANG
TP HCM
5
5
5
4
1
4
4
5
5
5
HA NOI
NHA TRANG
TP HCM
2
3
10
20
30
San pham Y
San pham Z
Tin hoc hoa
Cap Quang
Dao tao
HA NOI
VUNG TAU
TP HCM
HA NOI
PHANCONG
THANNHAN
MANV MADA THOIGIAN
MANV TENTN PHAI
NS
QUANHE
123
123
333
333
333
453
453
666
888
987
987
777
777
999
999
1
2
3
10
20
1
32.5
7.5
10
123
123
123
333
333
333
987
Chau
Duy
Phuong Nu
Duong Nu
Khang Nam 25/10/1973 Con trai
Quang Nu 05/04/1976 Con gai
Dang Nam 29/02/1932 Vo chong
Nu
31/12/1978 Con gai
Nam 01/01/1978 Con trai
05/05/1957 Vo chong
03/05/1948 Vo chong
10
10
20
20
2
3
40
20
20
30
10
30
30
10
15
20
35
5
30
10
20/24
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Thực hành CSDL với SQL Server 2000", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- thuc_hanh_csdl_voi_sql_server_2000.doc