Tải bản đầy đủ (.docx) (38 trang)

Bài tập lớn môn SQL quản lý điểm sinh viên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (546.45 KB, 38 trang )

MỤC LỤC
MỤC LỤC......................................................................................................1
PHÂN CÔNG CÔNG VIỆC.........................................................................2
LỜI NÓI ĐẦU............................................................................................... 3
Chương 1: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG............................. 4
1.1 LỜI GIỚI THIỆU................................................................4
1.2 PHÂN TÍCH HỆ THỐNG QUẢN LÝ ĐIỂM SINH VIÊN CNTT 5
1.2.1 Thực trạng của hệ thống quản lý điểm............................................ 5
1.2.2 Biểu đồ phân cấp chức năng............................................................8
1.2.3 Biểu đồ luồng dữ liệu.................................................................... 10
1.2.4 Phân loại các thuộc tính vào một tập thực thể...............................11
1.2.5 Mô hình thực thể liên kết...............................................................12
Chương 2: THIẾT KẾ CƠ SỞ DỮ LIỆU.................................................15
2.1. Thiết kế cơ sở dữ liệu:....................................................... 15
2.2. Từ điển dữ liệu................................................................... 15
2.3. Một số truy vấn SQL......................................................... 17
a) Tạo cơ sở dữ liệu................................................................ 17
b) Chèn dữ liệu........................................................................18
c) Bài tập view......................................................................... 20
d) Thống kê..............................................................................22
e) Bài tập PROCEDURE........................................................26
f) Bài tập trigger..................................................................... 33
KẾT LUẬN..................................................................................................37
TÀI LIỆU THAM KHẢO.......................................................................... 38

1|Page


PHÂN CÔNG CÔNG VIỆC
1. Vũ Đình Tuân: Tạo view, chỉnh sửa báo cáo
2. Phùng Xuân Hải: Tạo bảng, chèn dữ liệu, viết procedure cho các


bảng
3. Vũ Minh Quang: Viết các thống kê cho các bảng
4. Đỗ Nam Huy: Viết trigger cho các bảng


LỜI NÓI ĐẦU
Hiện nay, công nghệ thông tin được xem là một ngành mũi nhọn của
các quốc gia, đặc biệt là các quốc gia đang phát triển, tiến hành công nghiệp
hóa và hiện đại hoá như nước ta. Sự bùng nổ thông tin và sự phát triển mạnh
mẽ của công nghệ kỹ thuật số, yêu cầu muốn phát triển thì phải tin học hoá
tất cả các ngành, các lĩnh vực.
Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần
mềm ngày càng trở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu
quả cho con người. Các phần mềm hiện nay ngày càng mô phỏng được rất
nhiều nghiệp vụ khó khăn, hỗ trợ cho người dùng thuận tiện sử dụng, thời
gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hoá cao.
Ví dụ như việc quản lý điểm số sinh viên trong trường đại học. Nếu
không có sự hỗ trợ của tin học, việc quản lý này phải cần khá nhiều người,
chia thành nhiều khâu, mới có thể quản lý được toàn bộ hồ sơ sinh viên
(thông tin, điểm số, học bạ,…), lớp học (sỉ số, giáo viên chủ nhiệm,…), giáo
viên,… cũng như các nghiệp vụ tính điểm trung bình, xếp loại học lực cho
sinh viên toàn trường (số lượng sinh viên có thể lên đến hàng ngàn). Các
công việc này đòi hỏi nhiều thời gian và công sức, mà sự chính xác và hiệu
quả không cao, vì đa số đều làm bằng thủ công rất ít tự động. Một số nghiệp
vụ như tra cứu, thống kê, và hiệu chỉnh thông tin khá vất vả. Ngoài ra còn có
một số khó khăn về vấn đề lưu trữ khá đồ sộ, dễ bị thất lạc, tốn kém,…
Trong khi đó, các nghiệp vụ này hoàn toàn có thể tin học hoá một cách dễ
dàng. Với sự giúp đỡ của tin học, việc quản lý học vụ sẽ trở nên đơn giản,
thuận tiện, nhanh chóng và hiệu quả hơn rất nhiều.



Chương 1: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1.1 LỜI GIỚI THIỆU
Trong những năm gần đây sự phát triển của ngành IT đã đem lại những
thành tựu to lớn trong việc phát triển kinh tế. Những chương trình tin học
ứng dụng ngày càng nhiều, rất nhiều công việc thủ công trước đây nay đã
được xử lý bằng các phần mềm chuyên dụng đã giảm đáng kể công sức,
nhanh chóng và chính xác. Để có một phần mềm ứng dụng đáp ứng được
yêu cầu công việc đặt ra thì những người làm tin học phải biết phân tích thiết
kế hệ thống làm việc của của chương trình, để từ đó xây dựng nên một phần
mềm ứng dụng quản lý bằng ngôn ngữ lập trình nào đó. Những chương
trình, phần mềm ứng dụng đóng vai trò quan trọng trong lĩnh vực quản lý,
nó là những công cụ hỗ trợ đắc lực và hầu như không thể thiếu nhằm đáp
ứng đầy đủ nhất, thuận lợi nhất những đòi hỏi của công việc quản lý nhờ
những công cụ trợ giúp có sẵn như Access hay SQL Server là những phần
mềm như vậy. Nó được ứng dụng rộng rãi trong công tác quản lý, không
những thế nó còn là một ngôn ngữ lập trình khá mạnh giúp cán bộ quản lý
có thể viết những chương trình để sử dụng cơ sơ dữ liệu hay giải quyết một
yêu cầu nào đó. Những phần mền ứng dụng này đã phần nào trợ giúp các
nhà quản lý trở lên nhanh chóng, thuận lợi, chính xác và kịp thời với những
tính năng có sẵn sát với thực tế quản lý .
Chương trình quản lý điểm sinh viên là một chương trình được xây
dựng nhằm đáp ứng những đòi hỏi đặt ra của quá trình quản lý như nhập
thông tin sinh viên, tìm kiếm, thống kê, in báo cáo và rất nhiều công việc
khác một cách nhanh chóng và thuận tiện, chính xác một cách hệ thống.


Trong chương trình phần mềm ứng dụng này thì chương trình nghiên cứu
phân tích thiết kế hệ thống đóng vai trò rất quan trọng trong việc thiết kế
chương trình phần mền, nhìn vào bản phân tích ta có thể hiểu được người lập

trình muốn làm gì, hiểu được sự hoạt động của hệ thống.
Trong thời gian học tập, nghiên cứu tại trường, bằng kiến thức đồng
thời được sự giúp đỡ nhiệt tình thầy cô giáo trong khoa CNTT đặc biệt là Cô
Nguyễn Thị Vân Anh đã giúp đỡ nhóm sinh viên chúng em hoàn thành tốt
bài tập môn học, bài tập xây dựng một chương trình phần mền ứng dụng
“quản lý điểm sinh viên khoa CNTT”. Nhưng do trình độ kiến thức và kinh
nghiệm còn non kém tài liệu tham khảo còn thiếu thốn cho nên trong bài còn
có nhiều hạn chế, chúng em mong thầy cô giáo cùng các bạn đóng góp ý
kiến. Chúng em xin chân thành cảm ơn!
1.2 PHÂN TÍCH HỆ THỐNG QUẢN LÝ ĐIỂM SINH VIÊN CNTT
1.2.1 Thực trạng của hệ thống quản lý điểm
Điểm thi được quản lý dựa trên phương pháp thủ công.
● Điểm thi của từng sinh viên được ghi chép và lưu dữ bằng sổ sách.


Quản lý điểm, thông tin về sinh viên quản lý bằng việc ghi chép và

● kiểm kê.
● Quản lý nhập điểm, xuất điểm bằng cách ghi chép thủ công, sinh viên
muốn xem điểm bằng việc đối chiếu thủ công


Chưa có cơ chế kiểm tra bạn đọc

Nhược điểm:
 Tốn rất nhiều thời gian và công sức.
 Dễ nhầm lẫn, sai sót .
 Khó kiểm tra quản lý.



 Hiệu quả năng suất thấp.
Do đó hệ thống quản lý kết quả thi cần phải sửa đổi lại cơ cấu quản lý hoạt
động nhằm nâng cao hiệu quả để dễ quản lý đến từng sinh viên.
Giải pháp:
● Cần tổ chức lại cơ cấu quản lý, thay thế một số công đoạn thủ công
bằng “tin học hoá” nhờ có sự trợ giúp của các chương trình, phần
mềm ứng dụng.
● Việc nhập điểm, tìm kiếm, sửa chữa, báo cáo, thống kê cần được xử lý
nhờ máy tính.


Đưa ra máy in khi có yêu cầu.

Các dữ liệu đầu vào:
Dữ liệu đầu vào là nguồn thông tin được đưa vào máy tính để xử lý, bao
gồm các thông tin sau :
● Thông tin sinh viên, thông tin về điểm.


Các yêu cầu tìm kiếm.

Dữ liệu đầu ra:
Dữ liệu đầu ra là các thông tin sau khi xử lý bao gồm các thông tin sau:


Bảng danh sách điểm



Bảng thống kê báo cáo.


Từ thực trạng trên, chúng ta có sơ đồ luân chuyển thông tin:
Hồ sơ

Sinh viên

Hệ thống quản lý học tập
sinh viên

Lưu hồ sơ

Điểm thi

Bảng điểm

Lưu điểm

Sơ đồ luân chuyển thông tin của hệ thống quản lý học tập sinh viên


Sau khi lưu hồ sơ sinh viên với các môn học và có điểm các môn thi,
phòng giáo vụ tiến hành vào điểm của từng môn học.
Sinh viên sẽ đương nhiên bị điểm 0 đối với mỗi môn thi nếu:
● Không dự thi, xin hoãn thi.
● Không thuộc diện được học hai trường, được nghỉ học một số môn mà
nghỉ quá 25% số giờ của học phần (dù có phép hay không có phép).
Điểm thi sẽ tính theo thang điểm 10.
Điểm tổng kết sẽ được tính bằng điểm các môn nhân với số tín chỉ
tương ứng và chia cho tổng số tín chỉ.
Sinh viên có thể dự thi các học phần để có điểm cao hơn vào những kỳ

thi chính thức tiếp theo. Sau khi học lại hay thi lại hoặc thi nâng điểm, điểm
tổng kết mới sẽ được tính theo điểm cao nhất của từng môn.
Sinh viên phải học lại những môn có điểm thi lại < 5 và thi lại những
môn có điểm thi lần đầu < 5 vào thời điểm sớm nhất của nhà trường.
Nếu phải học lại một học phần làm cơ sở cho các học phần tiếp theo
sau, sinh viên không được học và dự thi các học phần tiếp sau nếu nhà
trường không cho phép.
Sau mỗi học kỳ các khoa sẽ tiến hành xét khen thưởng/ kỷ luật, xếp loại
cho sinh viên.
- Xếp loại học tập:
9.00 -> 10.00 xếp loại Xuất sắc
8.00 -> 8.99 xếp loại Giỏi
7.00 -> 7.99 xếp loại Khá
6.00 -> 6.99 xếp loại Trung bình - Khá
5.00 -> 5.99 xếp loại Trung bình


< 5 xếp loại Yếu
- Xét loại học bổng:
+ Loại 1: Đạt điểm trung bình từ 8. 00 trở lên và không có môn nào có
điểm dưới 7.
+ Loại 2: Đạt điểm trung bình từ 7. 00 -> 7. 99 và không có môn nào
có điểm dưới 6.
1.2.2 Biểu đồ phân cấp chức năng:

Quản lý điểm sinh viên

QL Môn học

Thêm môn học


Sửa thông tin môn học

Xóa môn học

QL Sinh viên

QL Điểm

Thêm sinh viên

Nhập điểm

Sửa thông
tin sinh
viên

Sửa điểm

Xóa sinh viên

Tính điểm

Thống kê, báo cáo

DSSV đỗ lần 1 theo lớp, học kỳ, môn

DSSV đỗ lần 2 theo lớp, học kỳ, môn

DSSV lưu ban theo lớp, theo năm học


DSSV được học bổng theo lớp, học kỳ

Ý nghĩa của từng chức năng trong hệ thống:

Quản lý môn học


-

Có các chức năng thêm, sửa, xoá các môn học

theo yêu cầu của nhà quản lý.
-

Cung cấp thông tin về các môn học trong mỗi kỳ

học cho nhà quản lý, giáo viên và sinh viên khi có yêu cầu .


Quản lý sinh viên
-

Có các chức năng thêm, sửa, xoá thông tin sinh

viên theo yêu cầu của nhà quản lý
- Cung cấp thông tin về sinh viên cho nhà quản lý,
giáo viên và sinh viên khi có yêu cầu.



Quản lý điểm
- Có chức năng cập nhật điểm cho sinh viên sau mỗi

kỳ học.
- Thực hiện phúc khảo điểm cho sinh viên khi sinh
viên yêu cầu.
- Báo cáo, thống kê điểm của sinh viên cho nhà
quản lý, giáo viên và sinh viên khi có yêu cầu.


Thống kê, báo cáo
-

Thống kê danh sách sinh viên đỗ lần 1, lần 2, tỷ lệ

sinh viên đỗ lần 1, lần 2 theo từng lớp học, môn học sau mỗi
kỳ học.
-

Thống kê danh sách sinh viên trượt lần 1, lần

2(học lại), tỷ lệ sinh viên trượt lần 1, lần 2 theo từng lớp học,
môn học sau mỗi kỳ học.
-

Thống kê danh sách sinh viên bị lưu ban, tỷ lệ

sinh viên bị lưu ban sau mỗi năm học.
-


Thống kê danh sách sinh viên đạt học bổng, tỷ lệ

sinh viên đạt học bổng sau mỗi kỳ học.


-

Trong quá trình thống kê sẽ sử dụng chức năng

tính điểm của quản lý điểm.
1.2.3 Biểu đồ luồng dữ liệu:
1: Sơ đồ luồng dữ liệu mức khung cảnh

Quản lý điểm sinh viên
Nhà quản lý

Giáo viên

Sinh viên


1.2.4 Phân loại các thuộc tính vào một tập thực thể
Kiểu thực thể liên kết là nguồn thông tin cần thiết cho hệ thống ,các kiểu
thực thể có thể xuất hiện ở các tác nhân ngoài , các luồng thông tin nội bộ
hoặc các kho dữ liệu
Kiểu thực thể Môn Học gồm: MaMH, TenMH, SoTin.
Kiểu Thực Thể Điểm gồm: MaSV, MaMH, LanHoc, DiemLan1,
DiemLan2.
Kiểu thực thể HeDT gồm: Ma HDT, Ten HDT.
Kiểu thực thể Lớp gồm: MaLop, TenLop, MaKhoa, MaHDT,

MaKhoaHoc.
Kiểu thực thể Sinh Viên gồm: MaSV, TenSV, NgaySinh, GioiTinh,
QueQuan, MaLop.
Kiểu thực thể Học Kỳ: MaHK, TenHK.
Kiểu thực thể Khóa Học: MaKhoaHoc, TenKhoaHoc.
Kiểu thực thể Khoa gồm: MaKhoa,TenKhoa, DiaChi, DienThoai.


1.2.5 Mô hình thực thể liên kết
ĐIỂM

MÔN HỌC

mã MH tên MH số Tín

mã sinh viên mã MH Lần học điểm lần 1
điểm lần 2

SINH VIÊN
mã sinh viên tên sinh viên giới tính ngày sinh Quê quán mã lớp

LỚP
KHOA
mã khoa tên khoa địa chỉ điện thoại

mã lớp tên lớp
mã khoa mã khóa học

Khóa học


mã hệ đào tạo

mã khóa học tên khóa học
HỆ ĐÀO TẠO

mã hệ đào tạo tên hệ đào tạo

1.1.1 Biểu đồ cấu trúc dữ liệu theo mô hình quan hệ :
 Danh sách các thuộc tính: MaHDT, TenHDT, MaKhoa, TenKhoa,
MaKhoaHoc, TenKhoaHoc, MaLop, TenLop, MaSV, TenSV, MaMH,
TenMH, MaLanHoc, TenLanHoc, Diem.
 Danh sách các thuộc tính lặp: MaSV, TenSV, Diem.
 Danh sách các phụ thuộc hàm:
MaSV → TenSV, MaLop.
MaLop → TenLop, MaKhoa, MaKhoaHoc, MaHDT.
MaSV, MaMH→ Diem.


MaKhoa → TenKhoa.
MaKhoaHoc → TenKhoaHoc.
MaHDT → TenHDT.
MaMH → TenMH.
Các Bước chuẩn hóa
DS các thuộc
tính

Dạng 1NF

Dạng 2NF


Dạng 3NF

MaLop
TenLop
MaHDT
TenHDT
MaKhoaHoc
TenKhoaHoc
MaKhoa
TenKhoa
MaMH
TenMH
* MaSV
* TenSV
* Diem

MaLop
TenLop
MaHDT
TenHDT
MaKhoaHoc
TenKhoaHo
c
MaKhoa
TenKhoa
MaMH
TenMH

MaLop
TenLop

MaHDT
TenHDT
MaKhoaHoc
TenKhoaHoc
MaKhoa
TenKhoa
MaMH
TenMH

MaLop
TenLop
MaHDT
MaKhoa
MaKhoaHoc
MaHDT
TenHDT

MaSV
TenSV
MaMH
DiemLan1
DiemLan2

MaSV
TenSV
MaSV
MaMH
DiemLan1
DiemLan2


MaKhoa
TenKhoa
MaKhoaHoc
TenKhoaHoc
MaSV
TenSV
MaLop
MaMH
TenMH
MaSV
MaMH
DiemLan1
DiemLan2

Tên bảng

Lop

HeDT
Khoa
KhoaHoc
SinhVien
MonHoc

Diem


Sử dụng thuật toán phân rã để chuẩn hóa thành dạng 3NF như sau:
Ta có lược đồ quan hệ R(ABCDEFGHIJKLM) có các phụ thuộc hàm là
F(K→AL, A→BCEF, IK→M, G→H, E→F, C→D, I→J)

B1: Tìm phủ tối tiểu của F
F= { K→AL, A→BCEF, IK→M, G→H, E→F, C→D, I→J}
Đặt G=F, Tách các phụ thuộc hàm của G có vế phải chỉ chứa 1 thuộc tính.
G={ K→A, K→L, A→B, A→C, A→E, A→F, IK→M, G→H, E→F,
C→D, I→J }
G là tối tiểu
B2: Tách thành các lược đồ con
F=G
Xét K→A, K→L có 2 phụ thuộc hàm vế trái bằng K ta có R1(KAL) loại
K→A, K→L khỏi F
Xét A→B, A→C, A→E, A→F có 2 phụ thuộc hàm vế trái bằng A ta có
R2(ABCEF) loại A→B, A→C, A→E, A→F khỏi F
Xét IK→M có 1 phụ thuộc hàm vế trái bằng IK ta có R3(IKM) loại IK→M
khỏi F
Tương tự xét đến khi F= dừng thuật toán
Kết luận: Lược đồ R(ABCDEFGHIJKLM) được tách thành 7 lược đồ con
chuẩn 3NF như sau:
R1(KAL) khóa K
R2(ABCEF) khóa A
R3(IKM) khóa IK
R4( GH) khóa G
R5(EF) khóa E
R6(CD) khóa C
R7(IJ) khóa I


Chương 2: THIẾT KẾ CƠ SỞ DỮ LIỆU
2.1.

Thiết kế cơ sở dữ liệu:


2.2.

Từ điển dữ liệu

Thuộc tính
Tên bảng

Tên cột
MaMH

Kiểu dữ
liệu
char

Độ
rộng
5

Miêu tả
Mã môn học


MONHOC
(Môn học)

DIEM
(Điểm)

HEDT

(Hệ đào tạo)
LOP
(Lớp)

SINHVIEN
(Sinh viên)

KHOAHOC

Khoa

TenMH

nvarchar

30

Tên môn học

SoTin

int

MaSV

Char

15

Mã sinh viên


MaMH
LanHoc

char
Int

5

Mã môn học
Lần học

DiemLan1

Int

Điểm tk lần 1

DiemLan2

Int

Điểm tk lần 2

MaHeDT

Char

5


Mã hệ đào tạo

TenHeDT

nvarchar

30

Tên hệ đào tạo

MaLop

char

5

Mã lớp

TenLop

nvarchar

50

Tên lớp

MaKhoa

char


5

Mã khoa

MaHDT

char

5

Mã hệ đào tạo

MaKhoaHoc

char

5

Mã khóa học

MaSV

char

15

Mã sinh viên

TenSV


nvarchar

30

Tên sinh viên

GioiTinh

Bit

Giới tính

NgaySinh

Datetime

Ngày sinh

MaLop

char

5

Mã lớp

Que Quan

nvarchar


100

Quê quán

MaKhoaHoc
TenKhoaHoc
MaKhoa

Char
nvarchar
Char

5
30
5

Mã khóa học
Tên khóa học
Mã khoa

TenKhoa

nvarchar

50

Tên khoa

DiaChi


Nvarchar

100

Địa chỉ

DienThoai

varchar

15

Điện thoại

Số tín chỉ


2.3.

Một số truy vấn SQL

a) Tạo cơ sở dữ liệu
Create Database BTLSQL
go
Use BTLSQL
go
-- Tao Bang Mon Hoc -Create Table MonHoc
(
MaMH char(5) primary key,
TenMH nvarchar(30) not null,

SoTin int not null check ( (SoTin>0)and (SoTin<7) )
)
--- Tao Bang He Dao Tao --Create Table HeDT
(
MaHeDT char(5) primary key,
TenHeDT nvarchar(40) not null
)
--- Tao Bang Khoa Hoc --Create Table KhoaHoc
(
MaKhoaHoc char(5) primary key,
TenKhoaHoc nvarchar(20) not null
)
--- Tao Bang Khoa -Create Table Khoa
(
MaKhoa char(5) primary key,
TenKhoa nvarchar(30) not null,
DiaChi nvarchar(100) not null,
DienThoai varchar(20) not null
)
-- Tao Bang Lop --Create Table Lop
(
MaLop char(5) primary key,
TenLop nvarchar(30) not null,
MaKhoa char(5) foreign key references Khoa (MaKhoa),
MaHeDT char(5) foreign key references HeDT (MaHeDT),
MaKhoaHoc char(5) foreign key references KhoaHoc (MaKhoaHoc),
)
--- Tao Bang Sinh Vien --Create Table SinhVien
(
MaSV char(15) primary key,

TenSV nvarchar(20) ,
GioiTinh bit ,
NgaySinh datetime ,
QueQuan nvarchar(50) ,
MaLop char(5) foreign key references Lop(MaLop)


)
--- Tao Bang Diem --Create Table Diem
(
MaSV char(15) foreign key references SinhVien(MaSV),
MaMH char(5) foreign key references MonHoc (MaMH),
LanHoc int check(LanHoc>0) not null,
DiemLan1 int ,
DiemLan2 int
)

b) Chèn dữ liệu

---Nhap Du Lieu Cho Bang He Dao Tao -insert into HeDT values('A01',N'Ðại Học')
insert into HeDT values('B01',N'Cao Ðẳng')
insert into HeDT values('C01',N'Trung Cấp')
insert into HeDT values('D01',N'Cao Hoc')
-- Nhap Du Lieu Bang Ma Khoa Hoc --insert into KhoaHoc values('K1',N'Ðại học khóa 1')
insert into KhoaHoc values('K2',N'Ðại học khóa 2')
insert into KhoaHoc values('K3',N'Ðại học khóa 3')
insert into KhoaHoc values('K9',N'Ðại học khóa 4')
insert into KhoaHoc values('K10',N'Ðại học khóa 5')
insert into KhoaHoc values('K11',N'Ðại học khóa 6')
insert into KhoaHoc values('K1',N'Cao đẳng khóa 1')

insert into KhoaHoc values('K2',N'Cao đẳng khóa 2')
insert into KhoaHoc values('K3',N'Cao đẳng khóa 3')
insert into KhoaHoc values('K9',N'Cao đẳng khóa 4')
insert into KhoaHoc values('K10',N'Cao đẳng khóa 5')
insert into KhoaHoc values('K11',N'Cao đẳng khóa 6')
insert into KhoaHoc values('K1',N'Trung cấp khóa 1')
insert into KhoaHoc values('K2',N'Trung cấp khóa 2')
insert into KhoaHoc values('K3',N'Trung cấp khóa 3')
insert into KhoaHoc values('K1',N'Cao học khóa 1')
insert into KhoaHoc values('K2',N'Cao học khóa 2')

-- Nhap Du Lieu bang Khoa -insert into Khoa values('CNTT',N'Công nghệ thông tin',N'Tầng 4 nhà B','043768888')
insert into Khoa values('TM',N'Truyền thông mạng máy tính',N'Tầng 5 nhà
B','043768888')
insert into Khoa values('DT',N'Ðiện tử',N'Tằng 6 nhà B','043768888')
insert into Khoa values('HT',N'Hệ thống thông tin',N'Tằng 3 nhà B','043760008')
--- Nhap Du
insert into
insert into
insert into
insert into
insert into
insert into
insert into
insert into
insert into

Lieu Cho Bang Lop -Lop values('MT1',N'Máy Tính 1','CNTT','A01','K2')
Lop values('MT2',N'Máy Tính 2','CNTT','A01','K2')
Lop values('MT3',N'Máy Tính 3','CNTT','A01','K2')

Lop values('MT4',N'Máy Tính 4','CNTT','A01','K2')
Lop values('HT1',N'Hệ thống 1','HT','A01','K2')
Lop values('HT2',N'Hệ thống 2','HT','A01','K2')
Lop values('HT3',N'Hệ thống 3','HT','A01','K2')
Lop values('HT4',N'Hệ thống 4','HT','A01','K2')
Lop values('DT1',N'Điện tử 1','DT','A01','K2')


insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into

Lop
Lop
Lop
Lop
Lop
Lop

Lop

values('DT2',N'Điện tử 2','DT','A01','K2')
values('DT3',N'Điện tử 3','DT','A01','K2')
values('DT4',N'Điện tử 4','DT','A01','K2')
values('TM1',N'Truyền thông 1','TM','A01','K2')
values('TM2',N'Truyền thông 2','TM','A01','K2')
values('TM3',N'Truyền thông 3','TM','A01','K2')
values('TM4',N'Truyền thông 4','TM','A01','K2')

-- Nhap Du Lieu Bang
insert into SinhVien
Dương','MT3')
insert into SinhVien
Dinh','MT1')
insert into SinhVien
Binh','MT2')
insert into SinhVien
Binh','MT1')
insert into SinhVien
Dinh','MT3')
insert into SinhVien
insert into SinhVien
insert into SinhVien
Duong','MT2')
insert into SinhVien
Duong','MT2')
insert into SinhVien
Nam','MT2')
insert into SinhVien

Giang','MT4')
insert into SinhVien
Noi','MT4')
insert into SinhVien
Duong','MT4')
insert into SinhVien
Dinh','MT1')
insert into SinhVien
Dinh','DT1')

Sinh Vien -values('sv1',N'Nguyễn Minh Một',1,'08/27/1989',N'Hải
values('sv2',N'Nguyễn Minh Hai',1,'2/08/1989','Nam
values('sv3',N'Nguyễn Minh Ba',1,'7/04/1989','Ninh
values('sv4',N'Nguyễn Minh Bốn',1,'7/08/1989','Ninh
values('sv5',N'Nguyễn Minh Năm',0,'7/08/1989','Nam
values('sv6',N'Nguyễn Minh Sáu',1,'7/08/1989','Ha Noi','MT3')
values('sv7',N'Nguyễn Minh Bảy',1,'7/08/1989','Ha Noi','MT3')
values('sv8',N'Nguyễn Minh Tám',1,'7/08/1989','Hai
values('sv9',N'Nguyễn Minh Chín',1,'7/08/1989','Hai
values('sv10',N'Nguyễn Minh Mười',1,'7/08/1989','Ha
values('sv11',N'Nguyễn Minh Mười Một',0,'7/08/1989','Bac
values('sv12',N'Nguyễn Minh Mười Hai',0,'7/08/1989','Ha
values('sv13',N'Nguyễn Minh Mười Ba',1,'7/08/1989','Hai
values('sv14',N'Nguyễn Minh Mười Bốn',1,'7/08/1989','Nam
values('sv15',N'Nguyễn Minh Mười Năm',1,'7/08/1989','Nam

-- Nhap Du Lieu Bang Mon Hoc -insert into MonHoc values('mh1',N'SQL',5)
insert into MonHoc values('mh2',N'Java',6)
insert into MonHoc values('mh3',N'Công Nghệ phần mềm',4)
insert into MonHoc values('mh4',N'Phân tích hệ thống',4)

insert into MonHoc values('mh5',N'Mạng máy tính',5)
insert into MonHoc values('mh6',N'Chương trình dịch',4)
insert into MonHoc values('mh7',N'Trí tuệ nhân tạo',4)
insert into MonHoc values('mh8',N'Lập trình C#',5)
insert into MonHoc values('mh9',N'Nhập môn CSDL',4)
insert into MonHoc values('mh10',N'Mạng máy tính',5)
insert into MonHoc values('mh11',N'Quản trị mạng',4)
insert into MonHoc values('mh12',N'Giao thông thông minh',5)
insert into MonHoc values('mh13',N'Lập trình hướng đối tượng',5)
insert into MonHoc values('mh14',N'Điện toán đám mây',3)
insert into MonHoc values('mh15',N'An ninh mạng',5)
-- Nhap Du Lieu Bang Diem -insert into Diem(MaSV,MaMH,LanHoc,DiemLan1) values('sv1','mh1',1,7)


insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert


into
into
into
into
into
into
into
into
into
into
into
into
into
into
into

Diem(MaSV,MaMH,LanHoc,DiemLan1)
Diem(MaSV,MaMH,LanHoc,DiemLan1)
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1)
Diem(MaSV,MaMH,LanHoc,DiemLan1)
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1)
Diem(MaSV,MaMH,LanHoc,DiemLan1,
Diem(MaSV,MaMH,LanHoc,DiemLan1)

Diem(MaSV,MaMH,LanHoc,DiemLan1)

values('sv2','mh1',1,6)
values('sv3','mh3',1,8)
DiemLan2)values('sv4','mh4',1,4,6)
DiemLan2)values('sv5','mh3',1,4,5)
DiemLan2)values('sv6','mh6',1,4,4)
DiemLan2) values('sv7','mh14',2,4,6)
DiemLan2)values('sv8','mh2',2,2,5)
values('sv9','mh1',3,9)
values('sv10','mh1',1,8)
DiemLan2)values('sv12','mh14',2,3,4)
DiemLan2) values('sv11','mh7',3,4,4)
values('sv13','mh8',1,8)
DiemLan2)values('sv14','mh4',4,2,2)
values('sv4','mh8',2,8)
values('sv2','mh6',4,9)

c) Bài tập view
--Danh sách sinh viên lớp MT1
alter VIEW DsSVLopMT1
AS
SELECT MaSV, TenSV FROM dbo.SinhVien WHERE MaLop = 'MT1'
--Kết quả

--Danh sách sinh viên trượt lần 1
CREATE VIEW DsSVTruotL1
AS
SELECT MaSV, DiemLan1 FROM dbo.Diem WHERE DiemLan1 < 5
--Kết quả


20 | P a g e


--Danh sách sinh viên giỏi
CREATE VIEW DsSVGioi
AS
SELECT MaSV, DiemLan1 FROM dbo.Diem
WHERE LanHoc = 1 AND DiemLan1 >=8
--Kết quả

--Danh sách các khoa
CREATE VIEW DsKhoa
AS
SELECT MaKhoa, TenKhoa FROM dbo.Khoa
--Kết quả

--Danh sách các lớp trong trường
CREATE VIEW DsLop
AS
SELECT MaLop, TenLop FROM lop
--Kết quả


d) Thống kê
----- Cac Cau Lenh
-- 1.Hiển thị danh sách sinh viên gồm các thông tin sau:MaSV,TenSV,
NgaySinh, GioiTinh,Ten Lop
create proc show_sv
as

Select MaSV,TenSV,NgaySinh,GioiTinh,TenLop
From SinhVien,Lop
Where SinhVien.MaLop=Lop.MaLop
--Kết quả


-- 2.Hien Thi Top 3 sinh vien lop may tinh 3 co diem mon SQL >=7
create proc show_top3sv
as
Select Top 3 TenSV,TenLop,DiemLan1,TenMH
From SinhVien,Diem,Lop,MonHoc
Where TenLop='Máy tính 3' and DiemLan1>=7 and TenMH='SQL'
And SinhVien.MaLop=Lop.MaLop And Diem.MaSV=SinhVien.MaSV And
Diem.MaMH=MonHoc.MaMH
--Kết quả

-- 3.Hien Thi MaSV,TenSV,Ngay Sinh,Que Quan cua cac sinh vien ten la
Ba va co tuoi lon hon 19.
create proc show_svba19
as
Select MaSV,TenSV,NgaySinh,QueQuan
From SinhVien
Where (TenSV like '%Ba') And (Year(getdate()) - Year(NgaySinh) >19)
--Kết quả


-- 4. Hien Thi Tat Ca Nhung Sinh Vien Khoa Cong Nghe Thong Tin
create proc show_svcntt
as
Select TenSV,TenLop,NgaySinh,QueQuan

From (SinhVien Inner join Lop on SinhVien.MaLop=Lop.MaLop)
Inner join Khoa on Khoa.MaKhoa=Lop.MaKhoa
Where TenKhoa=N'Công nghệ thông tin'
--Kết quả

-- 5. Hien Thi Diem cua sinh vien lop May Tinh 3 Khoa 2 Sap Xep Diem
Giam Dan
create proc show_diemsvmt3
as

Select TenSV,TenLop,DiemLan1
From SinhVien,Lop,KhoaHoc,Diem
Where SinhVien.MaLop=Lop.MaLop And Lop.MaKhoaHoc=KhoaHoc.MaKhoaHoc And
Diem.MaSV=SinhVien.MaSV And TenKhoaHoc = N'Ðại học khóa 2' And TenLop = N'Máy Tính
3'
Order By DiemLan1 DESC
--Kết quả


--6. Tinh Trung Binh Diem Cac Mon Hoc Cua Cac Sinh Vien Lop May tinh 3
create proc show_diemtbsvmt3
as
Select SinhVien.MaSV,TenSV,Lop.TenLop, SUM(DiemLan1*SoTin)/SUM(SoTin)
as DiemTrungBinh
From SinhVien,Diem,MonHoc,Lop
Where SinhVien.MaLop=Lop.MaLop And Diem.MaSV=SinhVien.MaSV And
Diem.MaMH=MonHoc.MaMH
And TenLop=N'Máy Tính 3'
Group By SinhVien.MaSV,TenSV,Lop.TenLop
--Kết quả


--7.Hien Thi Tat Ca Sinh Vien Phai Hoc Lai Mon Phan tich he thong
create proc show_svhlmt3
as
Select TenSV,TenMH,DiemLan1,DiemLan2
From SinhVien,Diem,MonHoc
Where SinhVien.MaSV=Diem.MaSV And Diem.MaMH=MonHoc.MaMH And
(DiemLan1<5) And (DiemLan2<5) And TenMH=N’Phân tích hệ thống'
--Kết quả


×