tự học SQL nhanh chóng hiệu quả
Trang 1Tự học nhanh và hiệu quả
SQL SERVER 7.0
Trang 2TU HOC NHANH
vl HIE QUA
CQL SERVER 10
Trang 3Lời nói đầu
của SQL Server 7 vào việc quản lý cơ sở đữ liệu cũng như lạo
và phát triển các trình ứng dụng sử đụng các cơ sở đữ liệu
SQL Server, chúng tôi biên soạn cuốn “Tự học nhanh và hiệu quả SOI, Server 7.0”
N= giúp các bạn tận dụng tối đa những tính năng cao cấp
Sách gồm 20 bài và được bố cục thành ba phần chính:
Từ bài 1-4, bạn sẽ học những điểm cơ bản về một cơ sở dữ liệu quan
hệ là gì, cách truy tìm và chỉnh sửa dữ liệu
Từ bài 5-10, bạn sẽ học cách áp dụng cơ sở dữ liệu vào công việc
thực tế bằng cách sử dụng di liệu trong các trình ứng dụng phổ biến như
Microsoft Word và Microsoft Excel, cách xuất bản dữ liệu lên một Web site
Tw bai 11-20, bạn sẽ được giới thiệu chỉ tiết hơn về SQL Server cũng như hướng dẫn bạn cách tạo các cơ sở dữ liệu, phân tích dữ liệu, thực hiện những tác vụ quản lý cơ bản, di chuyển và biến đổi dữ liệu
Với cách bế cục và nội dung nêu trên cùng với hình anh minh hoa rõ
ràng, chúng tôi hy vọng sách này sẽ là nguồn tham khảo bổ ích cho các bạn
Trong quá trình biên soạn, mặc dù đã hết sức cố gắng nhưng sách vẫn không thể tránh khỏi những thiếu sót ngoài ý muốn, nhóm biên soạn
rất mong nhận được những góp ý chân thành từ bạn đọc
Tác giả
Trang 4Bai 1: Dinh nghia vé SQL Server 7
SQL Server là một hệ thống quản lý cơ sở dữ liệu quan hệ
hay RGBMS Một RDBMS lưu trữ dữ liệu theo một dạng cấu
trúc trên một server cơ sở dữ liệu nhằm cho phép nhiều người
sử dụng dữ liệu từ các máy tính khác nhau được gọi là các client, cùng một lúc Bài này sẽ trình bày tổng quan về SQL
Server là gì và chức năng của nó
ŒiŒ THÌNH DHẦN ÿÙL ÝEhUER
SQL Server 7 có nhiều dịch vụ chạy trên Windows NT/Win-
dows 2000 hay các chương trình nền trên Windows 98 Những
Trang 5dịch vụ này là MSSOL Server (SQL Server), Search Service, MSDTC, va SQfServerAgetn Các dịch vụ được minh họa ở
hình 1.1 Một dịch vụ mà bạn có thể nghe đến là dịch vụ OLAP, nằm ngoài phạm vi của sách này,
Distributed SQL Server Transactions
Hinh 1.1 Cae dich vu SQL Server
Dich vu SQL Server là trình quản lý cơ sở dữ liệu cốt lõi và
là dịch vụ duy nhất phải chạy Bộ phối hợp giao tác phân phối
(MSDTC) tương tác với các SQL Server khác và với MS Trans- action Server (MTS) để phối hợp các giao tác với những trình úng dụng chạy trên nhiều máy tính hay công nghệ Dịch vụ tìm
kiếm (Search service) điều khiển việc tìm kiếm toàn text, cho
phép bạn tìm kiếm qua dữ liệu text trong cơ sở dữ liệu của bạn;
dịch vụ Search không được cài đặt theo mặc định, do đó nó có
Trang 6Bai 1: Dinh nghia vé SQL Server 9
thé không hiện diện trên server của bạn Sau củng,
SQLServerAgent là một bộ lập thời biểu tác vụ nhằm xử lý tất
cả tác vụ theo định kỳ, chẳng hạn như bảo trì và sao chép
Những tiến trình này hoạt động cùng với nhau để quản lý và cho phép bạn truy cập các cơ sở dữ liệu Một SQL Server có thể điều khiển nhiều cơ sở dữ liệu trên cùng một server Mỗi SQL
Server sẽ có tối thiểu các cơ sở dữ liệu model, msdb, master, và
tempdb Bạn sẽ thường tìm thấy hai cơ sở dữ liệu mẫu, Northwind
và pubs, cũng như các cơ sở dữ liệu của công việc của bạn
Nhiều cơ sở đữ liệu cho phép các loại công việc khác nhau
được nhóm thành các thực thể độc lập để dễ quản lý mà không đòi hỏi nhiều server instance để phục vụ cho người dùng
Khi bạn làm việc SQL Server, bạn sẽ nhận ra rằng nó có
những tính năng vốn cần một hay nhiều tiến trình ngoại vi chạy
Ví dụ, nếu bạn muốn chạy các tác vụ được lập thời biểu, bạn sẽ
cần SQLServerAgent chạy trên server Nếu bạn là một người dùng hệ thống (không phải là một nhà quản lý), bạn sẽ cần
phối hợp với nhà quản lý về bất kỳ dịch vụ mà bạn cần đã
không có sẵn
Chắc chăn, bạn sẽ có những cau hdi khi ban su
ST “ dụng SQL Server Để có được những lời giải đáp,
Sy) hay thi¥ Books Online Books Online là một bộ tài
liệu hướng dẫn toàn điện mỏ tả mọi khía cạnh của SQL Server, từ quản lý đến những phương pháp
khó hiểu để lập trình các ứng dụng Books Online
cũng chứa một index và mội trình tiện ích nghiên
cứu toàn text, qua đó bạn có thể tìm thấy bất kỳ
thông tin mã bạn cần trong các sách Bởi vì nó
Trang 7được phân phối dưới dạng một file HTML được biên
địch (chm), bạn có thể tải bộ tải liệu hướng đản nảy xuống client workstation của bạn để truy cập
và Gm kiếm nhanh hơn
Hầu như những thứ trong chính cơ sở dữ liệu là các đối
tượng (object) Các đoạn sau đây giới thiệu các đối tượng phổ
biến nhất Những đối tượng này được gọi là những đối tượng cố
định; nghĩa là, chúng được lưu trữ trong cơ sở dữ liệu và không
biến mất khi bạn thoát khỏi hệ thống hay khi server tat
Một table là một cấu trúc đữ liệu cơ bản của một cơ sở dữ liệu Tất cả thông tin trong cơ sở dữ liệu được lưu trữ trong các
†able, trong một kiểu trình bày hàng/cột để dễ xử lý dữ liệu, Trong một table, mỗi hàng là một record (ban ghi) của dữ liệu,
và các cột là các field (trường) của record Các table được giải thích chỉ tiết ở bài 2
Một index tuơng tự như bảng tra cứu nhanh trong một cuốn sách, nhưng thay vì giúp bạn tìm một chủ điểm, nó giúp server
cơ sở dữ liệu tìm một hàng dữ liệu trong table Khi ban yêu cầu
các hàng có các giá trị cột cụ thể, SQL Server tìm một index mà
Trang 8Bai 1: Dinh nghia vé SQL Server 11
có thể giúp xác định những hàng đó trước khi nó tìm qua tất cả
dữ liệu trong table Nếu không có index, SQL Server phải duyệt
tất cả hàng trong table
Một view (khung xem) được xem là một phần được truy xuất
cế định, được ấn định trước từ cơ sở dữ liệu Nếu bạn có một tập hợp thông tín mà bạn thường cần tìm kiếm trong cơ sở dữ liệu,
bạn có thể tạo một view để chứa lệnh nhằm truy tìm dữ liệu Với
một view, bạn không cần gõ nhập lại lệnh mỗi lần bạn cần dữ
liệu; những người khác cũng có thể sử dụng view để xem dữ
liệu một cách tốt hơn Điều này thật sự tiết kiệm được nhiều thời
gian, đặc biệt nếu lệnh dùng để truy tim dữ liệu phức tạp, hoặc
truy tìm dữ liệu từ nhiều table khác nhau Các view được thảo luận ở bài 16
Một constraint là một đối tượng ấn định một giới hạn về
cách hay loại dữ liệu nào có thể được lưu trữ trong cơ sở dữ liệu với mục đích là giữ cho dữ liệu nhất quán hay hiện thực Ví dụ,
một table kiểm kê có thể đặt một constraint NOT NULL trên cột
chứa số lượng có sẵn Các constraint được thảo luận ở bài 2 Nhất quán
Một cơ sở đữ liệu nhất quán nếu tất cả dữ liệu trong do hòa hợp với nhau và bản thiết kế của cơ
sở dữ liệu Việc lưu trữ một số bộ phận trong một
bảng kiểm kê vốn không tương xứng với một bộ
phan trong một bảng ấn định về các bộ phận hay lưu trữ một số âm cho Luối của một người là hai ví
đụ về dữ liệu không nhất quản,
Một thủ tục được lưu trữ (stored procedure) tương tự như một
view bởi vì nó lưu trữ các lệnh SQL trong cơ sở dữ liệu nhưng
Trang 9một thủ tục được lưu trữ có thể thực thi bất kỳ lệnh SQL (chứ
không phải một phần được truy xuất), và có thể lấy các tham số chẳng hạn như tiêu chuẩn truy xuất của nó, nhằm chỉnh sửa hoạt động của nó mỗi lần bạn thực thi nó, Các thủ tục được lưu
trữ được thảo luận ở bài 14
Một trigger (bộ kích khởi) có thể được xem là một loại thủ tục được lưu trữ đặc biệt Các trigger được liên kết với các ta2le trong cơ sở dữ liệu và có thể được thực thi bất cứ lúc nào dữ liệu được bổ sung, được chỉnh sửa hay bị xóa khỏi table Các trigger được thảo luận ở bài 15,
Một default (xác lập mặc định) là một giá trị mà SQL Server
Sẽ cung cấp cho một cột nếu bạn thêm một hàng vào một table
và không điền vào cột đó
Một kiểu dữ liệu do người dùng ấn định (UDT) là một phần
ấn định cụ thể về loại dữ liệu mà có thể được nhập vào một cội
SQL Server cung cấp các kiểu chuẩn vốn có thể xử lý các số và
đỡ liệu text Bạn có thể sử dụng các UDT để ấn định dữ liệu một
cách cụ thể hơn so với các kiểu dữ éu được cài sấn Tuy nhiên, chúng có thể có nhiều vấn đề khó hiểu và nằm ngoài phạm vi của sách này
Cac quan hé
Một cơ sở dữ liệu chỉ lưu trữ các table chắc chắn hữu dụng
Cơ sở dữ liệu PC phổ biến nhất vào những năm 1980, dBASE
của Ashton-Tate là một cơ sỏ dữ liệu chỉ chứa table, thường được gọi là một cơ sở dữ tiệu file det (flat-file) Bạn có thể thực
hiện được nhiều điều với chỉ phương pháp tổ chức đơn giản này,
nhưng SQL Server và các RDBMS khác bổ sung tính năng quan
Trang 10Bai 1: Dinh nghia vé SQL Server 13
trọng bằng cách cho phép bạn kết hợp các hàng trong các table khác nhau bằng cách sử dụng một khái niệm được gọi là một quan hệ (relation)
Với một cơ sở dữ liệu flat file, hầu như dữ liệu luôn cần được liên kết từ các file khác nhau, nhưng hoạt động này phải được thực hiện trong mã người dùng bằng cách sử dụng ngôn ngữ người dùng của trình quản lý cơ sở dữ liệu Trong các cơ sở dữ liệu quan hệ, các quan hệ này được lưu trữ trong chính cơ sở dữ liệu Hầu như không có dữ liệu nào mà bạn sẽ làm việc với chứa
dữ liệu không liên quan đến bất kỳ dữ liệu khác, do đó bằng cách xử lý cụ thể những quan hệ nảy, bạn có thể dễ dàng tạo
và bảo trì một cơ sở dữ liệu đáng tin cậy, nhất quán
Một ví dụ đơn giản, hãy xem xét các table employee và table job trong cơ sở dữ liệu pubs Mỗi công việc trong table jobs được
nhận biết bằng một job.id riêng biệt Mỗi nhân viên trong em-
ployee có quan hệ với một công việc bởi một job_id vốn là một
phần của hồ sơ nhân viên Quan hệ này phải tồn tại Nếu bạn
có một nhân viên không có việc làm, thì điều này không có nghĩa
Query
Một query (mẫu vấn tin) la mot lệnh mà bạn gổi đến SQL Server thông qua một chương trình client cơ sở dữ liệu Bạn viết những lệnh này bằng cách sử dụng ngôn ngữ chung của các cơ
sở dữ liệu quan hệ: Structured Query Language (SQL) Mỗi lệnh SQL được xem là một query, mặc dù nhiều lệnh không truy xuất bất cứ thứ gì (như bạn có thể mong đợi từ một thứ nào đó được
gọi là một query) Vì hầu như tất cả các server cơ sở dữ liệu mới
Trang 11sử dụng SQL làm ngôn ngữ vấn tin của chúng, bạn sẽ có thể sử
dụng phần lớn SQL và các kỹ thuật cơ sở dữ liệu trang sách này
với những server cơ sở dữ liệu khác
Mọi thứ bạn thực hiện với SQL Server trở thành một query
vào một thời điểm nào đó, mặc dù bạn không thể thấy chính query này Bạn có thể nhấp các nút và các hộp kiểm trong một
giao diện người dùng đồ họa (GUI), nhưng trình ứng dụng đáp
ứng các lệnh của bạn bằng cách gởi một query đến cơ sở dữ
liệu ở hậu cảnh, như được minh họa ở hình 1.2,
Các lệnh query có thể được nhóm lại thành ba hạng mục chính:
2 Ngôn ngữ ấn định dữ liệu (DDL): DDL ám chỉ bệ câu lệnh SQL
mà bạn sử dụng trong các query để ấn định các đối tượng chẳng han như các table, constraint, các thủ tục được lưu trữ và view
DDL được sử dụng để lạo cấu trúc các tính năng cố định diia cơ
SỞ đữ liệu
2 - Ngôn ngữ thao tác dữ liệu (DMIL ): DML, tép hợp con của SQL mà bạn sẽ sử dụng hầu hết thời gian, là nhóm các câu lệnh chẳng
hạn như SELECT và INSERT mà bạn sử dụng để truy xuất, phân
tích, chỉnh sửa, hay xóa dữ liệu trong cơ sở dữ liệu của bạn Các
câu lệnh DML rất đơn giản về mat khái niệm, nhưng chúng là
những công cụ cực kỳ mạnh mẽ để làm việc với thông tin
Z2 Ngôn ngữ điều khiẩn dữ liệu (DCL); DCL được sử dụng để ấn định các control truy cập trên dữ liệu của bạn Khi một người dùng tưởng tác với cd sở dữ liệu, server cơ sở đữ liệu kiểm tra
các mức độ cho phép của người dùng và cung cấp hay từ chối sự truy cập đến dữ liệu và các chức năng dựa vào các qui lẮc được
Trang 12Bài 1: Định nghia vé SQL Server 15
thiết lập bởi nhà quản lý hay người sở hữu dữ liệu DCL duoc su dụng để tạo những qui tắc đó
but the application sti talks to the database with SQL
Hinh 1.2 SQL ding sau GUI
Tóm Lược
Trong bài này, bạn đã khai thác những thành phần của SQL
Server và các loại đối tượng mà bạn sẽ làm việc trong một hệ
thống quản lý cơ sở dữ liệu quan hệ Bạn nên nắm vững khái
niệm về những gì mà một cơ sở dữ liệu quan hệ thực hiện cho
bạn Trong bài kế tiếp, bạn sẽ được trình bày chỉ tiết về các
table và những đối tượng liên quan, do đó bạn có thể bắt đầu
làm việc với dữ liệu
Trang 13Bài 2: Tìm hiểu các cơ sở dữ liệu
Tìm hiểu các
CƠ sở đữ liệu
Đài này sẽ giới thiệu cho bạn về các đối tượng mà bạn sứ dụng
để lưu trữ dữ liệu trong cơ sở dữ liệu SỌL Server 7
Bài đầu tiên đã mô tả những khái niệm đằng sau SQL Server
và cấu trúc của một cơ sở dữ liệu quan hệ Bài này sẽ đi sâu vào chỉ tiết hơn về các đối tượng cơ sở dữ liệu vốn lưu trữ dữ liệu
và mối quan hệ giữa các hạng mục dữ liệu Cuối bài này sẽ giải
thích các constraint, những đối tượng mà bạn sẽ sử dụng để chắc chắn dữ liệu của bạn vẫn nhất quán
Trang 14Bài 2: Tim hiéu cdc cơ sử dữ liệu 17
TARLE
Hầu hết công việc thiết kế một cơ sở dữ liệu nằm trong việc
ấn định những thực thể (entiiy) nào sẽ được lưu trữ và cách
chúng quan hệ với nhau Table là một đơn vị cấu trúc cơ bản
của một cơ sở đữ liệu quan hệ và là cấu trúc vật lý mà bạn sẽ
sử dụng để lưu trữ các thực thể mà bạn ấn định
Một thực thể là sự mô tả vẻ một điểu thực tế mà
bạn muốn lưu trữ thông tin vẻ điều đó trong cơ sở
đữ liệu của bạn chẳng hạn như một người một hợp đồng hay một giao địch tài chính Nó gồm có các
thuộc tính, các hạng mục thông tin riểng biệt (liên
quan đến thực thể) mả bạn muốn giữ lại, và các quan hệ, những mối liên kết với những đối tượng,
khác mà thực thể sử dụng hay phụ thuộc vào theo
một cách não đó Sau khi bạn đã mô tả những thực
thể mà bạn muốn ghi lại trong cơ sở dữ liệu của bạn, bạn hoạch định cấu trúc table của bạn để lưu trữ thông un của thực thể trong một hay nhiều
table cơ sở đữ liệu
Xét về các thuật ngữ SQL, một table gồm có các cột và
hang Mai hang trong table lưu trữ thông tin cho một thực thể
hay quan hệ (xem hình 2.1) Các cột là các trường trong mỗi
hàng chứa các thuộc tính của mỗi thực thể.
Trang 15title_id au_id
Relations PS3333 |172-32-1176 ————|172-32-1176 lÌ ` wnie
Hình 2.1 0ác khối tạo cơ sở dữ liệu
Một table sẽ có một tập hợp dữ liệu, chỉ một cột đơn, nhận
biết riêng từng hàng trong table Ví dụ, bởi vì chính phủ bảo đảm rằng số tài khoản an sinh xã hội (SSAN) của mỗi người thì duy nhat, table authors trong pubs sti dung né lam au_id dé nhan biết riêng các tác giả
Trong các thuật ngữ cơ sở dữ liệu, bộ nhận dạng hàng được
gọi là khóa chính (primary key) và được yêu cầu cho hầu hết
quan hệ Bởi vì giá trị khóa chính được sử dụng để nhận biết hàng và sẽ được tạo lại trong bất kỳ index hay table tham chiếu
nó, bạn nên chọn kiểu dữ liệu nhỏ nhất thích hợp mà sẽ nhận
biết các hàng một cách chính xác trong table.