Bài giảng Cơ sở dữ liệu - Chương 7: Ngôn ngữ T-SQL - Đỗ Thị Mai Hường

CƠ SỞ DỮ LIỆU  
GIÁ O VIÊN: Đỗ Thị Mai Hường  
BỘ MÔ N: Cá c Hệ thống thô ng tin  
á
KHOA: Cô ng nghệ thô ng tin  
Lý thuyết CSDL  
1
Chương 7 Ngô n ngữ T-SQL  
1. Giới thiệu T-SQL  
2. Stored Procedure  
3. Function  
4. Trigger  
Lý thuyết CSDL  
2
Mục đí ch  
• Nắm vững cá c khá i niệm lô (batch) và xử lý theo lô  
• Viết cá c câ u lệnh SQL thể hiện logic của ứng dụng  
• Định nghĩa và gá n giá trị cho cá c biến  
• Nắm vững và dùng được cá c lệnh điều khiển cấu trúc lập trì nh  
• Nắm cá ch dùng biến con trỏ  
• Viết được cá c thủ tục cơ bản đá p ứng yêu cầu qt csdl  
• Viết được và Sử dụng được hàm SQL trong truy vấn  
• Tạo được cá c trigger cơ bản  
Lý thuyết CSDL  
3
Giới Thiệu Transact SQL (T-SQL)  
• Transact-SQL là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International  
Organization for Standardization) và ANSI (American National Standards Institute) được  
sử dụng trong SQL Server T-SQL được chia làm 3 nhóm:  
Data Definition Language (DDL):lệnh dùng để quản lý các thuộc tính của một database  
như định nghĩa các hàng hoặc cột của một table, hay vị trí data file của một  
database...thường có dạng  
Create object_Name  
Alter object_Name  
Drop object_Name  
Trong đó object_Name có thể là một table, view, stored procedure, indexes...  
Ví dụ:  
Lệnh Create sau sẽ tạo ra một table tên Importers với 3 cột  
CompanyID,CompanyName,Contact  
USE Northwind  
• CREATE TABLE Importers(  
CompanyID int NOT NULL,  
CompanyName varchar(40) NOT NULL,  
Contact varchar(40) NOT NULL  
)
Lý thuyết CSDL  
4
Giới Thiệu Transact SQL (T-SQL)  
• Data Control Language (DCL):  
Ðây là những lệnh quản lý các quyền truy cập lên từng object (table, view, stored  
procedure...). Thường có dạng sau: Grant, Revoke, Deny  
Ví dụ:  
Lệnh sau sẽ cho phép user trong Public Role được quyền Select đối với table Customer  
trong database Northwind (Role là một khái niệm giống như Windows Group sẽ được  
bàn kỹ trong phần Security)  
USE Northwind  
GRANT SELECT  
ON Customers  
TO PUBLIC  
Lệnh sau sẽ từ chối quyền Select đối với table Customer trong database Northwind của  
các user trong Public Role  
USE Northwind  
DENY SELECT  
ON Customers  
TO PUBLIC  
Lệnh sau sẽ xóa bỏ tác dụng của các quyền được cho phép hay từ chối trước đó  
USE Northwind  
REVOKE SELECT  
ON Customers  
TO PUBLIC  
Lý thuyết CSDL  
5
Giới Thiệu Transact SQL (T-SQL)  
• Data Manipulation Language (DML):  
Ðâ y là những lệnh phổ biến dùng để xử lý data như Select,  
Update, Insert, Delete  
Lý thuyết CSDL  
6
Giới Thiệu Transact SQL (T-SQL)  
• Vd: USE qlysv  
DECLARE @stt INT  
CREATE TABLE sv  
(stt  
INT,  
masv  
NVARCHAR(10)  
NOT NULL  
CONSTRAINT pk_sinhvien PRIMARY KEY,  
NVARCHAR(50) NOT NULL ,  
hoten  
ngaysinh  
gioitinh  
noisinh  
malop  
SMALLDATETIME NULL ,  
NULL ,  
NVARCHAR(100) NULL ,  
BIT  
NVARCHAR(10)  
NULL  
)
SELECT @stt = @@IDENTITY  
INSERT INTO sv  
VALUES(@stt,’SV01CDT2K8’, 'Trần Thu Thuỷ', '11/10/1987',0,'Thá i bì nh','CDT001K008')  
SELECT * FROM SV  
Lý thuyết CSDL  
7
Giới thiệu về xử lý theo lô (SQL  
Batch Processing)  
Các lệnh SQL riêng  
rẽ  
Được nhóm lại thành  
lô (batch)  
Lô (Batch)  
Được biên  
dịch thành  
một kế  
hoạch thực  
thi  
Lý thuyết CSDL  
8
Định nghĩa  
Quá trì nh trong đó một tập lệnh được xử lý  
cùng lúc được gọi là  
Lý thuyết CSDL  
9
Ví dụ về một lô (batch)  
Use QlSach  
Select * from tacgia  
Update tacgia  
set phone= ‘098890 4566‘  
where tentg = ‘Trung'  
Go  
Lệnh báo hiệu kết  
thúc lô  
Lý thuyết CSDL  
10  
Mục đích: Hay dùng phâ n tách nhóm để  
thực hiện độc lập  
• VDụ: Xé t kịch bản  
CREATE DaTaBASE qlbanhang  
USE qlbanhang  
CREATE TABLE ktra  
(
A INT,  
B INT  
)
SELECT * FROM ktra  
• --Sẽ bị bá o lỗi  
Lý thuyết CSDL  
11  
Cần sửa lại  
• CREATE DaTaBASE qlbanhang  
GO  
USE qlbanhang  
CREATE TABLE ktra  
(
A INT,  
B INT  
)
GO  
SELECT * FROM ktra  
GO  
Lý thuyết CSDL  
12  
Chú thí ch trong một lô xử lý  
• Cá c chuỗi ký tự trong mã lệnh chương trì nh (cò n được gọi là chú thí ch)  
khô ng được xử lý bởi trì nh biên dịch.  
• Dùng để giải thí ch cho mã lệnh hay vô hiệu hó a tạm thời cá c thành phần  
câ u lệnh T-SQL đang xử lý  
• Giúp việc bảo trì mã lệnh dễ dàng hơn.  
• Chú thí ch thường được sử dụng để ghi lại tên chương trì nh, tên tá c giả và  
ngày thá ng thực hiện thay đổi mã lệnh.  
• Chú thí ch có thể được dùng để mô tả cá c phé p tí nh toá n phức tạp hay giải  
thí ch về phương phá p lập trì nh.  
Lý thuyết CSDL  
13  
Cá c hì nh thức chú thí ch  
SQL Server hỗ trợ hai hì nh thức chú thí ch:  
1) --(hai ghạch ngang)  
Ví dụ:  
USE Qlsach  
GO  
-- Đây là chú thích.  
2) /* ... */ (cặp dấu ghạch chéo và dấu sao)  
Ví dụ:  
SELECT * FROM nhanvien /*Đây là chú thích*/  
Lý thuyết CSDL  
14  
Chú thí ch nhiều dò ng  
• Chú thí ch nhiều dò ng /* */ khô ng thể vượt quá một lô . Một chú thí ch  
hoàn chỉnh phải nằm trong một lô xử lý.  
• Ví dụ, trong cô ng cụ Query Analyzer, lệnh GO bá o hiệu kết thúc lô . Khi  
gặp lệnh GO trên dò ng lệnh nó sẽ gửi tất cả cá c mã lệnh sau từ khó a  
GO cuối cùng lên má y chủ SQL trong một lô xử lý.  
• Nếu lệnh GO xuất hiện trên một dò ng giữa /* và */ thì Query Analyzer  
sẽ gửi đi một đoạn chú thí ch có cá c ký tự đá nh dấu sai trong mỗi lô và  
sẽ gâ y ra lỗi cú phá p.  
Lý thuyết CSDL  
15  
Chú ý:  
• Đối với cá c lệnh CREATE như là: CREATE DEFAULT,  
CREATE PROCEDURE, CREATE RULE, CREATE  
TRIGGER, CREATE VIEW khô ng được phé p kết hợp với  
cá c lệnh khá c trong cùng một lô .  
Lý thuyết CSDL  
16  
Biến cục bộ  
Lý thuyết CSDL  
17  
Khai bá o bien  
• DECLARE @Tên_biến Kiểu_dữ_liệu [, ...]  
• Kiểu dữ liệu text, ntext hoặc image khô ng được chấp nhận khi khai  
bao bien  
• Ví dụ: Để khai bá o cá c biến lưu trữ giá trị tổng số lượng đặt hàng,  
họ tên nhà cung cấp, ngày xuất hàng. Sử dụng lệnh DECLARE  
như sau:  
DECLARE @Tongsldat INT, @Hotenncc CHAR(50)  
DECLARE @Ngayxh DATETIME  
Lý thuyết CSDL  
18  
Gá n giá trị cho biến  
• Từ khó a SET hay SELECT được dùng để gá n giá trị cho biến.  
• Cú phá p:  
Hoặc là:  
SET @<tên biến cục bộ> = <giá trị>  
SELECT @<Tên biến cục bộ> = <giá trị>  
• Chú ý: Phạm vi hoạt động của biến chỉ nằm trong một thủ tục  
hoặc một lô có chứa lệnh khai bá o biến đó  
Lý thuyết CSDL  
19  
Ví du:  
• Để gá n giá trị là ngày 25/03/2002 vào biến ngày xuất hàng ta sử  
dụng lệnh SET như sau:  
• DECLARE @Ngayxh DATETIME  
SET @Ngayxh='2002-03-25'  
• Chú ý:Đối với kiểu dữ liệu dạng ngày trong Microsoft SQL  
Server thường sử dụng theo định dạng yyyy-mm-dd để gá n  
giá trị vào biến hoặc vào trong cơ sở dữ liệu.  
Lý thuyết CSDL  
20  
Tải về để xem bản đầy đủ
pdf 114 trang yennguyen 13940 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 7: Ngôn ngữ T-SQL - Đỗ Thị Mai Hường", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_7_ngon_ngu_t_sql_do_thi_mai_h.pdf