1 / 30

Lập trình với T-SQL

Lập trình với T-SQL. Lập trình với T_SQL. Khai báo biến: DECLARE @Tên_Biến Kiểu_Dữ_Liệu Ví dụ: DECLARE @Tuoi int DECLARE @MSSV varchar(5) DECLARE @numCount int Tên biến: Bắt đầu bởi @ Kiểu dữ liệu của biến: Lấy kiểu dữ liệu hệ thống, trừ kiểu text, ntext, image.

levi
Download Presentation

Lập trình với T-SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lập trình với T-SQL

  2. Lập trình với T_SQL • Khai báo biến: DECLARE @Tên_Biến Kiểu_Dữ_Liệu • Ví dụ: DECLARE @Tuoi int DECLARE @MSSV varchar(5) DECLARE @numCount int • Tên biến: Bắt đầu bởi @ • Kiểu dữ liệu của biến: Lấy kiểu dữ liệu hệ thống, trừ kiểu text, ntext, image

  3. Gán giá trị cho biến • Cách 1: SET @Tên_Biến = Giá_Trị • Ví dụ: DECLARE @HoTen nvarchar(20) SET @HoTen = N‘Nguyễn Hằng Nga’

  4. Gán giá trị cho biến • Cách 2: SELECT @Tên_Biến = Giá_Trị • Ví dụ: DECLARE @HoTen nvarchar(20) SELECT @HoTen = N‘Nguyễn Hằng Nga’

  5. Gán giá trị cho biến • Cách 3: SELECT @Tên_Biến = Tên_cộtFROM Tên_Bảng • Ví dụ: Tìm lương lớn nhất của tất cả nhân viên: DECLARE @MaxSalary decimal(18,2) SELECT @MaxSalary = MAX(Luong) FROM NhanVien

  6. SQL Server Object – Local Variables • Các biến được sử dụng trong cấu truy vấn như là các tham số. • Cho lược đồ CSDL và dữ liệu tương ứng như sau:

  7. SQL Server Object – Local Variables Ví dụ: Liệt kê danh sách học sinh có ngày sinh vào ngày ‘10/10/1977’ DECLARE @NgaySinh datetime SET @NgaySinh = ’10/10/1977’ SELECT * FROM HocSinh WHERE NgaySinh = @NgaySinh

  8. SQL Server Object – Local Variables Ví dụ: Liệt kê danh sách các học sinh có địa chỉ là ‘123’ và điểm thi lớn hơn 7 DECLARE @DiaChi nvarchar(50), @Diem Decimal SELECT@DiaChi=’123’, @Diem = 7 SELECT * FROM HocSinh JOIN DiemThi ON HocSinh.MaHS = DiemThi.MaHS WHERE DiaChi = @DiaChi AND DiemThi > @Diem

  9. Cấu trúc điều khiển • Cấu trúc điều kiện: Nếu (biểu thức điều kiện) thì Lệnh/Khối lệnh IF (biểu thức điều kiện) BEGIN Lệnh/Khối lệnh S hoặc SQL Statement END Lệnh/Khối lệnh P hoặc SQL Statement

  10. Cấu trúc điều kiện • Tìm Max 2 số DECLARE @a, @b, @Max int SET @Max = @a IF (@a < @b) BEGIN SET @Max = @b END Print @Max

  11. Cấu trúc điều kiện • Nếu (biểu thức điều kiện) thì Lệnh/Khối lệnh S1 • Ngược lại Lệnh/Khối liệnh S2 IF (biểu thức điều kiện) BEGIN Lệnh/Khối lệnh S1 END ELSE BEGIN Lệnh/Khối lệnh S END Lệnh/Khối lệnh P

  12. Cấu trúc điều kiện • Tìm Max 2 số DECLARE @a, @b, @Max int IF (@a < @b) BEGIN SELECT @Max = @b END ELSE BEGIN SELECT @Max = @a END Print @Max

  13. Cấu trúc CASE • Cho phép kiểm tra điều kiện và xuất thông tin theo từng trường hợp • Cú pháp 1 CASE<tên cột>/<biểu thức> WHEN <giá trị> THEN <biểu thức> WHEN <giá trị> THEN <biểu thức> … [ELSE<biểu thức>] END

  14. Cấu trúc CASE • Cú pháp 2 CASEWHEN <giá trị> THEN <biểu thức> WHEN <giá trị> THEN <biểu thức> … [ELSE<biểu thức>] END

  15. Ví dụ Case Ví dụ 1: SELECT TENCLB1, ‘Kết quả’ = CASE WHEN (SOBANTHANG – SOBANTHUA > 0) THEN ‘Thắng’ WHEN (SOBANTHANG – SOBANTHUA = 0) THEN ‘Hòa’ WHEN (SOBANTHANG – SOBANTHUA < 0) THEN ‘Thua’ END, TENCLB2 FROM vKETQUA

  16. Ví dụ Case (tt) CHITIETBAN(sohd, masach, slban, dgban) Ví dụ 2: SELECT masach,sum(slban)as tongslban, (CASE WHEN sum(slban)>10 THEN N‘Bán chạy' ELSE N‘Bán chậm' END) as thongtin FROM CHITIETBAN GROUP BY masach

  17. Ví dụ Case (tt) SACH (masach, tuasach, sotrang, matheloai, slton) Ví dụ 3: Tăng số trang của những sách thuộc thể loại Tin học thêm 10, câp số trang của những sách thuộc thể loại Toán học UPDATE sach SET sotrang=sotrang+ CASE WHEN matheloai=1 THEN 10 WHEN matheloai=4 THEN -10 ELSE 0 END

  18. Cấu trúc lặp • Viết chương trình tính tổng s = 1 + 2 + .. + n

  19. Cấu trúc lặp • BREAK: Thoát khỏi vòng lặp WHILE • CONTINUE: Thực hiện lần lặp mới

  20. Lập trình với con trỏ • Một con trỏ là một đối tượng cơ sở dữ liệu được sử dụng bởi ứng dụng để thao tác với các hàng dữ liệu thay vì các tập hợp dữ liệu. • Con trỏ được dùng với Procedure và Trigger • Với con trỏ chúng ta có thể: • Cho phép định vị các hàng chỉ định của tập kết quả. • Nhận về một hàng đơn hoặc tập hợp các hàng từ vị trí hiện tại của tập kết quả. • Hỗ trợ sửa đổi dữ liệu của hàng ở vị trí hiện tại trong tập kết quả. • Hỗ trợ nhiều cấp độ quan sát đối với các thay đổi được tạo ra bởi các người dùng khác trên các dữ liêu của tập kết quả.

  21. Quy trình xử lý con trỏ

  22. Tạo con trỏ • Lệnh DECLARE dùng để tạo một con trỏ. • Nó chứa các lệnh SELECT để bao gồm các bản ghi từ bảng. • Cú pháp là: DECLARE <Cursor_Name> CURSOR [LOCAL | GLOBAL] [FORWARD ONLY | SCROLL] [STATIC | KEYSET | DYNAMIC |FAST_FORWARD] [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC] [TYPE_WARNING] FOR <Select Statements> [FOR UPDATE [OF Column_name[,….N]]]

  23. Các bước sử dụng con trỏ • Mở con trỏ: OPEN <Cursor_name> • Nhận về các bản ghi: FETCH <Cursor_name> • Đóng con trỏ: CLOSE <Cursor_name> • Xoá các tham chiếu tới con trỏ: DEALLOCATE <Cursor_name>

  24. Truy xuất và duyệt con trỏ • FETCH FIRST: Truy xuất hàng đầu tiên. • FETCH NEXT: Truy xuất hàng tiếp theo hàng truy xuất trước đó. • FETCH PRIOR: Truy xuất hàng trước hàng truy xuất trước đó. • FETCH LAST: Truy xuất hàng cuối cùng. • FETCH ABSOLUTEn: Nếu n là một số nguyên dương, nó sẽ truy xuất n hàng trong con trỏ. Nếu n là một số nguyên âm, n hàng trước hàng cuối cùng trong con trỏ được truy xuất. Nếu n bằng 0, không hàng nào được truy xuất. Ví dụ, FETCH Absolute 2 sẽ hiển thị bản ghi thứ hai của một bảng.

  25. Truy xuất và duyệt con trỏ • FETCH RELATIVEn: Truy xuất n hàng từ hàng truy xuất trước đó, nếu n là số dương. Nếu n là số âm, n hàng trước hàng truy xuất trước đó được truy xuất. Nếu n bằng 0, hàng hiện tại được nhận về.

  26. Các biến toàn cục của lệnh FETCH • @@FETCH _STATUS: Biến này trả về một số nguyên biễu diễn kết quả của lệnh truy xuất cuối cùng của con trỏ. • @@CURSOR_ROWS: Biến này trả về tổng số hàng hiện tại trong con trỏ đang mở.

  27. Ví dụ tạo con trỏ

  28. Con trỏ (tt) • Một con trỏ là một đối tượng cơ sở dữ liệu được sử dụng bởi ứng dụng để thao tác với các hàng dữ liệu thay vì các tập hợp dữ liệu. Sử dụng con trỏ, nhiều tác vụ có thể được thực hiện theo từng hàng trên tập kết quả mà có thể cần hoặc ko cần sự có mặt của bảng gốc

  29. Con trỏ (tt) • Con trỏ được tạo bằng lệnh DECLARE. Đầu tiên con trỏ được khai báo và tạo ra trong bộ nhớ. Sau đó nó mới được mở. • Lệnh OPEN mở con trỏ. Việc nhận về các bản ghi từ một con trỏ được gọi là fetching. Một người dùng chỉ có thể nhận về một bản ghi tại một thời điểm. • Lệnh FETCH được sử dụng để đọc các bản ghi từ con trỏ. • Ngầm định, một con trỏ là forward only. Nó có thể truy xuất tuần tự các bản ghi từ bản ghi đầu tiên đến bản ghi cuối cùng. Nó không thể truy xuất trực tiếp hàng thứ 1 hoặc hàng cuối cùng trong một bảng.

  30. Con trỏ (tt) • Khi một con trỏ tạm thời không cần thiết, nó có thể được đóng bởi lệnh CLOSE. • Mỗi khi con trỏ không được sử dụng, các tham chiếu đến nó nên được loại bỏ bằng lệnh DEALLOCATE

More Related