bài 1: web viewdanh sách các sản phẩm ở products trong northwind...

58
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

Upload: hoangnguyet

Post on 04-Mar-2018

220 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 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,

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

Page 2: 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,

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.

Page 3: 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,

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)ủ ớ ủ ạ

Page 4: 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,

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.ệ

Page 5: 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,

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,

Page 6: 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,

FILEGROWTH = %_or_MB)

Ví d 1 : ụ T o CSDL SampleạCREATE DATABASE Sample ON

PRIMARY ( NAME=SampleData, FILENAME='T:\BTSQL\Sample.mdf', SIZE=10MB,

MAXSIZE=15MB,

FILEGROWTH=20%) LOG ON

( NAME=SampleLog,FILENAME='T:\BTSQL\Sample.ldf', SIZE=3MB,

MAXSIZE=5MB,

FILEGROWTH=1MB)

Ví d 2: ụ T o CSDL SalesạCREATE DATABASE Sales

ON PRIMARY

( NAME = Sales1_dat, FILENAME = 'D:\BTSQL\Sales_dat.mdf',

SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ),

( NAME = Sales2_dat, FILENAME = 'D:\BTSQL\Sales2_dat.ndf',

SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ),

FILEGROUP SalesGroup1

( NAME = Sales3_dat, FILENAME = 'D:\BTSQL\Sales3_dat.ndf',

SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ),

( NAME = Sales4_dat,

FILENAME = 'D:\BTSQL\Sales4_dat.ndf',

SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )

LOG ON

( NAME = Sales_log,

FILENAME = 'D:\BTSQL\

Salelog.ldf', SIZE = 5MB,

MAXSIZE = 25MB,

FILEGROWTH = 5MB )

Page 7: 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,

2. Mở CSDL

Cú pháp: USE TenCSDL

Ví d : use Salesụ3. Xem thông c a t t c các CSDL trong Server hi nủ ấ ả ệ hành

Cú pháp: sp_helpdb

4. Xem thông tin c a m tủ ộ CSDL

Cú pháp: sp_helpdb TenCSDL

5. Ki m tra không gian s d ng c aể ử ụ ủ CSDL

Cú pháp: sp_spaceused

6. Thay đ i c u trúc ổ ấCSDL Cú pháp:

ALTER DATABASE database_name

ADD FILE filespec [TO FILEGROUP filegroup_name]

| ADD LOG FILE filespec

| REMOVE FILE logical_filename

| ADD FILEGROUP filegroup_name

| REMOVE FILEGROUP filegroup_name

| MODIFY FILE filespec

| MODIFY FILEGROUP filegroup_name

filegroup_property

| SET optionspec [WITH termination]

Ví d :ụa) Thêm file group GroupOrder vào CSDL Sales

Ví d : ALTER DATABASE Sales ADD FILEGROUP GroupOrderụb) Ch nh s a Size c a t pỉ ử ủ ậ

tin ALTER DATABASE

Sales

MODIFY FILE (NAME = ‘Sales_log’, size =10MB)

c) B sung thêm m t t p tin d li u th c p ổ ộ ậ ữ ệ ứ ấSales_data2 ALTER DATABASE Sales

ADD File (Name =Sales_data2, Filename=‘D:\BTSQL\Sales_data2.mdf’,SIZE =10 MB, Maxsize =20MB)

Page 8: 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,

d) Xóa file th c pứ ấ Sales_data2

ALTER DATABASE Sales REMOVE FILE Sales_data2

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.ả

Page 9: 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,

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

Page 10: 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,

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

Page 11: 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,

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:

LOP (MaLop char(5) , TenLop NVarchar(20), SiSoDuKien Int, NgayKhaiGiang DateTime)

SINHVIEN (MaSV char(5), TenHo NVarchar(40), NgaySinh DateTime,MALOP char(5))

MONHOC(MaMh char(5), Tenmh Nvarchar(30), SoTC int)

KETQUA(MaSV char(5), MAMH char(5), Diem real)

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.

Page 12: 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,

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.

SELECT domain_name, data_type, character_maximum_length

FROM information_schema.domains

Page 13: 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,

ORDER BY domain_name

Ho c ặ SELECT * From Systype

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

Page 14: 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,

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ố

2) T o ạTable Cú

pháp:

CREATE TABLE

[ database_name.[ owner ] .|owner.] table_name

({ < column_definition >

|column_name AS computed_column_expression

| < table_constraint > ::= [ CONSTRAINT

constraint_name ] }

[ { PRIMARY KEY | UNIQUE } [ ,...n ]

)

[ ON { filegroup | DEFAULT } ]

[ TEXTIMAGE_ON { filegroup | DEFAULT } ]

Ví d :ụa) T o b ng có khóa chính ạ ả

CREATE TABLE

Sanpham

(Masp CHAR(5) primary key, Tensp VARCHAR(15), Dvt VARCHAR(10), Dongia SMALLMONEY, SlTon INT )

Page 15: 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,

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.

Page 16: 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,

• Các lo i ràng bu c toàn v n: Not Null, Default, Identity, Constraints, Rule, ạ ộ ẹTriggers, Indexs.

7) Các lo i ràng bu c toànạ ộ

v n Cúẹ pháp:

Cú pháp: < column_constraint > ::=[ CONSTRAINT constraint_name ]

{ [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE } ]

| [ [ FOREIGN KEY ]

REFERENCES ref_table [ ( ref_column ) ]

[ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION }]

]

| CHECK ( logical_expression )

}

a) Đ nh nghĩa NULL/NOTị NULL

• 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

Page 17: 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,

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>

Page 18: 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,

(<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

Cú pháp: < column_constraint > ::=[ CONSTRAINT constraint_name ]

{ [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE } ]

Page 19: 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,

| [ [ FOREIGN KEY ]

REFERENCES ref_table [ ( ref_column ) ]

[ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION }]

]

| CHECK ( logical_expression )

}

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ả

(columname datatype [,…],[CONSTRAINT constraint_name]

PRIMARY KEY [CLUSTERED|NONCLUSTERED]

{(column [ASC |DESC][,…,n])}

[WITH FILLFACTOR = fillfactor]

[ON {filegroup|DEFAULT}]

Ví d : CREATE TABLE DEANụ

(

MADA smallint PRIMARY KEY

CLUSTERED NOT NULL,

TENDA varchar(50) NOT NULL

DEFAULT 'Chua '

)

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

Page 20: 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,

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

TableName

(columname datatype [,…],[CONSTRAINT constraint_name]

UNIQUE [CLUSTERED|NONCLUSTERED]

{(column [ASC |DESC][,…,n])}

[WITH FILLFACTOR = fillfactor]

[ON {filegroup|DEFAULT}]

Ví d : ụ CREATE TABLE jobs

( job_id smallint UNIQUE

CLUSTERED NOT

NULL,

job_desc varchar(50) NOT NULL

DEFAULT 'New Position - title

not formalized yet' )

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]

Page 21: 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,

FOREIGN KEY[(column[,..n])]

REFERENCES ref_table [ ( ref_column [,..n])]) ]

Page 22: 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,

[ 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.

Ví d :ụCREATE TABLE ChucVu

(Macv int primary key, tench varchar(30))

ALTER TABLE NhanVien1

ADD CV int

ALTER TABLE Nhanvien1

Page 23: 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,

ADD CONSTRAINT Cv_FK Foreign key (Macv) REFERENCES Chucvu(Macv))

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ủ ế ổ ề

Page 24: 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,

đ 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ặ

Page 25: 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,

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

Page 26: 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,

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

Page 27: 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,

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?ệ ữ ả ữ ộ ẹ

Page 28: 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,

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

Page 29: 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,

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ế

C tộ

đ cượ tham chi uế

Tên c a ủPrimary Constraint

Cascade

Movie Category_num Category Category_num FK_movie

Rental Cust_num Customer Cust_num FK_rental

Rental_detail Invoice_num Rental Invoice_num FK_detail_invoice delete

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.ả

Page 30: 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,

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

Page 31: 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,

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

Page 32: 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,

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

Page 33: 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,

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