1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình hướng dẫn học SQL sever 2005 - Phần 2

53 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Giáo trình hướng dẫn học SQL sever 2005 - Phần 2 là tài liệu hỗ trợ học tập và nghiên cứu về ngôn ngữ lập trình nói chung và ngôn ngữ SQL nói riêng. Trong nội dung phần 2 sẽ tiếp tục hướng dẫn về: Ngôn ngữ định nghĩa dữ liệu (DDL), Thủ tục lưu trữ, hàm và trigger sẽ giúp hoàn thiện bài học nhằm nâng cao hiểu biết và ứng dụng hiệu quả SQL sever 2005.

4 Ngôn ngữ định nghĩa liệu – DDL Trong chương đề cập đến nhóm câu lệnh sử dụng để định nghĩa quản lý đối tượng CSDL bảng, khung nhìn, mục, gọi ngôn ngữ định nghĩa liệu (DDL) Về bản, ngôn ngữ định nghĩa liệu bao gồm lệnh: CREATE: định nghĩa tạo đối tượng CSDL ALTER: thay đổi định nghĩa đối tượng CSDL DROP: Xố đối tượng CSDL có 4.1 Tạo bảng Câu lệnh CREATE TABLE sử dụng để định nghĩa bảng liệu CSDL Khi định nghĩa bảng liệu mới, ta cần phải xác định yêu cầu sau đây: Bảng tạo sử dụng với mục đích có vai trị sở liệu Cấu trúc bảng bao gồm trường (cột) nào, trường có ý nghĩa việc biểu diễn liệu, kiểu liệu trường trường có cho phép nhận giá trị NULL hay không Những trường tham gia vào khóa bảng Bảng có quan hệ với bảng khác hay khơng có quan hệ Trên trường bảng có tồn ràng buộc khn dạng, điều kiện hợp lệ liệu hay không; có sử dụng đâu Câu lệnh CREATE TABLE có cú pháp sau CREATE TABLE tên_bảng ( tên_cột thuộc_tính_cột các_ràng_buộc [, ,tên_cột_n thuộc_tính_cột_n các_ràng_buộc_cột_n] [,các_ràng_buộc_trên_bảng] ) Tên_bảng: tuân theo quy tắc định danh, không vượt 128 ký tự Tên_cột: cột bảng, bảng có cột Thuộc_tính_cột: bao gồm kiểu liệu cột, giá trị mặc định cột, cột có thiết lập thuộc tính identity, cột có chấp nhận giá trị NULL hay khơng Trong kiểu liệu thuộc tính bắt buộc 56 Các_ràng_buộc: gồm ràng buộc khuôn dạng liệu ( ràng buộc CHECK) hay ràng buộc bào tồn liệu (PRIMARY KEY, FOREIGN KEY, UNIQUE) Ví dụ: Ví dụ tạo bảng có tên CUSTOMERS create table customers ( customerid int identity (1,1) primary key, customername nvarchar(50) not null, address nvarchar(100 ) null , birthday datetime null, gender bit default('true') not null ) Cột customerid có kiểu liệu int, định thuộc tính identity(1,1) nghĩa liệu cột thêm tự động lần có dịng thêm vào, giá trị cột tăng lên Cột định làm khóa bảng thơng qua thuộc tính primary key Thuộc tính NULL/ NOT NULL cột có chấp nhận/ không chấp nhận giá trị NULL Cột gender định giá trị mặc định true nghĩa khơng định giá trị cho cột cột có giá trị true Ví dụ: Thêm dòng vào bảng customers với giá trị truyền vào đầy đủ cho cột insert into customers values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988', 'True') Thêm dòng vào bảng customers sử dụng giá trị mặc định insert into customers (customername, address, birthday) values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988') Thêm dòng vào bảng customers không truyền giá trị cho cột cho phép giá trị NULL insert into customers (customername ) values('Nguyen Van An') 57 4.2 Các loại ràng buộc 4.2.1 Ràng buộc CHECK Ràng buộc CHECK sử dụng nhằm định điều kiện hợp lệ liệu Mỗi có thay đổi liệu bảng (INSERT, UPDATE), ràng buộc sử dụng nhằm kiểm tra xem liệu có hợp lệ hay khơng Ràng buộc CHECK khai báo theo cú pháp sau: [CONSTRAINT tên_ràng_buộc] CHECK (điều_kiện) Ví dụ: create table students ( studentid int identity(1,1) primary key, studentname nvarchar(50) not null, address nvarchar(100) not null, score1 tinyint not null constraint chk_score1 CHECK (score1 >= and score1 = and score1 10) Ví dụ 4: Xóa ràng buộc CHECK alter table orders drop chk_descriptionlength Ví dụ 5: Xóa cột description alter table orders drop column description Ví dụ 6: Thêm cột vào bảng orders thêm ràng buộc cho cột alter table orders add description nvarchar(100) null, constraint chk_descriptionlength CHECK (len(description) > 0) Nếu bổ sung thêm cột vào bảng bảng có ghi cột cần bổ sung phải cho phép chấp nhận giá trị NULL phải có giá trị mặc định Muốn xố cột ràng buộc ràng buộc tham chiếu khố ngồi, ta phải xố ràng buộc khố ngồi trước cho cột khơng cịn ràng buộc khơng cịn tham chiếu khố ngồi 62 Nếu bổ sung thêm ràng buộc cho bảng có liệu ràng buộc cần bổ sung không thoả mãn ghi có bảng câu lệnh ALTER TABLE khơng thực 4.4 Xóa bảng Khi bảng khơng cịn cần thiết , ta xố khỏi sở liệu câu lệnh DROP TABLE Câu lệnh đồng thời xoá tất ràng buộc, mục, trigger liên quan đến bảng Câu lệnh có cú pháp sau: DROP TABLE tên_bảng Trong hệ quản trị sở liệu, xố bảng lệnh DROP TABLE, ta khơng thể khơi phục lại bảng liệu Do đó, cần phải cẩn thận sử dụng câu lệnh Câu lệnh DROP TABLE thực bảng cần xoá tham chiếu ràng buộc FOREIGN KEY Trong trường hợp này, ràng buộc FOREIGN KEY tham chiếu bảng tham chiếu đến bảng cần xoá phải xoá trước Khi bảng bị xoá, tất ràng buộc, mục trigger liên quan đến bảng đồng thời bị xóa theo Do đó, ta tạo lại bảng phải tạo lại đối tượng Ví dụ: Để xóa bảng ORDERS trước tiên ta phải xóa ràng buộc FOREIGN KEY từ bảng ORDERDETAIL alter table orderdetail drop constraint fk_orderdetail_orders Sau xóa bảng ORDERS drop table orders 4.5 Khung nhìn - VIEW Khung nhìn bảng tạm thời, có cấu trúc bảng, khung nhìn khơng lưu trữ liệu mà tạo sử dụng, khung nhìn đối tượng thuộc CSDL Khung nhìn tạo từ câu lệnh truy vấn liệu (lệnh SELECT), truy vấn từ nhiều bảng liệu Khung nhìn sử dụng khai thác liệu bảng liệu, chia sẻ nhiều người dùng, an tồn khai thác, khơng ảnh hưởng liệu gốc Có thể thực truy vấn liệu cấu trúc khung nhìn 63 Như vậy, khung nhìn trơng giống bảng với tên khung nhìn tập bao gồm dòng cột Điểm khác biệt khung nhìn bảng khung nhìn khơng xem cấu trúc lưu trữ liệu tồn sở liệu Thực chất liệu quan sát khung nhìn lấy từ bảng thơng qua câu lệnh truy vấn liệu Câu lệnh CREATE VIEW sử dụng để tạo khung nhìn có cú pháp sau: CREATE VIEW tên_khung_nhìn[(danh_sách_tên_cột)] AS câu_lệnh_SELECT Ví dụ: create view CUSTOMERINFO as select CUSTOMERNAME, (year(getdate()) - year(BIRTHDAY)) as AGE, ADDRESS from customers Thực câu truy vấn khung nhìn vừa tạo ra: select * from customerinfo Nếu câu lệnh CREATE VIEW, ta không định danh sách tên cột cho khung nhìn, tên cột khung nhìn tiêu đề cột kết câu lệnh SELECT Trong trường hợp tên cột khung nhìn đươc định, chúng phải có số lượng với số lượng cột kết câu truy vấn Ví dụ: create view CUSTOMERINFO (CUSTOMERNAME, AGE, ADDRESS) as select CUSTOMERNAME, year(getdate()) - year(BIRTHDAY), ADDRESS from customers Lưu ý: Phải đặt tên cho cột khung nhìn trường hợp sau đây: 64 Trong kết câu lệnh SELECT có cột sinh biểu thức (tức là tên cột bảng sở) cột khơng đặt tiêu đề Tồn hai cột kết câu lệnh SELECT có tiêu đề cột 4.6 Thêm, cập nhật, xóa liệu VIEW Đối với số khung nhìn, ta tiến hành thực thao tác cập nhập, thêm xoá liệu Thực chất, thao tác chuyển thành thao tác bảng sở có tác động đến bảng sở Về mặt lý thuyết, để thực thao tác bổ sung, cập nhật xố, khung nhìn trước tiên phải thoả mãn điều kiện sau đây: Trong câu lệnh SELECT định nghĩa khung nhìn khơng sử dụng từ khoá DISTINCT, TOP, GROUP BY UNION Các thành phần xuất danh sách chọn câu lệnh SELECT phải cột bảng sở Trong danh sách chọn khơng chứa biểu thức tính tốn, hàm gộp Ngồi điều kiện trên, thao tác thay đổi đến liệu thông qua khung nhìn cịn phải đảm bảo thoả mãn ràng buộc bảng sở, tức đảm bảo tính tồn vẹn liệu Mặc dù thơng qua khung nhìn thực thao tác bổ sung cập nhật liệu cho bảng sở hạn chế khung nhìn đơn giản Đối với khung nhìn phức tạp thường khơng thực được; hay nói cách khác liệu khung nhìn đọc 4.7 Thay đổi định nghĩa khung nhìn Câu lệnh ALTER VIEW dùng để định nghĩa lại khung nhìn có cấu trúc sau: ALTER VIEW tên_khung_nhìn [(danh_sách_tên_cột)] AS Câu_lệnh_SELECT Ví dụ: Ví dụ định nghĩa lại khung nhìn CUSTOMERINFO alter view customerinfo as select CUSTOMERNAME, (year(getdate()) - year(birthday)) as AGE, ADDRESS, GENDER from customers Lưu ý: lệnh CREATE VIEW không làm thay đổi quyền cấp phát cho người sử dụng trước 65 Các hàm quan trọng T-SQL Ngơn ngữ T-SQL có nhiều hàm tham gia vào câu lệnh T-SQL Những hàm thực nhiệm vụ quan trọng khác Trong chương trình bày số hàm thơng dụng để làm việc với kiểu liệu số, chuỗi, ngày/thời gian giá trị NULL SQL Server 2005 7.1 Các hàm làm việc với kiểu liệu số Các hàm quan trọng làm việc với kiểu liệu số hàm ISNUMERIC ham ROUND 7.1.1 Hàm ISNUMERIC Hàm isNumeric kiểm tra giá trị có phải thuộc kiểu liệu số hay khơng Ví dụ: Câu lệnh trả tên khách hàng, cột có tên NUMERIC Cột mang giá trị địa khách hàng số ngược lại select CUSTOMERNAME, isnumeric(ADDRESS) as ISNUMERIC from customers 7.1.2 Hàm ROUND Hàm ROUND trả giá trị số, làm tròn theo độ đài định Cấu trúc hàm ROUND sau: ROUND ( số_làm_tròn , độ_dài_làm_tròn ) Khi sử dụng hàm ROUND cần lưu ý: số_làm_tròn phải có kiểu liệu số (numeric data type) int, float, decimal… trừ kiểu liệu dạng nhị phân Cho dù số_làm_trịn thuộc kiểu liệu gì, kết hàm ROUND ln trả kiều số ngun Nếu độ_dài_làm_trịn số âm lớn số chữ số phía trước dấu thập phân hàm ROUND trả Ví dụ 1: 94 select ROUND(123.9994, 3), ROUND(123.9995, 3) Ví dụ 2: select ROUND(123.4545, 2),ROUND(123.45, -2) Ví dụ 3: SELECT ROUND(150.75, 0), ROUND(150.75, 0, 1) 7.2 Các hàm làm việc với kiểu liệu chuỗi Các hàm quan trọng bao gồm LEFT, RIGHT, LEN, REPLACE, STUFF, SUBSTRING, LOWER, UPPER, LTRIM, and RTRIM 7.2.1 Hàm LEFT Hàm LEFT trả chuỗi ký tự có chiều dài định tính từ bên trái chuỗi Ví dụ: select left('Nha Trang', 5) 7.2.2 Hàm RIGHT Hàm RIGHT tương tự hàm LEFT tính từ bên phải chuỗi Ví dụ: select right('Nha Trang', 5) 7.2.3 Hàm SUBSTRING Hàm STRING trích xuất chuỗi từ chuỗi cho trước Cấu trúc hàm SUBSTRING sau: SUBSTRING (chuỗi_ban_đầu, vị_trí_bắt_đầu, chiều_dài_chuỗi_con) Ví dụ 1: select substring ('Nha Trang', 2, 5) 95 Ví dụ 2: Select substring(‘Nha Trang’, -2, 5) 7.2.4 Hàm LEN Hàm LEN trả chiều dài chuỗi Ví dụ: Select len(‘Nha Trang’) 7.2.5 Hàm REPLACE Hàm REPLACE thay chuỗi chuỗi khác Ví dụ 1: Câu lệnh thay chữ “Nha” chuỗi Nha Trang chữ “nha” Select replace(‘Nha Trang’, ‘Nha’, ‘nha) Ví dụ 2: select replace(ADDRESS, 'Minh', 'Ninh') from customers 7.2.6 Hàm STUFF Hàm STUFF thay số lượng xác định ký tự chuỗi chuỗi khác vị trí định Ví dụ: 96 select stuff('Nha Trang', 2, 3, '***') 7.2.7 Hàm LOWER/UPPER Hàm LOWER chuyển ký tự hoa chuỗi thành kí tự thường Hàm UPPER chuyển chuỗi ký tự thường chuỗi thành ký tự hoa Ví dụ: select lower('Nha Trang'), upper('Nha Trang') 7.2.8 Hàm LTRIM/RTRIM Hàm LTRIM cắt khoảng trắng bên trái chuỗi, hàm RTRIM cắt khoảng trắng bên phải chuỗi Ví dụ: declare @llen int declare @rlen int declare @len int select @llen = len(ltrim(' Nha Trang')), @rlen = len(rtrim('Nha Trang ')), @len = len('Nha Trang') select @llen, @rlen, @len 7.3 Các hàm làm việc với kiểu liệu Ngày tháng/ Thời gian 7.3.1 Hàm GETDATE Hàm GETDATE trả ngày lúc thực câu truy vấn Ví dụ: select getdate() 7.3.2 Hàm DAY/ MONTH/ YEAR Hàm DAY trả ngày một giá trị thuộc kiểu datetime Hàm MONTH trả tháng giá trị thuộc kiểu datetime 97 Hàm YEAR trả năm giá trị thuộc kiểu datetime Ví dụ: select day(orderdate) as DAYOFORDER, month(orderdate) as MONTHOFORDER, year(orderdate) as YEAROFORDER from orders o inner join customers c on c.customerid = o.customerid where c.customerid = 7.3.3 Hàm DATEPART Trong trình làm việc với CSDL, đơi lúc ta muốn biết xem ngày thuộc quý năm, hay thuộc tuần thứ tháng Hàm DATEPART giúp giải yêu cầu cách dễ dàng Cấu trúc hàm DATEPART sau: DATEPART (yêu_cầu_trích_xuất, giá_trị_trích_xuất) giá_trị_trích_xuất giá trị thuộc kiểu datetime u_cầu_trích_xuất: ngày, tháng, năm, q,… Khi có u cầu trích xuất đó, có chữ viết tắt tương ứng với yêu cầu Bảng mơ tả u chữ viết tắt yêu cầu trích xuất tương ứng Ý nghĩa Chữ viết tắt Năm yy, yyyy Quý qq,q Tháng mm,m Số ngày qua năm dy,y Ngày dd,d Tuần wk,ww Số ngày qua tuần dw Giờ hh Phút mi,n Giây ss,s Ví dụ: select datepart(yyyy, orderdate)as YEAROFORDERDATE, datepart(qq, orderdate)as QUARTEROFORDERDATE, 98 datepart(m, orderdate) as MONTHOFORDERDATE, datepart(wk, orderdate) as WEEKOFORDERDATE, datepart(d, orderdate) as DATEOFORDERDATE, datepart(dy, Orderdate), datepart(dw, orderdate) from orders 7.3.4 Hàm DATENAME Tương tự hàm DATEPART hàm DATENAME trả chuỗi ký tự Ví dụ: select datename(yyyy, orderdate)as YEAROFORDERDATE, datename(qq, orderdate)as QUARTEROFORDERDATE, datename(m, orderdate) as MONTHOFORDERDATE, datename(wk, orderdate) as WEEKOFORDERDATE, datename(d, orderdate) as DATEOFORDERDATE, datename(dy, Orderdate), datename(dw, orderdate) from orders 7.4 Hàm CAST CONVERTER Chuyển đổi giá trị thuộc kiểu liệu sang kiểu liệu khác Hàm CAST CONVERTER cung cấp chức Một điểm thuận lợi dùng CONVERTER chuyển đổi, hàm cho phép người dùng định dạng lại giá tri kết theo ý muốn Cấu trúc hàm CAST CONVERTER sau: CAST (biểu_thức/giá_ trị AS kiểu_dữ liệu [độ_dài_kiểu_dữ_liệu ] ) CONVERT ( kiểu_dữ liệu [độ_dài_kiểu_dữ_liệu ] , biểu_thức/giá_ trị [ ,kiểu_định_dạng] ) Năm chữ số Năm chữ số Output 100 mon dd yyyy hh:mi AM (PM) 101 mm/dd/yy 102 yy.mm.dd 99 103 dd/mm/yy 104 dd.mm.yy 105 dd-mm-yy 106 dd mon yy 107 Mon dd, yy 108 hh:mm:ss 109 mon dd yyyy hh:mi:ss:mmmAM (PM) 10 110 mm-dd-yy 11 111 yy/mm/dd 12 112 yymmdd 13 113 dd mon yyyy hh:mm:ss:mmm(24h) 114 hh:mi:ss:mmm(24h) 14 Ví1 dụ: select CUSTOMERNAME, convert (varchar, BIRTHDAY, 103) as BIRTHDAY, ADDRESS from Customers where Customername = 'Le Thi Hoa' and year(getdate()) - year(BIRTHDAY) > 20 Hàm CONVERT hàm CAST sử dụng kết hợp với kết qua mong muốn Ví dụ: select c.CUSTOMERID, c.CUSTOMERNAME, convert(varchar(20),cast(SUM(i.UNITPRICE*od.QUANTITY) SUMTOTAL from as money),1) as customers c inner join orders o on o.customerid = c.customerid inner join orderdetail od on o.orderid = od.orderid inner join items i on i.itemid = od.itemid group by c.customerid, c.customername 100 Kết nối vào SQL Server 2005 từ ngơn ngữ lập trình để xây dựng ứng dụng liên quan đến CSDL Mục tiêu cuối việc học hệ quản trị CSDL Microsoft SQL Server 2005 người học biết dùng hệ quản trị việc xây dựng CSDL cho ứng dụng quản lý thực tế Đồng thời sử dụng công cụ Microsoft SQL Server 2005 để quản trị CSDL 8.1 Cấu hình Microsoft SQL Server 2005 Như nói chương 1, Microsoft SQL Server 2005 sử dụng hai kiểu định danh người dùng: Windows Authentication SQL Server Authentication Windows Authentication: thích hợp việc xây dựng ứng dụng quản lý máy đơn ( nghĩa SQL Server ứng dụng quản lý máy) Những ứng dụng thường có CSDL nhỏ tốc độ tăng trưởng CSDL khơng cao SQL Server Authentication: thích hợp việc xây dựng ứng dụng quản lý có CSDL lớn, nhiều người dùng lúc Trong ứng dụng này, CSDL đặt Database Server, ứng dụng máy trạm thực kết nối vào Database Server thực thao tác CSDL Các kết nối gọi kết nối từ xa (remote connection) Tuy nhiên, kết nối máy tính đến thể (instance) Microsoft SQL Server 2005 để tạo kết nối từ xa, bạn nhận thơng báo lỗi sau: Microsoft SQL Native Client: An error has occurred while establishing a connection to the server When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections Lỗi xảy Microsoft SQL Server chưa cấu hình để chấp nhận kết nối từ xa Mặc định, phiên SQL Server 2005 Express Edition phiên SQL Server 2005 Developer Edition không cho phép kết nối từ xa Để cấu hình SQL Server 2005 chấp nhận kết nối từ xa cần thực bước sau: Cho phép tiếp nhận kết nối từ xa thể SQL Server mà ứng dụng máy trạm cần kết nối Kích hoạt dịch vụ SQL Server Browser Cấu hình tường lửa cho phép liệu liên quan đến SQL Server dịch vụ SQL Server Browser lưu thông mạng 101 8.1.1 Cho phép tiếp nhận kết nối từ xa thể SQL Server Click Start -> Programs -> Microsoft SQL Server 2005 -> Configuration Tools -> SQL Server Surface Area Configuration Trong trang SQL Server 2005 Surface Area Configuration, click Surface Area Configuration for Services and Connections Trong trang Surface Area Configuration for Services and Connections, mở nút Database Engine, click Remote Connections, click Local and remote connections, click chọn giao thức thích hợp (giao thức lựa chọn dưa giao thức thực tế dùng môi trường làm viêc), sau click Apply Trong mơi trường học tập, thường dùng giao thức TCP/IP Lưu ý: Click OK nhận thông báo: Changes to Connection Settings will not take effect until you restart the Database Engine service Trong trang Surface Area Configuration for Services and Connections, mở nút Database Engine, click Service, click Stop, đợi đến dịch vụ MSSQLSERVER dừng lại, sau click Start để khởi động lại dịch vụ MSSQLSERVER Lưu ý: không cần sử dụng SQL Server 2005 thường xuyên, ta để chế độ khởi động dịch vụ MSSQLSERVER manual (nghĩa cần dùng kích hoạt) nhằm giảm bớt thời gian khởi động Windows tiết kiệm tài nguyên hệ thống 8.1.2 Kích hoạt dịch vụ SQL Server Browser Nếu thao tác SQL Server 2005 việc sử dụng tên thể (instance name) không định port cụ thể chuỗi kết nối (chúng ta nói chuỗi kết nối kỹ phần kết nối ngơn ngữ lập trình với SQL Server 2005) phải kích hoạt dịch vụ SQL Server Browser phép kết nối từ xa Ví dụ: SQL Server 2005 Express Edition cài đặt với thể mặc định tên_máy_tính\SQLEXPRESS Chúng ta cần kích hoạt dịch vụ SQL Server Browser lần có 102 thể SQL Server 2005 sử dụng (running) Để kích hoạt dịch vụ SQL Server Browser, cần làm theo bước sau: Click Start -> Programs -> Microsoft SQL Server 2005 -> Configuration Tools, click SQL Server Surface Area Configuration Trong trang SQL Server 2005 Surface Area Configuration, click Surface Area Configuration for Services and Connections Trong trang Surface Area Configuration for Services and Connections, click SQL Server Browser, click Automatic for Startup type, click Apply Lưu ý: tương tự dịch vụ MSSQLSERVER, chọn startup type Automatic dịch vụ SQL Server Browser khởi động Windows khởi động Kiểm tra tình trạng dịch vụ Service status Sau click Start dịch vụ bị Stop Lưu ý: Thực bước làm tăng nguy cho hệ thống hệ thống thị thơng tin thể SQL Server đạng chạy hệ thống Các nguy giảm thiểu cách khơng kích hoạt dịch vụ SQL Server Browser kết nối vào thể SQL Server thông qua port Chi tiết tham khảo Microsoft Book Online theo chủ đề sau: SQL Server Browser Service Connecting to the SQL Server Database Engine Client Network Configuration 8.1.3 Tạo ngoại lệ Windows Firewall Các bước áp dụng cho Windows Firewall Windows XP Service Pack (SP2) Windows Server 2003 Nếu tường lửa sử dụng máy tính cài đặt SQL Server 2005, kết nối từ bên bị chặn trừ SQL Server 2005 SQL Serve Browser liên lạc qua tường lửa Chúng ta phải tạo ngoại lệ cho thể SQL Server 2005 (muốn thể tiếp nhận kết nối từ xa phải tạo ngoại lệ cho thể đó) ngoại lệ cho dịch vụ SQL Server Browser Việc tạo ngoại lệ theo bước sau: Click Start -> Programs -> Microsoft SQL Server 2005 ->Configuration Tools -> SQL Server Configuration Manager 103 Trong trang SQL Server Configuration Manager, click SQL Server Services, right-click tên thể hiện, click Properties Trong trang SQL Server Browser Properties, click tab Advanced, xác định instanceID danh sách thuộc tính, click OK Lưu ý: Chúng ta có nhiều thể SQL Server, phải xác định instanceID chúng tao muốn tạo ngoại lệ Để mở Windows Firewall, click Start, click Run, đánh firewall.cpl, click OK Tạo ngoại lệ cho SQL Server 2005 Windows Firewall Trong Windows Firewall, click tab Exceptions, sau click Add Program Trong cửa sổ Add a Program window, click Browse C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe, click Open, click OK Lưu ý: Đường dẫn khác tùy thuộc vào thư mục cài đặt SQL Server 2005 MSSQL.1 nơi lưu trữ cho instanceID thu bước Lặp lại bước cho thể SQL Server 2005 cần thiết lập ngoại lệ Tạo ngoại lệ cho dịch vụ SQL Server Browser Windows Firewall Trong Windows Firewall, click tab Exceptions, click Add Program Trong cửa sổ Add a Program, click Browse C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe, click Open, click OK Lưu ý: Đường dẫn thay đổi tùy thuộc vào thư mục cài đặt SQL Server 2005 8.2 Kết nối vào SQL Server ngơn ngữ lập trình 8.2.1 C# VB.NET Tùy thuộc vào việc sử dụng NET Data Provider (tập đối tượng phục vụ việc trao đổi liệu) NET Framework việc sử dụng hình thức Authentication để truy xuất liệu SQL Server 2005, có cách khác để kết nối đến SQL Server 2005 Trong phần trình bày sử dụng System.Data.SqlClient Data Provider phổ biến để kết nối với SQL Server 2005 Trong C#: public void ConnectToSql () 104 { System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection (); // TODO Xây dựng chuỗi kết nối conn.ConnectionString = "integrated security=true;data source=tên_SQLSERVER;" + "persist security info=False;initial catalog=tên_CSDL"; try { conn.Open(); // Xây dựng code để tương tác với CSDL } catch (Exception ex) { MessageBox.Show("Failed to connect to data source"); } finally { conn.Close(); } } Trong VB.NET Public Sub ConnectToSql() Dim conn As New SqlClient.SqlConnection ' TODO Xây dựng chuỗi kết nối conn.ConnectionString = & _ "integrated security=true;data source=tên_SQL Server;" & _ "persist security info=False;initial catalog=tên_CSDL" Try conn.Open() ' Xây dựng code để tương tác với CSDL Catch ex As Exception 105 MessageBox.Show("Failed to connect to data source") Finally conn.Close() End Try End Sub Trong hai ví dụ xây dựng hàm kết nối vào SQL Server 2005 mà thành phần quan trọng chuỗi kết nối vào CSDL: Trong C#: "integrated security=true;data source=tên_SQLSERVER;" + "persist security info=False;initial catalog=tên_CSDL"; Trong VB.NET: "integrated security=true;data source=tên_SQL Server;" & _ "persist security info=False;initial catalog=tên_CSDL" Trong đó: Intergrated security = true: sử dụng Windows Authentication data source: định tên thể SQL Server 2005 mà muốn kết nối persist security info: Thiết lập mặc định cho từ khóa persist security info false Thiết lập sang giá trị true cho phép liệu nhạy cảm bao gồm UserID password truy xuất kết nối mở initial catalog: Tên CSDL mà muốn tương tác Ví dụ chuỗi kết nối sử dụng Windows Authentication: "integrated security=true;data source=.\\SQLExpress" + "persist security info=False;initial catalog=myDB"; Ví dụ chuỗi kết nối sử dung SQL Server Authentication: "persist security info=False;User ID = *****; password = ***** “ + “initial catalog=myDB; data source=.\\SQLExpress "; 8.2.2 VB Ví dụ minh họa việc xây dựng ứng dụng CSDL VB6 Giả sử có CSDL tên Test, SQL Server \\SQLExpress, User sa, Password 1234 Private Sub Command1_Click() Dim connectionString As String Dim commandString As String Dim sqlConnection As ADODB.Connection 106 Dim rs As Recordset connectionString="PROVIDER=SQLOLEDB; DATA SOURCE=.\SQLEXPRESS;” connectionString = “UID=sa; PWD=1234;DATABASE=Test" commandString = "select count(*) as count from Users where UserName = '" commandString = commandString & Text1.Text & "' and Password = '" commandString = commandString & Text2.Text & "'" Set sqlConnection = New ADODB.Connection sqlConnection.Open (connectionString) Set rs = New Recordset rs.Open commandString, sqlConnection If (rs("count") = 1) Then MsgBox "Login successfully" End If End Sub 107 Tài liệu tham khảo Giáo trình hệ quản trị sở liệu SQL Server, Khoa CNTT, Đại học Huế SQL Server 2005, T-SQL Recipes: Problem, Solution, Approach – Appress Publisher Sams Teach yourself Microsoft SQL Server 2005 Express in 24 hours 108 ... nhận kết nối từ xa thể SQL Server Click Start -> Programs -> Microsoft SQL Server 20 05 -> Configuration Tools -> SQL Server Surface Area Configuration Trong trang SQL Server 20 05 Surface Area Configuration,... vụ SQL Server Browser lần có 1 02 thể SQL Server 20 05 sử dụng (running) Để kích hoạt dịch vụ SQL Server Browser, cần làm theo bước sau: Click Start -> Programs -> Microsoft SQL Server 20 05 -> ... truy xuất liệu SQL Server 20 05, có cách khác để kết nối đến SQL Server 20 05 Trong phần trình bày sử dụng System.Data.SqlClient Data Provider phổ biến để kết nối với SQL Server 20 05 Trong C#:

Ngày đăng: 11/05/2021, 00:37