Hệ quản trị Cơ sở dữ liệu (Database Management System DBMS) là hệ thống bao gồm các cơ sở dữ liệu và phần mềm cho phép tạo lập CSDL và điều khiển mọi truy nhập đối với CSDL đó. Hiện nay trên thị trường có rất nhiều hệ quản trị CSDL khác nhau đáp ứng nhu cầu quản lý và khai thác dữ liệu của các tổ chức như: Microsoft Access, Foxpro, DB2, SQL Server, Oracle,v.v…Với tài liệu này các bạn sẽ tìm hiểu SQL Server một cách cơ bản nhất thông qua việc sử dụng công cụ thao tác với database engine đến việc bảo mật và back up và restore dữ liệu
Trang 1MỤC LỤC
Chương 1 4
TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 4
1.1 Giới thiệu 4
1.2 Các khả năng của hệ quản trị CSDL 5
1.3 Quá trình phát triển của hệ quản trị cơ sở dữ liệu 5
1.4 Kiến trúc và thành phần của hệ quản trị cơ sở dữ liệu 6
1.4.1 Bộ quản lý lưu trữ 6
1.4.2 Bộ xử lý truy vấn (Query Processor) 8
1.5 Giới thiệu SQL Server 2005 8
1.5.1 Cài đặt SQL Server 2005 Express Edition 8
1.5.2 Khởi động SQL Server 2005 Express Edition 12
1.5.3 Các thành phần chính của SQL Server 2005 14
Câu hỏi và bài tập 15
Chương 2 16
XÂY DỰNG, QUẢN LÝ VÀ KHAI THÁC CƠ SỞ DỮ LIỆU 16
2.1 Một số khái niệm liên quan đến cơ sở dữ liệu 16
2.1.1 Khái niệm cơ sở dữ liệu 16
2.1.2 Các đối tượng trong CSDL SQL Server 17
2.2.Tạo cơ sở dữ liệu 18
2.3 Tạo và chỉnh sửa bảng 19
2.3.1 Sửa lại cấu trúc bảng 21
2.3.2 Nhập dữ liệu cho bảng 21
2.3.3 Đổi tên bảng, xóa, xem thuộc tính của bảng 22
2.3.4 Tạo ràng buộc cho bảng dữ liệu 23
2.4 Lược đồ cơ sở dữ liệu (Database Diagrams) 24
2.5 Tạo và sử dụng khung nhìn (View) 25
2.6 Tạo và sử dụng chỉ mục 26
2.6.1 Lựa chọn chỉ mục 27
2.6.2 Các loại chỉ mục 28
2.6.3 Cài đặt chỉ mục với SQL Server 29
2.6.4 Xóa chỉ mục 29
2.7 Trigger 30
2.8 Hàm và thủ tục lưu trữ (Function and Store Procedure) 30
2.9 Chuyển đổi dữ liệu với các ứng dụng khác 31
2.9.1 Chuyển đổi CSDL từ Access sang SQL Server 31
2.9.2 Xuất CSDL từ SQL Server sang cơ sở dữ liệu Access 33
Câu hỏi và bài tập 34
Chương 3 35
TRANSACTION –SQL (T-SQL) 35
3.1 Giới thiệu 35
3.2 Cú pháp của Transact SQL 36
3.2.1 Định danh (Identifiers) 36
3.2.2 Biến (Variable) 36
3.2.3 Hàm (Fuction) 36
Trang 23.2.4 Biểu thức (Expression) 37
3.2.5 Chú thích (Comments) 37
3.2.6 Toán tử (Operator) 37
3.2.7 Giá trị NULL 37
3.2.8 Lệnh cơ bản trong T-SQL 38
3.3 Tạo và thực thi câu lệnh SQL với SQL Server 2005 39
3.4 Ngôn ngữ định nghĩa dữ liệu (DDL) 40
3.4.1 Câu lệnh Create 40
3.4.2 Câu lệnh Alter 44
3.4.3 Câu lệnh Drop 46
3.5 Ngôn ngữ thao tác dữ liệu (DML) 47
3.5.1 Câu lệnh Select 47
3.5.2 Câu lệnh Insert 64
3.5.3 Câu lệnh Update 65
3.5.4 Câu lệnh Delete 66
3.6 Ngôn ngữ điều khiển dữ liệu (DCL) 67
Câu hỏi và bài tập của chương 68
Chương 4 71
VIEW, TRIGGER 71
4.1 View (Khung nhìn) 71
4.1.1 Khái niệm 71
4.1.2 Tạo View 72
4.1.3 Cập nhật dữ liệu thông qua khung nhìn 74
4.1.4 Sửa khung nhìn 74
4.1.5 Xóa khung nhìn 75
4.2 Trigger 75
4.2.1 Giới thiệu 75
4.2.2 Định nghĩa Trigger 75
4.2.3 Kích hoạt trigger với sự thay đổi dữ liệu trên cột (sử dụng If Update) 77
4.2.4 Sử dụng Trigger với Transaction 78
4.2.5 Trigger tác động lên nhiều dòng dữ liệu 78
Câu hỏi và bài tập 79
Chương 5 81
PROCEDURE, FUNCTION 81
5.1 Giới thiệu 81
5.2 Thủ tục (Store Procedure) 81
5.2.1 Định nghĩa thủ tục 81
5.2.2 Lời gọi thủ tục 83
5.2.3 Biến trong thủ tục 83
5.2.4 Giá trị trả về của tham số trong thủ tục 84
5.2.5 Tham số với giá trị mặc định 85
5.2.6 Sửa đổi thủ tục 85
5.2.7 Xóa thủ tục 86
5.3 Funciton (hàm) 86
5.3.1 Khái niệm 86
5.3.2 Các hàm có sẵn 86
Trang 35.3.3 Hàm do người dùng định nghĩa 88
5.3.4 Hàm với giá trị trả về là kiểu dữ liệu bảng 89
5.4 Sử dụng thủ tục trong lập trình kết nối CSDL 91
5.4.1 Giới thiệu 91
5.4.2 Kết nối với SQL Server bằng ADO 95
Câu hỏi và bài tập 102
Chương 6 103
AN TOÀN VÀ BẢO MẬT CƠ SỞ DỮ LIỆU 103
6.1 Khái niệm cơ bản về bảo mật 103
6.2 Bản sao dữ liệu 104
6.2.1 Giới thiệu 104
6.2.2 Cấu hình Publisher và Distributor 108
6.3 Sao lưu và phục hồi dữ liệu 109
6.3.1 Sao lưu dữ liệu 110
6.3.2 Phục hồi dữ liệu 110
6.4 Import và Export cơ sở dữ liệu 111
6.5 Tạo tài khoản người dùng và phân quyền 112
6.5.1 Một số khái niệm 112
6.5.2 Tạo các login 114
6.5.3 Tạo các user 115
TÀI LIỆU THAM KHẢO 117
Trang 4Chương 1 TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Ƣu điểm khi sử dụng HQTCSDL là:
- Quản lý đƣợc dữ liệu dƣ thừa
- Đảo bảo tính nhất quán cho dữ liệu
- Tạo khả năng chia sẻ dữ liệu nhiều hơn
- Cải tiến tính toàn vẹn cho dữ liệu
Hoạt động của một hệ quản trị CSDL
Mục tiêu của hệ quản trị cơ sở dữ liệu là: dữ liệu sẵn dùng ( data availability ), tính toàn vẹn dữ liệu (data integrity ), an toàn dữ liệu ( data secutity ) và độc lập dữ liệu ( data independency)
Trang 5 Dữ liệu phải được tổ chức sao cho mọi người dùng có thể truy cập dễ dàng theo chức năng và nhiệm vụ của họ
Dữ liệu lưu trữ trong cơ sở dữ liệu là đúng đắn và đáng tin cậy
Chỉ những người dùng được phép mới có thể truy cập dữ liệu Nếu nhiều người dùng truy cập chng một mục dữ liệu cùng lúc thì hệ quản trị dữ liệu không cho phép họ thực hiện những thao thác gây mâu thuẫn nhau
Hệ quản trị CSDL phải cho phép tất cả mọi người dùng được phép lưu trữ, cập nhật và rút trích dữ liệu hiệu quả mà không cần nắm chi tiết về cấu trúc của CSDL được biểu diễn và cài đặt
1.2 Các khả năng của hệ quản trị CSDL
Có hai khả năng chính cho phép phân biệt các HQTCSDL với các kiểu hệ thống khác đó là:
Khả năng quản lý dữ liệu tồn tại lâu dài: đặc điểm này chỉ ra rằng một CSDL tồn tại trong một thời gian dài, nội dung của CSDL này là các dữ liệu mà HQTCSDL truy nhập và xử lý
Khả năng truy nhập các khối lượng dữ liệu lơn và hiệu quả
Ngoài ra, HQTCSDL còn có các khả năng khác đó là:
Hỗ trợ ít nhất một mô hình dữ liệu hay một sự trừu tượng toán học mà qua đó người
sử dụng có thể quan sát dữ liệu Ví dụ như, SQL Server hay Access hỗ trợ mô hình dữ liệu quan hệ; Posgree SQL hỗ trợ mô hình dữ liệu đối tượng…
Đảm bảo tính độc lập dữ liệu hay sự bất biến của chương trình ứng dụng đối với các thay đổi về cấu trúc trong mô hình dữ liệu
Hỗ trợ các ngôn ngữ cao cấp nhất định cho phép người sử dụng định nghĩa cấu trúc
dữ liệu, truy nhập dữ liệu và thao tác dữ liệu
Quản lý giao dịch, có nghĩa là khả năng cung cấp các truy nhập đồng thời, đúng đắn với CSDL từ nhiều người sử dụng tại cùng một thời điểm
Điều khiển truy nhập, có nghĩa là khả năng hạn chế truy nhập đến các dữ liệu bởi những người dùng không được cấp phép và khả năng kiểm tra tính đúng đắn của CSDL
Phục hồi dữ liệu, có nghĩa là có khả năng phục hồi dữ liệu, không làm mất mát dữ liệu và các lỗi hệ thống
1.3 Quá trình phát triển của hệ quản trị cơ sở dữ liệu
Quá trình phát triển của hệ quản trị CSDL
Trang 61.4 Kiến trúc và thành phần của hệ quản trị cơ sở dữ liệu
Kiến trúc của HQTCSDL Kiến trúc của hệ quản trị CSDL có thể được chia đơn giản thành:
Bộ quản lý lưu trữ (Store manager)
Bộ xử lý truy vấn (Query Processor)
Quản lý giao dịch ( Transaction management)
Thông thường, một số thao tác trên CSDL tạo thành một đơn vị logic công việc Xét một ví
Trang 7(B:=B+x) Một yếu tố cần thiết là cả hai thao tác này hoặc cùng xảy ra hoặc không hoạt động nào xảy ra cả.Việc chuyển khoản phải xảy ra trong tính toàn thể của nó hoặc không.Yêu cầu toản thể- hoặc – không này được gọi là tính nguyên tố (atomicity) Một yếu tố cần thiết khác là sự thực hiện việc chuyển khoản bảo toàn tính nhất quán của cơ sở dữ liệu: giá trị cảu tổng A+B phải được bảo toàn Yêu cầu về tính chính xác này được gọi là tính nhất quán ( consistency) Cuối cùng, sau khi thực hiện thành công hoạt động chuyển khoản, các giá trị của tài khoản A và B phải bền vững cho dù có thể có sự cố hệ thống Yêu cầu về tính bền vững này gọi là tính lâu bền Một giao dịch là một tật hợp các hoạt động thực hiện chỉ một chức năng logic trong một ứng dụng CSDL Mỗi giao dịch là một đơn vị mang cả tính nguyên tố lẫn tính nhất quan Như
vậy, các giao dịch không được vi phạm bất kỳ ràng buộc nhất quán nào: Nếu CSDL là nhất quán khi một giao dịch khởi động thì nó cũng phải nhất quán khi giao dịch thành công Tuy nhiên,
trong khi đang thực hiện giao dịch, phải cho phép sự không nhất quán tạm thời, sự không nhất quán tạm thời này tuy cần thiết nhưng lại có thể dẫn đến những khó khăn nếu sự cố xảy ra.Trách nhiệm của người lập trình là xác định đúng đắn các giao dịch sao cho bảo toàn tính nhất quán trong CSDL
Đảm bảo tính nguyên tố và tính bền lâu là trách nhiệm của HQTCSDL nói chung và thành phần quản trị giao dịch nói riêng Nếu không có sự cố, tất cả các giao dịch hoàn tất thành công
và tính nguyên tố được hoàn thành dễ dàng.Tuy nhiên, do sự hiện diện của các sự cố, một giao dịch có thể không hoàn tất thành công sự thực hiện của nó.Nêu stinhs nguyên được đảm bảo, một giao dịch thất bại không gây ảnh hưởng đến trạng thái của CSDL.Như vậy, CSDL phải được hoàn lại trạng thái của nó trước khi giao dịch bắt đầu.Hệ quản trị CSDL phải có trách nhiệm phát hiện sự cố hệ thống và trả lại CSDL về trạng thái trước khi xảy ra sự cố
Khi một số giao dịch tương tranh cập nhật CSDL, tính nhất quán của dữ liệu có thể không được đảm bảo, ngay cả khi mỗi giao dịch là chính xác Bộ quản trị điều khiển tương tranh (concurency- control manager) có trách nhiệm điều khiển các tương tác giữa các giao dịch đồng thời để đảm bảo tính thống nhất của CSDL
Thành phần kiểm tra chứng thực toàn vẹn (Authorization and Integrity Manager) có
nhiệm vụ kiểm tra ràng buộc toàn vẹn và quyền truy cập dữ liệu của người dùng CSDL
Thành phần quản lý giao dịch (Transaction manager): thành phần này đảm bảo rằng
CSDL luôn ở trạng thái nhất quán Nó quản lý việc thực thi yêu cầu thao tác dữ liệu và đảm bảo các truy cập dữ liệu đồng thời không dẫn đến mâu thuẫn
Thành phần quản lý file (File manager): quản lý việc cấp phát không gian trên đĩa Các
file được dùng để chứa tập các dữ liệu tương tự nhau Hệ quản lý file quản lý các file độc lập, giúp đỡ nhập và lấy các mẩu tin Thành phần quản lý file thiết lập và duy trì danh sách các cấu trúc và chỉ mục được đĩnh nghĩa trong lược đồ trong Thành phần quản lý file có thể:
Tạo file
Xóa file
Cập nhật mầu tin trong file
Lấy mẩu tin từ một file
Thành phần quản lý vùng đệm (Buffer Manager): có trách nhiệm chuyển dữ liệu từ đĩa
lưu trữ vào bộ nhớ chính theo yêu cấu chương trình
Trang 81.4.2 Bộ xử lý truy vấn (Query Processor)
Thực hiện câu truy vấn nhận được từ người dùng qua các giai đonạ phân tích (parser), tối
ưu hóa câu hỏi (query optimizer), lập kế hoạch thực hiện (planexcutor) và thực hiện tính toán ( operator evaluator)
1.5 Giới thiệu SQL Server 2005
SQL Server 2005 là một hệ thống quản lý cơ sở dữ liệu (Relational DatabaseManagement System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Clientcomputer và SQL Server computer Một RDBMS bao gồm databases, database engine và cácứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS
SQL Server 2005 được tốiưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn(VeryLarge Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngànuser SQL Server 2005 có thể kết hợp "ăn ý" với các server khác như Microsoft InternetInformation Server (IIS), E-Commerce Server, Proxy Server
Các phiên bản của SQL Server 2005
Enterprise: Hỗ trợ không giới hạn số lượng CPU và kích thước Database.Hỗ trợ khônggiới hạn RAM (nhưng tùy thuộc vào kích thước RAM tối đa mà HĐH hỗ trợ) và các hệ thống64bit
Standard: Tương tự như bản Enterprise nhưngchỉ hỗ trợ 4 CPU Ngoài ra phiên bản nàycũng không được trang bị một số tính năng cao cấp khác
Workgroup: Tương tự bảnStandard nhưng chỉ hỗ trợ 2 CPU và tối đa 3GB RAM
Express: Bản miễn phí, hỗ trợ tối đa 1CPU, 1GB RAM và kích thước Database giới hạntrong 4GB
Chi tiết có thể tham khảo tại địa chỉ:
http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx
1.5.1 Cài đặt SQL Server 2005 Express Edition
Các yêu cầu hệ thống:
Trang 9Chi tiết yêu cầu hệ thống cho các phiên bản Microsoft SQL Server 2005 có thể tham khảotại địa chỉ:
http://www.microsoft.com/sql/prodinfo/sysreqs/default.mspx
Trang 10Download và cài đặt Microsoft NET Framework 2.0: Để cài đặt thành công SQL ServerExpress Edition hay các phiên bản SQL Server 2005 khác, Microsoft .NET Framework 2.0phải được cài đặt trước
Gỡ bỏ các phiên bản Beta, CTP hoặc Tech Preview của SQL Server 2005, Visual Studio2005 và Microsoft NET Framework 2.0
Cài đặt SQL Server 2005 Express Edition: Microsoft SQL Server 2005 Express Edition làphiên bản miễn phí, dễ sử dụng và “nhẹ” của Microsoft SQL Server 2005 Microsoft SQLServer 2005 Express Edition được tích hợp trong Visual Studio 2005 tạo ra sự dễ dàngtrongviệc phát triển các ứng dụng hướng CSDL SQL Server 2005 Express Edition được tự do sửdụng trong các ứng dụng thương mại và dễ dàng cập nhật lên cácphiên bản cao hơn khi cầnthiết
Cài đặt SQL Server Management Studio Express: SQL Server Management StudioExpress cung cấp giao diện để người dùng dễ dàng tương tác với các thành phần củaMicrosoftSQL Server 2005 Express Edition Trước khi cài đặt SQL Server Management Studio Express,MSXML 6.0 phải được cài đặt
Download tại địa chỉ:
http://www.microsoft.com/express/sql/download/default.aspx
Các bước cài đặt SQL Server 2005 Express Edition
Kích đúp chuột tại file cài đặt Microsoft SQL Server Express Edition
Trang 11Hình 5 Hình 8
Lưu ý: SQL Server 2005 có hai kiểu authentication (kiểm tra người dùng)
Windows authentication mode: Việc kiểm tra người dùng của SQL Server 2005 sẽ phụthuộc vào việc kiểm tra người dùng của Windows Khi người dùngcó quyền đăng nhập vàoWindows, ngườidùng đó sẽ có quyền đăng nhập vào SQL Server Kiểu kiểm tra người dùngnày thường được sử dụng khi ứng dụng khai thác dữ liệu và SQL Server được cài trên cùngmột máy tính
SQL Server authentication mode: Việc kiểm tra người dùng của SQL Server 2005 sẽkhông phụ thuộc vào việc kiểm tra người dùng của Windows Khi người dùng có quyền
Trang 12đăngnhập vào Windows, người dùng đóchưa chắcsẽ có quyền đăng nhập vào SQL Server.Để đăngnhập vào SQL Server, người dùng này phải có một bộusername và password do SQL Serverquản lý Kiểu kiểm tra người dùng này thường đượcsử dụng khi ứng dụng khai thác dữ liệu vàSQL Serverkhôngđược cài trên cùng một máy tính
Khi chọn Mixed mode, SQL Server có thể dùng bất kỳ kiểu kiểm tra người dùng nào khicần thiết Đây là một thiết lập thực sự rất hữu ích khi xây dựng các ứng dụng CSDL Ngoài ra,ta cũng phải đánh password vào hai ô bên dưới để có thể đăng nhập vào SQL Server khi ta xâydựng một ứng dụng truy xuất vào CSDLở máy này khi ta đangở máy khác
Kích Next ba lần:
Hình 2
Cài đặt SQL Server Management Studio Express
Tiến hành cài đặt SQL Server Management Studio Express theo hướng dẫn
1.5.2 Khởi động SQL Server 2005 Express Edition
Đăng nhập vào SQL Server 2005 Express Edition như sau:
Start/Programs/Microsoft SQL Server 2005/SQL Server Management Studio Express
Trang 13 Nhập vào Server name và chọn chế độ truy cập, gõ vào user và password nếu có
Khi đăng nhập có thể chọn Windows Authentication hoặc SQL Server Authentication.Nếu chọn SQL Server Authentication thì phải nhập password Password này đƣợc thiết lậptrong quá trình cài đặt SQL Server 2005 Express Edition
Nếu trong quá trình cài đặt SQL Server 2005 Express Edition chúng ta không cho phépSQL Server kích hoạt ngay khi khởi động máy, bấm nút Connect sẽ gây ra lỗi Để khắc phụcvào Start->Run đánh services.msc->Enter
Tìm service SQL Server (SQLExpress), double click và trong combox Startup type chọn Automatic-> Apply- >Start -> OK
Giao diện sau khi đăng nhập thành công:
Trang 141.5.3 Các thành phần chính của SQL Server 2005
1
Giới thiệu SQL Management Tool
Microsoft SQL SQL Server Management Studio (SSMS), là công cụ mới trên Microsoft SQL Server 2005, nó là một môi trường được tích hợp cho việc truy xuất, cấu hình, quản trị và phát triển tất cả các thành phần của SQL Server SSMS kết hợp các tính năng của Enterprise Manager, Query Analyzer, và Analysis Manager, được bao hàm trong các phiên bản trước của SQL Server, thành một môi trường đơn mà cung cấp truy xuất
• Relational Database Engine
Trang 15SQL Server Configuration Manager cung cấp các quản trị cấu hình cơ sở cho các dịch vụ SQL Server (SQL Server services), các giao thức server (server protocols), các giao thức client (client protocols) và các bí danh client (client aliases) SQL Server Profiler cung cấp giao diện người dùng đồ họa cho việc giám sát thể hiện của Database Engine hoặc thể hiện của Analysis Services
Database Engine Tuning Advisor cố vấn, giúp tạo các tập tối ưu các chỉ số (indexes), indexed views, và các phân vùng (partitions)
Câu hỏi và bài tập
1 Hãy trình bày tác dụng của hệ quản trị SQL Server
2 Hãy liệt kê các thành phần cơ bản của hệ quản trị SQL Server
3 Nêu các bước cài đặt và cấu hình hệ quản trị SQL Server
4 Hãy trình bày cách khởi động hệ quản trị SQL Server, cách kết nối đến Server sau khi cài đặt
Trang 16Chương 2 XÂY DỰNG, QUẢN LÝ VÀ KHAI THÁC CƠ SỞ DỮ LIỆU
Mục tiêu:
- Trình bày được các khái niệm liên quan đến CSDL
- Trình bày được cấu trúc CSDL vật lý trong SQL Server
- Trình bày được khái niệm về các thành phần trong hệ quản trị SQL Server và
trong CSDL SQL Server
- Tạo, chỉnh sửa và thực hiện được các thao tác cơ bản đối với CSDL và bảng
ở chế độ Enterprise
2.1 Một số khái niệm liên quan đến cơ sở dữ liệu
2.1.1 Khái niệm cơ sở dữ liệu
Ở mức logic, một cơ sở dữ liệu gồm:
- Các bảng (tables) chứa dữ liệu có cấu trúc và các ràng buộc (constraint) định nghĩa trên các bảng
- Các khung nhìn (view)
- Các thủ tục (Procedure)/ hàm (Function)
- Các vai trò (role) và các người dùng (user)…
Ở mức vật lý, một cơ sở dữ liệu của SQL Server được lưu trữ bởi 3 loại tập tin:
Dữ liệu trong các tệp dữ liệu được chia thành các Page 8KB và 8 Page liên tục tạo thành
Các thành phần của CSDL
Trang 17 Tập tin dữ liệu (Data file) gồm:
- Primary data file ( có phần mở rộng là mdf) đây là file chính chứa dữ liệu và hệ thống bảng
- Secondary data file(có phần mở rộng là ndf) đây là file phụ thường chỉ sử dụng khi database được phân chia để chứa trên nhiều đĩa
Tập tin nhật ký giao tác gồm 1-n tập tin nhật ký:
- Transaction log file (có phần mở rộng là ldf): đây là file ghi lại các thay đổi diễn ra trong CSDL và chứa đầy đủ thông tin để có thể khôi phục khi cần thiết
Cơ sở dữ liệu hệ thống của SQL Server
2.1.2 Các đối tượng trong CSDL SQL Server
Trang 182.2.Tạo cơ sở dữ liệu
Để tạo CSDL ta có thể thực hiện bằng nhiều cách sử dụng câu lệnh hoặc sử dụng menu
có sẵn Trong phần này sẽ trình bày cách tạo CSDL sử dụng chức năng menu còn ở chương sau
ta sẽ thực hiện bằng câu lệnh
Tạo CSDL trên SQL Server 2005 thực hiện như sau:
Trong cửa sổ SQL Server Management Studio Express tại hộp Object Explorer thực hiện kích phải chuột vào đối tượng Database và chọn new Database
Hộp thoại xuất hiện
Database name: gõ tên CSDL cần tạo
Initial Size: kích thước khởi tạo của file
Autogrowth: kích thước tự động tăng trưởng
Path: đường dẫn lưu file dữ liệu mặc định là: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA
Kích Add/OK
Sửa đổi thuộc tính của cơ sở dữ liệu
Kích phải chuột tại CSDL muốn xem và sửa đổi thuộc tính chọn properties
Trang 19Hộp thoại properties xuất hiện cho biết thông tin về CSDL
- Name: Tên cơ sở dữ liệu
- Owner: Người làm chủ
- Data Create: Ngày giờ tạo CSDL
- Size: kích thước
- Space Available: kích thước có sẵn
- Number of Usesrs: số lượng người sử dụng CSDL
Xóa cơ sở dữ liệu
Kích phải chuột vào CSDL cần xóa và chọn Delete
2.3 Tạo và chỉnh sửa bảng
Bảng là thành phần lưu trữ dữ liệu của một CSDL
Trang 202.3.1 Tạo bảng mới
Mở CSDL cần tạo bảng (tại phần Object Explorer); Chọn tới mục Table và kích phải chuột chọn New Table
Giao diện tạo cấu trúc bảng như sau:
Colum name: gõ tên các trường cần tạo cho bảng
Data type: chọn kiểu dữ liệu cho trường
Allow Nulls: cho phép bỏ trống hay không cho phép bỏ trống
Column Properties: thiết lập thuộc tính cho cột (trường), ngoài ra có thể thiết lập thuộc tính cho các trường tại hộp thoại properties
Các kiểu dữ liệu của SQL Server
Trang 212.3.1 Sửa lại cấu trúc bảng
Kích phải chuột vào bảng cần sửa lại cấu trúc và chọn Design
Giao diện sửa cấu trúc giống giao diện thiết kế bảng cho phép bạn sửa lại cấu trúc của bảng theo mong muốn
Trang 22Giao diện nhập liệu
2.3.3 Đổi tên bảng, xóa, xem thuộc tính của bảng
Kích phải chuột vào bảng cần thực hiện thao tác
Các trường của bảng khi thiết kế
Trang 23+ Chọn Delete: để xóa bảng
+ Chọn Properties: để xem thuộc tính bảng
2.3.4 Tạo ràng buộc cho bảng dữ liệu
Ràng buộc kiểm tra dữ liệu
Một số trường dữ liệu của bảng có những điều kiện ràng buộc mang tính chất ràng buộc toàn vẹn dữ liệu như: Tuổi của nhân viên của công ty phải >=18 và <=60; hay điểm toán phải thuộc [0,10]…Những ràng buộc này sẽ giúp đảm bảo tính toàn vẹn của dữ liệu được nhập trong CSDL Để tạo ràng buộc toàn vẹn dữ liệu ta thực hiện như sau:
Bước 1: Mở bảng cần tạo ràng buộc kiểm tra dữ liệu tại chế độ Design
Bước 2: Vào menu Table Designer và chọn Check Constraints…
Hoặc chọn biểu tượng Manage Check Constraints trên thanh công cụ
Bước 3: Nhấn vào nút Add để thêm ràng buộc
Bước 4: Nhấn chuột tại mục Expression để xây dựng biểu thức ràng buộc
Bước 5: Nhấn chuột tại nút Close để đóng lại hộp thoại
Trang 24Lưu ý: muốn gỡ bỏ ràng buộc kiểm tra dữ liệu thì ta lại mở lại hộp thoại Management
Check Constraint, chọn ràng buộc cần xóa bỏ và chọn Delete
Ràng buộc khóa chính
Bất kỳ bảng nào trong CSDL cũng phải có khóa chính, khóa chính của một bảng có thể là
1 hay một vài trường trong bảng Để tạo ràng buộc khóa chính cho bảng ta thực hiện như sau: Bước 1: Mở bảng cần tạo ràng buộc khóa chính ở chế độ Design
Bước 2: Chọn 1 hoặc vài trường cần tạo khóa chính
Bước 3: Vào menu Table Designer/ Set Primary key hoặc chọn biểu tượng Primary key trên thanh công cụ
Lưu ý: để gỡ bỏ ràng buộc khóa chính này ta thực hiện lại toàn bộ quy trình tạo khóa chính một lần nữa
Ràng buộc khóa ngoại
Nếu mối quan hệ giữa hai bảng là 1:n thì ta mở bảng có quan hệ n
Bước 2: Vào menu Tablse Designer/RelationShip… hoặc chọn biểu tượng trên thanh công
cụ
2.4 Lược đồ cơ sở dữ liệu (Database Diagrams)
Để quan sát toàn bộ các bảng, mối quan hệ giữa các bảng trong CSDL ta có thể thực hiện quan sát thông qua lược đồ CSDL
Trang 25Những bảng nào có quan hệ với nhau sẽ được biểu diễn bằng đường nối và có biểu tượng thể hiện chỉ số quan hệ Tại đây ta cũng có thể thực hiện tạo mối quan hệ cho các bảng (tạo ràng buộc khóa ngoại) bằng việc kéo thả các trường quan hệ từ bảng này sang bảng khác
2.5 Tạo và sử dụng khung nhìn (View)
SQL Server cho phép chúng ta quan sát được dữ liệu thông qua việc định nghĩa các khung nhìn (View) Một khung nhìn (view) có thể được xem như là một bảng “ảo” trong cơ sở dữ liệu
có nội dung được định nghĩa thông qua một truy vấn (câu lệnh SELECT) View trông giống như một bảng với một tên khung nhìn và là một tập bao gồm các dòng và các cột
Điểm khác biệt giữa khung nhìn và bảng là khung nhìn không được xem là một cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở dữ liệu Thực chất dữ liệu quan sát được trong khung nhìn được lấy từ các bảng thông qua câu lệnh truy vấn dữ liệu
Ví dụ khung nhìn Danh sách sinh viên (DSSV) được tạo bởi 2 bảng dữ liệu là bảng Sinhvien và bảng Lop
Lợi ích của khung nhìn
• Bảo mật dữ liệu: Người sử dụng được cấp phát quyền trên các khung nhìn với những
phần dữ liệu mà người sử dụng được phép Điều này hạn chế được phần nào việc người
sử dụng truy cập trực tiếp dữ liệu
• Đơn giản hoá các thao tác truy vấn dữ liệu: Một khung nhìn đóng vai trò như là một đối
tượng tập hợp dữ liệu từ nhiều bảng khác nhau vào trong một “bảng” Nhờ vào đó, người
sử dụng có thể thực hiện các yêu cầu truy vấn dữ liệu một cách đơn giản từ khung nhìn thay vì phải đưa ra những câu truy vấn phức tạp
• Tập trung và đơn giản hoà dữ liệu: Thông qua khung nhìn ta có thể cung cấp cho người
sử dụng những cấu trúc đơn giản, dễ hiểu hơn về dữ liệu trong cơ sở dữ liệu đồng thời giúp cho người sử dụng tập trung hơn trên những phần dữ liệu cần thiết
• Độc lập dữ liệu: Một khung nhìn có thể cho phép người sử dụng có được cái nhìn về dữ
liệu độc lập với cấu trúc của các bảng trong cơ sở dữ liệu cho dù các bảng cơ sở có bị thay đổi phần nào về cấu trúc
Nhược điểm của khung nhìn
• Do hệ quản trị cơ sở dữ liệu thực hiện việc chuyển đổi các truy vấn trên khung nhìn thành những truy vấn trên các bảng cơ sở nên nếu một khung nhìn được định nghĩa bởi một truy vấn phức tạp thì sẽ dẫn đến chi phí về mặt thời gian khi thực hiện truy vấn liên quan đến khung nhìn sẽ lớn
• Mặc dù thông qua khung nhìn có thể thực hiện được thao tác bổ sung và cập nhật dữ liệu cho bảng cơ sở nhưng chỉ hạn chế đối với những khung nhìn đơn giản Đối với những
Trang 26khung nhìn phức tạp thì thường không thực hiện được; hay nói cách khác là dữ liệu trong khung nhìn là chỉ đọc
Tạo khung nhìn
Để tạo khung nhìn ta thực hiện theo các bước sau:
Bước 1: Mở CSDL cần tạo khung nhìn
Bước 2: Chọn mục Views trong CSDL và kích phải chuột chọn New View…
Bước 3: Hộp thoại Add Table cho phép bạn đưa vào các bảng cần dùng để xây dựng View Bước 4: Xây dựng View
- Tại phần 1: đánh dấu vào những trường cần hiển thị trong View, trong trường hợp muốn đưa toàn bộ các trường của bảng vào View ta đánh dấu tại mục All columns
- Tại phần 2: Column: chứa các tên trường dữ liệu sẽ có trong View; Alias: tên trường mới; Output: quy định trường dữ liệu có hiển thị hay không trên View; Sort Type: sắp xếp theo kiểu
dữ liệu; Sort Order: chỉ định trường đó được sắp xếp; Filter: điều kiện lọc dữ liệu; Or: điều kiện lọc dữ liệu dạng hoặc
- Tại phần 3: Câu lệnh Select (nguồn tạo lên View) sẽ tự động được sinh ra
- Tại phần 4: Hiển thị kết quả khi chạy View
2.6 Tạo và sử dụng chỉ mục
Chỉ mục (Index) là một phần quan trọng đối với CSDL, đặc biệt là CSDL lớn Chỉ mục
Phần 2 Phần 1
Phần 3
Phần 4
Trang 27xếp và lưu trữ theo một danh sách (bảng khác) Mỗi giá tri chỉ mục là duy nhất trong danh sách
và nó sẽ liên kết đến giá trị tỏng bảng dữ liệu ( liên kết dạng con trỏ ) Việc lưu trữ dữ liệu của bảng có khóa chỉ mục được thực hiện theo cấu trúc B-Cây nhằm tăng tốc độ truy xuất dữ liệu đối với ổ đĩa (thiết bị thứ cấp)
Khi tìm kiếm một giá trị trong cột dữ liệu mà cột này tham gia tạo Chỉ mục, đầu tiên câu lệnh xác định vị trí của giá trị nằm trong Chỉ mục bằng phép duyệt cây, sau đó thực hiện tìm theo liên kết đến bản ghi chứ giá trị tương ứng với khóa trong bảng
2.6.1 Lựa chọn chỉ mục
Nếu không có chỉ mục, hệ quản trị CSDL thực hiện truy vấn bằng cách duyệt qua từng dòng trong bảng Cài đặt các chỉ mục cho bảng giúp cho truy vấn thông tin nhanh hơn (tìm kiếm trên B-Cây) Khóa chính và các ràng buộc unique hiển nhiên là các chỉ mục của bảng
Cơ sở để chọn chỉ mục cho bảng đó là dựa vào nhu cấu truy vấn thực hiện thường xuyên
trên CSDL
Nên cài đặt chỉ mục cho các trường hợp sau:
Trường hợp 1: Có nhu cấu truy vấn thường xuyên các bộ của bảng Q theo một số (tập) thuộc tính nào đó
Ví dụ: Giao dịch (MãGD,…, NgàyGD): có nhu cầu tủy xuất thường xuyêncác bộ của giao
dịch trong một ngày hoặc trong một khoảng thời gian nhất định: cài đặt chỉ mục trên thuộc tính NgaayfGD của quan hệ Giao dịch
Trường hợp 2: tập thuộc tính tham gia vào phép kết của một truy vấn xảy ra thường xuyên
Ví dụ: cho 2 lược đồ quan hệ
Hocsinh(STT, Lop, HoTen,…) KetQua(STT, Lop, Mon, Diem) Thường xuyên có nhu cầu truy vấn: cho biết kết quả học tập của một học sinh Câu lệnh truy vấn như sau:
Select hs.STT, hs.Lop, hs.Hoten, kq.Mon, Kq.Diem From Hocsinh hs, KetQua kq
Where Hocsinh.STT=Kq.STT and Hocsinh.Lop=Kq.Lop
Cài đặt chỉ mục (STT, Lop) cho bảng KetQua
Tổng quát: trên mô hình quan hệ, xác định các con đường truy xuất thường xuyên
Từ một bộ của Q1 (một giá trị cụ thể a của A) có nhu cầu truy xuất thường xuyên tới các bộ của Q2 tương ứng ( tìm kiếm các bộ Q2 với A=a): khai báo chỉ mục (A) cho Q2
Trang 28Lưu ý: một chỉ mục (AB) khác với hai chỉ mục (A) và (B)
Dữ liệu thực sự được sắp xếp vật lý theo chỉ mục (thật sự nằm ở nút lá của cây)
Mỗi bảng chỉ có thể có một clustered chỉ mục, thường là khóa chính
Nonclustered index:
Chỉ mục logic, dữ liệu thật sự không được sắp xếp vật lý theo chỉ mục
Nút lá là con trỏ trở đến vị trí của bộ dữ liệu, hoặc trỏ đến giá trị của clustered chỉ mục ( trong trường hợp bảng có clustered index )
Ví dụ:
Dữ liệu gốc
Không có clustered index
Trang 29Có clustered index
Một số cân nhắc khi chọn chỉ mục:
Sử dụng nhiều chỉ mục tăng tốc độ truy vấn, nhưng làm giảm hiệu quả của các thao tác thêm/ xóa/ cập nhật dữ liệu
Không nên tạo chỉ mục trên các bảng quá nhỏ (vài trăm dòng)
Chỉ nên chọn chỉ mục mà mỗi giá trị của nó tương ứng với một số ít bộ Nếu mỗi giá trị của chỉ mục ứng trên 20% số lượng bộ trong bảng, thực hiện truy vấn bình thường bằng cách duyệt qua các dòng trong bảng sẽ hiệu quả hơn
Các giá trị chỉ mục phải phân bố đều các bộ trong bảng
Cố gắng dùng các chỉ mục với số thuộc tính ít (chiếm ít không gian và cần ít chi phí duy trì hơn chỉ mục với số thuộc tính lớn)
Clustered index phải nhỏ (số thuộc tính it, kích thước nhỏ), và các chỉ mục
nonclustered đều phải gắn kết tới nó
2.6.3 Cài đặt chỉ mục với SQL Server
Drop Chỉ mục table_name(chỉ mục_name)
Ví dụ:
Drop Chỉ mục KETQUA(idx_STTHS_Lop)
Trang 302.7 Trigger
Đây là thành phần đặc biệt quan trọng của CSDL SQL Server
Các ràng buộc được sử dụng để đảm bảo tính toàn vẹn dữ liệu trong cơ sở dữ liệu Một đối tượng khác cũng thường được sử dụng trong các cơ sở dữ liệu cũng với mục đích này là các trigger Một trigger là một đối tượng chứa một tập các câu lệnh SQL và tập các câu lệnh này sẽ được thực thi khi trigger được gọi
Các trigger lại được “gọi” tự động khi xảy ra những giao tác làm thay đổi dữ liệu trong các bảng Mỗi một trigger được tạo ra và gắn liền với một bảng nào đó trong cơ sở dữ liệu Khi dữ liệu trong bảng bị thay đổi (tức là khi bảng chịu tác động của các câu lệnh INSERT, UPDATE hay DELETE) thì trigger sẽ được tự đông kích hoạt
Các trigger được quản lý tại mục Programmability của cơ sở dữ liệu, các trigger sau khi được tạo sẽ nằm trong thư mục Database Triggers
Chúng ta sẽ tìm hiểu kỹ về Trigger ở chương sau
2.8 Hàm và thủ tục lưu trữ (Function and Store Procedure)
Store Procedure
Thủ tục là một đối tượng trong CSDL bao gồm một tập gồm nhiều câu lệnh SQL được nhóm lại với nhau thành một nhóm với những khả năng sau:
Các cấu trúc điều khiển (IF, While, For) có thể được sử dụng trong thủ tục
Bên trong thủ tục có thể sử dụng các biến như trong ngôn ngữ lập trình nhằm lưu giữ các giá trị tính toán được, các giá trị được truy xuất từ cơ sở dữ liệu
Một tập các câu lệnh SQL được kết hợp lại với nhau thành một khối lệnh bên trong một thủ tục Một thủ tục có thể nhận các tham số truyền vào cũng như có thể trả về các giá trị thông qua các tham số(như trong ngôn ngữ lập trình) Thủ tục được gọi thông qua tên, nhận các tham số truyền vào
Sử dụng thủ tục lưu trữ trong cơ sở dữ liệu sẽ giúp tăng hiệu năng của CSDL, mang lại các lợi ích sau:
Đơn giản hóa các thao tác trên CSDL nhờ vào khả năng module hóa các thao tác này
Thủ tục lưu trữ được phân tích, tối ưu khi tạo ra nên việc thực thi chúng nhanh hơn nhiều so với việc phải thực hiện một tập rời rạc các câu lệnh SQL tương đương theo cách thông thường
Trang 31 Cho phép thực hiện cùng 1 yêu cầu bằng câu lệnh đơn giản thay vì phải sử dụng nhiều dòng lệnh SQL Giảm thiểu sự lưu thông trên mạng
Thay vì cấp phát quyền trực tiếp cho người sử dụng trên các câu lệnh SQL và trên các đối tượng CSDL, ta có thể cấp phát quyền cho người sử dụng thông qua thủ tục lưu trữ, nhờ đó tăng khả năng bảo mật đối với hệ thống
Function
Hàm là đối tượng cơ sở dữ liệu tương tự như thủ tục Điểm khác biệt giữa hàm và thủ tục
là hàm trả về một giá trị thông qua tên hàm còn thủ tục thì không Điều này cho phép ta sử dụng hàm như là một thành phần của một biêu thức (chẳng hạn trong danh sách chọn của câu lệnh SELECT)
Ngoài những hàm do hệ quản trị cơ sở dữ liệu cung cấp sẵn, người sử dụng có thể định nghĩa thêm các hàm nhằm phục vụ cho mục đích riêng của mình
Ta sẽ tìm hiểu cách tạo và sử dụng hàm, thủ tục tại chương sau
2.9 Chuyển đổi dữ liệu với các ứng dụng khác
Việc chuyển đổi cơ sở dữ liệu có thể thực hiện qua lại giữa các hệ quản trị CSDL Việc chuyển đổi được thực hiện thông qua một số bước Tại đây chúng ta sẽ tìm hiểu về cách chuyển đổi qua lại giữa nguồn cơ sở dữ liệu SQL Server và CSDL Access Đối với các CSDL khác ta cũng có cách làm tương tự
2.9.1 Chuyển đổi CSDL từ Access sang SQL Server
Trước tiên, ta cần tạo một CSDL trong Access giả sử có tên là QuanlyNhanVien với hai bảng có quan hệ như sau:
Tạo CSDL mới trong SQL Server, lấy tên là QLNV
Kích phải chuột lên CSDL này và chọn All Tasks/Import Data
`Hộp thoại xuất hiện như sau:
Trang 32Chọn Next
Chọn Nguồn cơ sở dữ liệu tại mục Data Source ( ta chọn là Microsoft Access); tại mục File Name chọn CSDL Access (QuanLyNhanVien.mdb) Nhấn Next
`Chọn CSDL đích Để mặc định như hình dưới đây, nếu bạn chọn kết nối với tài khoản của SQL Server thì đánh dấu vào ô Use SQL Server Authentication, trong hộp Username nhập tài khoản đăng nhập quản trị CSDL Chọn Next
Trang 33Để mặc định như trên nếu muốn sao chép toàn bộ bảng và truy vấn CSDL nguồng, nhấn Next để tiếp Chọn các bảng và truy vấn cần chép, nhấn Next/Next để tiếp tục
Nhấn Finish, sau đó nhấn Done để hoàn tất công việc
2.9.2 Xuất CSDL từ SQL Server sang cơ sở dữ liệu Access
Nhấp phải chuột len CSDL trong SQL Server chọn All Tasks/Export Data…
Thực hiện các bước chuyển đổi giống với các bước Import như trên
Trang 34Câu hỏi và bài tập
1 Liệt kê các thành phần của CSDL SQL Server
2 Trình bày cách tạo CSDL trong SQL Server
- Sử dụng câu lệnh
- Sử dụng công cụ SQL Server Express
3 Liệt kê các kiểu dữ liệu trong SQL Server cùng độ dài của nó
4 Sơ đồ hóa quy trình tạo bảng, thao tác với bảng biểu trong SQL Server bằng công cụ SQL Server Express
5 Trình bày định nghĩa về View, tác dụng của View và quy trình tạo View
6 Hãy liệt kê các loại ràng buộc, trình bày cách thức tạo ràng buộc của bảng trong SQL Server
7 Để quan sát CSDL một cách tổng quan ta sử dụng lược đồ cơ sở dữ liệu Nêu cách tạo lược đồ cơ sở dữ liệu trong SQL Server
8 Bài tập
- Tạo cơ sở dữ liệu HANGHOA
- Tạo các bảng trong CSDL HANGHOA theo lược đồ dưới đây
- Tạo ràng buộc thiết lập giá trị mặc định bằng 1 cho cột SOLUONG và bằng 0 cho cột MUCGIAMGIA trong bảng CHITIETDATHANG
- Tạo ràng buộc kiểm tra ngày giao hàng và ngày chuyển hàng phải sau hoặc bằng ngày đặt hàng cho bảng DONDATHANG
- Tạo ràng buộc cho bảng NHANVIEN để đảm bảo một nhân viên chỉ có thể làm việc trong công ty khi đủ 18 tuổi và không quá 60 tuổi
Trang 35Chương 3 TRANSACTION –SQL (T-SQL)
Mục tiêu:
- Trình bày được cấu trúc và các thành phần cơ bản của T-SQL
- Trình bày được cấu trúc và các thành phần cơ bản của ngôn ngữ định nghĩa dữ liệu
- Trình bày được cấu trúc và các thành phần cơ bản của ngôn ngữ định nghĩa khai thác
- Trình bày được cấu trúc và các thành phần cơ bản của ngôn ngữ điều khiển dữ liệu
- Sử dụng thành thạo các cấu trúc câu ngôn ngữ trong việc xây dựng, khai thác, xử lý và
điều khiển dữ liệu trong CSDL
3.1 Giới thiệu
Năm 1992 ANSI và ISO đã định nghĩa chuẩn về phần mềm trong đó có chuẩn SQL.SQL Server 2000 sử dụng SQL chuẩn năm 1992 và thêm vào các đặc tính riêng biệt gọi là T-SQL T-SQL là ngôn ngữ chính để trao đổi dữ liệu trên SQL Server 2000
SQL chuẩn bao gồm khoảng trên 40 câu lệnh Trong các hệ quản trị CSDL khác nhau, mặc
dù các câu lệnh đều có cùng dạng và cùng mục đích sử dụng song mỗi hệ quản trị CSDL có thể
có một số thay đổi nào đó
T-SQL được chia thành 3 nhóm:
Data Definition Language (DDL)
Data Control Language (DCL)
Data Manipulation Language (DML)
Data Definition Language (DDL): là những lệnh dùng để quản lý các thuộc tính của
một CSDL như định nghĩa các hàng, cột hay bảng hay vị trí các data file của một CSDL Nhóm lệnh này thường có dạng:
Create object_name
Alter object_name
Drop object_name
Trong đó object_name có thể là một table, view, stored procedure, indexes…
Data Control Language(DCL): Là những lệnh quản lý các quyền truy cập lên từng đối
tượng (table, view, stored procedure…) Thường có dạng sau:
Trang 36Tên có hai loại:
Regular Identifier: loại thông thường
Delimited identifier: loại định danh trùng từ khóa hay chữu có khoảng trống, phải đặt trong cặp dấu [] hay “”
Ví dụ: Select * from [My Table] where [Order]=10
Trong CSDL có nhiều người dùng, khi ta chỉ định tên của một bảng nào đó trong câu lệnh SQL, hệ quản trị CSDL liền hiểu đó là tên bảng do ta sở hữu Thông thường, trong các hệ quản trị CSDL này cho phép những người dùng khác nhau tạo ra tên bảng trùng nhau mà không gây xung đột về tên Nếu trong một câu lệnh SQL ta cần chỉ đến một bảng do người dung fkhác sở hữu thì tên bảng được viết sau tên người sở hữu và phân cách tên với tên người sở hữu bởi dấu
tên_người_sở_hữu.tên_bảng
3.2.2 Biến (Variable)
Trong T-SQL cũng có chức năng tương tự như các ngôn ngữ lập trình khác nghĩa là cần khai báo trước loại dữ liệu trước khi sử dụng Biến được bắt đầu bằng dấu @ (Đối với các biến toàn cục-global variable-thì có hai dấu @@)
Trang 37 Rowset Functions: Loại này thường trả về một object và được đối xử như một table VD, hàm openquery sẽ trả về một recordset và có thể đúng vị trí của của một bảng trong câu lệnh Select
Aggregate Functions: Loại này làm việc trên một số giá trị và trả về một giá trị đơn hay là các giá trị tổng VD, hàm AVG trả về giá trị trung bình của một cột
Scalar Functions: làm việc trên một giá trị đơn và trả về một giá trị đơn VD, Month(„2007-09-03‟) trả về tháng 9
Các hàm User-Defined: được tạo bởi câu lệnh Create Function và phần thân thường được gói trong cặp lệnh Begin…End.Được chia thành các nhóm sau:
Scalar Functions: trả về 1 giá trị đơn bằng câu lệnh Return
Table Functions: trả về một bảng dữ liệu
Trong SQL Server các biểu thức có nhiều toán tử Độ ưu tiên của toán tử sẽ quyết định thứ
tự thực hiện của các phép tính Bảng mô tả các toán tử trong SQL Server 2005 và mức độ ưu tiên
3.2.7 Giá trị NULL
Một CSDL là sự phản ánh của một hệ thống thế giới thưc, do đó các giá trị dữ liệu tồn tại trong CSDL có thể không xác định được Một giá trị không xác định được xuất hiện trong CSDL
có thể do một số nguyên nhân sau:
Giá trị đó tồn tại nhưng không biết
Không xác định được giá trị đó có tồn tại hay không
Tại một thời điểm nào đó gia strij chưa có nhưng rồi có thể sẽ có
Giá trị bị lỗi do tính toán (tràn số, chia cho không…)
Trang 38Những giá trị không xác định được biểu diễn trong CSDL quan hệ bởi các giá trị NULL Đây là giá trị đặc biệt và khoogn nên nhầm lẫn với chuỗi rỗng ( đối với dữ liệu kiểu chuỗi) hay giá trị không ( đối với giá trị kiểu chuỗi) Giá trị NULL đóng một vai trò quan trọng trong các CSDL và hẫu hết các hệ quản trị CSDL quan hệ hiện nay đều hỗ trợ việc sử dụng giá trị này 3.2.8 Lệnh cơ bản trong T-SQL
Lệnh Go: chỉ dung để gửi một tín hiệu cho SQL server biết đã kết thúc một nhóm việc và yêu cầu thực thi
Gom nhóm câu lệnh lệnh thành khối sử dụng Begin…End
BEGIN
Các câu lệnh END
Lệnh Goto: lệnh nhảy đến một nhãn cho trước
Nhóm lệnh sql]
Lệnh rẽ nhánh CASE
CASE <biểu thức vào>
WHEN <biểu thức> THEN <Kết quả>
[WHEN….]
[ELSE<biểu thức>]
END Hoặc CASE WHEN <biểu thức logic> THEN
Trang 39BEGIN
Các lệnh [Continue]
[Break]
END
3.3 Tạo và thực thi câu lệnh SQL với SQL Server 2005
Truy cập vào SQL Server Trên thanh công cụ chọn biểu tƣợng New Query để mở cửa sổ
gõ mã lệnh SQL
Cửa sổ gõ mã lệnh SQL xuất hiện
Thực thi câu lệnh SQL bằng cách
- Bôi đen (lựa chọn) câu lệnh, nhóm lệnh cần thực thi
- Kiểm tra lỗi cú pháp bằng cách kích chuột tại biểu tƣợng Parse trên thanh công cụ
Trang 403.4 Ngôn ngữ định nghĩa dữ liệu (DDL)
Ngôn ngữ định nghĩa dữ liệu thông thường là các câu lệnh liên quan đến quá trình tạo, sửa, xóa cấu trúc bảng biểu, CSDL, View, Trigger…
• Cột có chấp nhận giá trị NULL hay không
• Các_ràng_buộc:
Quy định khuôn dạng hay giá trị dữ liệu được cho phép trên cột (chẳng hạn qui định tuổi của một học sinh phải lớn hơn 6 và nhỏ hơn 20, số điện thoại phải là một chuỗi bao gồm 6 chữ số, ) Những ràng buộc kiểu này được gọi là ràng buộc CHECK
Quy định khóa chính PRIMARY KEY, UNIQUE
Ví dụ 1:
Create table Loaihang( Maloaihang varchar(10) not null,
Tenloaihang varchar(30))