LE Tr ƯỜNG AN
8U SERVER 1
Trang 3Lời nối đầu
của SQL Server 7 vào việc quản lý cơ sở dữ 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ả SQIL,
Server 7.0”
Ne 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 đữ liệu
Từ bài 5-10, bạn sẽ học cách áp dụng cơ sở đữ liệu vào công việc
thực tế bằng cách sử dụng đữ liệu trong các trình ứng đụng phổ biến như
Microsoft Word và Mierosoft Excel, cách xuất bản dữ liệu lên một Web site
Từ bài 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ữ hiệu, thực
hiện những tác vụ quản lý cơ bản, đi 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 ảnh minh họa 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, mac du da 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
Trang 4Bai 1: Dinh nghia vé SQL Server 7 ANN a Dinh nghia vé SQL Server Trong bài này, bạn sẽ tìm hiểu taàn bộ edu tric cia SOL Server 7 tà những dịch vụ mà nả cũng cấp cho bạn
SQL Server la 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 dang cau 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
Servsr là gi và chức năng của nó
CAC THANH PHAN SOL SERVER
SQL Server 7 có nhiều dịch vụ chạy trên Windows NT/Win-
Trang 58 Bai 1: Dinh nghia vé SQL Server
dich vu nay la MSSQLServer (SQL Server), Search Service, MSDTC và SQServerAgetn 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 << mS DTC Distributed SQL Server Transactions ——— Search Service > Full Text Searching Databases ~——ờ \ ) Scheduled Job Control SQ LServerAgent
Hinh 1.1 Cie dich vu SQL Server
Dịch vụ 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;
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, SQIL ServerAgent 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 co 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ở dữ 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 tậ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ội 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
Thủ thuật
Chắc chắn, bạn sẽ có những cău hỏi khi bạn sứ
SF “ dụng SQL Server Để có được những lời giải đáp,
u hãy thử Books Online Books Online 1a mot bộ tài
Ũ liệu hướng đẫn toàn diện mõ tả mọi khia cạnh cửa SQL Servcr, từ quản lý đến những phương pháp
khó hiểu để lập trinh cac ting dung Books Online
cling chia mdt index va mot trinh tién ich nghiên
cứu toàn text, qua đó bạn có thể tim thấy bất kỳ
Trang 710 Bai 1: Dinh nghia vé SQL Server
được phân phối dưới dang một file HTML được biên
dich (.chm), bạn có thể tải bộ tài liệu hướng dẫn này xuống client workstation của bạn để truy cập
và Um kiếm nhanh hơn
CAC THANH PHAN Co sử Dữ Liệu
Một cơ sở dữ liệu quan hệ lưu trữ và xử lý không chỉ đơn
thuần là dữ tiệu Trước khi bạn đi sâu vào chỉ tiết của SQL Server,
hãy xem xét với một mức độ cao đối với các phần mà bạn sẽ
thấy trong một cơ sở dữ liệu quan hệ,
Các đối tượng
Hầu như những thử trong chính cơ sở dữ liệu là các đổi tudng (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 tắt,
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
table, 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 (bản 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 -
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 Sarver 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ở đữ 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 †im 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ở dữ liệu nhất quán nếu tất ca dữ liệu
trong đỏ 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ộ phan trong mot
bang 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ộ phan hay lưu trữ một số ãm cho Luối của một người là hai ví dụ 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
Trang 912 Bai 1: Dinh nghia vé SQL Server một thủ tục được lưu trữ có thể thực thì 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
Mot trigger (bộ kích khởi) có thể được xem là một loại thd tục được lưu trữ đặc biệt Các trigger được liên kết với các ta5le 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ột
SQL Server cung cấp các kiểu chuẩn vốn có thể xử lý các số và
dữ 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ữ liệ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
Trang 10Bai 1: Dinh nghia vé SQL Server 13
trong bang cach cho phép ban két hdp cac hang trong cac 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é dang tao và bảo tri 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 va 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_¡d 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) là một lệnh mà bạn gởi đến SQL
Server thông qua một chương trình client cơ sở đữ 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
Trang 1114 Bai 1: Dinh nghia vé SQL Server
sử dụng SQL làm ngôn ngữ vấn tin của chúng, ban sẽ có thể sử
dụng phần lớn SQL và các kỹ thuật cơ sở dữ liệu trong sách này
với những server cơ sở đữ 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:
A Noon 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
hạn như cdc table, constraint, cdc thu tue được lưu trữ và view
DDL được sử dụng để tạo cấu trúc các tính năng cố định của cơ
Sở dữ liệu
A Ngôn ngữ thao tác dữ liệu (DML): DML, tập hợp con của S0QL 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 va INSERT ma ban sv dung dé 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ề mặt 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 A 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 đữ 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ở dữ 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ự
Trang 12Bai t: Dinh ughia vé SQL Server 15
thuết lập bởi nhà quản lý hay nguời sẻ hữu dữ liệu DCL due siz dụng để tạo những qui tắc đủ
‘You use menus and windaws
SOL Server SELECT © ROM authors
but the application sbi talks to the database wath SOL
Hinh 1.2 SQL dang sau GUI
TÚM Lược
Trong bài này, ban đã khai thác những thành phần của SOL
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 gi 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
Trang 1316 Bài 2: Tùn hiểu các cơ sở dữ liệu AND Tìm hiểu các cơ sở gđữ liệu
Hài này sẽ giới thiệu cho bạn về các đổi tượng mà bạn sử dụng
dữ hát trữ dự liêu trang co sé ai? ligu SQL 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ội cơ sở dữ liệu quan hệ, Bải này sẽ đi sâu
Trang 14Bài 2: Tìm hiéu cdc co sé dit 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ể (entity) 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
Thực thể
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 tín 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 tìn riêng biết (liền
quan đến thực thế) mà bạn mitố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ô Lá những thực
thể mà bạn muốn ghi lại trong cơ sở đừữ 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 tin của thực thể trong một hay nhiều
table cơ sở đữ liệu
Trang 15
18 Bài 2: Tùm hiếu các cơ sở dữ liệu tile_id au_id au id Relations PS3333 [172 32-1176 |————>|t72.32-1176 lÌ White Johnson 8U1032 |213.46-8915| ,| 213-46-8915 1] Green Manorie 274-80-9391
Hình 2.1 Cae khoi 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 trang table Ví dụ, bởi vi 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 thi duy nhất, table authors trong pubs sử dụng nó làm au_¡id để nhận biết nê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 vi 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ó, ban nên chọn kiểu dữ liệu nhỏ nhất thích hợp mả sẽ nhận
Trang 16Bài 2: Tìm hiểu các cơ sở dữ liệu 19
Cot
Các cột lưu trữ các phần dữ liệu riêng biệt trong một hàng của một table Các cột có hai đặc tính chính: kích cỡ và kiểu của
chúng Bạn sẽ không luôn quan tâm đến kích cỡ của cột, với
một ngoại lệ: Bạn không thể tạo một table có tổng kích cỡ của các cột lớn hơn 8060 byte Điều này không phải là một vấn đề;
nếu table của bạn có đủ các cột để phù nop với giới hạn này, có
thể bạn nên đơn giản hóa nó
Thủ thuật
Khi bạn thiết kế một table, hãy giảm số cột Bạn
hiếm khi cần quá nhiều cột trong một table cơ sở
dữ liệu chuẩn, và hơn 10 hay 15 cột sẽ thường bảo hiệu rằng cản nên phân tích nhiều hơn
Kiểu của cột mô tả loại dữ liệu nào mà bạn có thể lưu giữ trong đó Các kiểu dữ liệu thông thưởng mà bạn sẽ sử dụng trong SQL Server được liệt kê ở bảng 2.1
Bảng 2.1 Cae kiểu dữ liệu $ÖL Server
Kiểu Mô tả
binary OL) Théng tin nhi phan, dain byte bil Mội giá trị irue bay false
char (n) Lén dén nmdu te, 86 bay Rv tie cham cân (small) datetime Một ngày tháng thời gian hodc cd hat
decimal (p, Ls) Một số dấu cbấm động Hy ý có độ chính
xác cho phép b chỉ vố có nghia c6 len đến
Trang 1720 Bài 2: Tìm hiểu các cơ sở dit liéu image (small or linpyni (small)nioncy numeric(p Ls) realty) tent timestamp rarbinarysyr) rarchar(y) Dự liệu nhì phán lớn Cac s6 nguyén Số tiên
Kiểm số chung Cirong tt nhit sé thap phan)
Kién ddu chdm déng chung cb dé chinh
xdc n bil
Cde đối tong texi lớn
Trường được tư động điền đây rói môi gửi iri counter duy nhat dita nào thời gian bbí môi bàng được chen nào bay ditoe cap nha Trường nhì phân chiều dài biến đổi, có dén n byle Trường text chiều đài biến đổi có đến " ký tự
Đối với các kiểu text, char, và varchar, có các kiểu Unicode
tương ứng được gọi là ntext, nchar, và nvarchar
Unicode
Unieode là một tiêu chuẩn quốc tế dùng để lưu trữ
texL đãnh cho nhiều ngôn ngữ khác nhau Các Liêu
chuẩn cũ hơn, kể cả bộ ký tự ASCII được chỉnh sửa
được sử dụng trên các máy tính loại PC, có đủ ký tự cho tiếng Anh và một số ngôn ngữ châu Âu, nhưng không phải các ngon ngữ như tiếng Trung
Quốc và tiếng Nhật Unicode có các ký tự đành cho
Trang 18Bai 2: Tim hiểu các cơ sở dữ liệu 21 Khi bạn tạo một table, bạn sẽ cho SQL Server biết loại dữ
liệu nào mà mỗi cột sẽ chứa bằng cách xác định kiểu của nó
Đây là cơ chế đầu tiên trong những cơ chế mà qua đó SQL giữ
cho dữ liệu nhất quán với bản thiết kế của cơ sở dữ liệu Đây là một điều tốt, nhưng có một sự hòa hợp giữa tính khả dụng và tín hiệu quả Bạn cần chọn kiểu cho một cột một cách cẩn thận: Kiểu nên đủ lớn để lưu trữ bất kỳ dữ liệu thích hợp mà bạn cần
lưu trữ trong cột nhưng không quá lớn Bất kỳ khoảng trống phụ
bị lãng phí nếu nó không bao giờ được sử dụng Bảng 2.2 liệt kê kích cỡ và dãy giá trị cho các kiểu được mô tả ở bảng 2.1
Bảng 2.2 Dác kiểu kích cỡ và đãy
Kiêu Kích cỡ và dãy "
DỊH1ry(11) Chiều dài cố đđÙ1b có 1 byte
bù Tor thiéu mot byte; len dén tdm ct vil cb
thé duoc ket bop thanh mét byte bei SQL
Server
charg) Chiéu dai cé dink 6 byte
(smalbdatetmne smalldatetime: 7 byte, We fanuary 1 £900 den pune 6 2079, chink xde deur mot phiit
datetine: & byte famuary 1, 1753 dén
December 31, 0999 chinh xdc dén +/-.002 eidy
decimal(p Ls) D chit s6 cb ughia có đến s chữ số nằm
bén phdi dấu tbập phán đòi béi 5 byte
nên jb< 10 7HóiÐ là 10 đến 19 tà L3 trói pla 20 dé 28
Trang 1922 (small or tiny int (small) money niunericlp 1, s1) real(i) finestamp varbinaryOr) rarchar(i)
Bài 2: Tìm hiểu các cơ sở dữ liệu
tinyint: mot byte, 0-255
smallint: hai byte, - 32768 dén 32767
int bn byte, +/- khoang 2 ty smallmoney: bin byte, +/- 200,000
money: lam byte, +/- khodng 900 nghin ty Thường tương đương số tbập phân
trong đó 0! là các ĐH có độ chính xác; tới „ lên cđiến 2⁄4 ( 7 chữ số có nghĩ), 4 bytc; 8 byïe tới n > 24 (15 chữ xố có nghĩa)
& byte
kích cỡ biến đổi lên đến 8.000 byte, cing
tới bốn bytc: n là số bụte tối đa được phép
kich cỡ biến đổi lên đến 8.O00 hý tt: + lò
số ký tư tối đa được cbo phép
Có thêm một sự cân bằng về khả năng thực thi khi sử dụng
các kiểu dữ liệu varbinary và varchar Chúng có hiệu quả về
khoảng trống nhiều hơn so với các cột có chiều dài cố định khi
dữ liệu sẽ thay đổi kích cỡ, nhưng SQL Server bị chậm lại bởi
nhu cầu xác minh kích cỡ thật của dữ liệu khi nó được truy xuất
Bất kể kiểu của cột là gì, nó có thể được cài đặt sang NULL néu phan an dinh table cho phép NULL la mét phi gia tri dac
biệt xác định giá trị không được xác định hoặc không tổn tại
Trang 20Bài 2: Tìm hiểu các cơ sở đữ liệu 23
Index
Bạn sử dụng một index để tăng tốc sự truy cập dữ liệu trong
các table của bạn Việc Iưu trữ dữ liệu chỉ là một phần của chức
năng của một cơ sở dữ liệu; việc truy tìm nó thường là một khía cạnh quan trọng của trình ứng dụng và các index làm cho tiến
trình này trở nên nhanh hơn nhiều nếu chúng được áp dụng một
cách thông minh
Có hai loai index trong SQL Server: clustered va
nonclustered Mét clustered index sap xép thu ty cac hàng trong table; nói cách khác, khí bạn truy tim dữ liệu mà không xác định
một thứ tự trong query, các hàng mà bạn thấy sẽ được sắp xếp
theo các cột trong clustered index trên table Bởi vì một clus-
tered index thiết đặt thứ tự thực của các hàng, bạn có thể chỉ có
một clustered index trên mỗi table Nếu một khóa chính hiện
hữu, một clustered index được tạo trên cột đó
Một nonclustered index được lưu trữ bên ngoài table, và liên
kết các giá trị của các cột với các hàng trong table Bạn tìm index của một sách về SQL để tìm nơi ma query có thể được ấn định Theo cùng một cách, khi bạn vấn tin SQL Server để tìm ra
hàng trong table authors có tên của một tác giả cụ thể (xem
hình 2.2), SQL Server sẽ sử dụng một index để tìm hàng nào
trong table tương xứng với tên tác giả thay vì tìm qua table Nhu
ở hình minh họa, một index có thể được tạo dựa vào nhiều trường của một table, tạo một index tổng hợp
Lưu ý
Trang 2124 Bài 2: Tìm hiểu các cơ sở dữ liệu
một cột hay cac cột hoàn toàn riêng biết, chi ca
một số nhỏ giá trị (nhiều hàng có chúng một giả
tri) Cac cot text, nlext, image va bit thudng khong
thích hợp với yêu cẩn này Các cột được tính mà
bạn sẽ Lhấy ở bải 13, được dựa vào các cột khác,
do do chung that sự không hữu trừ cáo giá trị mã có
thé due Waa index Index Table au_Iname | au tname_ | row au_/ở — | su Iname | 30-tname PS3333 |I72-32-1176| 1 |———*l172-32-1178[ Whne Johnson BU1032 |213-46-8915| 2 |———>|213-46-8915| Green Manane |238-95-7766] Carson Cheryl 267-41-2394] O'Leary } Michael ai Straight Dean
Hinh 2.2 Mật table dược tao index
Khi vấn tin authors, chỉ có 23 hàng, index không tạo ra những cải tiến về tốc độ Tuy nhiên, với 25 triệu hàng, kết quả có thể
gây ấn tượng Mặc dù bởi vì các index chiểm khoảng trông,
nhưng dù muốn hay khõng, đừng tạo chúng trên các table Cũng
có môt vấn dé về khả năng thực thi; mỗi lần bạn cập nhật một
cét duge tao index, SQL Server phai cap nhật cả giá trị và in- dex Do dé, hay xét những người có thể tìm kiếm dữ liệu (hoặc
Trang 22Bài 2: Tìm hiểu các cơ sở dữ liệu 25 tạo các index vốn hỗ trợ hầu hết các query thông thường Bài 1 1 sẽ trình bày cách kiểm tra hoạt động của cơ sở dữ liệu để xem
chiến lược index của bạn hoạt động tốt như thế nào
CONSTRAINT
Một constraint là dòng bảo vệ thú hai chống lại sự hư hỏng
dữ liệu Khi bạn ân định một constraint, bạn thông báo cho SQL
Server một qui tắc mà bất kỳ dữ liệu được đặt vào một table
phải! tuân theo Mặc dù các constraint thường được tạo dưởi
dạng một phần tao table, ban có thể bổ sung một constraint sau
đó nếu dữ liệu hiện có trong table không vi phạm qui tắc đó
Mội loại constraint đã được mô tả, PRIMARY_KEY của một
table Bai vi khéa chính được ấn định để nhận biết riêng một
hàng cụ thể trong table, có một constraint tương ứng: Bạn không
thể chèn một hàng có cùng một giá trị cho khóa chính khi một
hàng khác đã hiện hữu, và bạn không thể chèn một hàng không
có một giá trị cho khóa chính
Constraint của khóa chính kết nhập hai constraint khác mà bạn có thể đặt trên một cột (NOT NULL) và UNIQUE Một con- straint NOT NULL chi dinh cho SQL Server biết rằng cột phải được điền đầy cho bất kỳ hàng mà bạn thêm vào table UNIQUE
cho biết rằng giá trị trong cột không thể được lặp lại trong hai
hang trong table
Constraint CHECK cung cấp một công thức mà SQL Server
sử dụng để xác minh các giá trị dữ liệu trước khi chúng được
Trang 2326 Bai 2: Tim hiểu các cơ sở dữ liệu CHECK như qty >= 0 trên table sales sẽ yêu cầu SQL Server không cho phép chèn một số lượng bán hàng âm
Một DEFAULT xác định một giá trị mà sẽ được ghi lại trong
một cột nếu bạn không cung cấp mộ! giá trị hay cài đặt nó sang
NULL Sau cùng, một constraint FOREIGN KEY nhận dạng các cột tham chiếu một khóa chính trong một †able khác
CAC QUAN HE
Các quan hệ ghi lại các phần phụ thuộc và các liên kết giữa
cdc table trong cơ sở dữ liệu Bạn sử dụng SQL Server để áp
đặt các qui tắc thay vì phụ thuộc vào mã trình ứng dụng Cơ chế
DRI (declarative referential integrity) là cách đáng tin cậy duy
nhất để làm cho các phần tham chiếu nhất quán Có ba loại
quan hệ giữa các table (xem hình 2.3)
A Mộ!-đối-mội: Một quan hệ một-đối-một chỉ định rằng một hàng trong một table sẽ liên kết với một hàng trong một table khác 2 Một-đối-nhiều: Một quan hệ một-đối-nhiều, quan hệ phổ biến
nhất chỉ định rang table tham chiếu (table con) có thể có nhiều
hàng tham chiếu một hàng đơn trong một table khác (table bố) A Nhiều-đối-nhiễu: Một quan hệ nhiều-đối-nhiềUu có một giá trị trung gian để luu trữ mối quan hệ, liên kết một hay nhiều record
Trang 24Bài 2: Tìm hiểu các cơ sở dữ liệu 27 Child Parent A one-to-many relation A many-to-many relation
Hình 2.3 Cae quan hệ giữa các †able Table bố và table con
“Trong một quan hệ, một table tham ch
khác, Table chữa tham chiếu được gọi lá table con,
va (able mà nó tham chiếu được gọi là tahle bố
mot lable
Việc khai báo một quan hệ là điều đơn giản Table bố trong
Trang 2528 Bài 2: Tìm hiểu các cơ sở dữ liệu
quan hé nay, ban thém mét constraint FOREIGN KEY vao cét
của table con vốn đặt tên cho table bố và cột chính Sau khi mối quan hệ được thiết lập, SQL Server sẽ kiểm tra các hoạt động chèn và cập nhật vào table con và loại bỏ bất kỳ hoạt động nào
vốn vi phạm constraint
TÚM Lược
Bai nay đã đề cập đến các table, cột, các kiểu dữ liệu, in- dex, constraint, va quan hé Ban da thay tất cả các hạng mục
Trang 26Bai 3: Tim kiém théng tin trong co’ so dit liéu 29
Tìm kiếm thông tin trong cơ sở đữ liệu
Bài này sẽ giới Hiệu cho bạn về Suuctured Querv Language (SỢL) và trình bày cho bạn cách tìm kiếm dữ tiệu trong các tubfe
bằng cách sứ dụng lệnh SELECT SQL
Bài này hướng dẫn bạn cách truy †ìm dữ liệu từ cơ sở dữ
liệu bởi vì cơ sở dữ liệu pubs được sử dụng cho các ví dụ, bạn cỏ thể thực thi các query trên mảy tỉnh riêng của bạn vả xem kết
quả khi bạn đọc Sau khi bạn quen thuộc với các tiến trình truy
Trang 2730 Bài 3: Tìm kiếm thông tin trong cơ sử đữ liệu TIM HIEU STRUCTURED QUERY LANGUAGE (SQL)
SQL la một ngôn ngữ đơn giản gây nhầm lẫn được sử dụng để tương tác với các cơ sở dữ liệu quan hệ Cả SQL và RDBMS
có nguồn gốc trong cuộc nghiên cứu tại IBM từ giữa những năm
1980 đến đầu những năm 1970 Với các ngôn ngữ query đa dạng trên thị trường, viện tiêu chuẩn quốc gia Mỹ (ANSI) đã xuất bản một tiêu chuẩn SQL vào năm 1989, và sau đó sửa đổi
nó vào năm 1982 Tiêu chuẩn 1992, ANSI X3.135-1992, là phiên
bản hiện hành và thường được xem là SGL2, hoặc thường gọi
chung là SQL92
SQL chỉ có một vài từ khóa so với bất kỳ ngôn ngữ lập trình khác mà bạn sẽ gặp phải, nhưng tập hợp lệnh đơn giản này có
thể thực hiện sự phân tích và sự chuyển đổi dữ liệu phức tap CAu LENH SELECT
Câu lệnh SELECT phổ biến nhất mà bạn sẽ sử dụng trong
SQL, câu lệnh SELECT truy tìm dữ liệu từ các table, view, và các hàm cài sẵn trong SQL Server Sau đây là cú pháp của câu
lệnh SGELECT:
SELECT { * | columnref |, columnref | } FROM tableref [, tableref .)
({INNER ; {LEFT ; RIGHT} OUTER }
JOIN tableref ON columnref = columnref .) {WHERE expression [{AND | OR} expression .]]
Thành phần columnref là tên của một cột, tableref là tên
Trang 28Bai 3: Từm kiếm thông tin trong cơ sở đữ liệu 31
như
Dạng mô tả cú pháp được sử dụng trong sách này tương tự dạng được sử dụng bởi Microsoft, do đó bạn sẽ thấy dạng tương tự này ở đây khi bạn sử dụng Books Online: a yu N N dau dau
Các hạng mục được yêu cầu nằm bên ngoài bất kỳ dấu ngoặc Các hạng mục tùy ý được đặt trong các đấu ngoặc
Các hạng mục thông thường có một font thường
Các hạng mục được thay thể bằng dữ liệu riêng của bạn có dạng
¡n nghiêng
Nếu bạn có thể sử dụng một trong những hạng mục của danh
sách, các lựa chọn được tách rời bằng một vạch thẳng đúng được gọi là một pipe (:)
Lựa chọn bắt buộc trong một lựa chọn (bạn phải đưa vào một
hay lựa chọn khác) được đặt trong các dấu ngoặc (1l)
Sự thay đổi chính đối với dạng Books Online là sử dụng các ba chấm để báo hiệu rằng các hạng mục trong một tập hợp ngoặc có thể được lặp lại
Mô tả của cú pháp SELECT cho biết bạn phải có ít nhất từ
SELECT; một dấu sao (*) hay một hay nhiều columnref (SE-
LECT Iist); từ FROM, và í† nhất mot tableref
Sau FROM, bạn có thể đưa vào các JOIN, mdi JOIN phải
chứa †ử khóa ,JOIN, một tableref, từ khóa ON, và một câu lệnh
của các cột tương đương (columnref) Trong mệnh đề JOIN, bạn có thể ấn dinh thém INNER, LEFT OUTER, hay RIGHT OUTER để chỉnh sửa kiểu nối Các dấu ba chấm ở cuối mện, dé JOIN
Trang 2932 Bài 3: Tìm kiểm thông tin trong cơ sử dữ liệu
Sau cùng, bạn có thể đưa vào tử khóa WHERE, theo sau là các biểu thức điều kiện được tách biệt bằng các từ khóa AND
hay OR để giới hạn các hàng được cho ra
Dạng biểu diễn SELECT nảy chỉ cho thấy một phần của cầu lệnh Trong phần còn lại của bài này, bạn sẽ xem cách sử dụng từng thảnh phần được trình bảy trước đó
Trước khi xem qua các ví dụ, bạn sẻ phải hiển thi SQL Server Query Analyzer Ban sẽ tìm thấy nó trong menu Microsoft SQL Server 7.0 trên menu Start Khi nó khởi động, nối kết với cơ sở dữ liệu khi mạng của bạn yêu cầu Để sử dụng cơ sở dữ liệu pubs, chọn nó trong danh sách xổ xuống DB bền dưới thanh
menu nằm ở phần trên củng của cửa sổ (xem hinh 3.1)
SLM ee eee
Ble Elk Yew Query ron « Help mea
NSAP MT pee A ge oof TT SH: ere
(Emcere 6000) [omnia (aloo
Trang 30Bài 3: Tìm kiém thong tin trong cơ sở dữ liệu 3
Cac table authors, titles, và titleauthor sẽ được sử dụng cho
các vi du trong bai nay Hinh 3.2 minh họa các table và môi
quan hề giữa những table nảy Ban cũng cỏ thể thực thi sp_help_tablename trong Query Analyzer để hiển thị thông tin trên mỗt table Ges wei ee ae Qaly |» a SIL YD cemvcle anaes tale Hinh 3.2 Cae table titles, authors, va titleauthor trong SQL Server 7 Sif dung SELECT
SELECT don giản mà bạn có thể thực thi như được xác
định bỏi phan mô tả củ pháp, truy tìm mọi thử từ một table, thực
Trang 3134 Bai 3: Từm kiếm thông tin trong cơ sở dữ liệu
vào vùng text của cửa số query và nhấp nút Play:
SELECT*
FROM authors
Khi bạn thuc thi query, bạn sẽ thấy dữ liệu giống như đữ liệu
sau đây ở nửa phần dưới của cửa số query 172-32-1176 213-468-8815 238 -95-7766 899 - 46-2035 988 -72-3§87 au_lname au_ fname White Johnson Green Marjorie Carson Cheryl Ringer Anne Ringer Albert
Để giới hạn dữ liệu mà bạn nhận được, hãy tìm tên của các tác giả Sử dụng query sau đây:
Trang 32Bai 3: Tim kiếm thông tin trong cơ sở dữ liệu 35
Thay vì dấu sao, SELECT này xác định các cột mà bạn
muốn xem trong danh sách SELECT Nó vẫn truy tìm mỗi hàng
trong table
Sif dung cdc hiểu thiữc WHERE và hiếu thức I0gÏt
WHERE được sử dụng để xác định tiêu chuẩn mà các hàng
phải đáp úng phải được trả về Từ khóa được theo sau bởi một
hay nhiều biểu thức, mỗi biểu thức chứa một cột; một toán tử;
và một cột, biểu thức, hay giá trị khác
Toán tử
Trong SQL Server, nó là một ký hiệu hay từ khóa
liên quan hay thay đổi một hay nhiều toán hạng
Có thể bạn quen thuộc với các toán tử số học cho phép cộng (+), phép trừ (-) SQL Server cung cấp
những toán tử này và nhiều toản tứ khác
Những toán tử mà bạn sử dụng trong các biểu thức WHERE
là các toán tử quan hệ và logic Các biểu thức sử dụng những
toán tử này có thể true hay false phụ thuộc vào các toán hạng
Một số biểu thức chung thuộc loại này được trình bày ở bảng
3.1 Nói chung, các toán hạng trong những phép so sánh này
phải có cùng một kiểu để phép so sánh có hiệu lực
Bang 3.1 Ôác phếp so sánh thông thường Biểu thức này — là true nếu
Trang 3336 Bài 3: Từm kiếm thông tín trong cơ sở đữ liệu
IS NULL x khéng ditoc dn dinh (x rỗng) x BETWEEN y AND zx nam trong addy fy z/
x/Ví(a b, ) x nam trong tap hop các giá trí
x LIKE y dị liệu trong x giống nbut man trong y
Ví dụ, để tìm số điện thoại của Charlene Locksley, ban thuc
thi query sau day:
SELECT au_fname, au_lname, phone
FROM authors
WHERE au_tname = 'Charlene'
AND au_lname = 'Locksley'
Query nay tao ra đữ liệu xuất sau đây:
au_Tname au_iname phone
Charlene Locksley 415 585-4620
LIKE và các ký tự thay thế
Toán tử sau cùng, LIKE, được sử dụng để tìm các mẫu phù
hợp trong dữ liệu ký tự giống như tên tác giả trong authors Trong ví dụ trước, bạn kiểm tra để tìm một tên phù hợp với tên của Ms Locksley Nếu bạn không biết cách viết chính tả tên của người này, ngoại trừ bạn chỉ biết rằng nó bắt đầu với L, bạn có thể sử dụng query sau đây:
SELEGT au_fnams, au lname, phone
FROM authors
WHERE au_lname LIKE 'L®'
Trang 34Bài 3: Từm kiếm thông tin trong cơ sở dit liéu 37
sẽ được liệt kê
Từ khỏa LIKE trong biểu thức được theo sau bằng một mẫu mà SQL Server so sánh để chỉ định các hàng để chứa hay loại trừ chúng Mẫu trong ví du, 'L%’, yéu cau SQL Server hiển thị bất kỳ hàng có au_Iname bắt đầu với chữ hoa L Nếu dấu phần trăm trong mẫu chỉ định bất kỳ số của bất kỳ ký tự khác có thể
xuất hiện sau L Nếu bạn quen thuộc với các ký tự thay thế
(wildcard) của DOS, dấu phần trăm tương đương với dấu sao
DOS
Bạn có thể sử dụng hai hạng mục ký tự thay thế khác trong
mẫu Một dấu underscore chỉ tượng trưng cho một ký tự: 'L_' sẽ
phủ hợp với Lu và Li chứ không phải Locksley Hạng mục sau cùng là một đặc tả dãy; nếu bạn muốn truy tìm các tên bắt đầu
với A đến D, bạn có thể xác định “au_Iname LIKE 'A-D]%”, trong đó biểu thức trong các dấu ngoặc biểu thị dãy của các giá
trị mà sẽ phù hợp trong vị trí này
Có quá nhiều toán tử đến nỗi không thể trình bày hết ở đây; những toán tử được liệt kê trong bảng 3.1 sẽ là những toán tử mà bạn sẽ sử dụng thường xuyên nhất và bạn nên sử dụng
chúng bây giờ Thử các query trên table authors néu ban muén
xem nhiều phần hơn về cách hoạt động của chúng
Cac phan noi hén trong
Sau cùng, bạn sẽ thấy các quan hệ một chiều được sử dụng trong một cơ sở dữ liệu Khi bạn truy tìm dữ liệu từ nhiều table
bằng cách sử dụng một quan hệ để liên kết dữ liệu, bạn yêu
cầu cơ sở dữ liệu nối các table dựa vào tiêu chuẩn mà bạn xác
Trang 3538 Bài 3: Tìm kiếm thông tin trong cơ sở đữ Hiệu
nếu các phần tham chiếu được ấn định, nhưng đây không phải
la đặc tính chuẩn Trong SQL chuẩn, bạn bắt đầu chọn từ một table cơ sở, và sau đó liên kết các table b6 sung bằng cách sử
dụng mệnh đề JOIN của câu lệnh SELECT để thông báo cho
SQL Server biét cách liên kết các hàng từ những table
Ví dụ, giả sử bạn muốn truy tìm một danh sách các tác giả
có các tên bắt đầu với B và những cuốn sách mà họ đã viết Table cơ sở mà bạn sẽ sử dụng là table authors Bạn sẽ bắt đầu
query với các table authors và tittleauthor để bạn có một cảm
nhận về sự tinh chỉnh gia tăng cũng như học cách làm việc của phần nối
Tỉnh chỉnh gia tăng
Ky thuat bat dau mot query don giản và sau đó bổ sung vảo nó được gọi là sự tỉnh chỉnh gia tăng, Nó
là một phương pháp tốt hơn nhiều so với việc làm
cho một query phức tạp hoạt động trong một bước Sif tinh chính gia tăng giúp ban dé dang nhận được
cú pháp và kết quả mà bạn cần bằng cách xử lý
vấn để môi lắn một chút
Gõ nhập query sau đây:
SELECT au fname, au Iname, title_id FROM authors
INNER JOIN titleauthor ON authors, au_id = titleauthor.au_id
Trang 36Bai 3: Tim kiém thong tin trong co sé dit liéu 39
Query nay tạo ra đữ liệu xuất sau đây:
au_fname au_lname title id
Abraham Bennet BU1032
Reginald Blotchet -Halls T04203
Nếu bạn xem dữ liệu trong hai table, bạn có thể xác minh
rằng ID tựa đề được trình bày là các ID trong titleauthor liên kết
với các tác giả, nghĩa là, trong đó khóa ngoại au_id trong titleauthor phù hợp với khóa chính au_¡d của tác giả trong au-
thors Phần nối bên trong chứa table titleautnor trong tập hợp kết quả (chú ý rằng cột title_¡d trong danh sách SELECT bắt nguồn từ table tittleauthor) và cho SQL Server biết rằng nó nên phù hợp với các hàng từ tittleauthor va authors bang cach so
sánh các giá trị au_id
Bởi vì các cột trong cả authors và tittleauthor được gọi là
au_id, chúng được nhận biết là authors.au_¡d và tittleauthor.au_ ¡d
Ký hiệu chấm này phân tích các phần khó hiểu của tên cho SQL Server bang cách xác định au_¡d nào mà bạn đang bàn về
Bây giờ nhớ sử dụng cú pháp tablename.columnname này khi có nhiều cột có cùng một tên trong các query của bạn
Query này được đề nghị hiển thị các tựa đề sách Do đó, nó cần nối với một table khac, tables Query sau đây được sử dụng
thành công:
SELECT au_fname, au_lname, title FROM authors
Trang 3740 Bài 3: Tìm kiếm thông tin trong cơ sở dữ hiệu
Từ query này, sau cùng bạn sẽ nhận được dữ liệu mong muốn:
au_fname au_1name title
Abraham Bennet The Busy Executive's
Database
Reginald Blotchet-Hallgs Fifty Years in Buckingham
Palace
Cột title_ ¡d trong danh sách SELECT đã được thay đổi thành
tile (tên của trường từ table titles) Sau đó, một phần nối từ
tittleauthor được thêm vào table titles; phần nối gốc kết hợp các
tác giả với title_id nhưng phần nối mới nối kết qua title iđ với title
(tựa sách) trong titles
Cac phan ndi bén ngoai
Các ví dụ cho đến thời diém nay da sti dung INNER JOIN
để chỉ truy tìm các hàng có các khóa phù hợp Mặt khác, một
phần nối bên ngoài có thể chứa các hàng từ một table không có các hàng phù hợp trong một table khác Để chứng mình điều
này, bạn sẽ thay đổi query để truy †ìm tất cả tác giả có các tên
bắt đầu với G, và bất kỳ cuốn sách mà họ đã xuất bản Sử dụng
Trang 38Bai 3: Tim kiếm thông tin trong cơ sử dữ liệu 41
SELECT au_fname, au_lname, title FROM authors
LEFT OUTER JOIN titleauthor
ON authors.au_id = titleauthor.au_id
LEFT OUTER JOIN titles
ON titleauthor.title_id = titles, title_aid
WHERE au_lname LIKE 'G%'
au_ fname au_1name title
Marjorie Green The Busy Executive's Oatabase
Guide
Marjorie Green You Can Combat Computer Stresst
Morningstar Greene (ñU11)
Burt Gringlesby Sushi, Anyone?
LEFT OUTER JOIN thay cho INNER JOIN yéu cau SQL
Server đưa vào tất cả cột trong table bên trái ngay cả nếu không có một phần phù hợp trong table bên phải Trong phần nối thứ nhất, các hàng được đặt trong table author không phù hợp với các hàng trong tittleauthor; phần nối thứ hai phải là phần nối
bên ngoài hoặc SQL Server sẽ loại bỏ các tác giả không có các
tựa sách để không phù hợp với bất kỳ hàng trong table titles
Với query này, bạn sẽ thấy tên của Morningstar Greene, mặc
dù tác giả này đã không xuất bản bất kỳ cuốn sách nào (Bạn có
thay (null) trong cột title hay không?)
TRANSACT SOL VOL ANSI SOL 92
Trang 3942 Bài 3: Tìm kiếm thông tìn trong cơ sở dữ liệu
cùng, nhưng một sự cố nảy sinh khi nó được phát triển Các phần tham khảo và các phần trợ giáo cho SQL Server có thể sử
dụng các phương ngữ cũ hơn của SQL, do dé query ANS! SQL
mà bạn đã sử dụng trong ví dụ trước
SELECT au fname, sau 1name, title_ 1đ
FROM authors
INNEA JOIN titleauthor ON authors.av_id = titleauthor.au_id
WHERE au_lname LIKE 'L%'
có thể được trình bày trong một phần tham kháo khác dưới
dạng
SELECT au_fname, au_lname, title_id
FROM authors, titleauthor
WHERE authors.au_id = titleauthor.au_id
ANO au_lname LIKE ‘L%'
Cú pháp này kết hợp biểu thức nối với tiêu chuẩn được sử
dụng để nhận biết các hàng nào mà bạn muốn truy tìm SQL Server sử dụng cả hai form, nhưng bạn nên sử dụng cú pháp
ANSI JOIN, nếu chỉ bởi vì nó rõ ràng hơn, bằng cách nhận biết
các phần nối riêng biệt với tiêu chuẩn chọn
Có các điểm khác biệt giữa Transact SQL và ANSI
TÓM tược
Trong bài này, bạn đã học về cú pháp: chọn (SELECT) dữ
liệu từ cơ sở dữ liệu, các phần phủ hợp ký tự thay thế và các biểu thức logic, các phần nối và sự tinh chỉnh gia tăng như là một công cụ để tạo các query
Nhiều khái niệm được thảo luận trong bài này sẽ được sử dụng lại và được củng cố lại trong các bài tiếp theo bởi vì thông
Trang 40Bai 3: Tim kiém thong tin trong co sé dit liéu 43
linh vuc khac cla SQL Server
Hãy nhớ
Để vấn tin nhiều table, bạn bắt đầu với một table, và sau đó bổ sung các table bằng cách nối chúng
is qua các quan hệ Các cột mà bạn truy tim trong
danh sách SELECT bắt nguồn từ bất kỳ trong các
tablc trong những thành phan FROM va JOIN, nhung
khi bạn gặp phải nhiều cột có cùng một tên, bạn
phải sử dụng cú pháp table.column có dấu chấm
Trong bài kế tiếp, bạn sẽ hoàn tất kiến thức của bạn về
SQL cơ bản bằng cách bổ sung, cập nhật, và xóa dữ liệu trong cơ sở đữ liệu Với kiến thức của bạn từ chương này, thì đây sẽ là
điều dễ dàng Sau đó, bạn sẽ cỏ thể chuyển sang các bài học định hướng trình ứng dụng, trong đó bạn sẽ thấy cách bạn áp dụng kiến thức về cơ sở dữ liệu của bạn vào thực tế bằng cách sử dụng dữ liệu từ cơ sở dữ liệu pubs trong cac trình ứng dụng