Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
252 KB
Nội dung
Chương Lập trình T-SQL Ôn tập Thiết kế CSDL: Định nghĩa thiết kế CSDL Sự cần thiết thiết kế CSDL Cơ thiết kế CSDL Sơ đồ quan hệ thực thể, chuẩn hóa từ điển liệu Mục đích học Nắm vững khái niệm lô (batch) xử lý theo lô Viết câu lệnh SQL điều khiển đăng nhập thể logic ứng dụng Định nghĩa gán giá trị cho biến Viết lệnh SQL dùng hàm SQL Sử dụng hàm SQL truy vấn Giới thiệu 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 kế hoạch thực thi Định nghĩa Quá trình tập lệnh xử lý lúc gọi Ví dụ lô (batch) Use Pubs Select * from authors Update authors set phone= '890 451-7366‘ where au_lname= 'White' Go Lệnh báo hiệu kết thúc lô Chú thích lô xử lý Các chuỗi ký tự mã lệnh chương trình (còn gọi thích) không xử lý 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 thành phần câu lệnh T-SQL xử lý Giúp việc bảo trì mã lệnh dễ dàng Chú thích thường sử dụng để ghi lại tên chương trình, tên tác giả ngày tháng thực thay đổi mã lệnh Chú thích dùng để mô tả phép tính toán phức tạp hay giải thích phương pháp lập trình Các hình thức thích SQL Server hỗ trợ hai hình thức thích: 1) (hai ghạch ngang) Ví dụ: USE Northwind GO Đây thích 2) /* */ (cặp dấu ghạch chéo dấu sao) Ví dụ: SELECT * FROM Employees /*Đây thích*/ Chú thích nhiều dòng Chú thích nhiều dòng /* */ vượt lô Một thích hoàn chỉnh phải nằm lô xử lý Ví dụ, công cụ Query Analyzer, lệnh GO báo hiệu kết thúc lô Khi gặp lệnh GO dòng lệnh gửi tất mã lệnh sau từ khóa GO cuối lên máy chủ SQL lô xử lý Nếu lệnh GO xuất dòng /* */ Query Analyzer gửi đoạn thích có ký tự đánh dấu sai lô gây lỗi cú pháp Các lệnh điều khiển Gán giá trị cho biến Từ khóa SET hay SELECT dùng để gán giá trị cho biến Cú pháp: SET @local_variable name = value OR SELECT @local_variable name = value Ví dụ, để gán giá trị cho biến khai báo bên ta dùng SET @CUST=’FRANK’ SELECT CUSTOMERID,COMPANYNAME FROM CUSTOMERS WHERE CUSTOMERID = @CUST Các loại biến SQL Server hỗ trợ hai loại biến sau TSQL: Các biến toàn cục Biến toàn cục SQL Server bắt đầu ký tự @ Ta truy xuất giá trị biến truy vấn SELECT đơn giản Danh sách biến toàn cục Các biến @@CONNECTIONS @@CPU_BUSY @@CURSOR_ROWS @@DATEFIRST @@ERROR @@FETCH_STATUS Ý nghĩa Số kết nối đên máy chủ từ lần khởi động cuối Số milliseconds (một phần ngìn giây) hệ thống xử lý từ SQL Server khởi động Số ghi cursor mở gần Giá trị tham số lệnh SET DATEFIRSTquyết định ngày tuần Mã lỗi lỗi xảy gần trạng thái lần truy xuất cuối thành công -1 có lỗi Danh sách biến toàn cục(tiếp…) Các biến @@IDENTITY @@LANGUAGE @@MAX_CONNECTIONS @@ROWCOUNT @@SERVERNAME @@SERVICENAME @@TIMETICKS @@TRANSCOUNT @@VERSION Ý nghĩa Giá trị identity gần sinh Tên ngôn ngữ sử dụng Số kết nối tối đa Số ghi bị tác động câu lệnh SQL gần Tên máy chủ Tên dịch vụ SQL máy chủ Số milliseconds tick máy chủ Số giao dịch hoạt động kết nối Thông tin phiên SQL Server Định nghĩa gán giá trị cho biến cục Hàm Các hàm chuyển đổi Hàm chuyển đổi dùng để chuyển giá trị từ kiểu liệu sang kiểu liệu khác Ngoài dùng để định dạng ngày tháng SQL Server cung cấp cho ta hàm chuyển đổi CONVERT() Cú pháp: CONVERT(datatype[(length)], expression [,style]) Ví dụ: SELECT ‘EMP ID:’ + CONVERT (CHAR(4), EMPLOYEEID FROM EMPLOYEES Date Parts DatePart Hour Minute Second Millisecond Day of year Day Từ viết tắt hh Mi Ss Ms Dy Dd Giá trị 0-23 0-59 0-59 0-999 1-366 1-31 Date Parts (tiếp…) Datepart Từ viết tắt Giá trị Week Weekday Month Quarter Year wk dw mm qq yy 1-53 1-7 1-12 1-4 1753-9999 Các hàm ngày tháng số học Các hàm ngày tháng Các hàm số học GETDATE() DATEADD(datepart,number,date) DATEDIFF(datepart,date1,date2) DATENAME(datepart,date) DATEPART(datepart,date) ABS(num_expr) CEILING(num_expr) FLOOR(num_expr) POWER(num_expr,y) ROUND(num_expr,length) Sign(num_expr) Sqrt(float_expr) Các hàm hệ thống Hàm DB_ID([‘database_name’]) DB_NAME([database_id]) HOST_ID() HOST_NAME() ISNULL(expr,value) OBJECT_ID(‘obj_name’) OBJECT_NAME(object_id) SUSER_SID([‘login_name’]) SUSER_ID([‘login_name’]) SUSER_SNAME([server_user_id]) SUSER_NAME([server_user_id]) USER_ID([‘user_name’]) USER_NAME([user_id]) Các hàm tập hợp Hàm Sum(col_name) Avg(col_name) Giá trị trả Trả giá trị tổng Trả giá trị trung bình COUNT(*) Hàm đếm ghi bảng thỏa mãn điều kiện Trả giá trị lớn tập giá trị Trả giá trị nhở tập hợp Max(col_name) Min(col_name) Tóm tắt học Lô xử lý la tập hợp câu lệnh SQL coi đơn vị coi đơn vị thực thi máy chủ Một thủ tục lưu trữ tập hợp câu lệnh T-SQL biên dịch thành kế hoạch thực thi Các thích đoạn chuỗi văn mã lệnh (hay gọi nhận xét) trình biên dịch bỏ qua Microsoft SQL Server hỗ trợ hai loại thích là: (chú thích dòng) /* */ (chú thích đoạn) Các lệnh điều khiển giúp ta thực thi xử lý điều kiện vòng lặp Biến đối tượng chứa liệu Chúng ta truyền liệu cho câu lệnh SQL dùng biến Summary Contd… SQL Server hỗ trợ hai loại biến T-SQL: biến toàn cục biến cục Các hàm dùng ta tính hoán hay thao tác liệu Hàm T-SQL chia thành loại: Các hàm thao tác với tập ghi dùng thay cho tên bảng SQL Các hàm tập hợp tính toán cho kết giá trị đơn (ví dụ tính tổng hay trung bình) Các hàm vô hướng thao tác giá trị trả giá trị Các hàm dùng biểu thức [...]... FROM titles) < $30 BEGIN UPDATE titles SET price = price * 2 SELECT MAX(price) FROM titles IF (SELECT MAX(price) FROM titles) > $50 BREAK ELSE CONTINUE END PRINT 'Too much for the market to bear' T khóa GOTO GOTO: Chúng ta có thể thay đổi dòng thực thi của chương trình đến m t điểm (còn gọi là nhãn) Các lệnh sau t khóa GOTO sẽ được bỏ qua và tiến trình thực thi tiếp t c ở vị trí nhãn chỉ ra trong... trị t ng Trả về giá trị trung bình COUNT(*) Hàm đếm các bản ghi trong bảng thỏa mãn điều kiện Trả về giá trị lớn nh t trong m t tập giá trị Trả về giá trị nhở nh t trong m t tập hợp Max(col_name) Min(col_name) T m t t bài học Lô xử lý la m t tập hợp các câu lệnh SQL được coi như m t đơn vị và được coi là m t đơn vị thực thi trên máy chủ M t thủ t c lưu trữ là m t tập hợp các câu lệnh T- SQL. .. 1-31 Date Parts (tiếp…) Datepart T vi t t t Giá trị Week Weekday Month Quarter Year wk dw mm qq yy 1-53 1-7 1- 12 1-4 1753-9999 Các hàm ngày tháng và số học Các hàm ngày tháng Các hàm số học GETDATE() DATEADD(datepart,number,date) DATEDIFF(datepart,date1,date2) DATENAME(datepart,date) DATEPART(datepart,date) ABS(num_expr) CEILING(num_expr) FLOOR(num_expr) POWER(num_expr,y) ROUND(num_expr,length) Sign(num_expr)... Contd… SQL Server hỗ trợ hai loại biến trong T- SQL: đó là biến toàn cục và biến cục bộ Các hàm có thể được dùng khi ta t nh hoán hay thao t c dữ liệu Hàm trong T- SQL được chia thành 3 loại: Các hàm thao t c với t p bản ghi có thể được dùng thay cho t n các bảng trong SQL Các hàm t p hợp t nh toán cho ra k t quả là m t giá trị đơn nh t (ví dụ t nh t ng hay trung bình) Các hàm vô hướng thao... ghi trong cursor mở gần nh t Giá trị hiện t i của tham số trong lệnh SET DATEFIRSTquy t định ngày đầu tiên của tuần Mã lỗi của lỗi xảy ra gần nh t 0 nếu trạng thái lần truy xu t cuối thành công -1 nếu có lỗi Danh sách các biến toàn cục(tiếp…) Các biến @@IDENTITY @@LANGUAGE @@MAX_CONNECTIONS @@ROWCOUNT @@SERVERNAME @@SERVICENAME @@TIMETICKS @@TRANSCOUNT @@VERSION Ý nghĩa Giá trị identity gần nh t được... trong mệnh đề GOTO Cú pháp: GOTO nhãn RETURN RETURN: Ta có thể dùng RETURN b t cứ lúc nào để tho t khỏi m t đoạn lệnh hay m t thủ t c Các lệnh sau t khóa RETURN sẽ không được thực thi Cú pháp: RETURN [số nguyên] Cấu trúc CASE CASE: T khóa CASE cho phép ta trả về m t giá trị dựa vào k t quả của m t biểu thức Nó có thể được dùng như m t biểu thức Cú pháp: CASE expression WHEN expression1 THEN expression1... biến sau trong TSQL: Các biến toàn cục Biến toàn cục trong SQL Server b t đầu bằng 2 ký t @ Ta có thể truy xu t giá trị của các biến này bằng truy vấn SELECT đơn giản Danh sách các biến toàn cục Các biến @@CONNECTIONS @@CPU_BUSY @@CURSOR_ROWS @@DATEFIRST @@ERROR @@FETCH_STATUS Ý nghĩa Số các k t nối đên máy chủ t lần khởi động cuối Số milliseconds (m t phần ngìn giây) hệ thống đã xử lý t khi SQL Server... m t lệnh SQL hay m t tập lệnh dựa vào điều kiện nào đó Các câu lệnh được thực thi nhiều lần khi nào điều kiện vẫn còn đúng Cú pháp: WHILE Boolean_expression { statement | statement_block } [ BREAK ] { statement | statement_block } [ CONTINUE ] BREAK và CONTINUE Chúng ta có thể dùng t khóa CONTINUE và BREAK trong vòng lặp while để điều khiển phần thực thi của các câu lệnh USE pubs GO WHILE (SELECT... khiển(tiếp ) BEGIN END BEGIN END : M t tập lệnh SQL được thực thi sẽ được đ t trong BEGIN END Cú pháp: BEGIN { lệnh | đoạn lệnh } END IF ELSE IF ELSE: Chúng ta có thể thực thi các t p lệnh SQL khác nhau dựa vào các điều kiện khác nhau Cú pháp: IF biểu thức đúng sai { lệnh sql | t p lệnh } IF statement [ ELSE { lệnh sql| t p lệnh } ] TRUE FALSE Ví dụ về IF Cấu trúc WHILE WHILE: Chúng ta có thể thực thi... expression2 THEN expression2] […]] [ELSE expression] END Ví dụ: SELECT au_fname, au_lname, CASE state WHEN 'OR' THEN 'Oregon' END AS StateName FROM authors Cập nh t nhiều trường dùng CASE UPDATE publishers SET state = CASE WHEN country "USA" THEN " " ELSE state END, city = CASE WHEN pub_id = "9999" THEN "LYON" ELSE city END WHERE country "USA" OR pub_id = "9999" Hai hay nhiều trường có thể được ... 1753-9999 Các hàm ngày tháng số học Các hàm ngày tháng Các hàm số học GETDATE() DATEADD(datepart,number,date) DATEDIFF(datepart,date1,date2) DATENAME(datepart,date) DATEPART(datepart,date) ABS(num_expr)... CONTINUE END PRINT 'Too much for the market to bear' T khóa GOTO GOTO: Chúng ta thay đổi dòng thực thi chương trình đến điểm (còn gọi nhãn) Các lệnh sau t khóa GOTO bỏ qua tiến trình thực thi... trình, t n t c giả ngày tháng thực thay đổi mã lệnh Chú thích dùng để mô t phép t nh toán phức t p hay giải thích phương pháp lập trình Các hình thức thích SQL Server hỗ trợ hai hình thức thích: