Tải bản đầy đủ (.pdf) (24 trang)

sách bài tập sql 2005 1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (669 KB, 24 trang )

Bài tập SQL 2005 1
SQL Server 2000 Data Type
Money
smallmoney
binary
varbinary
numeric
decimal
float
int
smallint
tinyint
char
varchar
nchar
nvarchar
text
ntext
image
Order Data Type
- timestamp
- bit
- table
- sql_variant
- uniqueidentifier(GUID)
Binary
Monetary
Numberic
Interger
Text
Data integrity


Entity integrity
Referential integrity
Domain integrity
User-defined integrity
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 1 of 24
35/115 Phố Định Công – Hoàng Mai
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Lời giới thiệu
Sách bài tập do tập thể giáo viên AiTi-Aptech thiết kế và được sử dụng như một phần không thể
tách rời khỏi giáo trình đang học của Aptech Ấn Độ với các học viên đang theo học tại Trung tâm.
Tập sách bài tập này là tài liệu lưu hành nội bộ, chỉ dành cho các học viên theo học tại Trung tâm
đào tạo Lập trình viên Quốc tế AiTi-Aptech. Mọi hình thức sao chép lại nội dung của sách là vi phạm
bản quyền và không tuân thủ Luật Sở hữu trí tuệ của Nhà nước Việt Nam.
AiTi-Aptech luôn mong mỏi tạo dựng một môi trường học tập tốt cho các bạn học viên theo học tại
trung tâm. Mọi ý kiến đóng góp về xây dựng Sách bài tập, cải tiến hệ thống xin gửi mail về
hoặc đường dây nóng (04) 6 64 8848. Chúng tôi sẽ ghi nhận và cải
tiến để có thể cung cấp cho các bạn một môi trường học tập ngày một tốt hơn.
“Sự nghiệp tương lai của các bạn là thành công của chúng tôi”
Đội thiết kế Sách bài tập
Việt Nam luôn thiếu Lập trình viên đẳng cấp Quốc tế
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 3 of 24
35/115 Phố Định Công – Hoàng Mai
Contents
Ch ng 1 : Gi i thi u h qu n tr C s d li u (CSDL) ươ ớ ệ ệ ả ị ơ ở ữ ệ 3
Ch ng 2 : T ng quan v SQL Server 2005ươ ổ ề 4
Ch ng 3 : B ng và các ki u d li uươ ả ể ữ ệ 12
Chương 1 : Giới thiệu hệ quản trị Cơ sở dữ liệu (CSDL)
Tóm tắt những nội dung cần ghi nhớ trong chương:

1. Khái niệm: Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan, được lưu trữ có tổ chức theo
dạng bảng nhằm giảm việc lưu dưa thừa dữ liệu và được lưu trữ lại để sử dụng khi cần thiết.
2. Phương pháp tiếp cận Quản lý dữ liệu
- Hệ thống file
- Ưu điểm chính: đơn giản, thuận tiện, hệ thống nào cũng hỗ trợ
- Nhược điểm chính: Dư thừa dữ liệu, dữ liệu không nhất quán, khó khăn trong truy vấn dữ
liệu.
- Hệ thống CSDL
- Ưu điểm: dữ liệu nhất quán, không dư thừa, có khả năng chia sẻ dữ liệu cao, dễ dàng truy
vấn dữ liệu và tính bảo mật cao.
- Nhược điểm: chi phí cao, tốn dung lượng nhớ, các thao tác bảo trì, tối ưu dữ liệu khó
khăn.
3. Hệ quản trị CSDL
1. Khái niệm: CSDL là một tập các dữ liệu có liên quan với nhau còn Hệ quản trị CSDL là một
tập các chương trình được dùng để thêm, sửa, xóa các dữ liệu trong CSDL.
2. (?) Liệt kê những lợi ích của Hệ quản trị CSDL
1) …
2) …
3) …
4) …
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
5) …
6) …
7) …
8) …
4. Các mô hình dữ liệu
- Mô hình File phẳng
- Mô hình Phân cấp
- Mô hình Mạng
- Mô hình Quan hệ

- (?) Thực hiện so sánh ưu nhược điểm trong việc tổ chức và lưu trữ dữ liệu cũng như truy vấn
dữ liệu từ các mô hình trên.
5. Hệ quản trị CSDL Quan hệ
1. Khái niệm: từ khái niệm Hệ quản trị CSDL ta có thể dễ dàng định nghịa khái niệm Hệ quản
trị CSDL Quan hệ (RDBMS) là Hệ quản trị CSDL theo mô hình dữ liệu quan hệ.
2. (?) Các khái niệm trong Hệ quản trị CSDL Quan hệ:
1) Dữ liệu được biểu diễn dưới dạng một tập các…
2) Mỗi quan hệ được biểu diễn dưới dạng…
3) Các cột dữ liệu trong bảng là các…
4) Mỗi dòng dữ liệu biểu diễn thông tin của một…
5) Mỗi bảng dữ liệu có một tập các thuộc tính được gọi là … cho phép biểu
diễn một Thực thể duy nhất.
Bài tập:
1) Viết một chương trình C cho phép lưu dữ liệu của 2 bảng Table 1.8 và Table 1.11 trong trang 18
và 19 của sách vào trong file phẳng.
a. Viết hàm lấy thông tin khách hàng theo số điện thoại, ví dụ nhập liệu: 0241 chương trình hiển
thị thông tin 2 khách hàng là Ryan và Bruce.
b. Viết hàm hiển thị danh sách khách hàng và số lượng đơn hàng mà khách hàng đặt.
2) Hãy liệt kê những câu hỏi truy vấn về những thông tin mà bạn có thể thu được từ Table 1.8 và
Table 1.11 như “Khách hàng đặt nhiều đơn hàng nhất?”, “Từ ngày 01/08/06 đến 20/08/06 có bao
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 5 of 24
35/115 Phố Định Công – Hoàng Mai
nhiêu đơn hàng?” v.v rồi thử trao đổi với các bạn của bạn về những câu hỏi này, cùng nhau xác
định xem cần viết bao nhiêu hàm trong chương trình C để trả lời các câu hỏi này.
Chương 2 : Tổng quan về SQL Server 2005
A. Tóm tắt nội dung cần ghi nhớ
1. Giới thiệu:
SQL Server 2005 là một Hệ Quản lý Cơ Sở Dữ Liệu (CSDL) Quan hệ. Nó cũng được
coi là một nền tảng dữ liệu ở cấp độ doanh nghiệp.
2. SQL Server 2005

a. Các tính năng:
(?) Cho biết các tính năng cơ bản của SQL Server 2005.
Các tính năng mới của SQL Server 2005 bao gồm:
-Notification Services: cho phép gửi thông báo khi có một sự kiện xảy ra trong
CSDL.
-Reporting Services: dịch vụ báo cáo về các sự kiện xảy ra trên hệ thống CSDL.
-Service Broker: công nghệ này dựa trên kiến trúc hướng dịch vụ (Service Oriented
Architecture - SOA). Nó cung cấp phương thức liên lạc chắc chắn và bảo mật giữa
các CSDL với nhau.
-Engine CSDL nâng cao: cải tiến ngôn ngữ Transact-SQL, thêm tính năng mới XML,
thêm kiểu dữ liệu mới,…
b. Các phiên bản:
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
SQL Server chia thành nhiều phiên bản tùy theo nhu cầu sử dụng:
-Bản Enterprise với đầy đủ tính năng, phục vụ những ứng dụng cỡ lớn.
-Bản Standard dành cho doanh nghiệp vừa và nhỏ.
-Bản Workgroup dành cho nhóm làm việc và tổ chức nhỏ.
-Bản Developer dành cho người phát triển và kiểm thử ứng dụng.
-Bản Express là bản miễn phí, chỉ có các tính năng cơ bản nhất.
c. Ưu điểm:
-Nâng cao khả năng quản lý dữ liệu.
-Tăng năng suất và hiệu quả phát triển ứng dụng.
-Hỗ trợ nghiệp vụ thông minh và linh hoạt.
-Có các tính năng ưu việt, nổi trội.
3. Các thành phần của SQL Server 2005:
(?) Nêu các thành phần của SQL Server 2005.
4. Kiến trúc ứng dụng doanh nghiệp
a. Các lớp (layer):
-Data Presentation: nơi người dùng duyệt và truy cập dữ liệu.
-Application Logic: đặt ra các quy định và xử lý dữ liệu.

-Data Services: trực tiếp thao tác và lưu trữ dữ liệu. Bốn chức năng chính thuộc lớp
này là: lấy dữ liệu, chèn thêm dữ liệu, cập nhật và xóa dữ liệu.
b. Các mô hình phân lớp:
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 7 of 24
35/115 Phố Định Công – Hoàng Mai
-Mô hình 2 lớp: gồm 2 lớp Data Presentation và Data Services
-Mô hình 3 lớp: gồm 3 lớp Data Presentation, Application Logic và Data Services.
5. Các CSDL hệ thống:
-master: lưu trữ tất cả thông tin hệ thống cho một instance của SQL Server.
-msdb: được chương trình SQL Server Agent dùng để hẹn giờ thông báo hay thực
hiện tác vụ.
-model: dùng làm mẫu để tạo CSDL mới.
-Resource: chứa các đối tượng hệ thống có trong SQL Server 2005.
-tempdb: dùng để chứa các dữ liệu tạm.
6. File và Filegroup:
Có 3 kiểu file cơ bản trong SQL Server 2005:
-File dữ liệu chính: .mdf
-Các file dữ liệu phụ: .ndf
-File log: .ldf
Filegroup là một nhóm các file chứa dữ liệu và không bao gồm file log.
7. Kiến trúc CSDL
a. Các thành phần logic:
-Các đối tượng trong CSDL: bảng, kiểu dữ liệu, ràng buộc,…
-Thông tin đăng nhập, phân nhóm, phân quyền: login, user, role, group. Có 2 cách xác
thực: dùng user của Windows và dùng user của SQL Server.
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
b. Kiến trúc vật lý:
-Page và Extent: 1 page chiếm 8KB bộ nhớ, 1 extent bằng 8 page.
-File và Filegroup.
-Việc ghi log các giao dịch cho phép khôi phục CSDL về trạng thái trước khi có thay

đổi.
8. Kiến trúc CSDL quan hệ
-Xử lý truy vấn.
-Kiến trúc bộ nhớ.
-Luồng và tác vụ.
-Nhập/Xuất.
-Phân phối truy vấn.
B. Bài tập
1. Cài đặt SQL Server 2005:
Dựa theo Phụ lục A (tr. 263), học viên cài SQL Server 2005 bản Enterprise lên máy của
mình.
Lưu ý:
-Ở Figure 11 (tr. 273), mở mục Documentation, Sample, and… rồi chọn cài đặt
CSDL AdventureWorks.
-Ở Figure 13 (tr. 275), chọn Use the built-in System account, chọn Local system.
2. Kết nối và thao tác:
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 9 of 24
35/115 Phố Định Công – Hoàng Mai
-Mở Microsoft SQL Server Management Studio.
-Kết nối đến instance của SQL Server 2005 bản Enterprise.
-Ngắt kết nối (disconnect) và kết nối lại.
-Đóng và mở lại các panel Object Explorer, Object Explorer Details.
-Duyệt cây thư mục trong Object Explorer, xem xét những thay đổi bên Object
Explorer Details. Cho biết tác dụng của các panel này?
-Mở SQL Server Books Online từ SQL Server Management Studio.
-Trong SQL Server Books Online, mở panel Index (nhấn nút Index trên thanh công
cụ). Tiếp đó tìm kiếm thông tin về “.mdf files”.
3. Truy vấn dữ liệu:
-Sử dụng Query Designer, từ CSDL AdventureWorks lấy dữ liệu về ngày sinh, giới
tính và tình trạng hôn nhân của các nhân viên (bảng HumanResources.Employee).

-Tạo query mới. Sử dụng Query Designer, từ CSDL AdventureWorks, thêm 2 bảng
Employee và Contact. Lấy dữ liệu về họ tên (FirstName, LastName, MiddleName),
ngày sinh, giới tính, tình trạng hôn nhân, chức vụ của các nhân viên.
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
V. Transact-SQL Language
A. Tóm tắt nội dung cần ghi nhớ
1. Giới thiệu:
Ngôn ngữ truy vấn có cấu trúc (Structured Query Language – SQL) là ngôn ngữ phổ
biến dành cho CSDL. Dựa trên chuẩn SQL của Hiệp hội Tiêu chuẩn Quốc tế (ISO) và
Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI), tập đoàn Microsoft đã phát triển một ngôn
ngữ mới, đó là Transact-SQL (T-SQL).
2. Ngôn ngữ T-SQL
a. Biến:
-Biến cục bộ: (?) Nêu cách khai báo và gán giá trị cho biến cục bộ.
-Biến toàn cục: @@VERSION, @@LANGUAGE, @@SERVERNAME,…
b. Kiểu dữ liệu:
-Những đối tượng được định kiểu là: các cột trong bảng, tham số, biến.
-Các kiểu dữ liệu thường dùng: int, bigint, nvarchar, ntext, datetime, smalldatetime,
decimal, image.
c. Ghi chú:
Đây là một dòng ghi chú
/* Đây là một đoạn ghi chú
nằm trên nhiều dòng */
3. Hàm và biểu thức trong T-SQL
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 11 of 24
35/115 Phố Định Công – Hoàng Mai
a. Các hàm:
-Hàm gộp: SUM (tính tổng), AVG (giá trị trung bình), COUNT (đếm), MAX (tìm giá
trị lớn nhất), MIN (tìm giá trị nhỏ nhất).
-Hàm chuyển đổi: CONVERT (chuyển kiểu dữ liệu của một giá trị).

-Hàm ngày giờ: (?)Tìm ví dụ về cách sử dụng các hàm ngày giờ trên SQL Server
Books Online.
-Hàm toán học: phục vụ việc tính toán đại số.
-Hàm hệ thống: cung cấp thông tin về siêu dữ liệu và các cấu hình của hệ thống.
-Hàm xếp hạng: Đánh số dòng bắt đầu từ 1, 2, 3… trong tập hợp kết quả
(ROW_NUMBER); Trả về thứ hạng trong tập hợp kết quả (DENSE_RANK).
b. Biểu thức:
(?)Cho biết các dạng toán tử có thể sử dụng trong biểu thức.
4. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language – DDL)
a. Tạo bảng:
CREATE TABLE <Tên_Bảng>
(<Tên_Cột1> <Kiểu_dữ_liệu>, <Tên_Cột2> <Kiểu_dữ_liệu>,…)
CREATE TABLE Contacts
(MailID varchar(20) PRIMARY KEY, Name text NOT NULL, TelephoneNumber int)
b. Sửa bảng: ALTER TABLE
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
ALTER TABLE <Tên_Bảng>
[ALTER COLUMN <Tên_Cột> <Kiểu_dữ_liệu_mới>]
| [ADD <Tên_Cột> <Kiểu_dữ_liệu>]
| [DROP COLUMN <Tên_Cột>
c. Xóa bảng: DROP TABLE
DROP TABLE <Tên_Bảng>
5. Ngôn ngữ thao tác dữ liệu:
a. Cơ bản:
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language – DML) sử dụng các lệnh
SELECT, INSERT, UPDATE, DELETE để thực hiện những thao tác tương ứng trên các
đối tượng tạo bởi DDL.
UPDATE Contacts
SET TelephoneNumber = 382915 WHERE Name = ‘John’
b. Nâng cao:

-Biểu thức bảng thông thường (Common Table Expression - CTE)
WITH <Tên_CTE> (<Danh_sách_cột_của_CTE>)
AS (SELECT <Danh_sách_cột> FROM <Tên_bảng>)
-Mệnh đề .WRITE: thay đổi một phần giá trị của một biểu thức.
6. Ngôn ngữ điều khiển dữ liệu
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 13 of 24
35/115 Phố Định Công – Hoàng Mai
Ngôn ngữ điều khiển dữ liệu (Data Control Language – DCL) sử dụng các lệnh
GRANT, REVOKE, DENY để phân quyền và hủy quyền truy cập, sửa đổi các đối tượng
trong CSDL.
7. Thực thi câu lệnh T-SQL
Có thể thực thi:
-Từng lệnh riêng lẻ.
-Một khối lệnh.
-Cả file kịch bản (thường có đuôi .sql).
8. T-SQL nâng cao
-Mệnh đề TOP: quyết định số dòng trả về của tập kết quả.
-Mệnh đề TABLESAMPLE: giới hạn số dòng trả về của tập kết quả.
-Mệnh đề OUTPUT: cho thông tin về sự thay đổi của các dòng bởi lệnh INSERT,
UPDATE hoặc DELETE.
-Toán tử PIVOT: Gộp một số giá trị trong bảng rồi chuyển dòng thành cột.
-Toán tử UNPIVOT: Lấy các cột trong bảng rồi chuyển thành các dòng.
B. Bài tập
Trong CSDL AdventureWorks:
-Hiển thị tổng số nhân viên nữ trong bảng HumanResources.Employee.
-Hiển thị 15% số dòng của bảng Person.Contact.
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
-Tạo bảng Item theo cấu trúc sau:
Tên cột Kiểu dữ liệu Kích thước
ItemID Int

Name Nvarchar 200
StandardCost Decimal 18, 4
SellEndDate Datetime
-Lấy tất cả dữ liệu thỏa mãn điều kiện SellEndDate khác NULL từ bảng
Production.Product đưa vào bảng Item.
-Thêm cột Picture có kiểu dữ liệu Image vào bảng Item.
-Tăng StandardCost thêm 5% đối với các sản phẩm có tên là “Road-150 Red, 44”
trong bảng Item.
-Đổi kiểu dữ liệu của cột ItemID trong bảng Item thành Bigint.
-Hiển thị thông tin về tên và giá chuẩn của các sản phẩm có ItemID > 820 trong bảng
Item.
-Xóa cột Picture khỏi bảng Item.
-Xóa thông tin về các sản phẩm có tên là “HL Mountain Frame - Black, 48” trong
bảng Item.
-Hủy toàn bộ bảng Item.
-Tạo một file script ghi lại các thao tác đã thực hiện trong bài tập này. Đặt tên file là
“baitap05.sql”.
-Sử dụng các ghi chú để mô tả rõ ý nghĩa của từng dòng lệnh. VD:
Delete all records from table Item
DELETE FROM Item
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 15 of 24
35/115 Phố Định Công – Hoàng Mai
-Đóng file “baitap05.sql”. Mở lại file này, nhấn F5 để chạy toàn bộ các lệnh trong file.
Quan sát kết quả và nêu nhận xét.
Chương 3 : Bảng và các kiểu dữ liệu
I. Bảng – Table:
Trong cơ sở dữ liệu bảng là thành phần chính của chúng.Do bảng là đối tương lưu trữ dữ liệu thực , khi cần
giao tiếp với cơ sở dữ liệu khác, bảng là đối tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào, chúng được
coi như là một miền dữ liệu.
Mỗi bảng được định nghĩa nhiều trường,mỗi trường(field hay còn gọi là column name) ứng với một loại kiểu dữ

liệu. Dữ liệu nhập vào có thể chấp nhận hoặc từ chối tùy thuộc vào nguyên tắc ràng buộc dữ liệu hoặc loại dữ liệu
tương thích do hệ thống hay người dùng định nghĩa.
Khi thiết kế cơ sở dữ liệu nên đặt tên bảng đúng chuẩn, điều này giúp cho việc lập trình theo nhóm ,hay làm việc
trong các công ty chuyên nghiệp, bạn nên sử dụng tiếp đầu ngữ ‘tbl’ trước, kế đến là tên bảng
VD: tblEmployee, tblCustomer, tblOrders…
Khi định nghĩa bảng số liệu, bạn cần quan tâm đến các yếu tố sau:
 Key: Trường đó có Khóa hay không (Primary key)
 ID: Trường có thuộc tính Indentity hay không
 Column name: Tên của trường (cột)
 Data Type: Loại dữ liệu cho trường tương ứng
 Size: Kích thước trường dữ liệu
 Allow null: Cho phép giá trị rỗng lưu trong trường hay không
 Default: Giá trị mặc nhiên cho trường
 Identity: Nếu bạn cần sử dụng một trường có giá trị tự động như Autonumber trong Access, trường này
Not Null và Identity:Yes
 Identity Seed: Nếu trường (cột) này là Identity , cần số bắt đầu số 1 hoặc 2…
 Identity Increament: Số nhảy cho mỗi lần tăng
1) Tạo bảng- Create table:
Tên bảng nên đặt ngắn gọn và dễ hiểu, không có khoảng trắng, không trùng với những từ dành riêng, có ý
nghĩa để khi đồng nghiệp của bạn cùng phát triển ứng dụng sẽ dễ dàng hiểu được
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Cú pháp đầy đủ phát biểu tạo bảng như sau:
CREATE TABLE <Table_Name>
(<Column_Name> <Data_Type>)
Example:
CREATE TABLE tblEmployee
(
Type_emp nvarchar(2),
Name_emp nvarchar(20)
)

2) Tên cột – Column Name:
Đặt tên cột cũng giống như đặt tên bảng, có rất nhiều qui tắc đặt tên ( như đã trình bày ở phần table nhưng
khuyến khích bạn đặt tên theo một số qui tắc cơ bản sau:
 Tên cột bắt đầu bằng chữ hoa, còn lại bằng chữ thường
 Tên ngắn gọn và đầy đủ ý nghĩa
 Không nên đặt tên cột có khoảng trắng, sau này bạn sẽ gặp phiền toái khi tham chiếu đến trường đó
 Không nên đặt cột trùng với từ khóa, từ dành riêng và những ký tự đặc biệt như các phép toán hay toán tử
khác
3) Kiểu dữ liệu – Data Type:
Khi xây dựng cơ sở dữ liệu, tất cả các trường trong bảng cần phải có kiểu dữ liệu cụ thể.Vấn đề
quan trọng là việc chọn kiểu dữ liệu nào cho phù hợp với dữ liệu mà người dùng sẽ nhập vào.
Để thiết kế dữ liệu cho phù hợp với thực tế ngoài tính ứng dụng hợp với ngữ cảnh bạn cũng cần
quan tâm đến kiểu dữ liệu tương thích và chiều dài của từng cột
VD: [CustomerNo] [varchar] (10) NULL
Dưới đây là một số kiểu mà SQL 2000 hỗ trợ:
Trên thực tế, thông thường trong quá trình xử lý dữ liệu, một vài trường hợp khi cần trao đổi
thông tin nhưng có sự khác nhau về kiểu dữ liệu chúng ta cần có các hàm chuyển đổi qua lại các kiểu dữ
liệu
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 17 of 24
35/115 Phố Định Công – Hoàng Mai
Để làm được điều này chúng ta cần một số kiến thức về các hàm chuyển đổi của SQL Server. Tuy
nhiên cũng có một số kiểu dữ liệu không thể chuyển đổi được.
Ví dụ như binary không thể chuyển đổi sang dữ liệu số như float hay real. Nhưng bạn có thể chuyển đổi
float, real, decimal, numeric sang text hay ntext
4) Toàn vẹn dữ liệu – Data integrity:
Trong quá trình chạy ứng dụng thì việc toàn vẹn dữ liệu trong cơ sở dữ liệu là một điều rất quan trong.
SQL Server 2000 cung cấp một vài thuộc tính tối ưu trong phương thức ràng buộc dữ liệu khi xây dựng cơ sở
dữ liệu.
Constrains còn gọi là ràng buộc. Nó dùng để kiểm tra khi có sự biến đổi dữ liệu như thêm vào, xóa, cập
nhật từ bất kỳ nguồn nào khác nhau

Một số bảng có sự thay đổi về lượng và chất của dữ liệu phải theo một qui luật nhất định nào đó nhằm
bảo toàn được tính ràng buộc trọn vẹn đối với dữ liệu đang tồn tại trong những bảng có quan hệ với nhau.
Mỗi khi các hành động làm thay đỏi dữ liệu xảy ra, quá trình kiểm tra các ràng buộc được thực hiện như
là một phương thức để rà soát lại tất cả các điều kiện và các qui luật khi thiết lập cơ sở dữ liệu
Nếu một dữ liệu thêm vào hoặc xóa đi hay cập nhật không thỏa mãn điều kiện hoặc qui luật đã định, tùy
vào nhóm phân lỗi mà SQL phát sinh ngoại lệ (exception) nhằm thông báo cho người dùng biết rằng dữ liệu
đưa vào không hợp lệ,dữ liệu khi đó sẽ không được phép cập nhật và thay đổi trong cơ sở dữ liệu.
Data integrity có thể phân loại thành bốn loại sau:
1. Domain integrity:
Domain integrity liên quan đến nhiều cột.Ứng với mỗi cột có một qui luật hay tiêu chuẩn.Khi bạn thêm
hay cập nhật mẩu tin ràng buộc này kiểm tra mà không cần xét đến sự liên quan đến các mẩu tin trong
bảng
2. Entitty integrity:
Entity integrity liên quan đến các mẩu tin, ràng buộc này không quan tâm đến cột trong mẩu tin, kiểm tra
số liệu có đúng tiêu chuẩn hay không
3. Referential integrity:
Referential integrity kiểm tra giá trị của cột có phù hợp với cột trong bảng khác quan hệ với bảng hiện chứa
ràng buộc hay không.
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
4. User-defined integrity
Đây là kiểu toàn vẹn dữ liệu do người dùng tự tạo ra để kiểm tra tính toàn vẹn dữ liệu trong cơ sở dữ liệu.
Dưới đây là danh sách chi tiết các dàng buộc cụ thể của từng loại:
Integrity type SQL Server Tools
Entity Integrity
1. Dàng buộc khóa chính- Primary Key
Constraints
2. Dàng buộc duy nhất – UNIQUE
Constraints
3. Dàng buộc đồng nhất – IDENTITY
columns

Domain Integrity
1. Ràng buộc mặc nhiên - DEFAULT
definition
2. Ràng buộc khóa ngoại - FOREIGN
KEY constraint
3. Ràng buộc kiểm tra - CHECK
constraint
4. NOT NULL property
Referential Integrity
1. FOREIGN KEY constraint
2. CHECK constraint
User-defined Integrity
3. Rules
4. Stored Procedures
5. Triggers
5) Ràng buộc khóa chính – Promary Key constraints:
Primary key được chia làm hai kiểu:
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 19 of 24
35/115 Phố Định Công – Hoàng Mai
o Composite key
o Candidate key – Identifying the Primary Key
Primary key là cách duy nhất để nhận dạng một mẩu tin trong bảng dữ liệu nên chúng phải chứa duy nhất
một giá trị, không thể null, và tuân theo các ràng buộc với các bảng quan hệ khác. Khóa chính là nền tảng cho
ràng buộc Primary constraints. Khi dữ liệu thêm vào hay sửa đổi trên cột Primary key quá trình kiểm tra ràng
buộc Primary Key sẽ xảy ra.
Note:
o Một bảng có duy nhất một khóa chính
o Một khóa chính có thể chứa một hoặc nhiều trường
o Primary key không thể xóa nếu tồn tại một foreign key tới bảng khác
o Khi tạo primary key trong bảng mà đã chứa dữ liệu thì SQL server 2000 check xem dữ liệu trong cột cần

tạo primary key có null hay trùng lắp giá trị không.nếu null hay trùng lắp SQL server 2000 sẽ trả về một
lỗi
 Tạo khóa chính trong bảng:
Systax:
CREATE TABLE Table_Name
( Column_definition PRIMARY KEY)
Example:
CREATE TABLE Reservation
( PNR_no int PRIMARY KEY )
Hoặc sau khi bạn tạo xong bảng dữ liệu:
ALTER TABLE Table_name
ADD CONSTRAINT <constraint_nam>
PRIMARY KEY (column_name)
Example:
ALTER TABLE Rerservation
ADD CONSTRAINT PK_const
PRIMARY KEY (PNR_no)
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
6) Ràng buộc khóa phụ - FOREIGN KEY Constraint:
Foreign key dùng để tạo mối quan hệ giữa các bảng với nhau với một bảng là bảng chính và một bảng là
bảng phụ.
Syntax:
<column_name> FOREIGN KEY REFERENCES Table_name (column_name)
Or:
CONSTRAINT FOREIGN KEY(column_name) REFERENCES Table_name (column_name)
7) Ràng buộc duy nhất - Unique constraints:
- Ràng buộc này giống như ràng buộc khóa chính nhưng chỉ yêu cầu giá trị duy nhất chứa trong cột trong
mỗi bảng dữ liệu.
- Một khi đã thiết lập ràng buộc duy nhất cho một cột thì giá trị trong cột là duy nhất. Nếu giá trị trong cột
thay đổi khi mẩu tin thêm vào hay sửa đổi bị trùng lắp, lỗi sẽ phát sinh.

 Tạo Unique constraint:
CREATE TABLE Table_name
( <column_name> NOT NULL UNIQUE)
Nếu bảng đã tồn tại:
ALTER TABLE Table_name ADD CONSTRAINT UK_name UNIQUE(column_name)
Note:
o UNIQUE cho phép chứa giá trị null
o UNIQUE cũng có thể được coi là FOREIGN KEY
8) Identity property:
Một cách khác để bảo toàn dữ liệu thực thể là áp dụng thuộc tính identity cho cột.Thuộc tính này có thể
áp dụng cho các kiểu dữ liệu như decimal, int, smailint or numberic.Khi đó nó sẽ tạo giá trị duy nhất cho các
dòng dữ liệu trong bảng.
Syntax:
Column_name Data Type IDENTITY (seed,increment)
9) Ràng buộc kiểm tra – Check Constraint:
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 21 of 24
35/115 Phố Định Công – Hoàng Mai
Sự ràng buộc này rất thú vị. Thông thường khi nhập thêm mẩu tin hay cập nhật số liệu đôi khi do nhầm
lẫn trong thao tác nhập liệu, giá trị người dùng đưa vào không đúng như mong muốn ( tuy nguyên tắc cú pháp
thì phù hợp), cho nên giá trị đó vẫn tồn tại, mặc dù kết quả trả về không đúng
Để ngăn điều này xảy ra, chúng ta cần có ràng buộc CHECK. Mục đích của ràng buộc này là kiểm tra lại
các giá trị trong các cột ràng buộc có phù hợp hay không
VD:
ALTER TABLE tblSIM
ADD CONSTRAINT CN_tbnSIMInvoiceDate
CHECK (InvoiceDate<= getDate())
10) Ràng buộc mặc nhiên:
Ràng buộc này giúp giống như các ràng buộc khác, nó giúp cho định nghĩa của bảng có dữ liệu
phù hợp ngay cả khi không được người dùng nhập vào.
Khi các bạn thêm một mẩu tin vào nếu bạn đưa dữ liệu vào trường đó rỗng thì giá trị default sẽ

được sử dụng
Syntax:
<column_name> data_type DEFAULT value
Or:
ALTER TABLE Table_name ADD CONSTRAINT cons_name
DEFAULT value FOR Column_name
11) Thay đổi cấu trúc bảng và xóa bảng:
Khi tạo bảng song ,đôi khi chúng ta cần thay đổi các trường trong bảng đó, hay các constraint trong bảng hoặc
xóa bảng…Các thao tác đó chúng ta có thể hoàn toàn làm được với:
o Enterprise Manager
o Transact- SQL
1. Thay đổi cấu trúc bảng:
Sách bài tập SQL 2005 1 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
- Như thêm một cột, thay đổi cột hoặc xóa cột
- Thay đổi tên bảng
- Thêm dòng, sửa xóa dữ liệu
Cú pháp thay đổi cấu trúc bảng:
ALTER TABLE <Table_name>
[ALTER COLUMN <Column_name> <New_data_type>]
| ADD [Column_name <Data_type>]
| DROP COLUMN <Column_name>]
2. Xóa bảng:
Syntax:
DROP TABLE <Table_name>
Bài tập chương:
Thiết kế cơ sở dữ liệu lưu trữ thông tin của khách hàng với các bảng
Customers: chứa thông tin chi tiết của khách hàng đó
Accounts: chứa thông tin về account người sử dụng
CustomerType:Dùng phân loại các kiểu khách hàng
Customers :

• Id : Khóa chính
• Type: khách thuộc loại nào ( Khóa phụ liên kết với bảng CustomerType)
• Name: tên của khách
• Gender: giới tính
• Phone
• Company
• BirthDay ( với điều kiện nhỏ hơn ngày hiện tại)
• Age
• DateCreate: Ngày tạo (mặc định là ngày hiện hành)
Accounts:
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 23 of 24
35/115 Phố Định Công – Hoàng Mai
• Cust_Id: khóa ngoại liên kết với bảng Customer
• Email: ( khóa chính )
• Password:
CustomerType:
• Name_Type: Tên kiểu ( Khóa chính)
• DiscountRate: phần trăm giảm giá cho khách hàng ( mặc định là 5)
• Describe: Mô tả
Sau khi tạo xong các bảng thực hiện thay đổi những
Thêm hai trường sau vào bảng Customers:
• Address
• Country
Xóa trường Age trong bảng Customers

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×