1. Trang chủ >
  2. Giáo án - Bài giảng >
  3. Cao đẳng - Đại học >

2 Câu lệnh điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.98 MB, 207 trang )


Chương 4. T-SQL PROGRAMING



Hình 4.1

4.2.3 Vòng lặp While

WHILE: Chúng ta có thể thực hiện câu lệnh SQL hoặc khối các lệnh dựa trên

một số điều kiện. Các câu lệnh trong While được thực hiện lẵp đi lại lại trong khi biểu

thức Logic còn đúng.

Cú pháp:

WHILE

{

[

{

[



Boolean_expression

statement | statement_block }

BREAK ]

statement | statement_block }

CONTINUE ]



Sử dụng BREAK và CONTINUE:

Chúng ta có thể sử dụng từ khóa CONTINUE hoặc BREAK trong vòng lặp

WHILE để điều khiển việc thực hiện các câu lệnh.

Ví dụ:

USE pubs

GO

WHILE (SELECT AVG(price) FROM titles) < $30

BEGIN

UPDATE titles

SET price = price * 2

SELECT MAX(price) FROM titles

IF (SELECT MAX(price) FROM titles) > $50

BREAK

ELSE

CONTINUE

END

PRINT 'Too much for the market to bear'



45



Chương 4. T-SQL PROGRAMING



4.2.4 Từ khoá GOTO

Chúng ta có thể thay đổi được thứ tự thực hiện bằng việc xác định vị trí (Label).

Cú pháp:

GOTO label



4.2.5 Từ khoá Return

Chúng ta có thể sử dụng RETURN ở bất kỳ vị trí nào để thoát ra khỏi khối, thủ

tục. Những câu lệnh sau lệnh Return không được thực hiện

Cú pháp:

RETURN [ integer_expression ]



4.2.6 Câu lệnh CASE

Từ khóa Case trả lại giá trị dựa trên kết quả của biểu thức logic.

Nó có thể được sử dụng ở bất kỳ vị trí nào phép toán được phép.

Cú pháp:

CASE expression

WHEN expression1 THEN expression1

[[WHEN expression2 THEN expression2] […]]

[ELSE expression]

END



Ví dụ 1:

SELECT au_fname,au_lname,CASE state

WHEN 'OR' THEN 'Oregon'

END AS StateName FROM authors



Ví dụ 2:

UPDATE publishers

SET state =

CASE

WHEN country <> "USA"

THEN "--"

ELSE state

END,

city =CASE

WHEN pub_id = "9999"

THEN "LYON"

ELSE city

END

WHERE country <> "USA" OR

pub_id = "9999"



4.3



Biến(Variables)



SQL Server hỗ trợ 2 loại biến:



46



Chương 4. T-SQL PROGRAMING



-



Grobal variables-Biến địa phương



-



Local variables- Biến toàn cục





nh 4.2. Sử dụng biến toàn cục

4.3.1 Grobal variables

Biến toàn cục trong SQL Server được bắt đầu bằng 2 ký hiệu @. Chúng ta có

thể truy cập giá trị của bất kỳ biến nào cùng với câu lệnh SELECT đơn giản.

Danh sách các biến toàn cục:

Tên biến



Ý nghĩa



@@CONNECTIONS



Số lượng những kết nối với Server từ khi Server

khởi động lại



@@CPU_BUSY



Thời gian (tính theo milliseconds) của hệ thống tính

từ khi SQL Server khởi động



@@CURSOR_ROWS



Số lượng các dòng dữ liệu của con trỏ mới được mở

gần đây nhất



@@DATEFIRST



Giá trị hiện tại của biến SET DATEFIRST – chỉ ra

ngày đầu tiên của



@@ERROR



Mã số lỗi của câu lệnh T-SQL cuối cùng bị lỗi



@@FETCH_STATUS



Trạng thái truy nhập con trỏ: 0 nếu trạng thái truy

nhật cuối cùng thành công; -1 nếu có lỗi



@@IDENTITY



Giá trị xác định (identity) cuối cùng được thêm vào



@@LANGUAGE



Tên ngôn ngữ hiện tại đang sử dụng



@@MAX_CONNECTIONS Số lượng tối đa các kết nối có thể thực hiện đồng

thời



47



Chương 4. T-SQL PROGRAMING



@@ROWCOUNT



Số lượng các dòng kết quả của câu lệnh SQL gần

đây nhất



@@SERVERNAME



Tên của Server địa phương



@@SERVICENAME



Tên của SQL Service trên máy tính hiện tại



@@TRANSCOUNT



Số lượng những giao dịch đang được mở



@@VERSION



Thông tin về phiên bản SQL Server đang sử dụng



4.3.2 Local variables

Cách khai báo và thực hiện:



Hình 4.3. Sử dụng biến địa phương (Local variables)



4.4



Hàm (Functions)



Hàm có thể được chia làm 3 loại như sau:

Rowset Functions : Loại này thường trả về một object và được đối xử như một

table. Ví dụ như hàm OPENQUERY sẽ trả về một recordset và có thể đứng vị trí của

một table 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. Ví dụ như hàm AVG sẽ trả về giá trị trung bình của một

cột.

Scalar Functions : Loại này làm việc trên một giá trị đơn và trả về một giá trị

đơn. Trong loại này lại chia làm nhiều loại nhỏ như các hàm về toán học, về thời gian,

xử lý kiểu dữ liệu String....Ví dụ như hàm MONTH('2002-09-30') sẽ trả về tháng 9.

4.4.1 Hàm Conversion

Hàm conversion dùng để chuyển đổi giá trị của một kiểu dữ liệu này sang kiểu

dữ liệu khác. Thêm nữa, chúng ta có thể sử dụng nó để đạt được một loạt định dạng

ngày tháng đặc biệt. SQL Server cung cấp hàm chuyển đổi đơn giản CONVERT().

48



Chương 4. T-SQL PROGRAMING



Cú pháp:

CONVERT(datatype[(length)] expression [



style])



Ví dụ:

SELECT ‘EMP

EMPLOYEES



ID:’



+



CONVERT



(CHAR(4),



EMPLOYEEID



4.4.2 Hàm Data Parts

DatePart



Abbreviation



Values



Hour

Minute

Second

Millisecond

Day of year

Day

Week

Weekday

Month

Quarter

Year



hh

Mi

Ss

Ms

Dy

Dd

wk

dw

mm

qq

yy



0-23

0-59

0-59

0-999

1-366

1-31

1-53

1-7

1-12

1-4

1753-9999



4.4.3 Hàm ngày tháng và hàm toán học

Hàm ngày tháng (Date Functions)

Date Functions

GETDATE()

DATEADD(datepart,number,date)

DATEDIFF(datepart,date1,date2)

DATENAME(datepart,date)

DATEPART(datepart,date)



Hàm toán học (Mathematical)

Mathematical Functions

ABS(num_expr)

CEILING(num_expr)

FLOOR(num_expr)

POWER(num_expr,y)

ROUND(num_expr,length)

Sign(num_expr)

Sqrt(float_expr)

49



FROM



Chương 4. T-SQL PROGRAMING



4.4.4 Hàm hệ thống (System Function)

Function

DB_ID([‘database_name’])

DB_NAME([database_id])

HOST_ID()

HOST_NAME()

ISNULL(expr,value)

OBJECT_ID(‘obj_name’)

OBJECT_NAME(object_id)

SUSER_SID([‘login_name’])

SUSER_ID([‘login_name’])

SUSER_SNAME([server_user_id])

SUSER_NAME([server_user_id])

USER_ID([‘user_name’])

USER_NAME([user_id])



4.4.5 Hàm nhóm

Sum(col_name)

Avg(col_name)

Count (col_name)

Min(col_name)

Max(col_name)



50



Chương 4. T-SQL PROGRAMING



4.5



Câu hỏi trắc nghiệm



1. Batch là một tập hợp của một hoặc nhiều câu lệnh SQL được Client gửi tới

Server như một khối thống nhất.

A



Đúng



B



Sai



2. Câu lệnh nào theo sau được dùng để thoát khỏi vòng lặp While.

A



Close



B



Exit



C



Break



D



Không có lệnh nào trong 3 lệnh trên



3. Tập hợp một số câu lệnh muốn được thực hiện 10 lần, sử dụng cấu trúc nào sau

đây?

A



IF...ELSE



B



While



C



Case



D



Select



4. Câu lệnh nào theo sau được sử dụng để yêu cầu SQL Server đợi 15 giây trước khi

nó tiếp tục?

A



WAITFOR ’00:00:15’ DELAY



B



WAITFOR DELAY BY ’00:00:15’



C



WAITFOR DELAY ’00:00:15’



D



WAIT FOR ’00:00:15’



5. Kiểm tra đoạn mã sau đây:

DECLARE @v_empcount INT

SELECT @v_empcount = COUNT(*) FROM employee

IF (@v_empcount>20) GOTO great

ELSE

GOTO less

SELECT * FROM employee

great:

PRINT ‘The number is greater’

GOTO end1

GO

less:

PRINT ‘The number is less’

end1:

GO

Câu nào là kết quả của đoạn mã trên nếu có 20 bản ghi trong bảng Employee?

A



Kết quả in ra là: ‘The number is great’



B



Kết quả in ra là: ‘The number is less’



C



Không in ra gì cả



D



Có thông báo lỗi



51



Chương 4. T-SQL PROGRAMING



6. …functions được sử dụng khi cần trả lại các thông tin vể thiết đặt (settings) của

SQL Server?

A



Server



B



Aggregate



C



System



D



Text



7. Phát biểu nào sau đây là đúng cho việc chuyển đổi (conversion) kiểu dữ liệu?

A



Khi chuyển đổi bất kỳ một giá trị nào không phải là 0 (nonzero) sang kiểu dữ liệu bit

thì dữ liệu đó sẽ trở thành 1.



B



Khi chuyển đổi từ kiểu dữ liệu Char thành kiểu dữ liệu Money bạn không thể có được

ký hiệu $ đi kèm.



C



Kiểu dữ liệu Image không thể được chuyển thành kiểu dữ liệu Binary.



D



Nếu bạn không chỉ ra độ dài cho kiểu dữ liệu trong biểu thức chuyển đổi, SQL Server

sẽ tự động gán cho nó có độ dài là 20.



8. Truy vấn nào sau đây sẽ trả lại giá trị của tháng hiện tại?

A



Select DATEPART(mm,getdate()) As ‘Month’



B



Select DATEPART(mon,getdate()) As ‘Month’



C



Select GETDATE(DATEPART(MM)) As ‘Month’



D



Select GETDATE(DATEPART(MON)) As ‘Month’



52



Xem Thêm
Tải bản đầy đủ (.pdf) (207 trang)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×