Bài giảng Thiết kế cơ sở dữ liệu - Chương 2: Lập trình và quản trị người dùng trong SQL Server trình bày các nội dung: Giới thiệu SQL, các lệnh làm việc với CSDL, Stored Procedure, Trigger, quản trị người dùng. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1THIẾT KẾ CƠ SỞ DỮ LIỆU
( MHT09.3)
Chương 2 Lập trình và Quản trị người dùng
trong SQL Server
Trang 2Nội dung
Giới thiệu SQL, các lệnh làm việc với CSDL
Nội thủ tục (Stored Procedure)
Trigger
Quản trị người dùng
Chương 2 - Lập trình và Quản trị người dùng trong SQL 2
Trang 3 1970: SQL (Structured Query Language) bắt nguồn từngôn ngữ SEQUEL (Structured English QUEryLanguage), ngôn ngữ được thiết kế tại tập đoàn IBMnhằm đưa ra một giao diện truy vấn dữ liệu với HQTCSDLthử nghiệm SYSTEM R
Chương 2 - Lập trình và Quản trị người dùng trong SQL 3
Trang 4 SQL:2011 – Support temporary databases
Chương 2 - Lập trình và Quản trị người dùng trong SQL 4
Trang 5 Một lược đồ (SQL Schema) được xác định bởi tên của nó,
và bao gồm một tên xác thực cho biết người dùng nào sởhữu lược đồ cũng như như mô tả của các thành phầntrong lược đồ đó
Các thành phần của lược đồ bao gồm: bảng(tables), ràngbuộc(constrains), khung nhìn(views), vùng (domain) vàcác cấu trúc mô tả lược đồ
1 Schema <=> 1 Database
Chương 2 - Lập trình và Quản trị người dùng trong SQL 5
Trang 6DROP SCHEMA Tên_lược_đồ [CASCADE|RESTRICT];
– Cascade: Xóa lược đồ + các phần tử của nó– Restrict: Chỉ xóa nếu có đối tượng nào trong đó
Chương 2 - Lập trình và Quản trị người dùng trong SQL 6
Trang 7DROP DATABASE Quanlyphongmay;
Chương 2 - Lập trình và Quản trị người dùng trong SQL 7
Trang 8Khung nhìn - View
Là một bảng tạm thời gồm 1 số thuộc tính từ nhiều bảng khác nhau
Ý nghĩa:
– Truy cập đến dữ liệu dễ dàng – An toàn dữ liệu
Chương 2 - Lập trình và Quản trị người dùng trong SQL 8
Trang 9Khung nhìn – View (tt)
Tạo VIEW
CREATE VIEW Tên_khung_nhìn
[ trường 1, trường 2, … ] AS select_statement
[ WITH CHECK OPTION ];
Xóa VIEW
DROP VIEW Tên_khung_nhìn;
Chương 2 - Lập trình và Quản trị người dùng trong SQL 9
Trang 10Ví dụ
Tạo view:
CREATE VIEW SV_Tinh
AS SELECT Hoten, Tentinh
FROM SV, Tinh
WHERE SV.Matinh = Tinh.Matinh
WITH CHECK OPTION;
Xóa view:
DROP VIEW SV_Tinh;
Chương 2 - Lập trình và Quản trị người dùng trong SQL 10
Trang 11Định nghĩa bảng
Tạo bảng
CREATE TABLE Tên_bảng (
Tên_thuộc_tính kiểu_dl [ràng_buộc DEFAULT giá trị], Tên_thuộc_tính kiểu_dl [ràng_buộc DEFAULT giá trị],
[PRIMARY KEY (DS_thuộc_tính),UNIQUE (DS_thuộc_tính),
FOREIGN KEY (Thuộc_tính) REFERENCESTên_bảng(Thuộc_tính) ON DELETE SET NULL |
Chương 2 - Lập trình và Quản trị người dùng trong SQL 11
Trang 12Định nghĩa bảng
Kiểu dữ liệu: là một trong các kiểu của SQL hoặc miền dongười dùng định nghĩa
Ràng buộc: NOT NULL
DEFAULT giá trị: là giá trị mặc định được thiết lập chotrường
PRIMARY KEY (DS các trường): khóa chính
UNIQUE (DS_thuộc_tính): thuộc tính có giá trị là duy nhất
FOREIGN KEY (Thuộc_tính) REFERENCESTên_bảng(Thuộc_tính)]: liên kết với bảng khác
Trang 13Ví dụ
Trang 14Định nghĩa bảng (tt)
Xóa bảng:
– DROP TABLE Tên_bảng [CASCADE | RESTRICT];
Sửa đổi cấu trúc bảng:
ALTER TABLE Tên_bảng (
[ALTER Tên_trường_cần_sửa Đặc trưng mới[ADD Tên_trường_cần_thêm_mới Đặc trưng]
[DROP Tên_trường cần xóa CASCADE|RESTRICT]);
Chương 2 - Lập trình và Quản trị người dùng trong SQL 14
Trang 15Ví dụ:
Chương 2 - Lập trình và Quản trị người dùng trong SQL 15
Xóa 1 trường khỏi bảng
Sửa giá trị mặc định cho 1 trường trong bảng
Thay đổi 1 ràng buộc trong bảng
Trang 16số chữ số thuộc phần thập phân Trong trường hợp không được khai báo tường minh thì j bằng không
Trang 17– Trong đó: n là kích thước tối đa
Kiểu xâu bit:
– độ dài cố định – BIT(n)– độ dài thay đổi – BIT VARYING(n)
– Trong đó: n là độ dài cực đại của xâu bít
Trang 18Các kiểu dữ liệu (tt)
Kiểu ngày
– Có độ rộng là 10– Các thành phần: YEAR, MONTH, DAY– Kiểu định dạng điển hình là YYYY-MM-DD
Kiểu thời gian:
– Độ rộng ít nhất là 8– Các thành phần là HOUR, MINUTE, SECOND.– Kiểu định dạng điển hình là HH:MM:SS
Trang 19Kiểu TIMESTAMP kết hợp cả hai kiểu DATE và TIME cộng thêm sau vị trí để chỉ độ chính xác sau giây.
Trang 20Các kiểu dữ liệu
Kiểu dữ liệu khác liên quan đến DATE , TIME và TIMESTAMP là INTERVAL Kiểu giá trị này xác định khoảng thời gian giữa hai mốc thời gian tuyệt đối như DATE , TIME , TIMESTAMP
Trang 21CREATE DOMAIN MyChar AS CHAR(9)
Sau câu lệnh này thì có thể dùng kiểu MyChar thay thế cho CHAR(9)
Xóa miền:
DROP DOMAIN Tên_miền;
Chương 2 - Lập trình và Quản trị người dùng trong SQL 21
Trang 22[ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
Có thể sử dụng toán tử UNION để kết hợp các truy vấn lại thành 1 tập kết quả.
Trang 25Stored procedure (tt)
Các loại SP:
– System SP– Extended SP– Temporary SP– Custom SP
SP người dùng gồm 3 loại:
– Trigger– User sp– Defined function
Trang 27– EXEC tên_sp @p1 = giá_trị, @p2 = giá_trị, …
Trang 28Ví dụ một SP đơn giản
Chương 2 - Lập trình và Quản trị người dùng trong SQL 28
Trang 29Ví dụ SP có tham số
Chương 2 - Lập trình và Quản trị người dùng trong SQL 29
Trang 30Ví dụ SP có tham số đầu ra
Trang 31SP có tham số đầu ra là con trỏ
Chương 2 - Lập trình và Quản trị người dùng trong SQL 31
Trang 32select @x = ‘Hello world’
return @x
End
declare @v char(100)
exec @v = sp7print @v
Trang 34Trigger
Các loại trigger
– DML trigger: Đối với các thao tác insert, update, delete
– DDL trigger: Đối với các thao tác create, alter, drop
– Logon trigger
Trigger không có giá trị trả về
Trigger không có tham số
Chương 2 - Lập trình và Quản trị người dùng trong SQL 34
Trang 35Định nghĩa 1 trigger
CREATE TRIGGER trigger_name
[FOR | AFTER | INSTEAD OF ]
[INSERT [,] [UPDATE] [,] [DELETE]
Trang 36Lưu ý
Trong quá trình thực hiện trigger, SQL server tự động tạo ra 2 bảng Inserted và Deleted có cấu trúc giống bảng mà trigger định nghĩa trên đó