Bài giảng Hệ quản trị cơ sở dữ liệu - Bài 5: Tạo bảng và các ràng buộc toàn vẹn dữ liệu

Mục tiêu của bài 5

Tạo bảng

Thêm dữ liệu vào bảng

Xóa bảng

Các kiểu ràng buộc toàn vẹn dữ liệu

Các ràng buộc:

Khóa chính

Duy nhất

Khóa ngoại

Kiểm tra

Mặt định

ppt27 trang | Chia sẻ: hienduc166 | Lượt xem: 658 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ quản trị cơ sở dữ liệu - Bài 5: Tạo bảng và các ràng buộc toàn vẹn dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút TẢI VỀ ở trên
 Bài 5: Tạo bảng và các ràng buộc toàn vẹn dữ liệuMục tiêu của bài 5Tạo bảngThêm dữ liệu vào bảngXóa bảngCác kiểu ràng buộc toàn vẹn dữ liệuCác ràng buộc:Khóa chínhDuy nhấtKhóa ngoạiKiểm traMặt định1 Tạo bảng và các ràng buộc dữ liệuTạo bảng trong SQLTrong SQL Server, bảng là một đối tượng của cơ sở dữ liệu dùng để lưu trữ dữ liệu.Dữ liệu trong bảng được tổ chức thành dòng và cột.Mỗi dòng trong bảng thể hiện một bộ dữ liệu duy nhất và mỗi cột thể hiện thuộc tính của bộ dữ liệu.Một bảng trong MS SQL có tối đa là 1024 cột.Nếu cột không có giá trị thì giá trị của nó được thể hiện là giá trị NULL. Lưu ý giá trị NULL khác với số 0.2 Tạo bảng và các ràng buộc dữ liệuTạo bảng trong SQL (Tiếp theo)Để tạo bảng trong SQL Server ta dùng câu lệnh CREATE TABLE. Lệnh này có cú pháp như sau:CREATE TABLE Tên_bảng(	Tên_cột kiểu_dữ_liệu [NULL | NOT NULL]	[IDENTITY (SEED, INCREMENT)],	 Tên_cột kiểu_dữ_liệu )[ON {nhóm_file} | DEFAULT]3 Tạo bảng và các ràng buộc dữ liệuTạo bảng trong SQL (Tiếp theo)Ví dụ:CREATE TABLE Sales(ItemCode char(4) NOT NULL,ItemName char(10) NULL,QtySold int NOT NULL,SellingDate datetime NOT NULL)4 Tạo bảng và các ràng buộc dữ liệuTạo bảng trong SQL (Tiếp theo)Ví dụ minh họa: Viết câu lệnh SQL tạo bảng Newspaper và thêm dữ liệu vào bảng Newspaper, trong đó mã tờ báo và tên không được để trống.5 Tạo bảng và các ràng buộc dữ liệuTạo bảng trong SQL (Tiếp theo)Câu lệnh:CREATE TABLE NewsPaper(cNewsPaperCode char(4) NOT NULL,cNewsPaperName char(20) NOT NULL,vRegion varchar(20),vTypeOfNewsPaper varchar(20),vContactPerson varchar(35),vHOAddress varchar(35),cCity char(20),cState char(20),cZip char(10),cCountryCode char(3),cFax char(15),cPhone char(15))6 Tạo bảng và các ràng buộc dữ liệuKiểm tra thông tin của bảng vừa tạoTrong MS SQL Server, bạn có thể kiểm tra thông tin của bảng vừa được tạo ra bằng câu lệnh: 	sp_Help tên_bảng.Trong cửa sổ query Analyzer:	sp_Help Newspaper7 Tạo bảng và các ràng buộc dữ liệuThêm dữ liệu vào bảngSau khi tạo bảng, dữ liệu có thể được thêm vào bảng bằng câu lệnh INSERTCú pháp của câu lệnh INSERT như sau:INSERT [INTO] tên_bảng [column_list]VALUES (values_list)Câu lệnh thêm dữ liệu vào:INSERT NewspaperVALUES('0001' ,'Texas Times', 'Texas', 'General', 'JacksonDemello','4723 West Alabama', 'Houston', 'Texas', '77015-4568','001', '(713)451-6797', '(713)451-6850')8 Tạo bảng và các ràng buộc dữ liệuXóa bảng ra khỏi cơ sở dữ liệuXóa bảng ra khỏi cơ sở dữ liệu dùng câu lệnh DROP TABLE. Cú pháp của câu lệnh này như sau:	DROP TABLE Table_nameVí dụ: Xóa bảng Newspaper vừa mới tạo ra:	DROP TABLE newspaperKiểm tra kết quả: sp_Help Newspaper9 Tạo bảng và các ràng buộc dữ liệuRàng buộc toàn vẹn dữ liệuRàng buộc toàn vẹn đảm bảo tính nhất quán và đúng đắn của dữ liệu được lưu trữ bên trong cơ sở dữ liệu. Ràng buộc toàn vẹn được phân thành 4 loại:Ràng buộc thực thể.Ràng buộc miền trịRàng buộc tham chiếu.Ràng buộc do người dùng định nghĩa.10 Tạo bảng và các ràng buộc dữ liệuRàng buộc toàn vẹn dữ liệu (Tiếp theo)Ràng buộc thực thể: 	Là ràng buộc đảm bảo rằng một dòng được xác định duy nhất bởi một hoặc nhiều thuộc tính gọi là khóa chính. Ràng buộc thực thể được hiện thực bằng ràng buộc PRIMARY KEY.Ràng buộc miền trị:	Là ràng buộc đảm bảo rằng giá trị được lưu giữ trong 1 cột phải nằm trong một miền trị hợp lệ được xác định trước. Ràng buộc miền trị được hiện thực bằng ràng buộc CHECK.11 Tạo bảng và các ràng buộc dữ liệuRàng buộc toàn vẹn dữ liệu (Tiếp theo)Ràng buộc tham chiếu: 	Là ràng buộc đảm bảo rằng giá trị của khóa ngoại được lưu trữ phải là khóa chính trong bảng khác. Ràng buộc này được hiện thực bằng ràng buộc PRIMARY KEY và FOREIGN KEY.Ràng buộc do người dùng định nghĩa:	Là ràng buộc do người dùng định nghĩa, ràng buộc này không thuộc vào các loại ràng buộc được định nghĩa ở trên. 12 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộcRàng buộc được dùng để đảm bảo tính toàn vẹn của dữ liệu.Ràng buộc định nghĩa những luật mà dữ liệu phải tuân theo nhằm đảo bảo tính nhất quán và đúng đắn của dữ liệu được lưu trữ.Ràng buộc có thể được tạo ra khi bảng được tạo ra hoặc có thể được thêm vào sau khi bảng đã được tạo ra.Ràng buộc có thể ở 2 tầm vựcTầm vực cộtTầm vực bảng13 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc (Tiếp theo)Cú pháp của câu lệnh tạo ràng buộc như sau:	CREATE TABLE tên_bảng	tên_cột CONSTRAINT tên_ràng buộc loại_ràng_buộc [,CONSTRAINT tên_ràng_buộc loại_ràng_buộc]Cú pháp của câu lệnh thêm vào ràng buộc vào bảng đã có như sau:	ALTER TABLE tên_bảng	[WITH CHECK | WITH NOCHECK]	ADD CONSTRAINT tên_ràng_buộc loại_ràng_buộc14 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc (Tiếp theo)Ví dụ:	ALTER TABLE Sales WITH NOCHECK	ADD CONSTRAINT chkQtySold CHECK (QtySold >0)Xóa ràng buộc dùng câu lệnh có cú pháp như sau:	ALTER TABLE tên_bảng	DROP CONSTRAINT tên_ràng_buộc15 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc Primary KeyRàng buộc PRIMARY KEY được định nghĩa trên một hay nhiều cột mà giá trị của nó xác định duy nhất một dòng trong bảng.Cú pháp của ràng buộc này như sau:	[CONSTRAINT tên_ràng_buộc PRIMARY KEY	[CLUSTERED|NONCLUSTERED]	(tên_cột [, tên_cột [, tên_cột [, ]]])]Ví dụ:	CREATE TABLE Employee	(cEmployeeCode char(4) CONSTRAINT pkEmployeeCode PRIMARY KEY, )16 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc UNIQUERàng buộc UNIQUE dùng để đảm bảo tính duy nhất của một cột hay nhiều cột cho các thuộc tính không phải là khóa chính.Có thể có nhiều ràng buộc UNIQUE được định nghĩa trên một bảng.Ràng buộc UNIQUE có cú pháp như sau:	[CONSTRAINT tên_ràng_buộc UNIQUE [CLUSTERED | NONCLUSTERED]	(tên_cột [, tên_cột[, tên_cột[, ]]])Ví dụ:	ALTER TABLE Employee	ADD CONSTRIANT unqSocialSecurity UNIQUE (cSocialSecurityNo)17 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc FOREIGN KEYRàng buộc FOREIGN KEY được dùng để đảm bảo tính nhất quán của hai bảng khi dữ liệu của bảng này phụ thuộc vào dữ liệu của bảng kia.Cú pháp:	[CONSTRAINT tên_ràng_buộc FOREIGN KEY (tên_cột [, tên_cột [, ]])	REFERENCES tên_bảng (column_name [, tên_cột [, ]])]Ví dụ:	ALTER TABLE Employee	ADD CONSTRAINT fkDepartmentCode FOREIGN KEY (cDepartmentCode) 	REFERENCES Department(cDepartmentCode)18 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc CHECKRàng buộc CHECK dùng để đảm bảo giá trị của cột thuộc về một miền trị cho trước.Cú pháp:	[CONSTRAINT tên_ràng_buộc] CHECK (expression)Ví dụ:	CREATE TABLE ContractRecruiter	(	cCity char(15) CONSTRAINT chkCity CHECK (cCity IN ('Berkeley',	'Boston', 'Chicago', 'Dallas', 'München', 'New Jersey', 'NewYork', 'Paris', 'Washington'))	)19 Tạo bảng và các ràng buộc dữ liệuTạo ràng buộc DEFAULTRàng buộc DEFAULT dùng để gán giá trị mặt định cho cột khi giá trị của cột đó không được xác định.Trên một cột, chỉ có tối đa 1 ràng buộc DEFAULT.Cú pháp:	[CONSTRAINT tên_ràng_buộc] DEFAULT (constant_expression | NULL)Ví dụ:	ALTER TABLE Employee	ADD CONSTRAINT defCity DEFAULT 'Chicago' FOR cCity20 Tạo bảng và các ràng buộc dữ liệuVí dụ tạo ràng buộcHãy viết câu lệnh SQL tạo bảng Newspaper ở trên với một số yêu cầu như sau:Thuộc tính cNewspaperCode phải là khóa chính.Thuộc tính cPhone có giá trị: ([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]Thuộc tính cCountryCode có giá trị mặc định là ‘001’Trong bảng NewAd hãy sửa lại thuộc tính của bảng này như sau:Thuộc tính cNewsAdNo là khóa chínhThuộc tính cNewspaperCode là khóa ngoại tham chiếu đến bảng Newspaper.21 Tạo bảng và các ràng buộc dữ liệuVí dụ tạo ràng buộc:CREATE TABLE Newspaper(	cNewspaperCode typNewspaperCode CONSTRAINT pkNewspaperCode PRIMARY KEY,	cNewspaperName char(20) NOT NULL,	vRegion varchar(20),	vTypeOfNewspaper varchar(20),	vContactPerson varchar(35),	vHOAddress varchar(35),	cCity char(20),	cState char(20),	cZip char(10),	cCountryCode char(3) CONSTRAINT defCountryCode DEFAULT('001'),	cFax char(15),	cPhone char(15) CONSTRAINT chkPhone CHECK(cPhone LIKE('([0-9][0-	9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')))22 Tạo bảng và các ràng buộc dữ liệuVí dụ tạo ràng buộc	ALTER TABLE NewsAd	ADD CONSTRAINT pkNewsAdNo PRIMARY KEY (cNewsAdNo)	ALTER TABLE NewsAd	ADD CONSTRAINT fkNewspaperCode FOREIGN KEY (cNewspaperCode)REFERENCES Newspaper(cNewspaperCode)23 Tạo bảng và các ràng buộc dữ liệuTóm tắtTrong bài này bạn được họcTạo bảngThêm dữ liệu vào bảngXóa bảngCác kiểu ràng buộc toàn vẹn dữ liệuCác ràng buộc:Khóa chínhDuy nhấtKhóa ngoạiKiểm traMặt định24 Tạo bảng và các ràng buộc dữ liệuTóm tắt (Tiếp theo)Trong bài này bạn được họcTạo ràng buộc PRIMARY KEYTạo ràng buộc FOREIGN KEYTạo ràng buộc UNIQUETạo ràng buộc CHECKTạo ràng buộc DEFAULT25 Tạo bảng và các ràng buộc dữ liệuBài tậpBài 1: Tạo bảng colleges và thêm dữ liệu vào bảng này theo mô tả như sau:26 Tạo bảng và các ràng buộc dữ liệuBài tậpBài 2: Tạo lại bảng colleges theo yêu cầu như sau:cCollegeCode phải là khóa chínhPhone number phải có dạng ([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]cCity phải có giá trị mặt định là New Orleans'Bài 3: Tạo bảng CampusRecruitment (cCampusRecruitmentCode char(4), cCollegeCode char(4), dRecruitmentStartDate datetime, dRecruitmentEndDate datetime) thỏa mãn các điều kiện:cCampusRecruitmentCode là khóa chínhcCollegeCode là khóa ngoại của bảng colleges27 Tạo bảng và các ràng buộc dữ liệu

File đính kèm:

  • pptDB_Lesson5.ppt