Cursor & Function trong SQL ServerHuy VũGiới thiệu, khái niệm, cú pháp, demo của Cursor và Function
trong hệ quản trị CSDL
Tham khảo demo vui lòng liên hệ email: pinuit11@gmail.com
Chúc các bạn học tập thật tốt!
Giới thiệu về Rational Rose và Các diagramHuy VũGiới thiệu về Rational Rose - một phần mềm hỗ trợ mạnh về phân tích thiết kế hệ thống. Ngoài ra, còn giới thiệu về các Diagram và cách xây dựng các Diagram này.
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh ThanhPhân tích thiết kế hệ thống cửa hàng bán điện thoại di động
Chương trình viết bằng PHP và hệ quản trị CSDL MySql
ݺߣ báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Caoݺߣ báo cáo đồ án tốt nghiệp, Website cửa hàng điện thoại trực tuyến MSmobile. Nó chỉ mang tính chất tham khảo, hy vọng là các bạn khi xem có thêm gợi ý, nhưng đừng lấy nó ra để nộp.
Bài 5: Chuẩn hóa cơ sở dữ liệuMasterCode.vn Các bất thường khi cập nhật dữ liệu
Giải thích sự cần thiết phải chuẩn hóa dữ liệu
Tìm hiểu một số khái niệm:
Khóa của quan hệ
Phụ thuộc hàm
Tìm hiểu quy trình chuẩn hóa CSDL
Tìm hiểu 3 dạng chuẩn: 1NF, 2NF, 3NF
Trình tự chuẩn hóa theo 3 dạng chuẩn
Tìm hiểu khái niệm khử chuẩn
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...MasterCode.vn Xác định yêu cầu HT
Mục tiêu
Sản phẩm
Phương pháp
Mô hình hóa quy trình nghiệp vụ
Mục tiêu
Sản phẩm
Phương pháp
Nhập môn công nghệ phần mềmTrần Gia BảoĐây là silde kiến thức cơ bản nhất về phân tích, thiết kế phần mềm. Silde có tất cả những mô hình phổ biến nhất: Mô hình thác nước, mô hình xoắn ốc
Các bước để thiết kế một phần mềm: Đặc tả, Phân tích: use case, diagram, Code, Testing
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn Biết về tổ chức ứng dụng, khái niệm “chia để trị”
Biết cách sử dụng Function và Sub
Biết cách sử dụng tham số Optional
Hiểu về phạm vị biến
Hiểu về ép kiểu ngầm định thu hẹp và sử dụng lớp
Convert để ép kiểu tường minh
Hiểu về cách sử dụng các tùy chọn của trình gỡ lỗi
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh ThanhPhân tích thiết kế hệ thống cửa hàng bán điện thoại di động
Chương trình viết bằng PHP và hệ quản trị CSDL MySql
ݺߣ báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Caoݺߣ báo cáo đồ án tốt nghiệp, Website cửa hàng điện thoại trực tuyến MSmobile. Nó chỉ mang tính chất tham khảo, hy vọng là các bạn khi xem có thêm gợi ý, nhưng đừng lấy nó ra để nộp.
Bài 5: Chuẩn hóa cơ sở dữ liệuMasterCode.vn Các bất thường khi cập nhật dữ liệu
Giải thích sự cần thiết phải chuẩn hóa dữ liệu
Tìm hiểu một số khái niệm:
Khóa của quan hệ
Phụ thuộc hàm
Tìm hiểu quy trình chuẩn hóa CSDL
Tìm hiểu 3 dạng chuẩn: 1NF, 2NF, 3NF
Trình tự chuẩn hóa theo 3 dạng chuẩn
Tìm hiểu khái niệm khử chuẩn
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...MasterCode.vn Xác định yêu cầu HT
Mục tiêu
Sản phẩm
Phương pháp
Mô hình hóa quy trình nghiệp vụ
Mục tiêu
Sản phẩm
Phương pháp
Nhập môn công nghệ phần mềmTrần Gia BảoĐây là silde kiến thức cơ bản nhất về phân tích, thiết kế phần mềm. Silde có tất cả những mô hình phổ biến nhất: Mô hình thác nước, mô hình xoắn ốc
Các bước để thiết kế một phần mềm: Đặc tả, Phân tích: use case, diagram, Code, Testing
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn Biết về tổ chức ứng dụng, khái niệm “chia để trị”
Biết cách sử dụng Function và Sub
Biết cách sử dụng tham số Optional
Hiểu về phạm vị biến
Hiểu về ép kiểu ngầm định thu hẹp và sử dụng lớp
Convert để ép kiểu tường minh
Hiểu về cách sử dụng các tùy chọn của trình gỡ lỗi
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)MasterCode.vn Tìm hiểu câu lệnh SELECT trên nhiều bảng
Tìm hiểu 3 nhóm lệnh SQL:
Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các
bảng dữ liệu(Create, Drop, Alter, …)
Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu
(Insert, Delete, Update,…) lưu trong các bảng
Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truy
nhập vào dữ liệu và các bảng (Grant, Revoke, …
Trigger in SQLNguyen DuongThe document discusses triggers in SQL. It defines triggers as special stored procedures that are automatically executed in response to data changes. Triggers help maintain data integrity by allowing or preventing changes that could result in inconsistent data. The document provides details on creating, altering, and dropping triggers, and describes different types of triggers including insert, update, delete, and instead of triggers. It also provides examples of using triggers.
Lập trình web asp.net MVCMasterCode.vn Lịch sử phát triển Web
2. Lý do ra đời của ASP.NET MVC
2.1 Giới thiệu ASP.NET truyền thống
2.2 Nhược điểm ASP.NET truyền thống
2.3 Giới thiệu ASP.NET MVC (model-view-controller)
2.3.1 Nguồn gốc ASP.NET MVC
2.3.2 Các thành phần cấu thành ASP.NET MVC
2.3.3 Cấu trúc mặc định của một dự án ASP.NET MVC
2.4 So sánh giữa ASP.NET và ASP.NET MVC
2.5 MVC2
3. Tìm hiểu các thành phần bên trong ASP.NET MVC
3.1 Controllers và Actions
3.1.1 Controllers là gì ?
3.1.2 Controller Actions là gì ?
3.2 Views
3.2.1 Views là gì ?
3.2.2 Tạo Views như thế nào ?
3.2.2 Sử dụng Views như thế nào ?
3.3 Models
3.3.1 Models là gì ?
3.3.2 Tạo Database
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTMasterCode.vn Stored Procedure là một tập các câu lệnh T -SQL thực
hiện một nhiệm vụ cụ thể, được đặt tên và lưu trữ
trong CSDL dưới dạng đã biên dịch.
Stored procedure cung cấp một phương pháp hữu ích
cho việc thực thi lặp lại cùng một nhiệm vụ
Giúp tái sử dụng code
Khi thực thi lại một nhiệm vụ, sử dụng lời gọi Stored
Procedure thay vì viết và thực thi lại cùng một tập hợp các
câu lệnh.
Cách sử dụng các biến, cấu trúc điều khiển trong
Stored Procedure tương tự như mã kịch bản
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTMasterCode.vn Quản trị viên CSDL là người chịu trách nhiệm về hiệu
năng, tính toàn vẹn dữ liệu và bảo mật cho CSDL. Đồng
thời người quản trị có vai trò lập kế hoạch, phát triển,
khắc phục sự cố xảy ra với CSDL.
Các tác vụ quản trị thường thực hiện
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTMasterCode.vn Hiểu về GUI và thiết kế GUI
Làm quen với trình soạn thảo mã
Hiểu về xử lý sự kiện
Biết cách sử dụng IDE để hạn chế lỗi biên dịch
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn Giới thiệu ngôn ngữ SQL
Giới thiệu Oracle SQL
Giới thiệu các nhóm ngôn ngữ của SQL
Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề
SELECT
ORACLE_ch2_SQL.pptxQuangTrnMinh18HQT2 Người dùng có thể sử dụng EC2 Amazon để khởi tạo nhiều tài nguyên máy chủ theo nhu cầu sử dụng, cấu hình mạng, bảo mật và dung lượng lưu trữ. EC2 cho phép người dùng tăng, giảm quy mô tùy thích để xử lý nhu cầu công việc một cách nhanh chóng với các đặc điểm nổi bật:
Môi trường ảo thực hiện các tính toán được gọi là instances.
Có các template cấu hình sẵn cho các instances, gọi là Amazon Machine Images, gồm các gói dịch vụ cần thiết cho máy chủ người dùng.
Instance type bao gồm các cấu hình khác nhau cho instances về CPU, dung lượng lưu trữ, bộ nhớ, hệ thống mạng.
Thông tin login của instances được bảo mật bằng cách dùng key pair AWS để lưu key public, còn người dùng sẽ lưu key private.
Khi bạn tạm dừng hoặc ngắt các instances, dữ liệu tạm thời sẽ bị xóa bỏ, gọi là instance store volumes.
Amazon Elastic Block Store (Amazon EBS volumes) được dùng để lưu trữ dung lượng liên tục cho dữ liệu người dùng.
Tài nguyên người dùng được lưu trữ ở nhiều vị trí khác nhau, ví dụ như Amazon EBS volumes và instance được gọi là regions and Availability Zones.
Dịch vụ tường lửa cho phép bạn tùy chỉnh các cổng, giao thức, các giải nguồn IP có thể tiếp cận instances bạn đang sử dụng.
Địa chỉ IPv4 tĩnh được gọi là Elastic IP addresses.
Bạn có thể gán các siêu dữ liệu cho tài nguyên Amazon EC2.
Hệ thống mạng ảo có thể được tách biệt với phần còn lại của hệ thống đám mây AWS. Người dùng có thể kết nối với mạng riêng của mình, gọi là Virtual Private Clouds.
Lưu trữ trên Amazon Simple Storage Service – Amazon S3
Amazon S3 là không gian để lưu trữ và trích xuất bất cứ dữ liệu nào ở bất cứ đâu. Dịch vụ lưu trữ này có độ bền và độ sẵn sàng cực kỳ cao, hiệu suất, tính bảo mật luôn dẫn đầu trong ngành, không giới hạn khả năng thay đổi quy mô với mức chi phí cực kỳ thấp.
MICE Trường Anh ngữ IU Cebu Brochure 2025.pdfDu học MICE - Du học tiếng Anhhttps://tienganhtaiphi.com/truong-anh-ngu-iu-cebu/
IU English Academy cam kết mang đến một chương trình học tiếng Anh toàn diện dành cho học viên chuẩn bị du học hoặc làm việc quốc tế. Bên cạnh việc rèn luyện ngôn ngữ, IU đặc biệt chú trọng đến các hoạt động ngoại khóa, bao gồm các lớp thể thao fitness như Yoga, Kickboxing và nhảy Zumba. Những hoạt động này không chỉ nâng cao sức khỏe mà còn giúp phát triển kỹ năng làm việc nhóm và tinh thần thể thao, giúp học viên sẵn sàng cho mọi thử thách trong tương lai.
==== Du học MICE - Du học tiếng Anh ====
🏡 Công ty TNHH tư vấn MICE
📱 Hotline/Zalo/Viber: 0904137471
📧 info@tienganhtaiphi.com
🖱️ http://tienganhtaiphi.com
🖱️ Nhóm học TA online 1 kèm 1: https://www.facebook.com/groups/2157125567720037
📬 39/15 Đường 102, P. Tăng Nhơn Phú A, TP. Thủ Đức (Q9), TP.HCM
3. Đặt vấn đề
Khái niệm
Khai báo chuẩn
Khai báo mở rộng
Mở cursor
Cách sử dụng
Đóng và giải phóng
Tài liệu tham khảo
3
Quản trị cơ sở dữ liệu – 12CK3
Khai báo cursor Sử dụng cursor
Video demo Hỏi đáp
Hoàng Minh ThanhPhan Thanh Thảo
Huỳnh Phương Nam & Trương Quốc Huy
4. Quản trị cơ sở dữ liệu – 12CK3
4
Các lệnh trong SQL như: SELECT, UPDATE,
DELETE,… đều thao tác lên nhiều dòng dữ liệu thỏa
điều kiện WHERE cùng lúc mà không thể thao tác lên
từng dòng dữ liệu cụ thể.
6. Quản trị cơ sở dữ liệu – 12CK3
6
Giải quyết :
Cursor là kiểu dữ liệu cơ bản dùng để duyệt qua từng
dòng dữ liệu trả về từ câu truy vấn SELECT đó giúp ta
có thể có những xử lý khác nhau cho từng dòng dữ liệu
cụ thể.
Đặc điểm :
Cho phép thao tác lên từng dòng dữ liệu trả về từ lệnh
SELECT.
Do phải lặp qua từng dòng dữ liệu nên đây là cách xử
lý chậm nhất
7. Quản trị cơ sở dữ liệu – 12CK3
7
The declaration (Khai báo)
Opening (mở Cursor đã định nghĩa trước đó)
Utilizing/navigating (đọc và xử lý từng lệnh bên
trong Cursor)
Closing and Deallocating (đóng cursor và
giải phóng bộ nhớ)
9. Quản trị cơ sở dữ liệu – 12CK3
9
DECLARE cursor_name[ INSENSITIVE ][ SCROLL ] CURSOR
FOR select_statement
[ FOR { READ ONLY | UPDATE [ OF
column_name [ ,...n ]] } ]
[;]
Khai báo Cursor (ISO Syntax)
cursor_name : tên của cursor, phải chứa 1 - 128 ký tự
select_statement : lựa chọn đến các cột trong bảng mà
ta cần đọc. Nhớ lệnh SELECT trong cursor không chứa các
mệnh đề COMPUTE, COMPUTE BY, FOR BROWSE, and INTO .
10. Quản trị cơ sở dữ liệu – 12CK3
10
Trong đó :
INSENSITIVE : tạo một bản copy tạm thay thế bảng
chính. Con trỏ này sẽ không được phép thay đổi và việc
thay đổi sẽ không ảnh hưởng khi dùng lệnh FETCH lấy giá
trị con trỏ này
READ_ONLY : con trỏ không thể cập nhật .
SCROLL: cursor được phép di chuyển tới lui, qua lại các
dòng mẩu tin bên trong cursor.
UPDATE [ OF column_name [ ,...n ]] để xác
định khả năng cập nhật từng cột với con trỏ, Nếu OF
column_name [ ,...n ] được chỉ định. Thì chỉ các
cột trong danh sách được sửa. Nếu có lệnh UPDATE mà
không có danh sách cột thì mặc định tất cả cột có thể chỉnh
sửa.
11. Quản trị cơ sở dữ liệu – 12CK3
11
DECLARE vend_cursor CURSOR
FOR SELECT * FROM Purchasing.Vendor
Ví dụ :
DECLARE @cursor_name CURSOR
SET @cursor_name = CURSOR FOR select_statement
Ngoài ra, có thể khai báo riêng CURSOR rồi sau đó
mới gán lệnh SELECT vào CURSOR sau
13. Quản trị cơ sở dữ liệu – 12CK3
13
Phạm vi :
LOCAL | GLOBAL : phạm vi hoạt động của biến. local
biến cục bộ; global biến toàn cục (tham chiếu đến bất
kỳ thủ tục nào của kết nối tạo ra biến cursor đó.
Mặc định sẽ là LOCAL
FORWARD_ONLY : duyệt từ mẩu tin đầu đến cuối
cùng , theo chiều đi tới.
SCROLL: cursor được phép di chuyển tới lui, qua lại
các dòng mẩu tin bên trong cursor.
14. Quản trị cơ sở dữ liệu – 12CK3
14
STATIC (cursor tĩnh) : Nghĩa là khi có sự thay đổi bên
dưới dữ liệu gốc (base table) thì các thay đổi đó không
được cập nhật tự động trong dữ liệu của cursor.
DYNAMIC (cursor động) : Nghĩa là khi có thay đổi dữ
liệu gốc(base table) thì các thay đổi đó tự động cập
nhật trong dữ liệu kiểu cursor.
KEYSET gần như DYNAMIC. Nghĩa là những thay đổi
trên cột không là khoá chính trong bảng gốc (base
table) sẽ tự động cập nhật trong dữ liệu cursor. Tuy
nhiên hiển thị trong những mẩu tin vừa thêm mới hoặc
những mẩu tin vừa huỷ bỏ sẽ không hiển thị trong dữ
liệu cursor có kiểu là keyset.
15. 15
SCROLL_LOCK: chỉ định SQL SERVER khoá các
mẩu tin cần phải thay đổi giá trị hoặc bị huỷ bỏ bên
trong bảng nhằm đảm bảo hành động cập nhật luôn
thành công.
READ_ONLY : không thể cập nhật dữ liệu
select_statement:chỉ định danh sách các cột sẽ
được phép thay đổi giá trị trong cursor. Mặc định là tất
cả các cột trong mệnh đề select sẽ được phép thay đổi
giá trị nếu dữ liệu cursor không phải là chỉ đọc.
16. Quản trị cơ sở dữ liệu – 12CK3
16
DECLARE @cursor_name CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC ]
[READ_ONLY | SCROLL_LOCK]
FOR SELECT_statement
[FOR UPDATE [OF <column name >[,...n]]][;]
Ví dụ
-- Declare our cursor
DECLARE CursorTest CURSOR
GLOBAL -- So we can manipulate it outside
the batch
SCROLL -- So we can scroll back and see the
changes
DYNAMIC
FOR SELECT SalesOrderID, CustomerID
FROM CursorTable;
18. Quản trị cơ sở dữ liệu – 12CK3
18
OPEN { { [ GLOBAL ] cursor_name } |
@cursor_variable_name }
Mở cursor
GLOBAL: Nếu cả biến toàn cục và cục bộ cùng một
tên thì mặc định sẽ gọi biến cục bộ, thêm GLOBAL sẽ
gọi theo tên theo biến toàn cục
cursor_variable_name : tên của biến
cursor mà tham chiếu đến một cursor
Mặc định sẽ là LOCAL
20. Quản trị cơ sở dữ liệu – 12CK3
20
FETCH [NEXT | PRIOR | FIRST | LAST |
ABSOLUTE {n | @nVar}
| RELATIVE {n | @nVar}]
FROM {{[GLOBAL] cursor_name} |
@cursor_variable_name}
[ INTO @variable_name[,..n]]
Truy cập con trỏ
21. 21
NEXT,PRIOR,FIRST,LAST: chỉ định cách
đọc dữ liệu.
ABSOLUTE {n | @nVar} : Chỉ định số dòng n dữ
liệu cần đọc, được đọc từ dòng đầu tiên..
RELATIVE : tương tự như ABSOLUTE nhưng bắt đầu
từ dòng hiện tại
n or @nVar Mô tả
0 Nếu 0 thì không có giá trị trả về
< 0
Nếu giá trị dương thì được tính từ đỉnh của phần dữ
liệu
> 0 Nếu n âm thì được tính từ phần đáy của dữ liệu
22. 22
@@FETCH_STATUS : biến hệ thống để kiểm tra đọc dữ
liệu thành công hay thất bại
Giá trị trả về Mô tả
0 Câu lệnh FETCH thành công
-1
Câu lệnh FETCH thất bại hoặc dòng đã vượt quá kết
quả gán
-2 Dòng truy cập bị xóa
23. Quản trị cơ sở dữ liệu – 12CK3
23
-- Perform the first fetch.
FETCH NEXT FROM contact_cursor;
-- Check @@FETCH_STATUS to see if there are
any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous
fetch succeeds.
FETCH NEXT FROM contact_cursor;
END
Ví dụ
25. Quản trị cơ sở dữ liệu – 12CK3
25
CLOSE { { [ GLOBAL ] cursor_name } |
@cursor_variable_name }
Lưu ý : Lệnh CLOSE chỉ là thực hiện hành động giải
phóng các dòng dữ liệu tham chiếu bên trong biến
cursor.
Đóng cursor
CLOSE Employee_Cursor
Ví dụ :
26. Quản trị cơ sở dữ liệu – 12CK3
26
DEALLOCATE{ { [ GLOBAL ] cursor_name } |
@cursor_variable_name }
Giải phóng bộ nhớ
Lưu ý : Lệnh DEALLOCATE để giải phóng thật sự biến
cursor ra khi bộ nhớ. Sau khi thực hiện lệnh này , nếu có
lệnh nào tham chiếu đến tên cursor đều sẽ gây ra lỗi.
DEALLOCATE Employee_Cursor
Ví dụ
29. Quản trị cơ sở dữ liệu – 12CK3
29
Professional Microsoft SQL Server 2008
Programming.pdf
MSDN : Cursors (Transact-SQL)
(http://msdn.microsoft.com/en-us/library/ms181441.aspx)
Blog của Nguyễn Văn Danh - cursor_bg_sql_server.pdf
(http://nvdanh.wordpress.com/)
Using SQL Server Cursors
(http://www.mssqlcity.com/Articles/General/UseCursor.htm)