Theo thời gian, ngôn ngữ này đã được bổ sung dần đến mức nó không chỉ là một ngôn ngữ dùng cho truy vấn mà còn có thể tạo ra các cơ sơ dữ liệu và quản lý tính năng bảo vệ hệ thống cơ sở
Trang 1TỔNG QUAN SQL SERVER 7.0 & 2000
CÂU LỆNH CHUẨN VỀ SQL
Mục lục
Trang 22 Câu lệnh chuẩn về SQL 17
Trang 31.1 Tổng quan về Sql server
Những năm 1970, hãng IBM đã phát minh ra ngôn ngữ máy tính được thiết kế đặc biệt dùng cho việc truy vấn cơ sơ dữ liệu được gọi là SEQUEL (Structured English Query Language) Theo thời gian, ngôn ngữ này đã được bổ sung dần đến mức nó không chỉ là một ngôn ngữ dùng cho truy vấn mà còn có thể tạo ra các cơ sơ dữ liệu và quản lý tính năng bảo vệ hệ thống cơ sở dữ liệu IBM đã công bố SEQUEL rộng rãi, và nó được biết đến với tên gọi SQL Do đó bạn có thể gọi là sequel hay đánh vần nó thành S-Q-L Có nhiều phiên bản khác nhau của SQL được dùng cho các hệ thống cơ sở dữ liệu hiện nay SQL Server của Microsoft đang dùng phiên bản Transact-SQL, hay T-SQL, thay cho Transaction SQL
Bạn có thể cài đặt SQL Serrver 7.0 trên hệ thống Win9x, nhưng khi đó không đảm bảo các tính năng an toàn về CSDL và hiệu suất của SQL Server bị giảm khi thêm nhiều người sử dụng
SQL Server 7.0 có vai trò như một dịch vụ (Service) trên Workstation cũng như trên NT Server và có vai trò như một ứng dụng (aplication) trên Window 9x
(Service là một ứng dụng mà có thể thực thi ngay khi NT khởi động, nó bổ sung tính năng cho phần Server của NT)
SQL Server sử dụng cơ sở dữ liệu (CSDL) quan hệ (Relational Database) Ðây là dữ liệu
mà bên trong nó được tổ chức thành các bảng, các bảng này là các nhóm dữ liệu cùng chủ đề và có chứa các hàng các cột thông tin Sau đó các bảng này lại liên hệ với nhau bởi bộ Database Engine khi có yêu cầu
Là một hệ quản trị CSDL theo mô hình Client/Server, SQL Server có đầy đủ các chức về việc xây dựng quản trị các CSDL Điều hành cơ sở dữ liệu toàn xí nghiệp, quản trị kho lưu trữ dữ liệu, quản trị các tài khoản người dùng, quản trị các quyền truy nhập hệ thống,
xử lý thông báo cảnh giác của hệ phục vụ và lên lịch công việc, sao lặp, kết nối mạng… Ngoài ra, SQL còn hỗ trợ xây dựng các kho dữ liệu (Data Warehouse), truy vấn dữ liệu băng ngôn ngữ tự nhiên (English Query), kết xuất dữ liệu lên web
1.1.1 Mô hình cơ sở dữ liệu Client/Server
SQL Server là hệ quản trị cơ sở dữ liệu theo mô hình client/server Phân chia công việc giữa client và server như sau:
1.1.1.1 Client side
- Phải xác định thông tin cần server cung cấp trước khi yêu cầu đến server
- Có trách nhiệm hiển thị toàn bộ thông tin cho user
- Phải làm việc với các result set (tập kết quả) hơn là làm việc trực tiếp trên các bảng của database
- Phải làm mọi thao tác xử lý dữ liệu
- Cung cấp tất cả định dạng của dữ liệu và thông tin cần thiết để tạo report
1.1.1.2 Server side
- Database engine đảm nhận nhiệm vụ lưu trữ (storage), cập nhật (update) và cung cấp (retrieval) thông tin trong hệ thống
Trang 4- Tạo tập kết quả (result set) theo yêu cầu của ứng dụng client.
- Không có giao diện người dùng (user interface) Tự thân SQL Server là không
có giao diện người dùng, ngoại trừ một số tool giúp admin quản trị hệ thống
- Hoàn toàn độc lập với các ứng dụng client
- Không chịu trách nhiệm việc hiển thị thông tin cho người dùng từ các kết quả thực thi các query
1.1.2 Làm việc với SQL Server
Client làm việc với SQL Server thông qua 3 phương thức: DB-Library, ODBC, SQL OLE
1.1.2.1 DB-Library Interface
DB-Library Interface hoặc gọi tắt DB-LIB là một thư viện API cho các ngôn ngữ lập trình làm việc trực tiếp với SQL Server Để sử dụng DB-LIB cần include nhưng file sau đây vào project: SQLBD.H, SQLFRONT.H hoặc VBSQL.OCX , VBSQL.BAS
1.1.2.2 Open database connectivity (ODBC)
ODBC là một giao diện lập trình cho phép ứng dụng có thể truy xuất dữ kiệu từ các
hệ quản trị cơ sở dữ liệu sử dụng SQL như là phương thức chuẩn để truy xuất dữ liệu
Mỗi loại database engin (hệ quản trị csdl) có một ODBC driver tương ứng Database kết hợp với ODBC driver tương ứng cho nó được gọi là Data Source Name (DSN) Ứng dụng muốn làm việc với ODBC trước hết phải mở một connection dến ODBC, trong đó cần khai báo DSN, UserID và Password
Web server là client của SQL Server cho dù cùng chạy trên một hệ thống Các ứng dụng Web đều truy xuất database thông qua ODBC, ADO là một ví dụ, các ngôn ngữ lập trình thường dùng ODBC(ADO) để truy xuất SQL Server
1.1.2.3 SQL OLE Interface
SQL OLE interface là công cụ phát triển mới cho các nhà phát triển ứng dụng dựa trên SQL Server theo tiếp cận hướng đối tượng SQL OLE interface cho phép ta làm việc với SQL Server thông qua sư dụng các object, method bà collection của database làm việc
Bằng cách include Type Library (TLB) vào trong môi trường ứng dụng, ta có thể sử dụng các đối tượng OLE automation để làm việc voéi SQL Server TLB cho các úng dụng Visual Basic là SQLOLE32.TLB
1.1.3 Ðối tượng của cơ sở dữ liệu SQL Server
1.1.3.1 Table (Bảng)
Là những đối tượng chứa các kiểu dữ liệu và các dữ liệu thô thực sự
1.1.3.2 Field (Trường) hay Colunmn (Cột)
Ðây là các thành phần của bảng dùng để chứa dữ liệu Cột cần phải gán một kiểu
Trang 51.1.3.3 Data types (Kiểu dữ liệu)
Có nhiều kiểu dữ liệu khác nhau để chọn, như kiểu kí tự (character), số (numeric), nagỳ tháng (date), và các kiểu dữ liệu khác Một kiểu dữ liệu sẽ được gán cho một trường nào đó bên trong bảng
1.1.3.8 Contraints
Là cơ chế nhằm đảm bảo tính toàn vẹn dữ liệu, phụ thuộc vào hệ thống và server
1.1.3.9 Primary Key (Khoá chính)
Không phải là một đối tượng trong CSDL, các khoá là tối cần thiết cho CSDL quan
hệ Các khoá chính bắt buộc phải duy nhất trong các hàng, cung cấp cách xác định duy nhất các mục bạn muốn lưu giữ
1.1.3.10 Foreign Key (Khóa ngoại)
Cũng không phải là một đối tượng trong cơ sở dữ liệu, một khoá ngoại là các cột tham chiếu đến khoá chính hay các ràng buộc duy nhất của một bảng khác SQL Server sử dụng khoá chính và khoá ngoại để liên hệ dữ liệu với nhau từ các bảng riêng biệt khi một câu truy vấn được thực hiện
Trang 6dùng dễ dàng về sau Một view thường chứa một số cột được lấy từ một bảng hay
từ một liên kết hai hay nhiều bảng
1.2.2 Phiên bản dùng cho xí nghiệp:
Dùng để cài đặt vào máy có cấu hình cao, cung cấp những tính năng mới như hỗ trợ bộ nhớ lớn, có tính năng khả dụng cao, hỗ trợ tới 32 CPU
1.2.3 Phiên bản dùng cho doanh nghiệp nhỏ:
Thường giới hạn 50 người sử dụng Hổ trợ 4 bộ xử lý, Ram 2GB
1.2.4 Phiên bản DESTOP:
- Phiên bản này có thể chạy trên Win 9X, Win NT Wortation4.0 hoặc mới hơn Nó
có thể hỗ trợ một số người sử dụng (dưới 10 người) Kích thước CSDL không
bị hạn chế Nhưng có một số hạn chế nếu cài SQL Server trên Win 9x:
- Các thư viện mạng không được hỗ trợ
- Tính an toàn tích hợp không khả dụng
- Mã hoá giao thức phía Server không được hỗ trợ
- Không có sẵn đầu vào, đầu ra đồng bộ hay phân tán hoặc tập trung
- Các thành phần SQL Server không hoạt động như các dịch vụ vì Win không hỗ trợ dịch vụ Các thành phần này chỉ chạy như ứng dụng Không có bộ giám sát hiệu suất và bộ hiển thị sự kiện
1.3 Yêu cầu hệ thống của Sql Server 7.0
Phần cứng: Ram 64 MB, đĩa cứng tối thiểu là 64MB, cài đặt đầy đủ là 180MB Tốc
độ tối thiểu của CPU 166 MHz
Hệ thống file: nên chọn NTFS vì nó an toàn đáng tin cậy, có thể tạo CSDL nhanh hơn và có một số tính năng mới khiến hệ thống file này trở thành sự lựa chọn tốt nhất
Quyền hạn: có các loại như
Quyền hạn cho mỗi máy: đòi hỏi phải mua một giấy phép cho mỗi máy truy cấp SQL Server Tuy nhiện, sau khi đã mua được giấy phép này, bạn có thể kết nối với một
số SQL server trên mạng của mình Bạn cũng có quyền cài đặt phiên bả Desktop cục bộ của SQL Server cho từng quyền hạn cho mỗi máy
Trang 7Quyền hạn cho mỗi máy chủ: Mỗi máy chủ SQL Server phải có một giấy phép, nếu
có 200 máy trong cơ quan nhưng chỉ có 50 máy kết nối với SQL Server thì có thể mua 50 giấy phép thay vì 200 giấy phép
Quyền hạn cho bộ kết nối Internet: dành cho SQL Server kết nối từ Internet, phải trả
lệ phí mua mỗi bộ xử lý cho Server được kết nối với Internet Khi trả khoản lệ phí cố định bạn có số lượng người sử dụng không giới hạn Lưu ý không sử dụng quyền này cho mạng cục bộ Ðối với mạng cục bộ phải mua giấy phép cho mỗi máy hay cho mỗi máy chủ
Mẹo: Phiên bản Desktop có thể chạy trên mọi máy tính được hỗ trợ Win 9x Win NT Workstation, Win NT Server và thậm chí cả phiên bản dành cho xí nghiệp của Win
- Upgrade Tools: Phần hỗ trợ nâng cấp các phiên bản khác nhau của SQL Server
- Replication Support: Hỗ trợ sử dụng bản sao (nhân bản) dữ liệu
- Full text seach: Khả năng sử dụng công nghệ từ Microsoft Index Server: để xây dựng các chỉ mục trên CSDL nguyên bản
1.3.2 Công cụ quản lý(Management Tools)
- Enterprise Manager: Ðây là giao diện quản lý đồ hoạ để phát triển và quản trị của SQL Server
- Profiler: công cụ giám sát các hoạt động của SQL Server , bao gồm các truy vấn
- Query Analyzer: Ðây là công cụ để nhập và chạy các câu lệnh Transact-SQL
- DTC Client Support: Ðây là bộ giao tiếp quản lý DTC
- Conflict Viewer Support: Ðây là Wizard Conflict Resolution dùng cho nhân bản kết hợp
- Client Connectivity: là tập hợp các thành phần cho phép giao tiếp với SQL Server, bao gồm ODBC,OLEDB và DB_library
- Books Online: Tạo books Online trên ổ đĩa cứng cục bộ
Trang 81.3.3.1 Code Sample:
- ADO: gồm ví dụ lập trình cho ActiveX Data Object
- DBLIB: gồm các ví dụ lập trình cho API , được hỗ trợ nhằm tương thích ngược
- DTS: gồm các ví dụ lập trình cho các dịch vụ biến đổi cơ sở dữ liệu
- ESQLC: gồm các ví dụ lập trình Embedded SQL theo ngôn ngữ lập trình C
- MSDTC: gồm các ví dụ lập trình Microsft Distribute Transaction Coordinator
- ODBC: gồm ví dụ lập trình API về lập trình ODBC trong SQL Server
- ODS: gồm ví dụ lập trình API của các diịch vụ dl mở.dành cho SQL Server
- OLE Automation: gồm ví dụ lập trình hỗ trợ OLE Automationdành cho SQL Server
- Replication: gồm ví dụ lập trình nhân bản của SQL Server
- SQLDEMO: gồm ví dụ lập trình dùng giao diện lập trình quản trị của SQL Distributed Management object
- SQLNS: gồm ví dụ lập trình dùng giao diện lập trình quản trị của SQL NameSpace
1.3.4 Chỉ cài đặt các công cụ máy khách:
Thực hiện cách này bằng cách không chọn Server Components
1.3.5 Charter set/Sort Order/Unicode Collation
SQL 7.0 trở lên hỗ trợ một số kiểu dữ liệu Unicode là nchar, nvarchar, ntext, với bảng mã ngầm định (1252), và hổ trợ bảng mã (1258) cho ngôn ngữ Viêt nam Ngoài ra ta cũng có thể cấu hình cho bốn thuộc tính hợp lí khác:
- Case Insensivetive: Nếu đã chọn (default) bạn sẽ có được cách sắp xếp không nhạy kiểu chữ (A và a được xem như nhau)
- Accent Insensitive: Nếu đã chọn các so sánh chữ e và é được xem như nhau
- Width Insensitive: Nếu chọn (default) nhưng khác biệt về độ rộng của các ngôn ngữ Châu á sẽ không được tính đến
- Kana Insensitive: Nếu dã chọn (default) nhưng khác biệt về nhạy Kana sẽ bị bỏ qua
- Thư viện mạng: (các thư viện mạng được cài đặt mặc định là: Name Pipes, Multipotocol, và các socket TCP/IP)
- Socket TCP/IP kết nối tới Server nhờ tính năng nối mạng qua các socket của TCP/IP Socket mặc định của SQL Server là 1433 cũng giống như socket duyệt WWW là 80
- Multiprotocol: hỗ trợ mọi phương thức truyền thông sẵn có giữa các máy tính nhừ sử dụng remote procedure calls Ðối với mọi môi trường an toàn thì đây là tuỳ chọn hữu ích dùng để bảo vệ dữ liệu khi kết nối mạng
- NWLink IPX/SPX sử dụng hỗ trợ môi trường Nowell thích hợp Không nên sử dụng tuỳ chọn này
Trang 9- AppleTalk ADSP được sử dụng hỗ trợ liên lạc trên mạng nối các máy Macintosh Phải cài đặt trước khi thư viện này hoạt động.
- Banyon VINES: Sử dụng trong môi trường mạng Banyon VINES
1.3.6 Các dịch vụ của Sql Server
- MSSQLServer: Ðây chính là dịch vụ cơ sở dữ liệu Khi bạn ngừng SQL Server
có nghĩa là bạ ngừng chạy dịch vụ MSQL Server
- MQLServerAgent: Dịch vụ này cung cấp hỗ trợ cho những công việc được sắp xếp theo lịch biểu, các cảnh báo lỗi, quản lý sự kiên và sao chép
- MSQDTC: Dịch vụ này hỗ trợ các transaction phân phối qua nhiều máy chủ
- Microsoft Search: Dịch vụ hỗ trợ việc lập chỉ mục các trường văn bản trong SQL Server
- MSSQLServerOLPService: Ðây là dịch vụ hỗ trợ cho Microsoft SQL Server OLAP Service
Các cơ sở dữ liệu mặc định của SQL Server: Sau khi cài SQL Server các cơ sở dữ liệu sau được cài đặt: master, model, tempdb, msdb (là các cơ sở dữ liệu hệ thống) pubs, và Northwind (là các cơ sở dữ liệu hệ thống)
Các Id đăng nhập mặc định của SQL Server
Ðăng nhập mặc định cho SQL Server là nhà quản trị hệ thống (sa _ System Administrator)
1.4 Một số lưu ý khi cài đặt Sql Server 2000
Việc chọn các tham số tương tự như cài SQL Server 7.0:
SQL Server 2000 yêu cầu cao hơn về cả phần cứng lẫn phần mềm
- Enterprise Edition: tối thiểu 64 MB, Ðề nghị nên dùng 128 MB
- Standard Edition: tối thiểu 64 MB
- Personal Edition: 64 MB cho Windows 2000, 32 MB Ðối với các hệ điều hành khác
- Developer Edition tối thiểu 64 MB
- Desktop Engine tối thiểu 64 MB đối với Windows 2000, 32 MB 32 MB Ðối với các hệ điều hành khác
1.4.1.2 Hard drive
- Database components 95 to 270 MB, 250 MB typical
- Analysis Services 50 MB minimum, 130 MB typical
Trang 10SQL Server 2000 hổ trợ các hệ điều hành sau:
Các loại ấn bản
Enterprise Edition Microsoft Windows NT Server 4.0, Microsoft
Windows NT Server Enterprise Edition 4.0, Windows
2000 Server, Windows 2000 Advanced Server, và Windows 2000 Data Center Server
Server, Microsoft Windows NT Server Enterprise Edition, Windows 2000 Advanced Server, và Windows 2000 Data Center Server
Workstation 4.0, Windows 2000 Professional, Microsoft Windows NT Server 4.0, Windows 2000 Server, và tất cả các hệ điều hành tiến bộ hơn Windows
Developer Edition Microsoft Windows NT Workstation 4.0, Windows
2000 Professional, and all other Windows NT and Windows 2000 operating systems
Client Tools Only Microsoft Windows NT 4.0, Windows 2000 (all
versions), Windows Me, and Windows 98
Connectivity Only Microsoft Windows NT 4.0, Windows 2000 (all
versions), Windows Me, Windows 98, and Windows 95
Trang 111.5 Sử dụng Sql Server
Tiện ích Service Manager: cho phép điều khiển các dịch vụ liên quan đến SQL Server trên máy tính (hay bất kỳ máy tính SQL Server nào trong mạng) Nếu bạn tắt tất cả các địch vụ này cũng đồng nghĩa bạn đã tắt SQL Server
Hình 1: Dịch vụ của SQL
1.5.1 Các tool quản trị và sử dụng SQL Server:
1.5.1.1 Enterprise Manager:
Là giao diện đồ hoạ chính dùng để phát triển và quản trị của SQL
Khởi động Enterprise Manager:
Hinh 2
Trang 14Hình 7
Sao lưu CSDL: Chọn Backup Database
Phục hồi dữ liệu từ bản Backup: Chọn Restore Database
Muốn copy cấu trúc của database đến một server khác chúng ta có thể tạo Script bằng Wizard (xem hình 8) sau đó chạy script đó trên Server mới
Chú ý: Khi tạo script phải lưu ý đến các user, group trước khi tạo
Hình 8
Chọn Import Data để nhập dữ liệu, dữ liệu có thể từ các CSDL khác hoặc CSDL của
Hệ quản trị CSDL khác (như Access, Oracle )
Tương tự, Export Data để xuất dữ liệu sang CSDL khác hoặc CSDL ở Hệ quản trị CSDL khác
Sau khi đã tạo CSDL để tạo các bảng trong CSDL công việc cũng tương tự như
Trang 15Hình 9
Chọn New Table để tạo bảng mới
Tương tự đối việc tạo View, Diagrams (tạo quan hệ giữa các bản), user, role, rules…của CSDL
Minh hoạ tạo một user cho một CSDL:
Hình 10
Trang 16User trên (trong ví dụ trên là “hqphong”) sử dụng login là “hqphong” Tên logins này phải được tạo từ trước hoặc là User của Windows NT Cách tạo login xem trên hình minh hoạ mục Security.
Bảo mật truy xuất dữ liệu trên SQL Server:
SQL Server có 2 chế độ bảo mật
- Windows NT only: Chế độ này sử dụng cơ chế kiểm tra của Windows NT server cho tất cả connection Kết nối mặc định thường là guest, kết nối với SA nếu user là Administrator trên NT Server
- Kết hợp SQL Server và Windows NT: trước tiên Windows NT sẽ kiểm tra xem login name đã có thiết lập một kết nối uỷ thác nào hay không Nếu không tìm thấy kết nối uỷ thác nào thì sau đó SQL Server sẽ kiểm tra login name và password Nếu cũng không nhận biết login được yêu cầu trên Server, truy cập
Ngoài cách tạo user, login bằng wizard có thể hàm hệ thống để tạo
Groupname là tên một nhóm mà user sẽ thuộc vào nhóm đó
Ví dụ: exec sp_adduser dxhuyen, user_abc,quantri
Để loại bỏ một login hoặc user ta có thể sử dụng các hàm sp_droplogin hay sp_dropuser với cú pháp sp_droplogin login_id và sp_dropuser username
Sử dụng GROUP để quản lý các user:
Một nhóm bao gồm các user có quyền giống nhau, thay vì ta phải gán quyền riêng cho từng user mỗi khi user đó được tạo, ta chỉ cần tạo nhóm và phân quyền cho nhóm đó, nếu có thêm một user mới, thì khi tạo sẽ gắn nó với nhóm đã phân quyền.Minh hoạ việc tạo một View mới:
Trang 17Hinh 11
Query Analyzer: là giao diện chính chạy các truy vấn Transact-SQL hoặc các thủ tục được lưu trữ (*.sql) (Xem hinh 12)