Giáo trình Quản trị cơ sở dữ liệu SQL

1 Giới thiệu về SQL Server 2005

SQL Server 2005 là một hệ thống quản lý cơ sở dữ liệu (Relational Database

Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client

computer 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 (Very

Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn

user. SQL Server 2005 có thể kết hợp "ăn ý" với các server khác như Microsoft Internet

Information 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ông

giớ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ống

64bit.

Standard: Tương tự như bản Enterprise nhưng chỉ hỗ trợ 4 CPU. Ngoài ra phiên bản này

cũng không được trang bị một số tính năng cao cấp khác.

Workgroup: Tương tự bản Standard 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ạn

trong 4GB.

 

Giáo trình Quản trị cơ sở dữ liệu SQL trang 1

Trang 1

Giáo trình Quản trị cơ sở dữ liệu SQL trang 2

Trang 2

Giáo trình Quản trị cơ sở dữ liệu SQL trang 3

Trang 3

Giáo trình Quản trị cơ sở dữ liệu SQL trang 4

Trang 4

Giáo trình Quản trị cơ sở dữ liệu SQL trang 5

Trang 5

Giáo trình Quản trị cơ sở dữ liệu SQL trang 6

Trang 6

Giáo trình Quản trị cơ sở dữ liệu SQL trang 7

Trang 7

Giáo trình Quản trị cơ sở dữ liệu SQL trang 8

Trang 8

Giáo trình Quản trị cơ sở dữ liệu SQL trang 9

Trang 9

Giáo trình Quản trị cơ sở dữ liệu SQL trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 108 trang xuanhieu 7080
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình Quản trị cơ sở dữ liệu SQL", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Quản trị cơ sở dữ liệu SQL

Giáo trình Quản trị cơ sở dữ liệu SQL
select lower('Nha Trang'), upper('Nha Trang')
7.2.8 Hàm LTRIM/RTRIM
Hàm LTRIM cắt các khoảng trắng bên trái của 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 dữ liệu Ngày tháng/ Thời gian
7.3.1 Hàm GETDATE
Hàm GETDATE trả về ngày giờ lúc thực hiện câu truy vấn.
Ví dụ:
select getdate()
7.3.2 Hàm DAY/ MONTH/ YEAR
Hàm DAY trả về ngày của một một giá trị thuộc kiểu datetime.
Hàm MONTH trả về tháng của một giá trị thuộc kiểu datetime
98
Hàm YEAR trả về năm của một 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 = 3
7.3.3 Hàm DATEPART
Trong quá trình làm việc với các CSDL, đôi lúc ta muốn biết xem một ngày nào đó thuộc
quý mấy trong năm, hay thuộc tuần thứ mấy trong tháng. Hàm DATEPART giúp giải quyết các
yêu cầu trên một cách dễ dàng.
Cấu trúc hàm DATEPART như sau:
DATEPART (yêu_cầu_trích_xuất, giá_trị_trích_xuất)
giá_trị_trích_xuất là một giá trị thuộc kiểu datetime.
yêu_cầu_trích_xuất: ngày, tháng, năm, quý,.
Khi có một yêu cầu trích xuất nào đó, chúng ta sẽ có các chữ viết tắt tương ứng với các
yêu cầu đó. Bảng dưới đây mô tả các yêu chữ viết tắt và các 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 trong năm dy,y
Ngày dd,d
Tuần wk,ww
Số ngày đã qua trong 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,
99
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 nhưng hàm DATENAME trả về một 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 và CONVERTER
Chuyển đổi một giá trị thuộc kiểu dữ liệu này sang một kiểu dữ liệu khác. Hàm CAST và
CONVERTER cung cấp cùng một chức năng. Một điểm thuận lợi khi dùng CONVERTER là
khi chuyển đổi, hàm này cũng cho phép người dùng sẽ định dạng lại giá tri kết quả theo ý
muốn.
Cấu trúc hàm CAST và CONVERTER như 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 2 chữ số Năm 4 chữ số Output
0 hoặc 100 mon dd yyyy hh:mi AM (PM)
1 101 mm/dd/yy
2 102 yy.mm.dd
100
3 103 dd/mm/yy
4 104 dd.mm.yy
5 105 dd-mm-yy
6 106 dd mon yy
7 107 Mon dd, yy
8 108 hh:mm:ss
9 hoặc 109 mon dd yyyy hh:mi:ss:mmmAM (PM)
10 110 mm-dd-yy
11 111 yy/mm/dd
12 112 yymmdd
13 hoặc 113 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 hh:mi:ss:mmm(24h)
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 và hàm CAST có thể sử dụng kết hợp với nhau để cho kết qua như
mong muốn.
Ví dụ:
select c.CUSTOMERID, c.CUSTOMERNAME,
convert(varchar(20),cast(SUM(i.UNITPRICE*od.QUANTITY) as money),1) as
SUMTOTAL
from 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
101
8 Kết nối vào SQL Server 2005 từ các ngôn ngữ lập trình để
xây dựng các ứng dụng liên quan đến CSDL
Mục tiêu cuối cùng của việc học hệ quản trị CSDL Microsoft SQL Server 2005 là người
học biết dùng hệ quản trị này trong việc xây dựng các CSDL cho các ứng dụng quản lý trong
thực tế. Đồng thời sử dụng các công cụ trong Microsoft SQL Server 2005 để quản trị CSDL
của mình.
8.1 Cấu hình Microsoft SQL Server 2005
Như đã nói trong chương 1, Microsoft SQL Server 2005 sử dụng hai kiểu định danh
người dùng: Windows Authentication và SQL Server Authentication.
Windows Authentication: thích hợp trong việc xây dựng các ứng dụng quản lý trên máy
đơn ( nghĩa là SQL Server và ứng dụng quản lý cùng trên một máy). Những ứng dụng này
thường có CSDL khá nhỏ và tốc độ tăng trưởng của CSDL không cao.
SQL Server Authentication: thích hợp trong việc xây dựng các ứng dụng quản lý có
CSDL lớn, nhiều người dùng cùng lúc. Trong các ứng dụng này, CSDL được đặt trên Database
Server, ứng dụng trên các máy trạm sẽ thực hiện các kết nối vào Database Server này và thực
hiện các thao tác trên CSDL. Các kết nối này được gọi là các kết nối từ xa (remote connection).
Tuy nhiên, khi kết nối một máy tính đến một thể hiện (instance) của Microsoft SQL
Server 2005 để tạo một kết nối từ xa, bạn có thể nhận một thông báo lỗi như 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 này xảy ra vì Microsoft SQL Server chưa được cấu hình để chấp nhận các kết nối từ
xa.
Mặc định, phiên bản SQL Server 2005 Express Edition và phiên bản SQL Server 2005
Developer Edition không cho phép các kết nối từ xa. Để cấu hình SQL Server 2005 chấp nhận
các kết nối từ xa cần thực hiện các bước sau:
Cho phép tiếp nhận các kết nối từ xa trên thể hiện của SQL Server mà các ứ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 các dữ liệu liên quan đến SQL Server và dịch vụ SQL
Server Browser được lưu thông trên mạng.
102
8.1.1 Cho phép tiếp nhận các kết nối từ xa trên thể hiện của 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 này được lựa chọn dưa trên giao thức thực tế được dùng trong môi trường
làm viêc), sau đó click Apply. Trong môi trường học tập, chúng ta thường dùng giao thức
TCP/IP.
Lưu ý: Click OK khi nhận được 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 khi dịch vụ MSSQLSERVER dừng lại, sau đó click
Start để khởi động lại dịch vụ MSSQLSERVER
 .
Lưu ý: nếu chúng ta không cần sử dụng SQL Server 2005 thường xuyên, ta có thể để chế
độ khởi động của dịch vụ MSSQLSERVER là manual (nghĩa là khi nào cần dùng thì sẽ kích
hoạt) nhằm giảm bớt thời gian khởi động Windows và 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 chúng ta thao tác trên SQL Server 2005 bằng việc sử dụng tên thể hiện (instance
name) và không chỉ định một port cụ thể trong chuỗi kết nối (chúng ta sẽ nói về chuỗi kết nối
kỹ hơn trong phần kết nối các ngôn ngữ lập trình với SQL Server 2005) thì chúng ta phải kích
hoạt dịch vụ SQL Server Browser để cho phép các kết nối từ xa. Ví dụ: SQL Server 2005
Express Edition được cài đặt với một thể hiện mặc định là tên_máy_tính\SQLEXPRESS.
Chúng ta chỉ cần kích hoạt dịch vụ SQL Server Browser một lần bất kể chúng ta có bao nhiêu
103
thể hiện của SQL Server 2005 đang được sử dụng (running). Để kích hoạt dịch vụ SQL Server
Browser, cần làm theo các 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ự như dịch vụ MSSQLSERVER, nếu chọn startup type là Automatic thì
dịch vụ SQL Server Browser sẽ được khởi động khi Windows khởi động
Kiểm tra tình trạng dịch vụ trong Service status. Sau đó click Start nếu dịch vụ này đang
bị Stop.
Lưu ý: Thực hiện các bước trên làm tăng các nguy cơ cho hệ thống vì hệ thống sẽ hiện thị
thông tin của các thể hiện của SQL Server đạng chạy trên hệ thống. Các nguy cơ này có thể
được giảm thiểu bằng cách không kích hoạt dịch vụ SQL Server Browser và kết nối vào thể
hiện của SQL Server thông qua một port. Chi tiết có thể tham khảo Microsoft Book Online
theo các chủ đề sau:
SQL Server Browser Service
Connecting to the SQL Server Database Engine
Client Network Configuration
8.1.3 Tạo các ngoại lệ trên Windows Firewall
Các bước dưới đây áp dụng cho Windows Firewall trong Windows XP Service Pack 2
(SP2) và trong Windows Server 2003.
Nếu tường lửa được sử dụng trên máy tính cài đặt SQL Server 2005, các kết nối từ bên
ngoài sẽ bị chặn trừ khi SQL Server 2005 và SQL Serve Browser có thể liên lạc qua tường lửa.
Chúng ta phải tạo ra các ngoại lệ cho mỗi thể hiện của SQL Server 2005 (muốn thể hiện nào
tiếp nhận kết nối từ xa thì chúng ta phải tạo ngoại lệ cho thể hiện đó) và một ngoại lệ cho dịch
vụ SQL Server Browser.
Việc tạo ngoại lệ theo các bước sau:
Click Start -> Programs -> Microsoft SQL Server 2005 ->Configuration Tools -> SQL
Server Configuration Manager.
104
Trong trang SQL Server Configuration Manager, click SQL Server Services, right-click
tên thể hiện, và click Properties.
Trong trang SQL Server Browser Properties, click tab Advanced, xác định instanceID
trong danh sách thuộc tính, và click OK.
Lưu ý: Chúng ta có thể có nhiều thể hiện SQL Server, do đó chúng ta phải xác định đúng
instanceID nào chúng tao muốn tạo ngoại lệ.
Để mở Windows Firewall, click Start, click Run, đánh firewall.cpl, và click OK.
Tạo ngoại lệ cho SQL Server 2005 trong 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,
và click OK.
Lưu ý: Đường dẫn có thể khác nhau tùy thuộc vào thư mục cài đặt của SQL Server 2005.
MSSQL.1 là nơi lưu trữ cho instanceID chúng ta thu được trong bước trên.
Lặp lại các bước trên cho mỗi thể hiện của SQL Server 2005 cần thiết lập ngoại lệ.
Tạo ngoại lệ cho dịch vụ SQL Server Browser trong Windows Firewall
Trong Windows Firewall, click tab Exceptions, và click Add Program.
Trong cửa sổ Add a Program, click Browse.
C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe, click Open, và click
OK.
Lưu ý: Đường dẫn có thể thay đổi tùy thuộc vào thư mục cài đặt của SQL Server 2005.
8.2 Kết nối vào SQL Server trong các ngôn ngữ lập trình
8.2.1 C# và VB.NET
Tùy thuộc vào việc sử dụng .NET Data Provider (tập các đối tượng phục vụ việc trao đổi
dữ liệu) nào trong .NET Framework và việc sử dụng hình thức Authentication nào để truy xuất
dữ liệu trong SQL Server 2005, chúng ta sẽ có các cách khác nhau để kết nối đến SQL Server
2005. Trong phần trình bày này sẽ sử dụng System.Data.SqlClient là một Data Provider phổ
biến để kết nối với SQL Server 2005.
Trong C#:
public void ConnectToSql ()
105
{
 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 ở đây
 }
 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 ở đây
 Catch ex As Exception
106
 MessageBox.Show("Failed to connect to data source")
 Finally
 conn.Close()
 End Try
End Sub
Trong hai ví dụ trên chúng ta xây dựng hàm kết nối vào SQL Server 2005 mà thành phần
quan trọng nhất là 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: chỉ định tên thể hiện của SQL Server 2005 mà chúng ta muốn kết nối.
persist security info: Thiết lập mặc định cho từ khóa persist security info là false. Thiết
lập sang giá trị true sẽ cho phép các dữ liệu nhạy cảm bao gồm UserID và password có thể
được truy xuất khi kết nối được mở
initial catalog: Tên CSDL mà chúng ta 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 6
Ví dụ dưới đây minh họa việc xây dựng ứng dụng CSDL bằng VB6. Giả sử chúng ta có
CSDL tên là Test, SQL Server là .\\SQLExpress, User là sa, Password là 1234.
Private Sub Command1_Click()
 Dim connectionString As String
 Dim commandString As String
 Dim sqlConnection As ADODB.Connection
107
 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
108
Tài liệu tham khảo
1. Giáo trình hệ quản trị cơ sở dữ liệu SQL Server, Khoa CNTT, Đại học Huế.
2. SQL Server 2005, T-SQL Recipes: Problem, Solution, Approach – Appress Publisher.
3. Sams Teach yourself Microsoft SQL Server 2005 Express in 24 hours.

File đính kèm:

  • pdfgiao_trinh_quan_tri_co_so_du_lieu_sql.pdf