Mục tiêu: Thao tác được với giao diện của SQL Server 2008 Tạo Database - cơ sở dữ liệu (CSDL) và thực hiện các thao tác cơ bản trên CSDL bằng lệnh và bằng công cụ design Tạo các Table (Bảng dữ liệu) và nhập dữ liệu bằng công cụ design Tạo lược đồ quan hệ (Relationship Diagram) Biết các kiểu dữ liệu (DataType) trong SQL Server 2008 Biết tạo, sửa, xóa và áp dụng các kiểu dữ liệu trong SQL Server 2008 Biết sử dụng một số thủ tục trợ giúp về Database và Datatype BÀI TẬP TUẦN 1 PHẦN 1: TÌM HIỂU SQL SERVER MANAGEMENT STUDIO 1. Giới thiệu SQL Server Management Studio: SQL Server Management Studio là một môi trường tích hợp cho phép truy cập, cấu hình, quản lý, quản trị và phát triển tất cả các công cụ của SQL Server. Nó kết hợp một nhóm công cụ đồ họa cho phép soạn thảo một lượng lớn mã lệnh tương tác với SQL SERVER và đến người quản trị cũng như người lập trình. SQL Server Management Studio kết hợp các đặc trưng của Enterprise Manager, Query Analyzer và Analysis Manager vào một môi trường thống nhất. Bên cạnh đó, SQL Server Management Studio làm việc với tất cả công cụ của SQL Server như Reporting Services và Integration Services. Người lập trình cũng như người quản trị dễ dàng thao tác trên một môi trường đồng
58
Embed
Bài 1: Web viewDanh sách các sản phẩm ở Products trong NorthWind thành tập tin SanPham.TXT, thông tin cần lấy bao gồm ProductID, ProductName,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
M cụ tiêu:
Thao tác đ c v i giao di n c a SQL Server 2008ượ ớ ệ ủ T o Database - c s d li u (CSDL) và th c hi n các thao tác c b n trên ạ ơ ở ữ ệ ự ệ ơ ảCSDL b ng l nh và b ng công c designằ ệ ằ ụ T o các Table (B ng d li u) và nh p d li u b ng công c designạ ả ữ ệ ậ ữ ệ ằ ụ T o l c đ quan h (Relationship Diagram)ạ ượ ồ ệ Bi t các ki u d li u (DataType) trong SQL Server 2008ế ể ữ ệ Bi t t o, s a, xóa và áp d ng các ki u d li u trong SQL Server 2008ế ạ ử ụ ể ữ ệ Bi t s d ng m t s th t c tr giúp v Database và Datatypeế ử ụ ộ ố ủ ụ ợ ề
BÀI T P TU NẬ Ầ 1
PH N 1: TÌM HI U SQL SERVER MANAGEMENT STUDIOẦ Ể1. Gi i thi u SQL Server Managementớ ệ Studio:
SQL Server Management Studio là m t môi tr ng tích h p cho phép truyộ ườ ợ c p, c u hình, qu n lý, qu n tr và phát tri n t t c các công c c a SQLậ ấ ả ả ị ể ấ ả ụ ủ Server. Nó k t h p m t nhóm công c đ h a cho phép so n th o m tế ợ ộ ụ ồ ọ ạ ả ộ l ng l n mã l nh t ng tác v i SQL SERVER và đ n ng i qu n tr cũngượ ớ ệ ươ ớ ế ườ ả ị nh ng i l pư ườ ậ trình.
SQL Server Management Studio k t h p các đ c tr ng c a Enterpriseế ợ ặ ư ủ Manager, Query Analyzer và Analysis Manager vào m t môi tr ng th ngộ ườ ố nh t. Bên c nh đó, SQL Server Management Studio làm vi c v i t t cấ ạ ệ ớ ấ ả công c c a SQL Server nh Reporting Services và Integration Services.ụ ủ ư Ng i l p trình cũng nh ng i qu n tr d dàng thao tác trên m t môiườ ậ ư ườ ả ị ễ ộ tr ng đ ng nh t và thânườ ồ ấ thi n.ệ
2. Kh i đ ng SQL Server Managementở ộ Studio:
Vào Start ch n Program ọ ch n Microsoft SQL Server 2008 ọ ch n SQL ọServer Management Studio
Hình 1.1 K t n i vào SQL Serverế ố
Chú ý nh ng thành ph n trên h p tho i sau:ữ ầ ộ ạ Server Type: các subsystems c a SQL Server mà ng i dùng có thủ ườ ể
đăng nh p vào,ậ g m:ồo Database engine.
o Analysis Services.
o Report Server.
o Integration Services
Server Name: tên c a Server mà ng i dùng mu n đăngủ ườ ố nh p:ậo “.”: đăng nh p vào m t th hi n m c đ nh c a SQL Server trên cùngậ ộ ể ệ ặ ị ủ
máy tính đang đăng nh p.ậo “.” (local): đ nh danh t đ ng và cách đăng nh p đ n serverị ự ộ ậ ế đó.
o N u b n m h p Server name b n có th tìm ki m nhi u server ế ạ ở ộ ạ ể ế ềlocal ho c network connection b ng cách ch n <Browse forặ ằ ọ more...>.
Authentication: xác đ nh các lo i hình k t n i b n mu n s d ng. Có 2 ị ạ ế ố ạ ố ử ụcách đăng nh p:ậ
o Windows Authentication: thông tin đăng nh p Windows đ c ậ ượchuy n thành tài kho n đăng nh p SQLể ả ậ Server.
o SQL Server Authentication: Ng i dùng cung c p usename và ườ ấpassword đ đăng nh p vào SQLể ậ Server.
Sau khi nh n nút Connect sẽ xu t hi n màn hìnhấ ấ ệ sau:
3. Ch n ọ Connect: K tế n iốCancel: H y b thao tácủ ỏOption: Các l a ch n khácự ọ
4. B n hãy cho kh i đ ng d ch v SQL Server, SQL Serverạ ở ộ ị ụ Agent.5. Vào menu View, Ch n Object Explorerọ Details
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 , th c đ n, thanh công c c a ể ơ ượ ử ổ ự ơ ụ ủ SQL Server
Management Studio.6. T i c a s Object Explorer, 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, cho bi t ch c năng ầ ệ ế ức a m i thành ph nủ ỗ ầ......................................................................................................................................................................................................................................................................................................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?......................................................................................................................................................................................................................................................................................................(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,ầ ượ ố ượ ạ …
7. Tìm hi u các m c trong menu Help. ể ụ 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)
8. Kh i đ ng màn hình Queryở ộ Editor:
Nh p dòng l nh sau trên c a s Query Editor:ậ ệ ử ổUSE masterSELECT * from dbo.MSreplication_optionsNh n F5 đ th c thi và quan sát k t qu hi n ấ ể ự ế ả ểth . Tìm hi u các m c trong menu Toolsị ể ụ Option
PHẦN 2: TẠO VÀ QUẢN LÝ CƠ SỞ DỮ LIỆU
PHẦN LÝ THUYẾT
I. Giới thiệu Database
1. Databases: ch a t t c các c s d li u h th ng và c s d li u ng iứ ấ ả ơ ở ữ ệ ệ ố ơ ở ữ ệ ườ dùng trong SQL Server. C s d li u trong SQL server là c s d li u quanơ ở ữ ệ ơ ở ữ ệ h , bao g m m t t p các quan h , m i quan h là m t b ng d li u bao g mệ ồ ộ ậ ệ ỗ ệ ộ ả ữ ệ ồ các dòng và c t.ộ
2. Trong m t CSDL có t i thi u 2 t pộ ố ể ậ tin:
o File d li u c b n (Primary data file) (.mdf): ữ ệ ơ ả m i CSDL ch có duyỗ ỉ nh t 1 file c b n (m c đ nh), dùng đ ghi nh n l i t t c nh ng t p tinấ ơ ả ặ ị ể ậ ạ ấ ả ữ ậ khác trong CSDL và l u tr dư ữ ữ li u.ệ
o Các file th c p (Secondary data files) (.ndf) (tuỳ ch n): ứ ấ ọ m t CSDL cóộ th có hay không có nhi u file th c p, dùng đ l u các đ i t ng c aể ề ứ ấ ể ư ố ượ ủ CSDL.
o File nh t ký giao d ch (Transaction log file) (.ldf): ậ ị m i CSDL có t 1 hayỗ ừ nhi u file nh t ký, dùng đ ch a nh ng thông c n thi t cho vi c ph c h iề ậ ể ứ ữ ầ ế ệ ụ ồ t t c nh ng giao tác (transaction) trongấ ả ữ CSDL.
o V m t v t lý: ề ặ ậ m t Database bao g m hai hay nhi u h n hai t p tin trênộ ồ ề ơ ậ m t hay nhi u đĩa. Ch th y đ c b i nhà qu n tr và nó trong su t đ iộ ề ỉ ấ ượ ở ả ị ố ố v i ng i sớ ườ ử d ngụ
o V m t Logic: ề ặ m t database đ c xây d ng thành các thành ph n màộ ượ ự ầ đ c hi n th v i ng i dùng nh Table, View, Procedure,ượ ể ị ớ ườ ư …
o Khi t o 1 CSDL, thì các file d li u và log đ c t o ra t i v trí do ta xácạ ữ ệ ượ ạ ạ ị đ nh.ị
o Các file này có n m trên nh ng đĩa v t lý khác nhau đ c i thi n vi c th cằ ữ ậ ể ả ệ ệ ự thi c a hủ ệ th ng.ố
3. Filegroup có th ch a 1 hay nhi u file. M t CSDL có th đ c ch a trong 1ể ứ ề ộ ể ượ ứ hay 1 s filegroup. Có 3 lo i: Primary filegroup, user-define filegroups vàố ạ default filegroup
o Primary FileGroup: ch a file d li u chính (.mdf) và b t c file th c pứ ữ ệ ấ ứ ứ ấ nào (.ndf). T t c các b ng h th ng ph i n m trong primaryấ ả ả ệ ố ả ằ filegroup.
o User-defined filegroup: do ng i dùng xác đ nh trong l nhườ ị ệ CREATE/ALTER DATABASE
o Default filegroup: là b t kỳ filegroup nào trong DB. Th ng thì primaryấ ườ filegroup chính là default filegroup nh ng owner có quy n thay đ i. T tư ề ổ ấ c b ng và index m c đ nh đ u đ c t o ra trong defaultả ả ặ ị ề ượ ạ filegroup.
II. Các l nh đ nh nghĩa d li u (DDL - Data Definitionệ ị ữ ệ Language)
1. T o c s dạ ơ ở ữ li u:ệCú pháp:
CREATE DATABASE database_name
[ ON
[ < filespec > [ ,...n ] ]
[ , < filegroup > [ ,...n ] ]
]
[ LOG ON { < filespec > [ ,...n ] } ]
Cú pháp Filespec:
(NAME = logical_name,
FILENAME = 'path\filename',
SIZE = size_in_MB,
MAXSIZE = size_in_MB | UNLIMITED,
FILEGROWTH = %_or_MB)
Ví d 1 : ụ T o CSDL SampleạCREATE DATABASE Sample ON
e) Xóa file group GroupOrder: chú ý file group mu n xóa ph iố ả
tr ng ALTER DATABASE Sales REMOVE FILEố GroupOrder
f) Thay đ i thu c tínhổ ộ
CSDL Cú pháp:
ALTER DATABASE database_name
SET option [, status]
Option
AUTO_SHRINK
CURSOR_CLOSE_ON_COMMIT
RECOVERY FULL | BULK_LOGGED | SIMPLE
SINGLE_USER | RESTRICTED_USER | MULTI_USER
READ_ONLY | READ_WRITE
Ví d :ụ ALTER DATABASE Sales
SET Read_Only
g) Đ i tên c s dổ ơ ở ữ li u:ệCú pháp: sp_renamedb [ @dbname = ] 'old_name', [
@newname = ] 'new_name‘
VD: Sp_ReNamedb ‘Sales’, ‘Banhang’
h) Xóa c s d li u: Khi 1 CSDL b xóa thì t t c các file v t lý c a nó sẽ ơ ở ữ ệ ị ấ ả ậ ủb ị xóa
Cú pháp:
Ví d :ụ
DROP DATABASE database_name
Drop database Banhang
7. Ki u d li u (System Dataể ữ ệ Type)
Có 2 nhóm:
System-Supplied datatype: Các ki u d li u c b n đ c h tr b i ể ữ ệ ơ ả ượ ỗ ợ ởSQL Server.
User-defined datatype: Các ki u d li u c a ng i dùng t đ nh ể ữ ệ ủ ườ ự ịnghĩa d a trên các ki u d li u cự ể ữ ệ ơ b n.ả
a) T o m t User-Defined Dataạ ộ Type
Dùng th t c h th ng ủ ụ ệ ố sp_addtype đ t o m t user-defined data type.ể ạ ộCú pháp: sp_addtype type, system_data_type [,'NULL' | 'NOT NULL']
Ví d : T o ki u d li u tên là ụ ạ ể ữ ệ isbn v i ki u d li u c b n là ớ ể ữ ệ ơ ả smallint vàkhông ch p nh n giá tr Nullấ ậ ị
EXEC sp_addtype isbn, ‘smallint’, ‘NOT NULL’
b) Xem các user-defined data types trong CSDL hi nệ hành:
Dùng th t c ủ ụ sp_help ho c truy v n trong ặ ấ information_schema.domains
Ví d : Use SalesDBụSp_help
ho c SELECT domain_name, data_type, character_maximum_length ặFROM information_schema.domains
ORDER BY domain_name
c) Xoá m t User-Defined Data Typeộ : dùng th t c h th ng ủ ụ ệ ố sp_droptype để xóa m t ộ user-defined data type t b ng systypes. M t user-defined dataừ ả ộ type không th xóa đ c n u nó đ c tham chi u b i các b ng và nh ngể ượ ế ượ ế ở ả ữ đ i t ngố ượ khác.
Cú pháp: Sp_droptype type
Ví d :ụEXEC sp_droptype isbn
PH N TH C HÀNHẦ Ự1. T o CSDL QLSach b ng công c design có tham s nhạ ằ ụ ố ư sau:
Tham số Giá trịDatabase name QLSach
Tên logic c a data file chínhủ QLSach_Data
Tên t p tin và đ ng d n c a data file ậ ườ ẫ ủchính
T:\QLSach_Data.mdf
Kích c kh i t o c a CSDLỡ ở ạ ủ 20 MB
Kích c t i đa c a CSDLỡ ố ủ 40 MB
Gia s gia tăng t p tin CSDLố ậ 1 MB
Tên logic c a transaction logủ QLSach_Log
Tên t pậ tin và đ ngườ d nẫ c aủ T:\QLSach_Log.ldf
transaction log
Kích c kh i t o c a transaction logỡ ở ạ ủ 6 MB
Kích c t i đa c a transaction logỡ ố ủ 8 MB
Gia s gia tăng t p tin transaction logố ậ 1 MB
a. Xem l i thu c tính (properties) c a CSDL QLSach. (HD: Nh p ph iạ ộ ủ ắ ả chu t t i tên CSDL, ch n properties). Quan sát và cho bi t các trangộ ạ ọ ế th hi n thông tinể ệ gì?.
b. T i c a s properties c a CSDL, khai báoạ ử ổ ủ thêm
M t Group File m i có tên làộ ớ DuLieuSach
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àở ố ư ủ
QLSach_Data2; Tên t p tin và đ ng d n v t lý c a data file là T:\ậ ườ ẫ ậ ủQLSach_Data2.ndf.
Ch n thu c tính ReadOnly, sau đó đóng c a s properies. Quan sátọ ộ ử ổ màu s c c a CSDL. B thu c tínhắ ủ ỏ ộ ReadOnly.
Thay đ i Owner: tên server đang k tổ ế n i.ố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 CSDLệ ạ ộ v i các tham s đ c li t kêớ ố ượ ệ nh trong b ng d i. L u ý r ng CSDL này g m m t data file và nó đ cư ả ướ ư ằ ồ ộ ượ n m trong primaryằ filegroup
THAM SỐ GIÁ TRỊDatabase name QLBH
Tên logic c a data file chínhủ QLBH_data1
Tên t p tin và đ ng d n c a data file ậ ườ ẫ ủchính
T:\QLBH_data1.mdf
Kích c kh i t o c a CSDLỡ ở ạ ủ 10 MB
Kích c t i đa c a CSDLỡ ố ủ 40 MB
Gia s gia tăng t p tin CSDLố ậ 1 MB
Tên logic c a transaction logủ QLBH_Log
Tên t pậ tin và đ ngườ d nẫc a transactionủ log
T:\QLBH.ldf
Kích c kh i t o c a transaction logỡ ở ạ ủ 6 MB
Kích c t i đa c a transaction logỡ ố ủ 8 MB
Gia s gia tăng t p tin transaction logố ậ 1 MB
b. Xem l i thu c tính c a CSDL QLBH b ng cách Click ph i vào tên CSDLạ ộ ủ ằ ả ch n Property và b ng th t c h th ng sp_helpDb, sp_spaceused,ọ ằ ủ ụ ệ ố sp_helpfile.
c. Thêm m t filegroup có tên là DuLieuQLBH (HD: dùng l nh Alter ộ ệ DataBase<Tên Database> ADD FILEGROUP <Tên filegroup>)
d. Khai báo m t secondary file có tên logic là QLBH_data2, tên v t lýộ ậ QLBH_data2.ndf n m T:\, các thông s khác tuỳ b n ch n, data file nàyằ ở ố ạ ọ n m trong file group là DuLieuQLBH. (HD: Dùng l nh Alter Database ….ằ ệ ADD FILE …. TO FILEGROUP …)
e. Cho bi t 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 CSDL QLBH có thu cệ ể ấ ộ tính là Read_Only. Dùng sp_helpDB đ xem l i thu c tính c a CSDL. H yể ạ ộ ủ ủ b thu c tínhỏ ộ Read_Only.
g. Dùng l nh Alter DataBase … MODIFY FILE … đ tăng SIZE c a QLBH_data1ệ ể ủ thành 50 MB. T ng t tăng SIZE c a t p tin QLBH_log thành 10 MB. Đươ ự ủ ậ ể thay đ i SIZE c a các t p tin b ng công c Design b n làm nh th nào?ổ ủ ậ ằ ụ ạ ư ế B n hãy th c hi n thay đ i kích th c c a t p ạ ự ệ ổ ướ ủ ậ tin QLBH_log v i kíchớ th c là 15MB. N u thay đ i kích c nh h n ban đ u có đ c không?ướ ế ổ ỡ ỏ ơ ầ ượ N u thay đ i kích c MAXSIZE nh h n kích c SIZE thì có đ c không?ế ổ ỡ ỏ ơ ỡ ượ Gi iả thích.
3. T o CSDL QLSV, các thông s tùy ch n. Dùng công c design t o c u trúcạ ố ọ ụ ạ ấ c a các b ng sau trong CSDLủ ả QLSV:
L u ý: c t in đ m g ch chân là khóa chính và không ch p nh n giá tr Null,ư ộ ậ ạ ấ ậ ị c t in đ m không ch p nh n giá tr Nullộ ậ ấ ậ ị
a. T o Diagram gi a hai b ng v aạ ữ ả ừ t o.ạb. Nh p d li u tùy ý vào hai các b ng b ng công c design, m i b ngậ ữ ệ ả ằ ụ ỗ ả
kho ng 3 m uả ẫ tin.
Gi s b n nh p d li u cho b ng KETQUA tr c, sau đó m i nh p dả ử ạ ậ ữ ệ ả ướ ớ ậ ữ li u cho các b ng còn l i thì b n có nh p đ c không? Vì sao? Theo b nệ ả ạ ạ ậ ượ ạ nên nh p d li u theo th t nào?ậ ữ ệ ứ ự
c. Dùng tác v General Script, đ t o đo n Script cho CSDL và t t c các đ i ụ ể ạ ạ ấ ả ốt ng c a CSDL thành m t t p tin Script có tên làượ ủ ộ ậ QLSV.SQL
d. 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.
e. Đ i tên CSDL QLSV thànhổ QLHS
f. Dùng thao tác xóa đ xoá toàn b CSDLể ộ QLHS
PHẦN 3: KIỂU DỮ LIỆU (DATA TYPE)
1. 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ó 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 CSDL nào.
- Các User-defined datatype đ c SQL Server l u tr trong Table nào,ượ ư ữ trong CSDLở nào?
b. Vào Query Analyzer, ch n QLBH là CSDL hi n hành, đ nh nghĩa các ọ ệ ịdatatype:
Ki uể dữ li uệ (Data type)
Mô t d li u (Description of data)ả ữ ệ
Mavung 10 ký tựSTT STT không v t quá 30,000ượSoDienThoai 13 ký t , ch p nh n NULLự ấ ậShortstring S ký t thay đ i đ n 15 ký tố ự ổ ế ự
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 CSDLử ụ ủ ở ộ ộ ỉ ở hi nệ hành).
d. Có bao nhiêu cách li t kê danh sách các User-Defined datatype v a đ nhệ ừ ị nghĩa.
e. T o 1 b ng có tên là ThongTinKH(MaKH (khóa chính) ki u d li u STT ,ạ ả ể ữ ệ Vung ki u là Mavung, Diachi ki u là Shortstring, DienThoai ki u làể ể ể SoDienThoai) trong CSDL QLBH và s d ng User-defined data type v aử ụ ừ đ nh nghĩa trên. B n có t o đ c không? N u đ c b n nh p th dị ở ạ ạ ượ ế ượ ạ ậ ử ữ li u 2 record b ngệ ằ design.
f. Mu n User-Defined datatype đ c dùng trong t t c các CSDL thì b nố ượ ấ ả ạ đ nh nghĩa nó ị ở đâu?
g. Xóa ki u d li uể ữ ệ SoDienThoai.
h. Th c hi n vi c Backup và Restore CSDLự ệ ệ QLBH
M c tiêu:ụ T o CSDL cùng các b ng trong CSDL b ng T-SQLạ ả ằ T o các ràng bu c (constraint) cho các b ng b ng T-SQLạ ộ ả ằ Phát sinh t p tin scriptậ Th c hi n ch c năng attach và detach CSDLự ệ ứ Th c hi n ch c năng import/exportự ệ ứ
PH N LÝ THUY TẦ Ế1) B ng d li u –ả ữ ệ Table
B ng là m t đ i t ng c a CSDL đ c dùng đ l u tr d li u. D li u trongả ộ ố ượ ủ ượ ể ư ữ ữ ệ ữ ệ b ng đ c t ch c thành các hàng (rows) và c t (columns). M i hàng trongả ượ ổ ứ ộ ỗ b ng bi u di n m t b n ghi (record) duy nh t. M i c t bi u di n m t thu cả ể ễ ộ ả ấ ỗ ộ ể ễ ộ ộ tính (attribute). Tên c t trong 1 b ng không đ c trùng nhau nh ng cho phépộ ả ượ ư tên c t có th trùng nhau trong nh ng b ng khác nhau c a cùng 1 CSDL.ộ ể ữ ả ủSQL Server cho phép:
T i đa 2 tri u b ng trong 1 CSDL. ố ệ ảT i đa 1024 c t trong 1 b ngố ộ ảT i đa 8060 bytes trong 1 hàngố
b) T o b ng có giá tr phát sinh t ạ ả ị ựđ ng CREATE TABLEộ NhaCungCap
(MaNCC int Identity NOT NULL Primary key, TenNCC VarChar(25))
c) T o b ng có c t tính toánạ ả ộ
CREATE TABLE cthoadon
( sohd int NOT
NULL,
MaHang char(5) NOT NULL,
SoLuong int NOT NULL,
DonGia money,
ThanhTien AS SoLuong*DonGia
)
d) Khai báo Filegroup ch aứ
Table CREATE TABLE KH
(MaKh int Identity(1000,1) NOT NULL, TenKH Varchar(40)) ON FGROUP1
3) S a c u trúc c aử ấ ủ
b ng Cúả pháp:ALTER TABLE <table_name>
{ALTER COLUMN <column_name> <new_data_type>}
| {ADD [<column_name> <data_type>]}
| {DROP COLUMN <column_name>}
Ví d :ụa) Thêm c tộ
ALTER TABLE SanPham ADD NgayNhap SmallDateTime
b) S a ki u d li u choử ể ữ ệ c tộALTER TABLE SanPham ALTER COLUMN NgayNhap DateTime NOT NULL
c) Xóa c tộALTER TABLE Sanpham DROP COLUMN NgayNhap
4) Xóa b ngảCú pháp: DROP TABLE <Table_Name>
Ví d : DROP TABLE SanPhamụ5) Xem thông tin Table
Cú pháp: sp_help <table_name>
Ví d : Sp_help cthoadonụ6) Qui t c nghi p v (Toàn v n d li uắ ệ ụ ẹ ữ ệ -TVDL)
• TVDL là đ c p đ n tr ng thái c a t t c các giá tr d li u l u tr trongề ậ ế ạ ủ ấ ả ị ữ ệ ư ữ CSDL là đúng. N u d li u không đúng mà đã đ c l u tr trong CSDL thìế ữ ệ ượ ư ữ g i là vi ph mọ ạ TVDL.
• Các lo i ràng bu c toàn v n: Not Null, Default, Identity, Constraints, Rule, ạ ộ ẹTriggers, Indexs.
• Giá tr NULL dùng đ ch các giá tr ch a bi t, hay sẽ đ c b sung sau. Nóị ể ỉ ị ư ế ượ ổ khác v i giá tr r ng (empty) hay zero. Hai giá tr null không đ c xem làớ ị ỗ ị ượ b ng nhau. Khi so sánh hai giá tr null, hay 1 giá tr null v i 1 giá tr khácằ ị ị ớ ị thì k t qu tr v sẽ làế ả ả ề unknown.
• Ví d :ụUSE SalesDb
CREATE TABLE SanPham
( Masp smallint NOT NULL,
Tensp char(20) NOT
NULL, Mota char(30) NULL,
Gia smallmoney NOT NULL
)
b) Ràng bu c Defaultộ : dùng đ xác đ nh giá tr “có s n” đ c gán cho 1 c tể ị ị ẵ ượ ộ khi thêm 1 b n ghi m i vào b ng. DEFAULT có th áp d ng cho b t kỳ c tả ớ ả ể ụ ấ ộ nào trong b ng ngo i tr c t có ki u timestamp hay có thu c tínhả ạ ừ ộ ể ộ IDENTITY.
Cách t o ràng bu c Default:ạ ộCách 1: T o cùng v i lúc t o Tableạ ớ ạCú pháp: CREATE TABLE <TableName>
(<Column_Name> <DataType> DEFAULT (<expresion>))
Ví d : CREATE TABLE HoaDon (MaHD int, LoaiHD Char(1) DEFAULT ụ‘X’, NgayLap DateTime NOT NULL)
Cách 2: T o khi đã có TableạCú pháp: ALTER TABLE tablename
ADD [ CONSTRAINT constraintname ]
DEFAULT expression FOR columnname
Ví d : ALTER TABLE HoaDonụADD CONSTRAINT Ngay_DF DEFAULT Getdate() FOR NgayLap
Cách 3:
Cú pháp: CREATE DEFAULT fieldname AS 'value'
Sau khi t o đ c DEFAULT, nó c n đ c g n k t vào 1 c t hay ki u d ạ ượ ầ ượ ắ ế ộ ể ữli u ng i dùng.ệ ườ
sp_bindefault default_name, object_name [,
FUTUREONLY]
Xóa g n k t default làm cho nó không còn áp d ng đ c vào c t c a ắ ế ụ ượ ộ ủb ng hay ki u d li u ng i dùng.ả ể ữ ệ ườ
sp_unbindefault object_name
[, FUTUREONLY]
Ví d :ụCREATE DEFAULT dienthoai AS 'unknown'
GO
sp_bindefault dienthoai, ‘KH.DT'
GO
sp_unbindefault ‘KH.DT'
c) Xoá ràng bu c Default - m cộ ặ đ nhịCú pháp: DROP DEFAULT { default } [ ,...n ]
Hay
ALTER TABLE <TenTable>
DROP CONSTRAINT <TenDefault>
L nh drop có th xóa cùng lúc nhi u defaultệ ể ềVí d :ụ
Hay
DROP DEFAULT phonedflt
DROP DEFAULT Ngay_DF
ALTER TABLE Hoadon
DROP CONSTRAINT Ngay_DF
d) Ràng bu c Check: ộ Qui đ nh nh p d li u ph i th a mãn đi u ki n c aị ậ ữ ệ ả ỏ ề ệ ủ bi u th cể ứ check_logic.
Cách t o:ạCách 1: T o cùng v i t o Tableạ ớ ạCú pháp: CREATE TABLE <Table_Name>
(<Column_Name> <Data_Type>[,…] CONSTRAINT ConstraintName] CHECK (NOT FOR REPLICATION] <Logical expresion>),….)
Ví d : CREATE TABLE NhanVienụ(MaNV char(4) CHECK (Manv LIKE '[0-9][0-9][0- 9][0-9]‘, Hoten Varchar(40), LCB int CHECK (LCB BETWEEN 0 AND 50000, HSPC real,Thanhpho varchar(10) CONSTRAINT chkCity CHECK(Thanhpho IN ('Berkeley', 'Boston', 'Chicago', ' Dallas‘))
Cách 2: T o sau khi đã t o b ngạ ạ ảCú pháp: ALTER TABLE <Table_Name>
[WITH CHECK | WITH NOCHECK] ADD
[CONSTRAINT ConstraintName]
CHECK (NOT FOR REPLICATION] <Logical expresion>),….)
Ví d : ALTER TABLE NhanvienụADD CONSTRAINT NV_HSPC
CHECK (HSPC>=0.1 AND
HSPC<0.5)
e) Rule: Đ nh nghĩa các qui t c h p l mà có th k t bu c vào các c t c aị ắ ợ ệ ể ế ộ ộ ủ b ng hay các ki u d li u do ng i dùng đ nh nghĩa. Rule đ c t o nênả ể ữ ệ ườ ị ượ ạ chính nó tr c khi k t bu c vào đ i t ngướ ế ộ ố ượ khác
Đ nh nghĩa Rule:ịCREATE RULE rulename AS condition_expression
K t bu c rule vào m t c tế ộ ộ ộsp_bindrule rulename, tablename.columnname
K t bu c Rule vào user-defined datatypeế ộsp_binrule rulename, datatypename[, futureonly]
Ví d :ụ
CREATE RULE ActiveDate AS
@Date Between ’01/01/70’ AND Getdate()
sp_bindrule ActiveDate, ‘Orders.OrderDate’
f) Xoá ràng bu cộ CHECK
ALTER TABLE <TenTable>
DROP CONSTRAINT <TenCheck>
Ví d :ụ
ALTER TABLE NhanVien
DROP CONSTRAINT NV_HSPC
8) Các ràng bu c khóa chính, khóa ngo i, unique–ộ ạ Constraints
a) Ràng bu c Primary Key: ộ Ràng bu c Primary key g m m t hay nhi u c tộ ồ ộ ề ộ dùng đ nh n di n các record, giá tr c a primary key không đ c phépể ậ ệ ị ủ ượ trùng nhau và không ch a giá tr Null. Ch m c sẽ đ c t đ ng t o ra khiứ ị ỉ ụ ượ ự ộ ạ có khai báo 1 ràng bu c primary key. M i b ng ch có m t khóa chính, chộ ỗ ả ỉ ộ ỉ m c do primary key t o ra th ng m c đ nh làụ ạ ườ ặ ị clustered
Cú pháp:
Cách 1: T o cùng v i l nh t o ạ ớ ệ ạb ng CREATE TABLE TableNameả
Cách 2: T o sau khi có TableạCú pháp: ALTER TABLE TableName
ADD [CONSTRAINT constraint_name]
PRIMARY KEY {(column [ASC |DESC][,…,n])}
[ON {filegroup|DEFAULT}]
Ví d : ALTER TABLE SanphamụADD CONSTRAINT Masp_PK
PRIMARY KEY (Cmasp)
EXEC Sp_helpconstraint Sanpham
b) Ràng bu c Unique: ộ Dùng đ đ m b o không có giá tr trùng các c t.ể ả ả ị ở ộ M t c t hay s k t h p gi a các c t v n không ph i là khóa chính. Ch pộ ộ ự ế ợ ữ ộ ố ả ấ nh n m t hàng ch a giá tr Null. M t b ng có th có nhi u Uniqueậ ộ ứ ị ộ ả ể ề constraint.
Cách t o:ạCách 1: T o cùng v i l nh t o ạ ớ ệ ạb ng Cú pháp: ả CREATE TABLE
Cách 2: T o sau khi đã có b ngạ ảCú pháp: ALTER TABLE TableName
ADD [CONSTRAINT constraint_name]
UNIQUE {(column [ASC |DESC][,…,n])}
[ON {filegroup|DEFAULT}]
Ví d : ụ ALTER TABLE Table3Unique
ADD col3 char(5) CONSTRAINT Table3_Unique UNIQUE
EXEC Sp_helpconstraint Table3
c) Ràng bu c Foreign keyộ : Khoá ngo i ch có th tham chi u đ n m t c tạ ỉ ể ế ế ộ ộ sau trong b ngả chính:
a. Là 1 c t hay 1 ph n c a khoáộ ầ ủ chính
b. Là c t có ràng bu cộ ộ unique
c. Là c t có ch m cộ ỉ ụ unique
M t b ng có th có t i đa 253 khoá ngo i và có th tham chi u đ n ộ ả ể ố ạ ể ế ế253 b ng khác nhau.ảĐ nh nghĩa FOREIGN KEY CONSTRAIT khi t o b ngị ạ ảCREATE TABLE TableName
(columnName datatype [,…],
[CONSTRAINT constraintName]
FOREIGN KEY[(column[,..n])]
REFERENCES ref_table [ ( ref_column [,..n])]) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION }
] [ NOT FOR REPLICATION]
ON UPDATE|DELETE {CASCADE | NO ACTION}
Xác đ nh hành đ ng c n ph i th c hi n cho 1 hàng trong b ng đangị ộ ầ ả ự ệ ả t o n u hàng đó có quan h tham chi u và hàng tham chi u b xoáạ ế ệ ế ế ị kh i b ng chính. M c đ nh là NOỏ ả ặ ị ACTION.
CASCADE: dùng đ xác đ nh là hàng sẽ b c p nh t/xoá kh i b ngể ị ị ậ ậ ỏ ả tham chi u n u hàng đó b c p nh t/xóa kh i b ngế ế ị ậ ậ ỏ ả chính
NO ACTION: SQL Server sẽ đ a ra thông báo l i và vi c xoá hàng trênư ỗ ệ b ng chính sẽ b tả ị ừ ch i.ố
Ví dụ 1
CREATE TABLE VITRI
(MaVt int Primary key, DiaChi varchar(40))
CREATE TABLE PhongBan
( Mapb int primary
key, TenPb
varchar(30),
MaVT int REFERENCES VITRI(MaVt)
)
Đ nh nghĩa FOREIGN KEY CONSTRAIT khi b ng đã t n t iị ả ồ ạALTER TABLE TableName
[WITH CHECH | WITH NOCHECK] ADD
[CONSTRAINT constraintName]
FOREIGN KEY[(column[,..n])]
REFERENCES ref_table [ ( ref_column [,..n])]) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION]
WITH CHECK: tr c khi t o ràng bu c, SQL Server sẽ ki m tra d li u ướ ạ ộ ể ữ ệhi n có vi ph m ràng bu c hay không, n u có sẽ không t oệ ạ ộ ế ạ constraint.
WITH NOCHECK: t o constraint mà không c n ki m tra d li u hi n có cóạ ầ ể ữ ệ ệ vi ph m ràng bu c hayạ ộ không.
d) Xem tr giúp ràngợ bu cộCú pháp: Sp_helpConstraint ConstraintName
Ví d : ụ Sp_helpConstraint Events
e) Xóa ràng bu c ộconstraint Cú pháp:
ALTER TABLE <TenTable> DROP CONSTRAINT <ConstraintName>
Ví d : ụ ALTER TABLE NhanVien1 DROP CONSTRAINT Cv_FK
PH N TH C Ầ ỰHÀNH BÀI T P 1:ẬCho mô t nghi p v c a h th ng qu n lý bán hàng c a m t siêu th nh sau:ả ệ ụ ủ ệ ố ả ủ ộ ị ư
• Siêu th bán nhi u s n ph m khác nhau. Các s n ph m đ c phân lo iị ề ả ẩ ả ẩ ượ ạ theo t ng nhóm s n ph m, m i nhóm s n ph m có m t mã nhómừ ả ẩ ỗ ả ẩ ộ (MANHOM) duy nh t, m i mã nhóm hàng xác đ nh tên nhóm hàngấ ỗ ị (TENNHOM), t t nhiên m t nhóm hàng có th có nhi u s n ph m. M iấ ộ ể ề ả ẩ ỗ s n ph m đ c đánh m t mã s (MASP) duy nh t, m i mã s s n ph mả ẩ ượ ộ ố ấ ỗ ố ả ẩ xác đ nh các thông tin v s n ph m đó nh : tên s n ph m (TENSP), môị ề ả ẩ ư ả ẩ t s n ph m (MoTa), đ n v tính (Đ n v tính), đ n giá mua (ĐONGIA), sả ả ẩ ơ ị ơ ị ơ ố l ng t nượ ồ (SLTON).
• Siêu th l y hàng v t nhi u nhà cung c p khác nhau. M i s n ph mị ấ ề ừ ề ấ ỗ ả ẩ đ c l y t m t nhà cung c p. H th ng ph i l u tr các thông tin v cácượ ấ ừ ộ ấ ệ ố ả ư ữ ề nhà cung c p hàng cho siêu th . M i nhà cung c p có m t mã s (MaNCC)ấ ị ỗ ấ ộ ố duy nh t, m i mã nhà cung c p sẽ xác đ nh tên nhà cung c p (TenNCC),ấ ỗ ấ ị ấ đ a ch (Diachi), s đi n tho i (Phone), s fax (Sofax) và đ a ch mailị ỉ ố ệ ạ ố ị ỉ (DCMail).
• Siêu th bán hàng cho nhi u lo i khách hàng khác nhau. M i khách hàng cóị ề ạ ỗ m t mã khách hàng (MAKH) duy nh t, m i MAKH xác đ nh đ c các thôngộ ấ ỗ ị ượ tin v khách hàng nh : h tên khách hàng (HOTEN), đ a ch (ĐIACHI), sề ư ọ ị ỉ ố đi n tho i (ĐIENTHOAI), Ngày đăng ký th thành viên (NgayDKThe), đ aệ ạ ẻ ị ch mail (DCMail), đi m tích lũy (DiemTL). Siêu th chia khách hàng thànhỉ ể ị 3 lo i khách hàng: VIP, TV, VL. Khách hàng VIP là nh ng khách hàng đã làạ ữ thành viên trên 5 năm và có t ng s hóa đ n mua hàng trên 100, kháchổ ố ơ hàng TV(thành viên là các khách hàng đã làm th thành viên nh ng khôngẻ ư đ đi u ki n c a khách hàng VIP). Khách hàng vãng lai (VL) là khách hàngủ ề ệ ủ ch a có th thành viên. Đ i v i khách hàng vãng lai thì MaKH sẽ đ c hư ẻ ố ớ ượ ệ th ng t c p phát MaKH cho m i l n mua hàng do đó h th ng không c nố ự ấ ỗ ầ ệ ố ầ l u các thông tin còn l i c a khách hàng vãngư ạ ủ lai.
• M i l n mua hàng, khách hàng có m t hóa đ n. M i hóa đ n bán hàng cóỗ ầ ộ ơ ỗ ơ m t s hóa đ n (SOHĐ) duy nh t, m i s hóa đ n xác đ nh đ c kháchộ ố ơ ấ ỗ ố ơ ị ượ hàng và ngày l p hóa đ n (NGAYLAPHĐ), ngày giao hàng (NGAYGIAO) vàậ ơ n i chuy n hàng (NoiChuyen). ng v i m i hóa đ n siêu th qui đ nh nhơ ể Ứ ớ ỗ ơ ị ị ư sau: N u khách hàng VIP sẽ đ c t ng 20% t ng ti n vào đi m tích lũyế ượ ặ ổ ề ể c a khách hàng, n u là thành viên là 10%t ng ti n, vãng lai thì khôngủ ế ổ ề
đ c t ngượ ặ đi mể tích lũy. D aự vào đi mể tích lũy siêu thị sẽ t ngặ phi uế quà t ngặ
vào cu i năm cho các khách hàng. M i ố ỗ đ n ơ hàng có th mua nhi u s nể ề ả ph m, V i m i s n ph m trong m t hóa đ n cho bi t s l ng bánẩ ớ ỗ ả ẩ ộ ơ ế ố ượ (SLBAN) c a m t hàngủ ặ đó.
1. D a vào nghi p v trên, vẽ mô hình th c th k t h p ERD, sau đó chuy nự ệ ụ ự ể ế ợ ể qua l c đ c s d li u cho h th ng trên và xác đ nh các ràng bu c khóaượ ồ ơ ở ữ ệ ệ ố ị ộ chính và khóa ngo i cho l c đạ ượ ồ CSDL.
2. Xác đ nh các qui t c nghi p v c a h th ngị ắ ệ ụ ủ ệ ố trên.
3. 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ệ ể ạ ấ ủ ả
CSDL QLBH:
L u ýư : Các b ng KHACHHANG, HOADON, CT_HOADON khai báo c t có Nullả ộ ho c Not Null, không c n khai báo khóa chính, khóa ngo i. B ngặ ầ ạ ả NhomSanPham, SanPham, NhaCungCap yêu c u t o khóa chính và khóa ngo iầ ạ ạ trong l nh Create Table luôn, các b ng còn l i thì dùng l nh Alter Table đệ ả ạ ệ ể t o khóa chính và khóa ngo i.ạ ạ
NhomSanPham
MaNhom Int Not null
TenNhom Nvarchar(15)
SanPham
MaSp int Not null
TenSp nvarchar(40) Not null
MaNCC Int
MoTa nvarchar(50)
MaNhom int
Đonvitinh nvarchar(20)
GiaGoc Money >0
SLTON Int >0
HoaDon
MaHD Int Not null
NgayLapHD DateTime >=Ngày hi n hànhệGiá tr m c đ nh là ị ặ ịngày hi n hànhệ
NgayGiao DateTime
Noichuyen NVarchar(60) Not Null
MaKh Nchar(5)
CT_HoaDon
MaHD Int Not null
MaSp int Not null
Soluong SmallInt >0
Dongia Money
ChietKhau Money >=0
NhaCungCap
MaNCC Int Not null
TenNcc Nvarchar(40) Not Null
Diachi Nvarchar(60)
Phone NVarchar(24)
SoFax NVarchar(24)
DCMail NVarchar(50)
KhachHang
MaKh NChar(5) Not null
TenKh Nvarchar(40) Not null
LoaiKh Nvarchar(3) Ch nh p VIP, TV, VLỉ ậDiaChi Nvarchar(60)
Phone NVarchar(24)
SoFax NVarchar(24)
DCMail NVarchar(50)
DiemTL Int >=0
b. Dùng l nh Alter Table … khai báo các ràng khóa chính (Primary Keyệ Constraint) các b ng còn l i KHACHHANG, HOADON,ở ả ạ CT_HOADON.
c. Dùng l nh Alter Table … khai báo các ràng khóa ngo i (Foreign Keyệ ạ Constraint) các b ng còn l i KHACHHANG, HOADON, CT_HOADON.ở ả ạ .
d. Dùng l nh Alter Table … khai báo các ràng bu c mi n giá tr (Checkệ ộ ề ị Constraint) và ràng bu c giá tr m c đ nh cho các b ngộ ị ặ ị ả trên
e. Thêm c t LoaiHD vào b ng HOADON, LoaiHD ộ ả có ki u d li u char(1), Chể ữ ệ ỉ nh p N(Nh p), X(Xu t), C(Chuy n t c a hàng này sang c a hàng khác), Tậ ậ ấ ể ừ ử ử (Tr ), giá tr m c đ nh làả ị ặ ị ‘N’.
f. T o ràng bu c cho b ng HoaDon v i yêu c uạ ộ ả ớ ầ NgayGiao>=NgayLapHD
4. Th c hi n phát sinh t p tin script cho CSDL QLBH v i các l a ch n sau, l u ự ệ ậ ớ ự ọ ưv i tênớ TableQLBH.sql:
All Tables, All user-defined data types
Generate the CREATE <object> command for each object
Generate the DROP <object> command for each object
Generate the Constraint <object> command for each object
5. T o s đ quan h cho CSDLạ ơ ồ ệ QLBH
BÀI T P 2 (làm thêm t i nhà và n p l i cho GV):Ậ ạ ộ ạ1. Dùng T-SQL t o CSDL Movies v i các tham s sau:ạ ớ ố
T p tin Datafile có: Name: Movies_data; pathname: C:\Movies\ậMovies_data.mdf; Size: 25 MB; Maxsize: 40 MB; FileGrowth: 1 MB.
T pậ tin Log file có: Name: Movies_log; pathname: C:\Movies\Movies_log.ldf; Size: 6 MB; Maxsize: 8 MB; FileGrowth: 1 MB.
2. Th c hi n, ki m tra k t qu sau m i l n th cự ệ ể ế ả ỗ ầ ự hi n:ệ Thêm m t Datafile th 2 có Name: Movies_data2; pathname: C:\ộ ứ
Movies\Movies_data2.ndf; Size: 10 MB; thông s khác không c n chố ầ ỉ đ nh.ị
L n l t c u hình CSDL Movies v i ch đ single_user, restricted user,ầ ượ ấ ớ ế ộ multi user. Sau đó cài đ t l i là multi_user. Nh dùng l nh đ ki m traặ ạ ớ ệ ể ể l i.ạ
Tăng kích c c a data file th 2 t 10 MB lên 15 MB. Ki m traỡ ủ ứ ừ ể l i.ạ C u hình CSDL v ch đ t đ ngấ ề ế ộ ự ộ SHRINK
Phát sinh t p tin Script t CSDL Movies, t o script cho t t c các đ i ậ ừ ạ ấ ả ốt ng k c database. L u vào đĩa v i tên làượ ể ả ư ớ Movies.SQL.
Xoá CSDL Movies
3. M t p tin Movies.SQL. Th cở ậ ự hi n:ệ B sung thêm câu l nh t o m t filegroup tên làổ ệ ạ ộ Data.
Hi u ch nh maxsize c a t p tin transaction log thành 10ệ ỉ ủ ậ MB
Size c a t p tin datafile th 2 thành 10ủ ậ ứ MB.
Cho datafile th 2 n m trong filegroup có tên làứ ằ Data.
L u t p tinư ậ scrip
Cho th c thi toàn b t p tinự ộ ậ script.
Dùng sp_helpDB đ ki m tra s t n t i c a Movies và các thông s c aể ể ự ồ ạ ủ ố ủ nó.
4. Các b ng có trong CSDL Moviesả là
Tên b ngả N i dung l u ch aộ ư ứMovie Danh sách các phim có trong c a hàngửCustomer Thông tin khách hàng
Category Danh sách các lo i phimạRental Thông tin thuê phim
Rental_detail Chi ti t thuê phimếB n hãy suy nghĩ xem m i b ng trên c n l u nh ng thông tin c th nàoạ ỗ ả ầ ư ữ ụ ể (t c là các c t nào), ki u d li u ra sao? Khóa chính c a t ng b ng, m iứ ộ ể ữ ệ ủ ừ ả ố quan h gi a các b ng, có nh ng ràng bu c toàn v n nào?ệ ữ ả ữ ộ ẹ
5. Th c hi n đ nh nghĩa các user-defined datatype sau vào trong CSDL ự ệ ịMovies. Ki m tra sau khiể t o.ạ
Ki uể dữ li uệ (Data type)
Mô t d li u (Description of data)ả ữ ệ
Movie_num Int, không ch p nh n Nullấ ậCategory_num Int, không ch p nh n Nullấ ậCust_num Int, không ch p nh n Nullấ ậInvoice_num Int, không ch p nh n Nullấ ậ
6. Th c hi n t o các b ng vào CSDL Movies, nh ki m tra l i c u trúc b ng ự ệ ạ ả ớ ể ạ ấ ằsp_help
Customer
Tên c tộ ki u d li uể ữ ệ cho phép Null
Cust_num cust_num IDENTITY(300,1) No
Lname varchar(20) No
Fname varchar(20) No
Address1 varchar(30) Yes
Address2 varchar(20) Yes
City varchar(20) Yes
State Char(2) Yes
Zip Char(10) Yes
Phone Varchar(10) No
Join_date Smalldatetime No
Category
Tên c tộ ki u d li uể ữ ệ cho phép Null
Category_num category_num IDENTITY(1,1)
No
Description Varchar(20) No
Movie
Tên c tộ ki u d li uể ữ ệ cho phép Null
Movie_num Movie_num No
Title Cust_num No
Category_Num category_num No
Date_purch Smalldatetime Yes
Rental_price Int Yes
Rating Char(5) Yes
Rental:
Tên c tộ Ki u d li uể ữ ệ cho phép Null
Invoice_num Invoice_num No
Cust_num Cust_num No
Rental_date Smalldatetime No
Due_date Smalldatetime No
Rental:_Detail
Tên c tộ Ki u d li uể ữ ệ cho phép Null
Invoice_num Invoice_num No
Line_num Int No
Movie_num Movie_num No
Rental_price Smallmoney No
7. Th c hi n phát sinh t p tin script cho CSDL Movies v i các l a ch n sau, ự ệ ậ ớ ự ọl u v i tênư ớ Table.sql:
All Tables, All user-defined data types
Generate the CREATE <object> command for each object
Generate the DROP <object> command for each object
8. Th c hi n t o Diagram cho các b ng trong Movies. B n có t o đ c ự ệ ạ ả ạ ạ ượkhông? T i sao? T m th i l u diagram v i tên làạ ạ ờ ư ớ Movies.
9. Th c hi n đ nh nghĩa các khoá chính (Primary Key Constraint) cho các ự ệ ịb ng nh sau, nh ki m tra các Constraint b ng l nhả ư ớ ể ằ ệ sp_helpconstraint
Tên b ngả c t làm khóaộ Tên c a Primary ConstraintủMovie Movie_num PK_movie
Customer Cust_num PK_customer
Category Category_num PK_category
Rental Invoice_num PK_rental
10.Th c hi n đ nh nghĩa các khoá ngo i (Foreign Key Constraint) cho các ự ệ ị ạb ng nh sau, nh ki m tra các Constraint b ng l nhả ư ớ ể ằ ệ sp_helpconstraint
Tên b ngả C t làm khóaộ Tên b ng ảđ cượ tham chiếu đ nế
Rental_detail Movie_num Movie Movie_num PK_detail_movie
11.M l i Diagram có tên Movie, xem khóa chính, m i quan h gi a cácở ạ ố ệ ữ b ng.ả
12.Th c hi n đ nh nghĩa các giá tr m c đ nh (Default Constraint) cho các c t ự ệ ị ị ặ ị ộ ở các b ng nh sau, nh ki m tra các Constraint b ng l nh sp_helpconstraintả ư ớ ể ằ ệ
Tên b ngả C t có giá ộtr Defaultị
Giá tr Defaultị Tên c aủ Primary Constraint
Movie Date_purch Ngày hi n hànhệ DK_movie_date_purch
Customer join_date Ngày hi n hànhệ DK_customer_join_date
Rental Rental_date Ngày hi n hànhệ DK_rental_rental_date
Rental Due_date Ngày hi n hành + ệ2
DK_rental_due_date
13.Th c hi n đ nh nghĩa các mi n giá tr (Check Constraint) cho các c t các ự ệ ị ề ị ộ ởb ng nh sau, nh ki m tra các Constraint b ng l nhả ư ớ ể ằ ệ sp_helpconstraint
Tên b ngả C t có giá ộtr Defaultị
Mi n giá trề ị Tên c aủ Primary Constraint
Movie Rating ‘G’, ‘PG’, ‘R’, ‘NC17’, ‘NR’ CK_movie
Rental Due_date >= Rental_date CK_Due_date
14.Th c hi n phát sinh t p tin script cho các đ i t ng trong CSDL Movie. Tênự ệ ậ ố ượ c a t p tin là Constraint.sql. V i l a ch n Script Primary Keys, Foreign Keys,ủ ậ ớ ự ọ Default, and Check Constraints.
BÀI T P 3:ẬDùng ch c năng Import/Export (ki m tra k t qu sau m i l n th cứ ể ế ả ỗ ầ ự hi n):ệ
T t c các thông tin nhân viên có trong b ng Employees trong NorthWindấ ả ả ra thành t p tinậ NhanVien.txt.
D li u c a các b ng Products, Orders, Order Details trong b ngữ ệ ủ ả ả NorthWind vào t p tin QLHH.MDB. L u ý: T p tin QLHH.MDB ph i t n t iậ ư ậ ả ồ ạ trên đĩa tr c khi th c hi nướ ự ệ Export.
D li u các b ng Products, Suppliers trong NorthWind ra thành t p tinữ ệ ả ậ SP_NCC.XLS
Các khách hàng có City là LonDon t b ng Customers trong NorthWind raừ ả thành t p tinậ KH.TXT.
Danh sách các s n ph m Products trong NorthWind thành t p tinả ẩ ở ậ SanPham.TXT, thông tin c n l y bao g m ProductID, ProductName,ầ ấ ồ QuantityPerUnit, Unitprice.
Các s n ph m có SupplierID là ả ẩ 1 ho c ặ 2 ho c ặ 3 b ng Products trongở ả NorthWind vào b ng SanPham trong QLBH. L u ý ch ch n nh ng c t màả ư ỉ ọ ữ ộ trong b ng s n ph mả ả ẩ c n.ầ
Các nhà cung c p có Country là ấ USA b ng Suppliers trong NorthWindở ả vào b ng NhaCungCap trong QLBH. L u ý: ch ch n nh ng c t mà trongả ư ỉ ọ ữ ộ b ng Nhacungcapả c n.ầ
Danh sách các nhân viên có trong t p tin Nhanvien.TXT vào b ngậ ả NhanVien
M CSDL QLBH, th c hi n các l nh sau:ở ự ệ ệ1. Thêm vào m i Table 2 dòng d li u thông qua c a s Design. D li u sinh ỗ ữ ệ ử ổ ữ ệ
viên tự nghĩ.
Chú ý: Các ràng bu c c a các Tableộ ủ2. Dùng l nh Insert thêm d li u vào các b ngệ ữ ệ ả sau:
Chú ý: N u b ng nào có d li u b n hãy xóa h t các d li u đó tr c r i ế ả ữ ệ ạ ế ữ ệ ướ ồm i nh p vàoớ ậ
Table NhomHang
Table NhaCungCap
Table SanPham
Table KhachHang
Table HoaDon
Table CT_HoaDon
3. Dùng l nh Update s a ch a d li u theo yêu c uệ ử ữ ữ ệ ầ sau
a) Tăng đ n giá bán lên 5% cho các s n ph m có mã làơ ả ẩ 2
b) Tăng s l ng t n lên 100 cho các s n ph m có nhóm m t hàng là 3 ố ượ ồ ả ẩ ặc a nhà cung c p có mã làủ ấ 2
c) Tăng đi m tích lũy lên 50 cho nh ng khách hàng không ph i là khách ể ữ ảhàng vãng lai
d) C p nh t c t mô t cho s n ph m có tên là Lò vi sóng (d li u c t mô ậ ậ ộ ả ả ẩ ữ ệ ột sinh viên tả ự thêm)
e) Tăng đ n giá g c lên 2% cho nh ng s n ph m mà ph n tên có ch a ơ ố ữ ả ẩ ầ ứchữ u
4. Dùng l nh Delete th c hi n các yêu c uệ ự ệ ầ sau:
a) Xóa các s n ph m có SLTonả ẩ <2
b) Xóa các hóa đ n c a khách hàng vãngơ ủ lai
c) Xóa khách hàng thu c lo i VIP mà có đi m tích lũy b ngộ ạ ể ằ 0