1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4 nguyễn thị mỹ dung

31 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 5,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu có in ra thông, không có hiển thị thông báo IF SELECT COUNT* FROM DETAI WHERE KINHPHI > 20 > 0 BEGIN PRINT N'DANH SÁCH ĐỀ TÀI CÓ KINH PHÍ TRÊN 20 TRIỆU: ' SELECT MADT, TENDT, CHUNH

Trang 1

GVPT: NGUYỄN THỊ MỸ DUNG

SỐ TC: 2

SỐ TIẾT: LT: 20; TH: 20

Biên soạn: Nguyễn Thị Mỹ Dung

Chương 1: Tổng quan về SQL Server (LT: 2) Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6) Chương 3: Transact-SQL và truy vấn dữ liệu

Trang 2

I Thiết kế View, Index

- Cũng tương tự như truy vấn dữ liệu là dùng đểxem dữ liệu từ nhiều bảng khác nhau trong CSDL

- Làmgiảm sự phức tạp của CSDL  bảo vệ dữliệu đối với người dùng không được phép truy cập

- Các lệnh sử dụng trên View tương tự như trênTable trong CSDL

- Nhược điểm của View là mất thời gian truy cập

dữ liệu từ bảng (table) gốc

Trang 3

Biên soạn: Nguyễn Thị Mỹ Dung

Ví dụ: Tạo View Ketquadetai gồm hotensv, họclực, điểm trung bình đề tài

GROUP BY SINHVIEN.MASV, HOCLUC

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 4

DROPVIEW <TÊN_VIEW>

Biên soạn: Nguyễn Thị Mỹ Dung

VD1: Sửa View Ketquadetai gồm hotensv, học lực

từ 7 điểm trở lên và điểm trung bình đề tài.

USE QUANLYDETAISV

ALTER VIEW KETQUADETAI

AS SELECT SINHVIEN.MASV, HOCLUC, ROUND(AVG(KETQUA),2) AS DIEMTBDT

FROM SINHVIEN LEFT JOIN SV_DT ON

SV_DT.MASV = SINHVIEN.MASV

GROUP BY SINHVIEN.MASV, HOCLUC

WHERE HOCLUC HOCLUC >= 7

VD2:

DROP VIEW KETQUADETAI

Trang 5

Lưu ý 1:

- Có thể sử dụng các câu truy vấn trên view tươ ng

tự như trên bảng (Table)

- Có thể truy vấn trên vừa trên bảng và vừa trên View.

Ví dụ:

SELECT MASV, HOTENSV, HOCLUC, DTBDT

FROM KETQUADETAI KQ , SINHVIEN S WHERE KQ MASV = S MASV AND

DTBDT >= 8

- Khi thay đổi (xóa, thêm, sửa) dữ liệu trên View thì

dữ liệu trên bảng gốc cũng thay đổi theo.

Biên soạn: Nguyễn Thị Mỹ Dung

FROM SV_DT SD , SINHVIEN S WHERE SD.MASV = S MASV

GROUP BY S MASV, HOTENSV

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 6

Chỉ nên tạo chỉ mục cho các cột thườ ng xuyên dùng trong các tác vụ tìm kiếm.

Biên soạn: Nguyễn Thị Mỹ Dung

 Chỉ mục đơn nhất (Unique Index)

Ví dụ 1:

CREATE UNIQUE INDEX TENDT_ID

ON DE_TAI(TENDT)

Ví dụ 2: Tạo chỉ mục nhiều cột

CREATE INDEX SV_Index

ON SINHVIEN (Hosv, Tensv)

Trang 7

Xóa chỉ mục

DROP INDEX <tên_bảngtên_chỉ_mục>

Ví dụ:

DROP INDEX DE_TAITENDT_ID

DROP INDEX SINHVIEN.SV_ID

Biên soạn: Nguyễn Thị Mỹ Dung

Biên soạn: Nguyễn Thị Mỹ Dung

Giống như NNLT khác, SQL cũng sử dụng biến,các lệnh rẽ nhánh (if else, Case … end) và vònglặp (while) đơn giản Ngoài ra, SQL cũng hỗ trợxây dựng thủ tục, hàm Điểm khác biệt với NNLTkhác là SQL cho phép thiết lập trigger (bẫy lỗi sựkiện), cussor,…

- Biến trong SQL dùng để lưulưu giágiá trịtrị tạmtạm thờithời

trong quá trình xử lý tính toán

- Các lệnh cấu trúc dùng để hỗ trợ trong lậptrình SQL

- Chương trình con, trigger giúp SQL thực hiệncác ràng buộc dữ liệu trong CSDL

Trang 8

2 Khai báo biến

 Khai báo biến cục bộ

Câu lệnh SET hoặc SELECT (lấy giá trị từ bảng

dữ liệu) dùng để gán giá trị cho biến.

SET @local_variable = value

OR: SELECT @local_variable = value VD1:

DECLARE @x int, @y int

Trang 9

Hiển thị giá trị biến

Sử dụng câu lệnh PRINT hoặc SELECT đểhiển thị giá trị của biến

- Khi gángán trịtrị cho biến cócó dữdữ liệuliệu từtừ bảngbảng dữ liệuphải sửsử dụngdụng từ khóa SELECT

- Khi inin dữdữ liệuliệu vừa có chuỗi và vừa có biếnbằng

bằng lệnh PRINT phải chuyểnchuyển đổiđổi kiểukiểu cho biếnsangchuỗi với hàm CONVERT

Cú pháp: CONVERT (<KIỂU>, <BIẾN>)VD:

CONVERT (CHAR(5), MAXKP)

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 10

DECLARE @DiemTB float

SET @DiemTB=( SELECT AVG (Diem)

DECLARE @tongkp float SELECT @tongkp = sum (kinhphi)

FROM DETAI VD

VD4 4:: Tìm max kinh phí và min kinh phí của đề tài

DECLARE @maxkp int , @minkp int SELECT @maxkp=MAX(kinhphi),@minkp = MIN (kinhphi)

FROM DETAI

PRINT N'Kinh phí cao nhất là: ' +

CONVERT ( CHAR ,@maxkp)

PRINT N'Kinh phí thấp nhất là: ' +

CONVERT ( CHAR ,@minkp)

Trang 11

 Biến hệ thống

– Biến hệ thống là biến có sẵn và hệ thống quản lý.

– Biến hệ thống trong SQL Server được đặt tên bắt đầu bởi 2 2 ký ký hiệu hiệu @ @.

Ví dụ:

PRINT @@CPU_BUSY

PRINT @@VERSION

SELECT @@DATEFIRST AS SONGAYTUAN

SELECT @@CONNECTIONS AS SLGNOIKET

Biên soạn: Nguyễn Thị Mỹ Dung

DanhDanh sáchsách biếnbiến vàvà ýý nghĩanghĩa mộtmột sốsố biếnbiến hệhệ thốngthống

Biên soạn: Nguyễn Thị Mỹ Dung

@@CONNECTIONS Số các kết nối đến Server

@@CPU_BUSY Số lượng xử lý công việc của SQL

@@CURSOR_ROWS Số bản ghi trong cursor mở gần nhất

@@DATEFIRST Số ngày trong tuần

@@ERROR Mã lỗi xảy ra gần nhất

@@FETCH_STATUS = 0: nếu truy xuất thành công, = 1: ngược lại

@@IDEN TITY Giá trị identity gần nhất được sinh ra

@@LANGUA GE Ngôn ngữ sử dụng

@@MAX_CONNECTIONS Số lượng nối kết tối đa

@@ROWCOUNT Số bản ghi bị tác động bởi SQL

@@SERV ICENA ME Dịch vụ SQL trên máy chủ

@@TRANSC OUNT Số giao dịch đang hoạt động trên nối kết hiện tại

@@VERSION Phiên bản của SQL

Trang 12

a a IF IF … … ELSE ELSE

Cú pháp:

IF<điều kiện>

<lệnh sql1> | <tập lệnh1>

[ELSE[IF<ĐK_k>

<lệnh sql2>|< tập lệnh2>

[ELSE] ]

Trang 13

Biên soạn: Nguyễn Thị Mỹ Dung

VD2: Tìm xem có đề tài nào có kinh phí trên 20 tr không? Nếu có in ra thông, không có hiển thị thông báo

IF ( SELECT COUNT(*) FROM DETAI

WHERE KINHPHI > 20 ) > 0

BEGIN PRINT N'DANH SÁCH ĐỀ TÀI CÓ KINH PHÍ

TRÊN 20 TRIỆU: '

SELECT MADT, TENDT, CHUNHIEM, KINHPHI

FROM DETAI WHERE KINHPHI > 20

END ELSE PRINT N'KHÔNG CÓ ĐỀ TÀI NÀO

TRÊN 20 TRIỆU!!!'

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 14

b IF với EXISTS

IF có kết hợp từ khóa EXISTS Để kiểm tra sựtồn tại của các dòng dữ liệu bên trong bảng

IFEXISTS (Câu_lệnh_SELECT)Câu_lệnh1 | Khối_lệnh1

[ELSE

Câu_lệnh2 | Khối_lệnh2 ]

Biên soạn: Nguyễn Thị Mỹ Dung

VD1: Tìm những đề tài có kinh phí lớn hơn kinh phí trung bình tất cả các đề tài.

DECLARE @TBKP FLOAT

SET @TBKP = ( SELECT AVG (KINHPHI) FROM DETAI)

IF EXISTS ( SELECT KINHPHI FROM DETAI WHERE

Trang 15

VD2: Tìm thông tin những đề tài có nhiều hơn 3 sinh viên thực hiện, nếu không có in ra thông báo để biết.

IF EXISTS ( SELECT MASV, COUNT (MADT) FROM SV_DT

GROUP BY MASV HAVING COUNT (MADT) > 3) BEGIN

PRINT N'CÁC ĐỀ TÀI CÓ SỐ LƯỢNG TRÊN 2 SINH

VIÊN THỰC HIỆN!'

SELECT DISTINCT D.MADT, TENDT, CHUNHIEM,

KINHPHI, COUNT (SD.MASV) AS SL_SV

FROM DETAI D INNER JOIN SV_DT SD ON

D.MADT = SD.MADT

GROUP BY D.MADT, TENDT, CHUNHIEM, KINHPHI

HAVING COUNT (SD.MASV) > 3 END

ELSE

PRINT N'KHÔNG CÓ ĐỀ TÀI NÀO TRÊN 3 SINH VIÊN

THỰC HIỆN!'

Biên soạn: Nguyễn Thị Mỹ Dung

4 Câu lệnh Case… end

Dùng để lựa chọn nhiều giá trị, nếu <biểu_thức>

sau Case xuất hiện khi biểu thức có kiểu dữ liệusố

Case[<biểu_thức>]

when<điều_kiện_1>then <giá_trị_1>

when<điều_kiện_2>then <giá_trị_2>

Trang 16

Ví dụ1:

DECLARE @TEN CHAR(3), @XUAT NVARCHAR(100)

SET @TEN = 'PHI'

SET @XUAT = ( CASE @TEN

WHEN 'MR' THEN N'Xin chào quý ông!!!'

WHEN 'Mrs' THEN N'Xin chào quý bà!!!'

WHEN 'Ms' THEN N'Xin chào quý cô!!!'

ELSE N'XIN CHÀO MỌI NGƯỜI!!!' END)

Biên soạn: Nguyễn Thị Mỹ Dung

Ví dụ 2: Xếp loại học lực cho sinh viên

SELECT SINHVIEN.MASV,HOTENSV, HOCLUC, XEPLOAI= (CASE

WHEN HOCLUC <5 THEN 'YEU' WHEN HOCLUC>=5 AND HOCLUC<7 THEN 'TB' WHEN HOCLUC>=7 AND HOCLUC<8 THEN 'KHA'

ELSE 'GIOI'

END) FROM SINHVIEN

Trang 17

lặp while để bỏ qua các lệnh phía sau nó và bắtđầu vòng lặp mới.

Biên soạn: Nguyễn Thị Mỹ Dung

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 18

VD2: Tính tổng các số chẵn từ 1 đến 20 DECLA RE @TONGCHA N INT , @I INT

SET @TONGCHA N = 0 SET @I = 1

WHILE (@I <= 20) BEGIN

IF @I % 2 = 0 BEGIN SET @TONGCHA N = @TONGC HA N + @I PRINT N'TỔNG ['+ CONV ERT ( CHA R (2), @I)+'] =

'+ CONV ERT ( CHAR( 5), @TONGCHA N) END

ELSE

BEGIN SET @I = @I + 1

CONTINUE

END SET @I = @I + 1 END PRINT @TONGCHA N

Biên soạn: Nguyễn Thị Mỹ Dung

- Thủ tục lưu trữ cho phép chúng ta thực hiện cùng một

yêu cầu cầu bằng bằng một một c âu c âu lệnh lệnh đơn đơn giản giản thay vì phải sử dụng nhiều dòng lệnh SQL (tiết kiệm thời gian thực thi).

- Ngoài ra, thủ thủ tục tục có thể c ấp phát quyền c ho người dùng, nhờ đó tăng tăng khả khả năng năng bảo bảo mật mật đối với hệ thống.

Trang 19

- Thực thi lời gọi thủ tục:

EXEC | EXECUTE <Tên_proc > < Ds_tham_số >

Biên soạn: Nguyễn Thị Mỹ Dung

VD VD1 1: Viết thủ tục nhập vào một tên Xác định:

- Nếu nhập ‘Mr’ thì print ‘Xin chào quý ông!’

- Nếu nhập ‘Mrs’ thì print ‘Xin chào quý bà!’

- Nếu nhập ‘Ms’ thì print ‘Xin chào quý cô!’

Trang 20

VD2 : Kiểm tra MASV, MADT khi nhập dữ liệu vào bảng SV_DT

CREATE PROC PRO_SV_DT ( @MASV NVARCHAR(10), @MADT NVARCHAR(10),

@NOIA_D NVARCHAR(40), @KETQUA FLOAT ) AS

IF EXISTS (SELECT MASV FROM SINHVIEN WHERE MASV = @MASV) BEGIN

IF EXISTS (SELECT MADT FROM DETAI WHERE MADT = @MADT) BEGIN

INSERT INTO SV_DT (MASV, MADT, NOIA_D, KETQUA) VALUES (@MASV, @MADT, @NOIA_D, @KETQUA) PRINT N'ĐÃ THÊM THÀNH CÔNG'

END END

ELSE PRINT 'KHÔNG THE INSERT DO MASV HAY MADT KHÔNG TON TAI' RETURN 0

GO Thực hiện lệnh để kiểm tra

EXEC PRO_SV_DT 'SV12','DT04','AN GIANG',8

Biên soạn: Nguyễn Thị Mỹ Dung

VD3: Giả sử ta cần thực hiện một chuỗi các thao tác như sau trên cơ sở dữ liệu

1 Thêm vào danh sách đề tài (MADT, TênDT, Chủ

nhiệm, Kinh phí): DT1001, Xây dựng Website hỗ trợ v iệc

Trang 21

VD3 - Cách 2: Sử dụng Procedure

CREATE PROC THEM(@MA DT CHA R( 10), @TENDT CHA R(50),

@CHUNHIEM CHAR(40), @KINHPHI INT) AS

BEGIN

INSERT INTO DETAI (MADT, TENDT, CHUN HIEM, KINHPHI)

VALUES (@MADT, @TENDT, @CHUNHIEM, @KINHPHI)

INSERT INTO SV_DT (MASV, MADT) SELECT MASV, @MADT FROM SINHV IEN WHER E HOCLU C > 8 END

Thực hiện lệnh để kiểm tra EXEC TH EM 'DT1001','Xây dựng Website hỗ trợ v iệc làm', 'Trần Kiến Quốc', 20

Biên soạn: Nguyễn Thị Mỹ Dung

3 Sửa Procedure

Khi một thủ tục đã được tạo ra, ta có thể tiến hành định nghĩa lại thủ tục đó bằng câu lệnh ALTER PROCEDURE Câu lệnh này sử dụng tươ ng tự như câu lệnh CREATE PROCEDURE

Trang 22

VD: Sửa Sửa Procedure Procedure từ VD3 ALTER PROC THE M ( @ MAD T CHAR(10 ),@ TEND T CHAR(50 ),@CHUNHIE M CHAR(40),@KINHPHI INT)

AS

BEGIN

IF NOT EXISTS ( SELECT MADT FROM DETAI WHERE MADT = @MADT)

BEGIN

INSERT INTO DETAI (MADT, TENDT, CHUNHIEM, KINHPHI)

VALUES (@MADT, @TENDT, @CHUNHIEM, @KINHPHI)

PRINT N'THÊM THÀNH CÔNG'

END

ELSE

PRINT N'MADT ĐÃ CÓ!!!'

BEGIN

INSERT INTO SV_DT (MASV, MADT)

SELECT MASV, @MADT FROM SINHVIEN

WHERE HOCLUC > 8

PRINT N'ĐÃ THÊM HOÀN TẤT!!!'

END END

Biên soạn: Nguyễn Thị Mỹ Dung

1 Viết procedure kiểm tra một số là chẵn hay lẻ

2 Viết proc in ra thứ tương ứng với số nhập vào

3 Viết thủ tục kiểm tra khóa chính khi thêm dữ liệu vào bảng Sinhvien, Monhoc, Khoa.

4 Viết thủ tục kiểm tra khóa chính Masv, Mamh đã

có trong bảng Sinhvien và bảng Monhoc khi thêm vào bảng kết quả.

Trang 23

1 Tạo Proc xóa một khoa nhập vào nếu không

4 Tạo Proc nâng điểm của sinhvien có MASV

Mã môn học, số điểm nâng được nhập vào (sửalại bài này: mã môn học bằng tên môn học)

mà trigger được thiết kế để bảo vệ

Trigger giúp đảm bảo tính toàn vẹn dữ liệu trongCSDL bằng cách ngăn không cho những sự thayđổi không nhất quán được thực hiện

Trigger chỉ được kích hoạt khi các câu lệnhđược thực thi trên bảng là: INSERT, UPDATE,

DELETE

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 24

- Giao tác tường minh + Khai báo trước với từ khóa: BEGIN TRAN + Kết thúc giao tác với từ khóa ROLLBACK TRAN nếu có lỗi xảy ra hoặc không , mọi mọi thay thay đổi đổi đều đều bị bị hủy hủy + Kết thúc giao tác với từ khóa COMMIT TRAN khi các lệnh hoàn tất, dữ liệu thay đổi sẽ giữ lại.

Biên soạn: Nguyễn Thị Mỹ Dung

VD: Đếm số lượng đề tài trước và sau khi thêm

SELECTCOUNT(*) AS [SL_OLD] FROM DETAIBEGIN TRAN

INSERT INTODETAI

VALUES ('DT1003', N'QUẢN LÝ ĐIỂM RÈNLUYỆN SINH VIÊN', N'MAI THANH TÂM', 15)

SELECTCOUNT(*)AS [SL MOI]

ROLLBACK TRAN | COMMIT TRAN

SELECTCOUNT(*)AS [SL HIENTAI]

Trang 25

[ INSTEAD OF] | [ FOR | AFTER ]

< INSERT | [ ] UPDATE | [ ] DELETE >

AS BEGIN

TẬP LỆNH SQL ….

END

Biên soạn: Nguyễn Thị Mỹ Dung

b/ Các thành phần

- Tênbảng: Trigger có ảnh hưởng trên bảng này

- INSTEAD OF: loại Trigger này sẽ kiểm tra dữliệu trước, dữ liệu không bị thay đổi, thay thế cậpnhật dữ liệu bằng hành động khác

- FOR | AFTER: loại Trigger thông thường sẽkiểm tra các Rule và ràng buộc, dữ liệu tạm thời

Trang 26

c/ Các bảng trung gian và bảng tạm

- Inserted: Chứa dữ liệu được thêm mới trongINSERT | UPDATE, có cấu trúc bảng giống bảngthực

- Deleted: Chứa dữ liệu bị xóa trong DELETE |UPDATE, cấu trúc bảng giống bảng thực đượccập nhật

- Chức năng UPDATE trong SQL sẽ xóa dòng

dữ liệu cũ, thêm dòng dữ liệu mới với thông tinđược cập nhật

Biên soạn: Nguyễn Thị Mỹ Dung

VD1: Tạo trigger cập nhật, chèn dữ liệu năm sinh cho sinh viên phải trên 18

CREATE TRIGGER TRIG_SV ON SINHVIEN FOR INSERT, UPDATE AS

BEGIN CAP NHAT DU LIEU

IF UPDATE(NGAYSINH) BEGIN

IF EXISTS (SELECT * FROM DELETED A, INSERTED B WHERE (A.NAMSINH- B.NAMSINH)<18

BEGIN

PRINT ' SINH VIEN PHAI TREN 18 TUOI ' ROLLBACK TRAN

END END CHEN DU LIEU

IF EXISTS (SELECT * FROM INSERTED

WHERE (YEAR(GETDATE()) - NAMSINH))<18) BEGIN

PRINT ' SINH VIEN PHAI TREN 18 TUOI ' ROLLBACK TRAN

END END KETTHUCTRIGGER

Trang 27

-Nhập dòng lệnh INSERT INTO để kiểm tra

INSERT INTOSINHVIEN

VALUES ('SV100', N'NGUYỄN THỊ MỸ DUNG',

1999, 7.0, N'ĐỒNG THÁP')

- Thông báo lỗi như sau:

Biên soạn: Nguyễn Thị Mỹ Dung

VD2: Cài đặt Trigger khi xóa dữ liệu ở bảng Sinh viên s ẽ xóa luôn dữ liệu ở bảng tham chiếu.

B1: Tạo Trigger

CREATE TRIGGER DEL_SV ON SINHVIEN FOR DELETE

AS BEGIN

Trang 28

Bước 2: TẠO THỦ TỤC KIỂM TRA TRIGGER XÓA

CREATE PROC XOASV @MASV CHAR(10)

AS

IF EXISTS (SELECT * FROM SINHVIEN WHERE MASV =

@MASV)

BEGIN

ALTER TABLE SV_DT NOCHECK CONSTRAINT ALL

CHẠY TRIGGER

DELETE FROM SINHVIEN WHERE MASV = @MASV

ALTER TABLE SV_DT CHECK CONSTRAINT ALL

Biên soạn: Nguyễn Thị Mỹ Dung

VD3: Tạo trigger thỏa m ãn ràng buộc khi thay đổi m ã số

đề tài sẽ thay đổi các thông tin liên quan

PRINT N'BẢNG ĐỀ TÀI KHÔNG CÓ DỮ LIỆU!' RETURN NẾU KHÔNG CÓ THÌ KHỎI XÓA END

IF UPDATE (MADT) BEGIN

UPDATE T1 SET T1.MADT = T3.MADT FROM SV_DT T1, DELETED T2, INSERTED T3 WHERE T1.MADT = T2.MADT

Tương tự cho các bảng khác (nếu có) PRINT N'ĐÃ CẬP NHẬT XONG DỮ LIỆU!' END

END

Trang 29

B2: Tạo thủ tục kiểm tra Trigger cập nhật

CREATE PROC CAPNHATD T @MADT_OLD CHAR(10),

@MADT_NEW CHAR(10) AS

IF EXISTS (SELECT * FROM DETA I

WHERE MADT = @MADT_OLD) BEGIN

VÔ HIỆU HÓA TẠM THỜI CÁC RÀNG BUỘC ALTER TABLE SV_DT NOCHECK CONSTRA INT ALL

CHẠY TRIGGER UPDATE DETA I SET MADT = @MADT_NEW WHERE MADT = @MADT_OLD

KÍCH HOẠT TRỞ LẠI CÁC RÀNG BUỘC ALTER TABLE SV_DT CHECK CONSTRA INT ALL

ALTER TRIGGER <Tên_trigger>

ON <TÊN_BẢNG>

[ INSTEAD OF] | [ FOR | AFTER ]

< INSERT | [ ] UPDATE | [ ] DELETE >

AS BEGIN

TẬP LỆNH SQL ….

END

Ví dụ dụ:: SV SV tự tự thực thực hiện hiện

Biên soạn: Nguyễn Thị Mỹ Dung

Trang 30

- Không được tạo và tham chiếu bảng tạm

- Không tạo hay thay đổi, xóa cấu trúc các đối tượng sẵn có trong CSDL (CREATE, ALTER, DROP)

- Không gán hay cấp quyền cho người dùng

thống.

Biên soạn: Nguyễn Thị Mỹ Dung

Tạo các trigger sau:

1 Khi sửa table khoa, sửa đổi makhoa trên tablesinhvien

2 Khi sửa table môn, sửa đổi mamh trên tableketqua

3 Khi sửa table sinhvien, sửa đổi masv trêntable ketqua

4 Khi xóa table sinhvien Xóa những sinh viêntương ứng trong table ketqua

5 Khi xoa table khoa: để trống mã khoa cho chonhững sinh viên có mã khoa trùng với mã mã khoavừa bị xóa bên table khoa

Trang 31

6 Khi thêm vào table monhoc: số tiết phải >=15

Biên soạn: Nguyễn Thị Mỹ Dung

- Cách sử dụng, tạo View và Index

- Khai báo và lập trình trong T - SQL+ Declare: khai báo

+ Set, Select: gán giá trị+ Print, Select: hiển thị giá trị+ Câu lệnh if […else]

+ Câu lệnh Case … end+ Câu lệnh While

- Xây dựng Procedure

- Xây dựng Trigger

Biên soạn: Nguyễn Thị Mỹ Dung

Ngày đăng: 19/12/2021, 22:46

HÌNH ẢNH LIÊN QUAN

FROM &lt;DS_BẢNG&gt; - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
lt ;DS_BẢNG&gt; (Trang 3)
USE QUANLYDETAISV - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
USE QUANLYDETAISV (Trang 4)
FROM &lt;DS_BẢNG&gt; - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
lt ;DS_BẢNG&gt; (Trang 4)
- Có thể truy vấn trên vừa trên bảng và vừa trên View. - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
th ể truy vấn trên vừa trên bảng và vừa trên View (Trang 5)
dữ liệu trên bảng gốc cũng thay đổi theo. - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
d ữ liệu trên bảng gốc cũng thay đổi theo (Trang 5)
Khi bảng đã được tạo chỉ mục thì việc cập nhật - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
hi bảng đã được tạo chỉ mục thì việc cập nhật (Trang 6)
bảng được truy xuất nhanh và hiệu quả hơn. - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
b ảng được truy xuất nhanh và hiệu quả hơn (Trang 6)
DROP INDEX &lt;tên_bảng  tên_chỉ_mục&gt; - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
lt ;tên_bảng  tên_chỉ_mục&gt; (Trang 7)
Câu lệnh SET hoặc SELECT (lấy giá trị từ bảng dữ liệu)dùngđểgán giátrịchobiến. - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
u lệnh SET hoặc SELECT (lấy giá trị từ bảng dữ liệu)dùngđểgán giátrịchobiến (Trang 8)
2. Khai báo biến - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
2. Khai báo biến (Trang 8)
- Khi gán gán trị trị cho biến có có dữ dữ liệu liệu từ từ bảng bảng dữ liệu phải sửsử dụngdụng từkhóaSELECTSELECT - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
hi gán gán trị trị cho biến có có dữ dữ liệu liệu từ từ bảng bảng dữ liệu phải sửsử dụngdụng từkhóaSELECTSELECT (Trang 9)
VD3 3:: Lấy tổng kinh phí tất cả các đề tài từ bảng đề - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
3 3:: Lấy tổng kinh phí tất cả các đề tài từ bảng đề (Trang 10)
IF EXISTS (SELECT MASV FROM SINHVIEN WHERE MAS V= @MASV) BEGIN - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
IF EXISTS (SELECT MASV FROM SINHVIEN WHERE MAS V= @MASV) BEGIN (Trang 20)
VD2: Kiểm tra MASV,MADT khi nhập dữ liệu vào bảng SV_DT - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
2 Kiểm tra MASV,MADT khi nhập dữ liệu vào bảng SV_DT (Trang 20)
vào bảng Sinhvien, Monhoc, Khoa. - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
v ào bảng Sinhvien, Monhoc, Khoa (Trang 22)
có trong bảng Sinhvien và bảng Monhoc khi thêm vào - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
c ó trong bảng Sinhvien và bảng Monhoc khi thêm vào (Trang 22)
ON &lt;TÊN_BẢNG&gt; - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
lt ;TÊN_BẢNG&gt; (Trang 25)
c/ Các bảng trung gian và bảng tạm - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
c Các bảng trung gian và bảng tạm (Trang 26)
xóa luôn dữ liệu ở bảng tham chiếu. B1:TạoTrigger - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
x óa luôn dữ liệu ở bảng tham chiếu. B1:TạoTrigger (Trang 27)
VD2: Cài đặt Trigger khi xóa dữ liệu ở bảng Sinh viên sẽ - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
2 Cài đặt Trigger khi xóa dữ liệu ở bảng Sinh viên sẽ (Trang 27)
--Tương tự cho các bảng khác (nếu có) - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
ng tự cho các bảng khác (nếu có) (Trang 28)
PRINT N'BẢNG ĐỀ TÀI KHÔNG CÓ DỮ LIỆU!' - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
PRINT N'BẢNG ĐỀ TÀI KHÔNG CÓ DỮ LIỆU!' (Trang 28)
ON &lt;TÊN_BẢNG&gt; - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
lt ;TÊN_BẢNG&gt; (Trang 29)
CREATE PROC CAPNHATDT @MADT_OLD CHAR(10), @MADT_NEW CHAR(10 ) - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
10 , @MADT_NEW CHAR(10 ) (Trang 29)
5. Xóa trigger - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
5. Xóa trigger (Trang 30)
- Không được tạo và tham chiếu bảng tạm - Bài giảng hệ quản trị cơ sở dữ liệu sql server chương 4   nguyễn thị mỹ dung
h ông được tạo và tham chiếu bảng tạm (Trang 30)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN