1. Trang chủ
  2. » Cao đẳng - Đại học

Giao Trinh SQL bai 10

18 8 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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 469 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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]

Trang 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

Trang 2

1 Khái niệm cơ bản:

a Qui tắc định danh:

Tối đa 128 ký tự.

Bắt đầu là một ký tự thông thường A->Z

Bắt đầu là một ký hiệu (@,#) sẽ có một ý nghĩa

khác.

Những định danh nào có khoảng trắng ở giữa thì

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

Các định danh không được trùng lắp và không

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

Trang 3

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

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

Tên ngắn: Nếu là local server thì ta khỏi chỉ

Server, nếu ở CSDL hiện hành thì không cần chỉ Database; Owner mặc định là user name trong Database.

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

Ví dụ: Create Table Northwind orederhist

Create Table Northwind.dbo.orederhist

Database Owner (dbo) user có đầy đủ các quyền

thao tác trong CSDL Bất kỳ một thành viên thuộc nhóm sysadmin thì mặc nhiên thuộc dbo.

Trang 4

c Kiểu dữ liệu (data type): xem lại bài 5 – Tr.43

d Batch: là một tập các phát biểu T-SQL nằm liên

tiếp và kết thúc bởi phát biểu GO

Vd:

USE giaotrinh_db

GO

Create View vw_NhanVien

AS

Select * From * From NhanVien

GO

Select * From * From vw_NhanVien

Trang 5

Ghi chú:

Các phát biểu trong 1 batch được biên dịch

thành một nhóm.

Nếu một trong phát biểu của batch bị lỗi thì

batch cũng xem như lỗi.

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

batch đơn, tức trong batch đó chỉ có phát biểu Create Các phát biểu đó là: Create DataBase, Create Table, Create Index,…

e Kịch bản (Script) Kịch bản (Script)

Một Script là một tập của một hay nhiều bó lệnh

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

Trang 6

2 Biến (Variable)

Biến được dùng để:

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

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

cục (Global: được SQL Server đưa ra và có thể dùng bất cứ khi nào và không cần khai báo

Biến cục bộ (Local variable)

Được khai báo trong phần thân của một bó lệnh

hoặc một thủ tục.

Phạm vi hoạt động của biến bắt đầu từ điểm mà

nó được khai báo cho đến khi kết thúc một lô

(batch) hoặc stored procedure hoặc stored procedure hoặc Function hoặc Function mà

nó được khai báo.

Tên của biến bắt đầu @

Trang 7

a Khai báo (Declare):

DECLARE @var_name var_type [,…n] var_type [,…n]

Gán giá trị cho biến:

Nếu biến vừa khai báo xong thì biến mặc nhiên

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

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

Select

Syntax:

SET @var_name = expression

SELECT {@var_name = expression} [,…n] expression } [,…n]

Trang 8

Use giaotrinh_db

GO

Set @NamLV = 1994

Select * From * From NhanVien

GO

Use giaotrinh_db

GO

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

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

Trang 9

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

a Khối BEGIN … END

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

VD:

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

PRINT @@VERSION @@VERSION

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

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

Syntax:

IF condition

{statement}

[ ELSE [Condition 1 ]

{statement}

{statement} ] ]

Trang 10

USE GiaoTrinh_db

IF ( Select Count (*) From KhachHang

Begin

End ELSE

Begin

End

Trang 11

d Cấu trúc của CASE

CASE input_expression

WHEN when_expression THEN result_expression

[ n ]

[ ELSE else_result_expression ]

END

-CASE

WHEN when_expression THEN result_expression

[ n ]

[ ELSE else_result_expression ]

END

Trang 12

SELECT MaNhanVien, Ho, Ten, LuongCoBan +

CASE

WHEN PhuCap IS NULL THEN 0

ELSE PhuCap

END

FROM NHANVIEN

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

CASE

When price IS NULL THEN N'Chưa có gía'

When price < 10 THEN N'Giá < 10'

When price >= 10 and price < 20 Then N'Giá >= 10 và <=20' Else N'Giá > 20'

END,

Title as N'Tựa đề'

FROM titles

Trang 13

DECLARE @a as int , @b as int

DECLARE @ketqua as nvarchar (30)

SET @a=3

SET @b=5

SET @ketqua = CASE

WHEN @a<@b THEN N'A nhỏ hơn B' WHEN @a<@b THEN N'A lớn hơn B' ELSE N'A bằng B'

END - End cua CASE

PRINT @ketqua

Trang 14

e Vòng lặp WHILE

WHILE Boolean_expression

{sql_statement | statement_block}

[ BREAK ]

{sql_statement | statement_block}

[ CONTINUE ]

[BREAK]: Dùng để kết thúc vòng lặp khi gặp một trường hợp cụ thể nào đó.

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

Thông thường 2 từ khóa Break và Continue nằm trong trong cấu trúc If…Else…

Trang 15

e Vòng lặp WHILE

USE pubs

GO

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

BEGIN

UPDATE UPDATE titles

SET SET price = price * 2

SELECT SELECT MAX(price) FROM titles

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

BREAK BREAK

ELSE ELSE

CONTINUE CONTINUE

END

PRINT 'Too much for the market to bear'

Trang 16

e Lệnh RETURN: RETURN [integer_expression]

Return kết thúc tiến trình trình xử lý, Return kết thúc tiến trình trình xử lý, Return thường

được dùng trong thủ tục lưu trữ

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

f Lệnh WAITFOR: 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 sau đó.

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

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

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

gian ‘Time’ VD:

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

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

‘Time’ chỉ ra VD:

‘Time’ chỉ ra VD: WAITFOR TIME WAITFOR TIME ’02:10’

Trang 17

g Lệnh RAIREEOR

Phát sinh lỗi của người dùng Người dùng có thể phát sinh các lỗi từ bảng

các lỗi từ bảng sysmessage sysmessage hoặc xây dựng lỗi động tùy

thông tin của người dùng

[,argument [,…n]]) [WITH option [,…n]]

Thêm một lỗi mới của người dùng định nghĩa:

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

Xóa một lỗi của người dùng

Sp_dropmessage Sp_dropmessage Msg_ID

Trang 18

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

trùng các mã đã có sẵn, bắt đầu là 50001 50001

Severity: Là mức lỗi của lỗi, là một số smallint Là mức lỗi của lỗi, là một số smallint Mức hợp lệ

là từ 1 đến 25 Chỉ có người quản trị CSDL mới có thể phát sinh thêm một thông báo lỗi mới từ 19 đến 25.

‘msg’: Là một chuỗi thông báo lỗi, tối đa 255 ký tự.

‘Language’: mặc định là ngôn ngữ của phiên kết nối.

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

của ứng dụng khi nó xảy ra hay không, mặc định là FALSE FALSE

‘replace’: Nếu được chỉ định chuỗi REPLACE Nếu được chỉ định chuỗi REPLACE , thì thông

báo lỗi đã tồn tại được ghi đè bởi chuỗi thông báo mới và mức lỗi mới Tham số này phải chỉ định nếu

mức lỗi mới Tham số này phải chỉ định nếu msg_id msg_id đã có.

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