Giao Trinh SQL bai 10

18 8 0
Giao Trinh SQL bai 10

Đ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

Lệnh WAITFOR: Lệnh WAITFOR: Là một chỉ thị cho SQL Server tạm Là một chỉ thị cho SQL Server tạm dừng một thời gian trước khi xử lý tiếp các phát biểu. dừng một thời gian trước khi xử[r]

(1)

CƠ BẢN VỀ LẬP TRÌNH BẰNG TRANSACT – SQL

CƠ BẢN VỀ LẬP TRÌNH BẰNG TRANSACT – SQL

10

(2)

2

1 Khái niệm bản: 1 Khái niệm bản: a Qui tắc định danh: a Qui tắc định danh:Tối đa 128 ký tự.Tối đa 128 ký tự.

Bắt đầu ký tự thông thường A->ZBắt đầu ký tự thông thường A->Z

Bắt đầu ký hiệu (@,#) có ý nghĩa Bắt đầu ký hiệu (@,#) có ý nghĩa

khác.

khác.

Những định danh có khoảng trắng Những định danh có khoảng trắng

phải kẹp dấu [] oặc “ ”

phải kẹp dấu [] oặc “ ”

Các định danh không trùng lắp không Các định danh không trùng lắp khơng

trùng với từ khóa T-SQL.

(3)

b Tham chiếu đến đối tượng: b Tham chiếu đến đối tượng:

Tên đầy đủ:Tên đầy đủ: Server.database.ower.objectServer.database.ower.object

Tên ngắn: Nếu local server ta khỏi Tên ngắn: Nếu local server ta khỏi

Server, CSDL hành khơng cần

Server, CSDL hành không cần

Database;

Database; OwnerOwner mặc định user name mặc định user name Database.

Database.

Nếu tham chiếu tường minh tăng tốc.Nếu tham chiếu tường minh tăng tốc.

Ví dụ:

Ví dụ: Create TableCreate Table Northwind orederhistNorthwind orederhist Create Table

Create Table Northwind.dbo.orederhistNorthwind.dbo.orederhistDatabase Owner (dbo) user có đầy đủ quyền Database Owner (dbo) user có đầy đủ quyền

thao tác CSDL Bất kỳ thành viên

thao tác CSDL Bất kỳ thành viên

thuộc nhóm sysadmin thuộc dbo.

(4)

4

c Kiểu liệu (data type):

c Kiểu liệu (data type): xem lại – Tr.43 xem lại – Tr.43

d Batch:

d Batch: tập phát biểu T-SQL nằm liên tập phát biểu T-SQL nằm liên tiếp kết thúc phát biểu GO

tiếp kết thúc phát biểu GO

Vd:

Vd:

USE

USE giaotrinh_dbgiaotrinh_db GO

GO

Create View

Create View vw_NhanVien vw_NhanVien

AS

AS

Select

Select * From * From NhanVien NhanVien GO

GO Select

Select * From * From vw_NhanVien vw_NhanVien GO

(5)

Ghi chú:Ghi chú:

Các phát biểu batch biên dịch Các phát biểu batch biên dịch

thành nhóm.

thành nhóm.

Nếu phát biểu batch bị lỗi Nếu phát biểu batch bị lỗi

batch xem lỗi.

batch xem lỗi.

Các phát biểu CreateCác phát biểu Create bị ràng buộc bị ràng buộc batch

batch đơn, tức batch có phát biểu đơn, tức batch có phát biểu Create Các phát biểu là: Create DataBase,

Create Các phát biểu là: Create DataBase,

Create Table, Create Index,…

Create Table, Create Index,… e.

e Kịch (Script)Kịch (Script)

Một Script tập hay nhiều bó lệnh Một Script tập hay nhiều bó lệnh

được lưu lại thành tập tin SQL

(6)

6

2 Biến (Variable) 2 Biến (Variable)

Biến dùng để:Biến dùng để:

Phải khai báo trước dùng.Phải khai báo trước dùng.

Các loại biến: biến cục (local) biến toàn Các loại biến: biến cục (local) biến toàn

cục (Global: SQL Server đưa

cục (Global: SQL Server đưa

dùng không cần khai báo

dùng không cần khai báo Biến cục (Local variable)Biến cục (Local variable)

Được khai báo phần thân bó lệnh Được khai báo phần thân bó lệnh

hoặc thủ tục.

hoặc thủ tục.

Phạm vi hoạt động biến điểm mà Phạm vi hoạt động biến điểm mà

nó khai báo kết thúc lơ

nó khai báo kết thúc lô (batch)

(batch) stored procedure stored procedure Functionhoặc Function mà mà nó khai báo.

nó khai báo.

(7)

a Khai báo (Declare): a Khai báo (Declare):

DECLARE

DECLARE @var_name @var_name var_type [,…n] var_type [,…n] Gán giá trị cho biến:Gán giá trị cho biến:

Nếu biến vừa khai báo xong biến Nếu biến vừa khai báo xong biến

được gán giá trị NULL.

được gán giá trị NULL.

Để gán biến ta dùng lệnh SetĐể gán biến ta dùng lệnh Set dùng câu lệnh dùng câu lệnh Select

SelectSyntax:Syntax:

SET

SET @var_name = @var_name = expressionexpression

SELECT

(8)

8

Use

Use giaotrinh_dbgiaotrinh_db GO

GO

Declare

Declare @NamLV int @NamLV int

Set

Set @NamLV = 1994 @NamLV = 1994

Select

Select * From * From NhanVien NhanVien

Where

Where YearYear(NgayLamViec) = @NamLV (NgayLamViec) = @NamLV GO

GO Use

Use giaotrinh_dbgiaotrinh_db GO

GO

Declare

Declare @TenDem nvarchar @TenDem nvarchar(10),(10), @HoTen nvarchar @HoTen nvarchar(50) (50) Set @TenDem = N

Set @TenDem = N''VanVan''

Select

Select @HoTen = Ho + @HoTen = Ho + '' '' + Ten From + Ten From NhanVien NhanVien

Where

Where Ho Like Ho Like '%' + '%' + @TenDem@TenDem + '%' + '%'

Select

Select @ @HoTen HoTen GO

(9)

3 Cấu trúc điều khiển:

3 Cấu trúc điều khiển:

a

a Khối Khối BEGIN … END BEGIN … END b PRINT:

b PRINT: Dùng để in thơng tin hình kết Dùng để in thơng tin hình kết của SQL Biểu thức, chuỗi, hàm, biến….

của SQL Biểu thức, chuỗi, hàm, biến….

VD:

VD: PRINTPRINT N ‘Chào bạn’ N ‘Chào bạn’

PRINTPRINT @@VERSION @@VERSION

PRINTPRINT N‘Hai nhân năm = ‘ + N‘Hai nhân năm = ‘ + CastCast(2*5 as char(4))(2*5 as char(4))

c Cấu trúc điều khiển:

c Cấu trúc điều khiển: IF … ELSE IF … ELSE Syntax:

Syntax:

IF

IF conditioncondition

{statement}

{statement} [ ELSE

(10)

10

USE

USE GiaoTrinh_db GiaoTrinh_db

IF

IF ( ( Select Select CountCount (*) (*) FromFrom KhachHang KhachHang

Where

Where TenCongTy = ‘ABC’ TenCongTy = ‘ABC’ ) ) > >

Begin

Begin

Print

Print ‘Có Cơng ty tên ABC’ ‘Có Cơng ty tên ABC’

End

End

ELSE

ELSE

Begin

Begin

Print

Print ‘Khơng Có Cơng ty tên ABC’ ‘Khơng Có Cơng ty tên ABC’

End

(11)

d Cấu trúc CASE

d Cấu trúc CASE

CASE

CASE input_expression input_expression

WHENWHEN when_expression when_expression THENTHEN result_expression result_expression

[ n ] [ n ]

[ [ ELSEELSE else_result_expression ] else_result_expression ]

END

END

-CASE CASE

WHENWHEN when_expression when_expression THENTHEN result_expression result_expression

[ n ] [ n ]

(12)

12 SELECT

SELECT MaNhanVien, Ho, Ten, LuongCoBan + MaNhanVien, Ho, Ten, LuongCoBan +

CASE

CASE

WHEN

WHEN PhuCap PhuCap IS NULLIS NULL THENTHEN 0

ELSE

ELSE PhuCap PhuCap

END

END

FROM

FROM NHANVIEN NHANVIEN

-Select

Select N'Nhóm giá loại hàng' = N'Nhóm giá loại hàng' =

CASECASE

WhenWhen price price IS NULLIS NULL THENTHEN N'Chưa có gía' N'Chưa có gía'

WhenWhen price < 10 price < 10 THENTHEN N'Giá < 10' N'Giá < 10'

WhenWhen price >= 10 price >= 10 andand price < 20 price < 20 ThenThen N'Giá >= 10 <=20' N'Giá >= 10 <=20'

ElseElse N'Giá > 20' N'Giá > 20'

ENDEND,,

Title Title asas N'Tựa đề' N'Tựa đề'

FROM

FROM titles titles

ORDER BY

(13)

DECLARE

DECLARE @a as @a as intint, @b as , @b as intint DECLARE

DECLARE @ketqua as @ketqua as nvarcharnvarchar(30)(30)

SET

SET @a=3 @a=3

SET

SET @b=5 @b=5

SET

SET @ketqua = @ketqua = CASECASE

WHENWHEN @a<@b @a<@b THENTHEN N'A nhỏ B' N'A nhỏ B'

WHENWHEN @a<@b THEN N'A lớn B' @a<@b THEN N'A lớn B'

ELSEELSE N'A B' N'A B'

ENDEND - End cua CASE - End cua CASE

PRINT

(14)

14

e Vòng lặp WHILE

e Vòng lặp WHILE

WHILE

WHILE Boolean_expression Boolean_expression

{sql_statement | statement_block}{sql_statement | statement_block}

[ BREAK ]

[ BREAK ]

{sql_statement | statement_block}{sql_statement | statement_block}

[ CONTINUE ]

[ CONTINUE ]

[BREAK]:[BREAK]: Dùng để kết thúc vòng lặp gặp Dùng để kết thúc vòng lặp gặp

trường hợp cụ thể đó. trường hợp cụ thể đó.

[CONTINUE]:[CONTINUE]: Lặp lại đầu vịng lặp. Lặp lại đầu vịng lặp.

Thơng thường từ khóa Thơng thường từ khóa BreakBreak ContinueContinue nằm nằm

trong cấu trúc

(15)

e Vòng lặp WHILE

e Vòng lặp WHILE

USE

USE pubs pubs GO

GO

WHILE

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

BEGIN

BEGIN

UPDATEUPDATE titles titles

SETSET price = price * price = price * 2

SELECTSELECT MAX(price) FROM titles MAX(price) FROM titles

IFIF (SELECT (SELECT MAXMAX(price) FROM(price) FROM titles) > $50 titles) > $50

BREAKBREAK

ELSEELSE

CONTINUECONTINUE

END

(16)

16

e Lệnh RETURN:

e Lệnh RETURN: RETURNRETURN [integer_expression] [integer_expression]

Return

Return kết thúc tiến trình trình xử lý, Returnkết thúc tiến trình trình xử lý, Return thường thường được dùng thủ tục lưu trữ

được dùng thủ tục lưu trữ (Store Procedure).(Store Procedure).

f

f Lệnh WAITFOR: Lệnh WAITFOR: Là thị cho SQL Server tạm Là thị cho SQL Server tạm dừng thời gian trước xử lý tiếp phát biểu

dừng thời gian trước xử lý tiếp phát biểu

sau đó.

sau đó. Syntax:

Syntax: WAITFOR WAITFOR { DELAY{ DELAY ‘time’ | TIME ‘time’ | TIME ‘time’ } ‘time’ }

‘time’: Được viết theo dạng hh:mm:ss, tối đa 24 giờtime’: Được viết theo dạng hh:mm:ss, tối đa 24 giờ

DELAY ‘Time’:

DELAY ‘Time’: Hệ thống tạm dừng Hệ thống tạm dừng khoảng thời khoảng thời gian ‘Time’ VD:

gian ‘Time’ VD: WAITFOR DELAY WAITFOR DELAY ’02:10’’02:10’

TIME ‘Time’:

TIME ‘Time’: Hệ thống tạm dừng đến Hệ thống tạm dừng đến thời gian thời gian ‘Time’ VD:

(17)

g Lệnh RAIREEOR g Lệnh RAIREEOR

Phát sinh lỗi người dùng Người dùng phát sinh

Phát sinh lỗi người dùng Người dùng phát sinh

các lỗi từ bảng

các lỗi từ bảng sysmessagesysmessage xây dựng lỗi động tùy xây dựng lỗi động tùy thông tin người dùng

thông tin người dùng RAISERROR

RAISERROR ({msg_id | msg_str} {, severity, state}({msg_id | msg_str} {, severity, state} [,argument [,…n]])

[,argument [,…n]])

[WITH option [,…n]]

[WITH option [,…n]]

Thêm lỗi người dùng định nghĩa:

Thêm lỗi người dùng định nghĩa:

Sp_addMessage

Sp_addMessage msg_ID, severity, ‘msg’ [,’language’]msg_ID, severity, ‘msg’ [,’language’] [,’with_log’] [,’replace’]

[,’with_log’] [,’replace’]

Xóa lỗi người dùng

Xóa lỗi người dùng

(18)

18

Msg_id:Msg_id: Là mã số lỗi mới, số int, không Là mã số lỗi mới, số int, khơng trùng mã có sẵn, bắt đầu

trùng mã có sẵn, bắt đầu 5000150001

Severity:Severity: Là mức lỗi lỗi, số smallint Là mức lỗi lỗi, số smallint Mức hợp lệ Mức hợp lệ là từ đến 25 Chỉ có người quản trị CSDL phát

là từ đến 25 Chỉ có người quản trị CSDL phát

sinh thêm thông báo lỗi từ 19 đến 25.

sinh thêm thông báo lỗi từ 19 đến 25.

‘‘msg’:msg’: Là chuỗi thông báo lỗi, tối đa 255 ký tự. Là chuỗi thông báo lỗi, tối đa 255 ký tự.‘‘Language’:Language’: mặc định ngôn ngữ phiên kết nối. mặc định ngôn ngữ phiên kết nối.

‘‘with_log’:with_log’: Thông báo lỗi có ghi nhận vào nhật ký Thơng báo lỗi có ghi nhận vào nhật ký của ứng dụng xảy hay khơng, mặc định

của ứng dụng xảy hay không, mặc định FALSEFALSE ‘‘replace’:replace’: Nếu định chuỗi REPLACE Nếu định chuỗi REPLACE, thơng , thơng báo lỗi tồn ghi đè chuỗi thông báo

báo lỗi tồn ghi đè chuỗi thông báo

mức lỗi Tham số phải định

Ngày đăng: 20/04/2021, 11:34

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan