
Bài giảng SQL Server 2008: Chương 5 - Nguyễn Đức Cương
lượt xem 21
download

Bài giảng SQL Server 2008: Chương 5 - Lập trình tổng quan T-SQL do Nguyễn Đức Cương biên soạn nhằm cung cấp cho các bạn những kiến thức về biến, cấu trúc điều khiển, thủ tục (store procedures); hàm(function). Bài giảng hữu ích với các bạn chuyên ngành Công nghệ thông tin và những bạn quan tâm tới lĩnh vực này.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng SQL Server 2008: Chương 5 - 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ở dữ liệu quan hệ và SQL: Chương 8 SQL nâng cao - CĐ CNTT Hữu nghị Việt Hàn
39 p |
195 |
27
-
Bài giảng SQL Server 2008: Chương 1 - Trần Thị Kim Chi
114 p |
112 |
14
-
Bài giảng Kiến trúc cài đặt cơ sở dữ liệu - Chương 1: Lập kế hoạch và cài đặt SQL server 2012 và 2008
0 p |
113 |
10
-
Bài giảng SQL Server 2008: Chương 11 - Trần Thị Kim Chi
59 p |
87 |
10
-
Bài giảng SQL Server 2008: Chương 3 - Nguyễn Đức Cương
11 p |
72 |
10
-
Bài giảng SQL Server 2008: Chương 5 - Trần Thị Kim Chi
42 p |
76 |
9
-
Bài giảng Hệ quản trị Cơ sở dữ liệu - Bài 14: Sao lưu và phục hồi dữ liệu
86 p |
128 |
8
-
Bài giảng Hệ thống thông tin kế toán P2: Chương 2 - Đỗ Thị Thanh Ngân
4 p |
81 |
6
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Nguyễn Thị Uyên Nhi
30 p |
47 |
3
-
Bài giảng Hệ thống thông tin kế toán P2: Chương 1 - Đỗ Thị Thanh Ngân
6 p |
95 |
2


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
