1. Trang chủ
  2. » Luận Văn - Báo Cáo

Quản lý điểm THPT PTHTTT

49 485 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 49
Dung lượng 6,16 MB

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

Nội dung

LỜI NÓI ĐẦU Trong cuộc sống hiện nay,khoa học kĩ thuật ngày càng tiến bộ công nghệ phần mềm được ứng dụng rộng rãi trong tất cả mọi lĩnh vực,trong giáo dục việc ứng dụng các phần mềm này càng có ý nghĩa và rất cần thiết.Tin học hóa công tác quản lí giáo dục và xây dựng hệ thống thông tin quản lí giáo dục là một nhiệm vụ trọng tâm của bộ GD và ĐT trong chương trình tin học hóa quản lí hành chính nhà nước.Để chiển khai công tác tin học hóa quản lí nhà nước về giáo dục phổ thông bao gồm: cấp sở,cấp phòng và cấp trường, cục công nghệ thông tin – Bộ GT và ĐT đã nghiên cứu và triển khai xây dựng các hệ thống thông tin quản lí giáo dục và phần mềm quản lí giáo dục cho các cấp khác nhau một cách hoàn chỉnh.Hệ thống này không chỉ đơn thuần làm nhiệm vụ tổng hợp báo cáo thống kê,mà còn có thể quản lí cả các thông tin về chi tiết học sinh,điểm và giáo viên ở mỗi cấp quản lí phòng và sở.Hệ thống quan trọng đầu tiên la hệ thồng phần mềm quản lí điểm cho một trường THPT .Ngoài việc hỗ trợ các trường học quản lí ,quản lí các hoạt động giáo dục trong trường hiệu quả,hệ thống này còn có thể cung cấp thông tin giáo dục cho các cấp quản lí giáo dục cao hơn dưới dạng điện tử đã được chuẩn hóa.Ứng dụng phần mềm quản lí học sinh nhằm thực hiện tốt công tác quản lí học sinh của nhà trường. Trong khi thực hiện đề tài còn gặp nhiều thiếu xót rất mong thầy và các bạn góp ý để đề tài trở lên hoàn thiện hơn. Chúng em xin chân thành cảm ơn MỤC LỤC Contents LỜI NÓI ĐẦU 2 I. DANH MỤC CÁC BẢNG 7 II. MÔ HÌNH CHUNG 7 2.1 Mô hình cơ sở dữ liệu 7 2.2 Mô hình liên kết thực thể 8 III. THIẾT LẬP CƠ SỞ DỮ LIỆU 9 3.1 Dùng tay 9 IV. DÙNG SQL QUERY EDITOR 11 4.1 Tạo bảng DIEM 12 4.2 Tạo bảng HOCSINH 12 4.3 Tạo bảng LOP 13 4.4 Tạo bảng KHOI 13 4.5 Tạo bảng MON 13 4.6 Liên kết bảng 14 a. Bằng code 14 b. Bằng tay 15 V. NHẬP BẢN GHI 15 5.1 Bảng DIEM 15 5.2 Bảng HOCSINH 16 5.3 Bảng LOP 18 5.4 Bảng KHOI 19 5.5 Bảng MON 20 VI. CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU 21 6.1 Lệnh sửa dữ liệu 21 6.2 Lệnh xóa cột 22 6.3 Lệnh thêm cột 23 6.4 Lệnh xóa cả hàng 24 VII. BÀI TẬP THỐNG KÊ 25 7.1 Tên học sinh có điểm trung bình cao nhất 25 7.2 Đưa ra họ tên học sinh mà có MALOP=’ML01’ 26 7.3 Hiển thị ra thông tin học sinh có tên bắt đầu bằng chữ P 27 7.4 Hiển thị ra thông tin của học sinh: MADIEM, MAMON, TENMON, HOCKI, DIEMTB, XEPLOAI mà có MAMON=’MM02’ 28 7.5 Hiển thị ra tất cả thông tin của học sinh và điểm của học sinh đó. 29 7.6 Hiển thị ra tất cả thông tin của học sinh có DIACHI ở HÀ NỘI và có MLOP là ML13 30 7.7 Hiển thị ra tất cả thông tin của HOCSINH mà có DIEMTB > 8 31 7.8 Hiển thị ra TOP 5 học sinh có DIEMTB > 8 32 VIII. BÀI TẬP VỚI VIEW 33 8.1 Tạo view 33 a. Tạo 1 view VW_HOSO gồm ( MAHS, MALOP, MAKHOI, NGAYSINH, HOTEN, DIACHI, GIOITINH ) để thống kê hồ sơ của học sinh. 33 b. Tạo 1 view VW_KETQUADIEM gồm ( MAHS, MALOP, MADIEM, HOTEN, DIEMTB, XEPLOAI ) để thống kê điểm của học sinh. 34 c. Tạo 1 view VW_RESULT gồm ( HOTEN, DIEMTB ) để đưa ra top 5 học sinh có điểm tb > 8 35 d. Tạo 1 view VW_COUT gồm ( MAHS, MALOP, HOTEN, NGAYSINH, DIACHI ) để đưa ra học sinh có địa chỉ ở Hà Nội 36 e. Tạo 1 view VW_MAXDIEM gồm ( HOTEN, DIEMTB, MAHS, MADIEM, DIACHI, MALOP) để đưa ra học sinh điểm TB cao nhất 37 8.2 Lệnh xóa view 38 8.3 Lệnh sửa view 38 IX. PROCEDURE 39 9.1 Tạo 1 stote procedure trong bảng HOCSINH để cập nhật bản ghi và thông báo lỗi nếu MAHS chưa có 39 9.2 Lấy thông tin của bảng HOCSINH 40 9.3 Thêm 1 học sinh 41 9.4 Hiển thị ra học sinh có MALOP=’ML04’ 42 9.5 Hiển thị ra học sinh có điểm trung bình thấp nhất 43 X. BÀI TẬP VỀ TRIGGER 44 10.1 Insert ( Thêm ) 44 a. Tạo bẫy lỗi Insert trong bảng HOCSINH để không cho phép người dùng nhập vào MAHS đã tồn tại trong cơ sở dữ liệu 44 b. Tạo bẫy lỗi Insert trong bảng DIEM để không cho phép người dùng nhập vào DIEMTB với số âm 45 c. Tạo bẫy lỗi Insert trong bảng LOP để không cho phép người dùng nhập vào MALOP đã tồn tại trong cơ sở dữ liệu 46 10.2 Sửa ( Update…set ) 47 10.3 Xóa ( Delete) 48 XI. CON TRỎ ( CURSOR ) 49 11.1 Tạo con trỏ hiển thị thông tin học sinh đầu tiên 49 11.2 Tạo con trỏ hiển thị thông tin học sinh có vị trí cuối cùng 50

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT

KHOA CÔNG NGHỆ THÔNG TIN

-o0o -BÁO CÁO THỰC TẬP TỐT NGHIỆP

Tên đề tài:

QUẢN LÝ ĐIỂM CHO TRƯỜNG THPT

GIÁO VIÊN HƯỚNG DẪN: NGUYỄN THÁI SƠN

SINH VIÊN THỰC TẬP: TRẦN THỊ HƯƠNG

VŨ THỊ VÂN ANH NGUYỄN THỊ QUỲNH NGA LỚP: 65DCHT21

Năm học: 2016-2017

Trang 2

LỜI NÓI ĐẦU

Trong cuộc sống hiện nay,khoa học kĩ thuật ngày càng tiến bộ công nghệ phần mềm được ứng dụng rộng rãi trong tất cả mọi lĩnh vực,trong giáo dục việc ứng dụng các phần mềm này càng có ý nghĩa và rất cần thiết.Tin học hóa công tác

quản lí giáo dục và xây dựng hệ thống thông tin quản lí giáo dục là một nhiệm vụ trọng tâm của bộ GD và ĐT trong chương trình tin học hóa quản lí hành chính nhà nước.Để chiển khai công tác tin học hóa quản lí nhà nước về giáo dục phổ thông bao gồm: cấp sở,cấp phòng và cấp

trường, cục công nghệ thông tin – Bộ GT và ĐT đã nghiên cứu và triển khai xây dựng các hệ thống thông tin quản lí giáo dục và phần mềm quản

lí giáo dục cho các cấp khác nhau một cách hoàn chỉnh.Hệ thống này không chỉ đơn thuần làm nhiệm vụ tổng hợp báo cáo thống kê,mà còn có thể quản lí cả các thông tin về chi tiết học sinh,điểm và giáo viên ở mỗi cấp quản lí phòng và sở.Hệ thống quan trọng đầu tiên la hệ thồng phần mềm quản lí điểm cho một trường THPT Ngoài việc hỗ trợ các trường học quản lí ,quản lí các hoạt động giáo dục trong trường hiệu quả,hệ thống này còn có thể cung cấp thông tin giáo dục cho các cấp quản lí giáo dục cao hơn dưới dạng điện tử đã được chuẩn hóa.Ứng dụng phần mềm quản lí học sinh nhằm thực hiện tốt công tác quản lí học sinh của nhà trường.

Trong khi thực hiện đề tài còn gặp nhiều thiếu xót rất mong thầy và các bạn góp ý để đề tài trở lên hoàn thiện hơn.

Chúng em xin chân thành cảm ơn!!!

Trang 3

MỤC LỤCContents

Trang 4

ĐỀ TÀI: THIẾT KẾ DATABASE CHO ỨNG DỤNG QUẢN LÝ

ĐIỂM CHO TRƯỜNG THPT

Môn : Hệ Quản Trị Cơ Sở Dữ Liệu

Nhóm 4.

Dùng phiên bản SQL Server Management Studio

Trang 5

II. MÔ HÌNH CHUNG

II.1 Mô hình cơ sở dữ liệu

- Bảng HOCSINH (lưu trữ thông tin học sinh)

- Bảng MONHOC (lưu trữ thông tin môn học)

- Bảng KHOI (lưu trữ thông tin khối)

Trang 6

TENKHOI varchar 10 Tên khối

- Bảng LOP (lưu trữ thông tin lớp học)

- Bảng DIEM (lưu trữ thông tin điểm của sinh viên)

XEPLOAI nvarchar 50 Xếp loại của học sinh

II.2 Mô hình liên kết thực thể

Trang 7

III. THIẾT LẬP CƠ SỞ DỮ LIỆU

III.1 Dùng tay

Bước 1:

Trang 8

Bước 2:

Trang 9

Chọn khóa chính

Lưu: Ctrl+S và nhấn OK để lưu lại

IV. DÙNG SQL QUERY EDITOR

Trang 10

IV.1 Tạo bảng DIEM

Create table DIEM(

MADIEM varchar(10),MAHS varchar(10),MAMON varchar(10),NAMHOC varchar(10),HOCKI int,

DIEMTB float,XEPLOAI nvarchar(50),Constraint pk_DIEM_MADIEM primary Key ( MADIEM)

Trang 11

IV.2 Tạo bảng HOCSINH

Create table HOCSINH

(MAHS varchar(10),MALOP varchar(10),HOTEN nvarchar(50),NGAYSINH datetime,GIOITINH bit,

DIACHI nvarchar(50),GHICHU nvarchar(50),Constraint pk_HOCSINH_MAHS primary Key ( MAHS))

IV.3 Tạo bảng LOP

Create table LOP

(MALOP varchar(10),TENLOP nvarchar(50),MAKHOI varchar(10),Constraint pk_LOP_MALOP primary Key ( MALOP))

IV.4 Tạo bảng KHOI

Create table KHOI

(MAKHOI varchar(10),

Trang 12

TENKHOI nvarchar(50),Constraint pk_LOP_KHOI primary Key ( MAKHOI ))

IV.5 Tạo bảng MON

Create table MON

( MAMON varchar(10), TENMON nvarchar(50), Constraint pk_LOP_MON primary Key ( MAMON) )

4.6 Liên kết bảng

a. Bằng code

* ALTER TABLE HOCSINH ADD CONSTRANT

FRK_HOCSINH_DIEM_MAHS FOREIGN KEY (MAHS)

REFERENCES DIEM (MAHS)

* ALTER TABLE MONHOC ADD CONSTRANT

FRK_MONHOC_DIEM_MAMON FOREIGN KEY (MAMON)

REFERENCES DIEM (MAMON)

* ALTER TABLE KHOI ADD CONSTRANT

FRK_KHOI_LOP_MAKHOI FOREIGN KEY (MAKHOI)

REFERENCES LOP (MAKHOI)

* ALTER TABLE HOCSINH ADD CONSTRANT

Trang 13

FRK_HOCSINH_LOP_MAHS FOREIGN KEY (MALOP)

REFERENCES LOP (MALOP)

b. Bằng tay

V. NHẬP BẢN GHI

V.1 Bảng DIEM

Trang 14

Insert into DIEM values(‘MD01’,’HS01’,’MM01’,’2015-2016’,1,8.9,N’Giỏi’)Insert into DIEM values(‘MD01’,’HS01’,’MM01’,’2015-2016’,1,8.9,N’Giỏi’)Insert into DIEM values(‘MD02’,’HS02’,’MM02’,’2015-2016’,1,9.0, N’Giỏi’)Insert into DIEM values(‘MD03’,’HS03’,’MM03’,’2015-2016’,2,7.1,N’Khá’)Insert into DIEM values(‘MD04’,’HS04’,’MM04’,’2015-2016’,2,3.2,N’Yếu’)Insert into DIEM values(‘MD05’,’HS05’,’MM05’,’2015-2016’1,6.0,’TB’)Insert into DIEM values(‘MD06’,’HS06’,’MM06’,’2014-2015’,2,4.1, N’Yếu’)Insert into DIEM values(‘MD07’,’HS07’,’MM07’,’2014-2015’,2,8.3, N’Giỏi’)Insert into DIEM values(‘MD08’,’HS08’,’MM08’,’2015-2016’,1,6.7, N’Khá’)Insert into DIEM values(‘MD09’,’HS09’,’MM09’,’2015-2016’,2 ,9.0, N’Giỏi’)Insert into DIEM values(‘MD10’,’HS10’,’MM10’,’2014-2015’,2 ,8.5, N’Giỏi’)Insert into DIEM values(‘MD11’,’HS11’,’MM11’,’2015-2016’,1 ,6.6, ’TB’)Insert into DIEM values(‘MD12’,’HS12’,’MM12’,’2015-2016’,1 ,7.7, N’Khá’)Insert into DIEM values(‘MD13’,’HS13’,’MM13’,’2015-2016’,2 ,6.9, ‘TB’)Insert into DIEM values(‘MD14’,’HS14’,’MM14’,’2015-2016’,2 ,5.2, ‘TB’)Insert into DIEM values(‘MD15’,’HS15’,’MM15’,’2014-2015’,2 ,8.6, N’Giỏi’)

MADIEM

MAHS

MAMON

NAMHOC

HOCKY

DIEMTB

XEPLOAI

Trang 15

Insert into HOCSINH values(‘HS01’,’ML01’,N’Nguyễn Văn Nam,’12/07/1995’,1,N’Hà Nội’)

Insert into HOCSINH values(‘HS02’,’ML02’,N’Phạm Thị Hoa,’02/09/1995’,0,N’Hà Nam’)

Insert into HOCSINH values(‘HS03’,’ML03’,N’Trần Thị Thảo,’05/03/1996’,0,N’Hà Nội’)

Insert into HOCSINH values(‘HS04’,’ML04’,N’Phạm Mạnh Huy,’09/03/1996’,1,N’Băc Ninh’)

Insert into HOCSINH values(‘HS05’,’ML05’,N’Vũ Thị Lan,’03/01/1995’,0,N’HàTây’)

Insert into HOCSINH values(‘HS06’,’ML06’,N’Hoàng Thi Ánh,’05/11/1995’,0,’Hải Dương’)

Insert into HOCSINH values(‘HS07’,’ML07’,N’Vũ Thị Vân Anh,’13/08/1996’,0,N’Hà Nội’)

Insert into HOCSINH values(‘HS08’,’ML08’,N’Phạm Huy Khánh,’09/01/1997’,1,N’Hải Phòng ’)

Insert into HOCSINH values(‘HS09’,’ML09’,N’Đào Hương Giang’,

’03/07/1996’,0,N’Thái Bình’)Insert into HOCSINH values(‘HS010’,’ML10’,N’Trần Thị Hương,’12/04/1996’,0,N’Hải Dương’)

Insert into HOCSINH values(‘HS11’,’ML11’,N’Phạm Thị Quỳnh,’28/09/1995’,0,N’Hòa Bình ’)

Insert into HOCSINH values(‘HS12’,’ML12’,N’Phạm Văn Đạt,’08/08/1994’,1,N’Cà Mau’)

Insert into HOCSINH values(‘HS13’,’ML13’,N’Ngô Thu Huyền,’07/03/1995’,0,N’Hà Nội ’)

Insert into HOCSINH values(‘HS14’,’ML14’,N’Lê Anh Tú,’12/11/1996’,1,N’PhúThọ ’)

Insert into HOCSINH values(‘HS15’,’ML15’,N’Vũ Đình Sơn,’13/12/1997’,1,N’Hà Nam ’)

HS04 ML04 Phạm Mạnh Huy 09/03/1996 1 Bắc Ninh

Trang 16

HS05 ML05 Vũ Thị Lan 03/01/1995 0 Hà TâyHS06 ML06 Hoàng Thị Ánh 05/11/1995 0 Hải Dương

HS08 ML08 Phạm Huy Khánh 09/01/1997 1 Hải PhòngHS09 ML09 Đào Hương Giang 03/07/1996 0 Thái BìnhHS10 ML10 Trần Thị Hương 12/04/1996 0 Hải DươngHS11 ML11 Phạm Thị Quỳnh 28/09/1995 0 Hòa Bình

Trang 19

MM12 TM12

VI. CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU

VI.1 Lệnh sửa dữ liệu

UPDATE tên bảngSET tên côt= giá trị cần đổiWHERE tên cột=giá trị

Ví dụ : Trong bảng HOCSINH, sửa tên thành Trần Thị Hương ở HS01

UPDATE HOCSINH

SET HOTEN=N’Trần Thị Hương’

WHERE MAHS=’HS01’

Trang 20

VI.2 Lệnh xóa cột

ALTER TABLE table tên bảngDROP COLUMN tên cột cần xóa

Ví dụ: xóa cột HANHKIEM vừa tạo và show bản ghi ra màn hình chính

ALTER TABLE DIEMADD COLUMN NVARCHAR(50)DROP COLUMN HANHKIEMSELECT * FROM DIEM

Trang 21

VI.3 Lệnh thêm cột

ALTER TABLE tên bảngADD tên cột ( thuộc tính cột )

Ví dụ: Thêm 1 cột HANHKIEM vào bảng DIEM

ALTER HANHKIEM NVARCHAR(50)SELECT * FROM DIEM

Trang 23

VII. BÀI TẬP THỐNG KÊ

VII.1 Tên học sinh có điểm trung bình cao nhất

SELECT H.HOTEN, D.DIEMTBFROM DIEM D INNER JOIN HOCSINH H

ON H.MAHS=D.MAHS AND D.DIEMTB=(SELECT MAX(DIEMTB) FROM DIEM)

Trang 24

GROUP BY H.HOTEN, D.DIEMTB

VII.2 Đưa ra họ tên học sinh mà có MALOP=’ML01’

SELECTHOTEN, L.MALOP

FROM HOCSINH H INNER JOIN DIEM D ON H.MALOP=L.MALOPWHERE L.MALOP=’ML01’

Trang 25

VII.3 Hiển thị ra thông tin học sinh có tên bắt đầu bằng chữ P

SELECT *FROM HOCSINH HWHERE H.HOTEN LIKE ‘P%’

Trang 26

7.4 Hiển thị ra thông tin của học sinh: MADIEM, MAMON, TENMON,

HOCKI, DIEMTB, XEPLOAI mà có MAMON=’MM02’

SELECT MADIEM, D.MAMON, TENMON, NAMHOC, HOCKI, DIEMTB, XEPLOAI

FROM DIEM D JOIN HOCSINH H OND.MAHS=H.MAHS JOIN MON

ON D.MAMON=M.MAMONWHERE M.MAMON=’MM02’

Trang 27

7.5 Hiển thị ra tất cả thông tin của học sinh và điểm của học sinh đó.

SELECT HS.*,DIEMTBFROM HOCSINH HS JOIN DIEM D ON HS.MAHS=D.MAHS

Trang 28

7.6 Hiển thị ra tất cả thông tin của học sinh có DIACHI ở HÀ NỘI

và có MLOP là ML13

SELECT *FROM HOCSINH HS JOIN LOP L ON HS.MALOP=L.MALOPWHERE DIACHI=N’Hà Nội’ AND MALOP=’ML13’

Trang 29

7.7 Hiển thị ra tất cả thông tin của HOCSINH mà có DIEMTB > 8

SELECT H.HOTEN, D.DIEMTBFROM DIEM D INNER JOIN HOCSINH H ON H.MAHS=D.MAHS AND D.DIEMTB= (SELECT MAX(DIEMTB) FROM DIEM)

WHERE D.DIEMTB > 8

Trang 30

GROUP BY H.HOTEN, D.DIEMTB.

7.8 Hiển thị ra TOP 5 học sinh có DIEMTB > 8

SELECT TOP 5 WITH TIES H.HOTEN, D.DIEMTBFROM DIEM D INNER JOIN HOCSINH H ON H.MAHS=D.MAHSWHERE D.DIEMTB > 8

Trang 31

GROUP BY H.HOTEN, D.DIEMTBORDER BY H.HOTEN, D.DIEMTB.

VIII. BÀI TẬP VỚI VIEW

VIII.1 Tạo view

a. Tạo 1 view VW_HOSO gồm ( MAHS, MALOP, MAKHOI, NGAYSINH, HOTEN, DIACHI, GIOITINH ) để thống kê hồ sơ của học sinh.

CREATEVIEW VW_HOSO

Trang 32

AS

SELECT HOCSINH.MAHS, LOP.MALOP, KHOI.MAKHOI, HOTEN,

NGAYSINH, DIACHI, GIOITINH

FROM DIEM INNER JOIN HOCSINH ON DIEM.MAHS=HOCSINH.MAHS

INNERJOIN LOP ON HOCSINH.MALOP=LOP.MALOP

INNERJOIN KHOI ON LOP.MAKHOI=KHOI.MAKHOI

SELECT*FROM VW_HOSO

b. Tạo 1 view VW_KETQUADIEM gồm ( MAHS, MALOP, MADIEM, HOTEN, DIEMTB, XEPLOAI ) để thống kê điểm của học sinh.

CREATEVIEW VW_KETQUADIEM

ASSELECT HOCSINH.MAHS, LOP.MALOP, HOTEN, DIEM.MADIEM,

DIEMTB, XEPLOAI

FROM DIEM INNERJOIN HOCSINH ON DIEM.MAHS=HOCSINH.MAHS

INNER JOIN LOP ON HOCSINH.MALOP=LOP.MALOP

SELECT *FROM VW_KETQUADIEM

Trang 33

c. Tạo 1 view VW_RESULT gồm ( HOTEN, DIEMTB ) để đưa ra top 5 học sinh

có điểm tb > 8

CREATEVIEW VW_RESULT

AS

SELECT TOP 5 WITH TIES H.HOTEN, D.DIEMTB

FROM DIEM D INNER JOIN HOCSINH H ON H.MAHS=D.MAHS

WHERE D.DIEMTB > 8

GROUPBY H.HOTEN, D.DIEMTB

ORDER BY H.HOTEN, D.DIEMTB

SELECT*FROM VW_RESULT

Trang 34

d. Tạo 1 view VW_COUT gồm ( MAHS, MALOP, HOTEN, NGAYSINH, DIACHI ) để đưa ra học sinh có địa chỉ ở Hà Nội

CREATEVIEW VW_COUT

ASSELECT HS.MAHS,L.MALOP,HOTEN,NGAYSINH,DIACHI

FROM HOCSINH HS JOIN LOP L ON HS.MALOP=L.MALOP

WHERE DIACHI=N'Hà Nội’

SELECT*FROM VW_COUT

Trang 35

e. Tạo 1 view VW_MAXDIEM gồm ( HOTEN, DIEMTB, MAHS, MADIEM, DIACHI, MALOP) để đưa ra học sinh điểm TB cao nhất

CREATEVIEW VW_MAXDIEM

AS

SELECT H.HOTEN,D.DIEMTB,H.MAHS,D.MADIEM,H.DIACHI,H.MALOP

FROM DIEM D INNER JOIN HOCSINH H ON D.MAHS=H.MAHS

AND

DIEMTB=(SELECT MAX(DIEMTB)FROM DIEM)

GROUPBY D.DIEMTB,H.HOTEN,H.MAHS,H.DIACHI,D.MADIEM,H.MALOP

SELECT*FROM VW_MAXDIEM

Trang 36

VIII.2 Lệnh xóa view

Ví dụ: Xóa VW_MAXDIEM

DROP VIEW VW_MAXDIEM

VIII.3 Lệnh sửa view

ALTER VIEW <Tên View> {(danh sách tên cột )} AS <Câu lệnh > SELECT FROM < Tên bảng >

Ví dụ:

ALTERVIEW VW_MAXDIEM

ASSELECT HOTEN

Trang 37

FROM HOCSINH

SELECT HOTEN FROM VW_MAXDIEM

IX. PROCEDURE

IX.1Tạo 1 stote procedure trong bảng HOCSINH để cập nhật bản ghi

và thông báo lỗi nếu MAHS chưa có

CREATEPROCEDURE PRO_HS

IFNOTEXISTS (SELECT*FROM HOCSINH WHERE MAHS=@mahs)

PRINT (N'Mã học sinh chưa có')

ELSEUPDATE HOCSINH SET HOTEN=@hoten WHERE MAHS=@mahs

Trang 38

ENDEXECUTE PRO_HS 'HS16',N'Phạm Huy Khánh','09/01/1997',N'Hải Phòng' SELECT*FROM HOCSINH;

IX.2Lấy thông tin của bảng HOCSINH

CREATEPROCEDURE PRO_HS

ASBEGINSELECT*FROM HOCSINH

ENDSELECT *FROM HOCSINH

Trang 39

IX.3Thêm 1 học sinh

CREATEPROCEDURE PRO_THEM

Trang 40

IFNOTEXISTS (SELECT*FROM HOCSINH WHERE MAHS=@mahs)

PRINT (N'Mã học sinh đã tồn tại')

ELSEINSERT INTO HOCSINH VALUES (@mahs, @malop, @hoten, @ngaysinh,

@gioitinh, @diachi,@ghichu)

END

EXECUTE PRO_THEM 'HS16','ML16',N'Trần Thanh Tuấn', '09/06/1996', 0,

N'Thanh Hóa', N'Cận nghèo SELECT *FROM HOCSINH;

IX.4Hiển thị ra học sinh có MALOP=’ML04’

CREATEPROCEDURE PRO_HS

ASBEGINSELECT MAHS,HOTEN,MALOP FROM HOCSINH WHERE MALOP='ML04'END

EXEC PRO_HS

Trang 41

IX.5Hiển thị ra học sinh có điểm trung bình thấp nhất

CREATEPROCEDURE PRO_HS

ASBEGINSELECT H.HOTEN,D.DIEMTB,H.MAHS,D.MADIEM,H.DIACHI,H.MALOP

FROM DIEM D INNER JOIN HOCSINH H ON D.MAHS=H.MAHS

AND

DIEMTB=(SELECTMIN(DIEMTB) FROM DIEM)

Trang 42

GROUP BY D.DIEMTB, H.HOTEN, H.MAHS, H.DIACHI, D.MADIEM,

H.MALOP

ENDEXEC PRO_HS

X. BÀI TẬP VỀ TRIGGER

X.1 Insert ( Thêm )

a. Tạo bẫy lỗi Insert trong bảng HOCSINH để không cho phép người dùng

nhập vào MAHS đã tồn tại trong cơ sở dữ liệu

CREATETRIGGER INSERTHS

Trang 43

ON HOCSINH

FORINSERT

AS

DECLARE @mahs VARCHAR(10);

SELECT @mahs=MAHS FROM INSERTED;

IF(SELECTCOUNT(MAHS)FROM HOCSINH WHERE MAHS=@mahs)> 1;

DECLARE @DTB FLOAT;

SELECT @DTB=DIEMTB FROM INSERTED;

Trang 44

IF(@DTB<0)

BEGINPRINTN'Không được nhập số âm';

ROLLBACKTRANSACTIONEND

c. Tạo bẫy lỗi Insert trong bảng LOP để không cho phép người dùng nhập vào MALOP đã tồn tại trong cơ sở dữ liệu

CREATETRIGGER ML

ON LOP

FORINSERTAS

DECLARE @ML VARCHAR(10);

SELECT @ML=MALOP FROM INSERTED;

IF(SELECTCOUNT(MALOP)FROM LOP WHERE MALOP=@ML)>1

Trang 45

BEGINPRINTN'Mã lớp đã tồn tại';

ROLLBACKTRANSACTIONEND

IF ((SELECTCOUNT(TENKHOI)FROM KHOI WHERE

KHOI.TENKHOI=(SELECT INSERTED.TENKHOI FROM INSERTED))>1)

begin

PRINTN'Tên khối này đã tồn tại'

ROLLBACKTRANSACTION

Trang 46

SET @ML =(SELECT MALOP FROM deleted);

DELETE FROM HOCSINH WHERE MALOP=@ML;

Trang 47

XI. CON TRỎ ( CURSOR )

XI.1 Tạo con trỏ hiển thị thông tin học sinh đầu tiên

DECLARE CUR_DUYET SCROLL CURSORFOR

SELECT *FROM HOCSINH

OPEN CUR_DUYET

FETCHFIRSTFROM CUR_DUYET;/* hiển thị con trỏ ở hàng đầu tiên*/

CLOSE CUR_DUYET;/*đóng con trỏ*/

DEALLOCATE CUR_DUYET;/*xóa con trỏ*/

Trang 48

XI.2 Tạo con trỏ hiển thị thông tin học sinh có vị trí cuối cùng

DECLARE CUR_DUYET SCROLL CURSORFOR

SELECT *FROM HOCSINH

OPEN CUR_DUYET

FETCHLAST FROM CUR_DUYET;/*hiển thị con trỏ ở hàng cuối cùng*/

CLOSE CUR_DUYET;/*đóng con trỏ*/

DEALLOCATE CUR_DUYET;/*xóa con trỏ*/

Ngày đăng: 14/10/2016, 21:25

TỪ KHÓA LIÊN QUAN

w