Bài giảng Chương 5: Lập trình T-SQL - Nguyễn Đức Cương
lượt xem 7
download
Bài giảng Chương 5: Lập trình T-SQL do Nguyễn Đức Cương biên soạn nêu lên tổng quan; biến; cấu trúc điều khiển; thủ tục; hàm trong lập trình T-SQL. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này. Với các bạ chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Chương 5: Lập trình T-SQL - Nguyễn Đức Cương
- Chương 5 - LẬP TRÌNH T-SQL Lecturer: Nguyễn Đức Cương - FIT Email: cuongnguyenduc@gmail.com Website: http://www.nguyenduccuong.com
- Nội dung Tổng quan Biến Cấu trúc điều khiển Thủ tục (store procedures) Hàm(function) Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 2
- TỔNG QUAN 1. Sử dụng T-SQL để lập trình các script và sp thực hiện các tác vụ đặc thù trên server. Chương trình bao gồm lệnh sql, biến, cấu trúc điều khiển . 2. Các khái niệm cơ bản: a. Định danh (identifiers): tên các đối tượng trong CSDL Quy tắc: Tối đa 128 ký tự Bắt đầu từ ký tự a z, hoặc các ký tự @, # Các định danh có khoảng trắng phải đặt trong [] Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 3
- TỔNG QUAN Kiểu dữ liệu: có 2 loại System- supplied data type User – defined data type Batch: tập các câu lệnh T-SQL liên tiếp kết thúc bằng lệnh GO Script: tập của 1 hoặc nhiều các bó lệnh được lưu thành một tập tin .SQL Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 4
- BIẾN (Variable) Biến: có 2 loại biến: biến cục bộ và biến toàn cục 1. Biến cục bộ (Local variable): – Được khai báo bên trong một sp , một batch – Phạm vi hoạt động từ vị trí khai báo đến khi kết thúc sp, batch – Tên bắt đầu bằng ký tự @ Khai báo biến: DECLARE @ VariableName var_type Ví dụ: DECLARE @vEmpID int Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 5
- BIẾN (Variable) Gán giá trị cho biến: SET @VariableName = expression Hoặc: SELECT{@VariableName=expression} [,…n] Ví dụ 1: DECLARE @temp_name varchar(20) SELECT @temp_name = companyname FROM customers WHERE customerid = ‘adsff’ Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 6
- BIẾN (Variable) Ví dụ 2: DECLARE @temp_city varchar(10) SET @temp_city = ‘london’ SELECT * FROM Customers WHERE city = @temp_city Ví dụ 3: DECLARE @temp_CustID Char(5), @temp_name varchar(50) SET @temp_CustID = ‘ALFKI’ SELECT @temp_name = CompanyName FROM Customers Where CustomerID = @temp_CustID PRINT ‘CustomerID is ‘ + @temp_CustID + ‘ and Name is ‘+ @temp_name Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 7
- BIẾN (Variable) 2. Biến toàn cục (Global Variables): Thực chất là các hàm có sẵn trong SQL Server. – Không thể gán giá trị cho biến – Biến toàn cục không có kiểu – Tên biến bắt đầu bằng @@ @@VERSION: Ví dụ: Select @@ version Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 8
- BIẾN (Variable) @@SERVERNAME: tên sever Ví dụ: select @@SERVERNAME @@ROWCOUNT: trả về số dòng bị ảnh hưởng bởi lệnh thực thi gần nhất Ví dụ: Update Employees set LastName = ‘Brooke’ Where LastName =‘Brook’ If(@@rowcount=0) begin print ‘Không dòng nào được cập nhật’ return end Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 9
- BIẾN (Variable) @@ERROR: trả về số thứ tự lỗi của lệnh thực thi sau cùng, nếu trả về 0 thì câu lệnh hoàn thành @@IDENTITY: trả về số IDENTITY phát sinh sau cùng Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 10
- Cấu trúc điều khiển CASE Function: Có 2 dạng a) Simple CASE function: CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ELSE else_result_expression ] END b) Searched CASE function: CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 11
- Cấu trúc điều khiển Ví dụ 1: SELECT Category = CASE type WHEN 'popular_comp' THEN 'Popular Computing' WHEN 'mod_cook' THEN 'Modern Cooking' WHEN 'business' THEN 'Business' WHEN 'psychology' THEN 'Psychology' WHEN 'trad_cook' THEN 'Traditional Cooking ELSE 'Not yet categorized‘ END CAST(title AS varchar(25)) AS 'Shortened Title', price AS Price FROM titles WHERE price IS NOT NULL ORDER BY type, price COMPUTE AVG(price) BY type Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 12
- Cấu trúc điều khiển Ví dụ 2: SELECT ProductID, Quantity, UnitPrice, [discount%]= CASE WHEN Quantity
- Cấu trúc điều khiển IF … ELSE: IF boolean_expression {sql_statement | statement_block} [ELSE boolean_expression {sql_statement | statement_block}] BEGIN …END: Khối lệnh BEGIN {sql_statement | statement_ block} END Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 14
- Cấu trúc điều khiển Ví dụ: IF ( SELECT COUNT(*) FROM authors WHERE contract =0) >0 BEGIN PRINT 'These authors do not have contracts on file: ' SELECT au_lname, au_fname, au_id FROM authors WHERE contract=0 END ELSE BEGIN PRINT 'All authors have contracts on file.' END Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 15
- Cấu trúc điều khiển WHILE: WHILE boolean_expression {sql_statement | statement_block} [BREAK] {sql_statement | statement_block} [CONTINUE] Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 16
- Cấu trúc điều khiển Ví dụ 1: DECLARE @Counter INT SET @counter=0 WHILE (@counter
- Cấu trúc điều khiển Ví dụ 2 WHILE (SELECT AVG(price) FROM titles) < $30 BEGIN UPDATE titles SET price = price * 2 IF (SELECT MAX(price) FROM titles) > $50 BREAK ELSE CONTINUE END Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 18
- Cấu trúc điều khiển PRINT: In thông tin ra màn hình kết quả của SQL PRINT ‘any ACII Text’|@local_variable|@@FUNTION| String_expr RETURN: RETURN [integer_expression] WAITFOR: SQL tạm dừng WAITFOR { DELAY 'time' | TIME 'time' } Ví dụ: BEGIN WAITFOR TIME '22:20' EXECUTE update_all_stats END Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 19
- Cấu trúc điều khiển RAISERROR: Gửi lỗi đến người dùng như một lỗi hệ thống RAISERROR({msg_id | msg_str} { , severity , state } [ , argument [ ,...n ] ] ) [ WITH option [ ,...n ] ] – Msg_id: mã thông báo, được lưu trong bảng sysmessage mã thông báo của người dùng được bắt đầu trên 50000 – Msg_str: Nội dung thông báo, tối đa 400 ký tự Để truyền tham số vào trong thông báo dùng dạng % Nguyễn Đức Cương – cuongnguyenduc@gmail.com Slide 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cơ sở lập trình - Chương 5: Kiểu dữ liệu mảng
56 p | 168 | 21
-
Bài giảng Cơ sở lập trình 2: Chương 5 - Lê Quý Tài
46 p | 102 | 14
-
Bài giảng Phương pháp lập trình: Chương 5 - GV. Từ Thị Xuân Hiền
37 p | 115 | 12
-
Bài giảng Nhập môn lập trình: Chương 5 - ThS. Cáp Phạm Đình Thăng
50 p | 67 | 8
-
Bài giảng Kỹ thuật lập trình – Chương 5: Phong cách lập trình
51 p | 27 | 7
-
Bài giảng Nhập môn lập trình: Chương 5 - Trần Minh Thái
52 p | 40 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Kỹ thuật lập trình - Chương 5
27 p | 78 | 7
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 5 - ĐH Công nghệ Đồng Nai
74 p | 74 | 7
-
Bài giảng Kỹ thuật lập trình: Bài 5 - ThS. Trịnh Thành Trung
43 p | 50 | 5
-
Bài giảng Kỹ thuật lập trình: Chương 5 - TS. Vũ Thị Hương Giang
53 p | 21 | 5
-
Bài giảng Kỹ thuật lập trình: Chương 5 - TS. Vũ Hương Giang
53 p | 36 | 4
-
Bài giảng Kỹ thuật lập trình C: Bài 5 - Hoàng Quốc Tuấn
31 p | 26 | 4
-
Bài giảng Kỹ thuật lập trình (Programming technique): Chương 5 - Vũ Đức Vượng
42 p | 12 | 4
-
Bài giảng Kỹ thuật lập trình - Chương 5: Phong cách lập trình (Trường Đại học Bách khoa Hà Nội)
51 p | 15 | 3
-
Bài giảng Kỹ thuật lập trình: Chương 5 - Trần Thị Kim Chi
29 p | 45 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 5 - TS. Nguyễn Quang Uy
48 p | 8 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn