Nhập dữ liệu và thực hành truy vấn với CSDL dự án Quản lý sinh viên | How Kteam
Mục Chính
Dẫn nhập
Ở bài trước, tất cả chúng ta đã cùng nhau CÀI ĐẶT CSDL LÊN SQL SERVER. Qua đó mình cũng đã hướng dẫn bạn vẽ lược đồ ER nhanh, setup CSDL bằng giao diện, bằng code và giải quyết và xử lý 1 số ít yếu tố khác .
Trong bài này chúng ta sẽ cùng nhau thực chiến với dự án Quản lý sinh viên
với phần Nhập dữ liệu và thực hành truy vấn với CSDL dự án Quản lý sinh viên.
Đừng quên hoàn thành cài đặt database của dự án Quản lý sinh viên lên SQL Server nhé! Chúng ta sẽ thực hành tiếp trên CSDL đó
Chúng ta hãy cùng nhau teamwork, thảo luận và hỗ trợ nhau trong dự án này để giải quyết bài toán thực tế một cách hoàn chỉnh dưới sự hướng dẫn của anh Kim
Long – founder Howkteam nhé!
Nội dung
Để theo dõi bài này một cách tốt nhất, bạn nên có kỹ năng và kiến thức về những phần :
Trong bài này, Kteam sẽ cùng những bạn khám phá những nội dung :
- Giải quyết câu hỏi của bài trước
- Hướng dẫn cách nhập liệu trong SQL Server
- Giải quyết các lỗi sinh ra trong quá trình nhập liệu
- Phần hướng dẫn truy vấn cơ bản
- Phân tích các vấn đề thực tế trong truy vấn
- Phần định hướng bài tập
- Các phần chia sẻ kinh nghiệm thực tế
Phần mềm sử dụng
Trong khóa học này, chúng ta sẽ học và thực hành trực tiếp với SQL Server. Nếu bạn chưa cài đặt SQL thì có thể xem qua bài
Bạn cũng hoàn toàn có thể sử dụng những phiên bản khác từ 2008 trở lên. ( vì không có nhiều độc lạ )
Nhập dữ liệu cho CSDL
Nhập bộ dữ liệu như sau :
Khoa:
MaKhoa tenKhoa namThanhLap CNTT Công nghệ thông tin 1995 VL Vật Lý 1970 -- nhập liệu cho bảng Khóa Học Insert into Khoa(Ma_Khoa, Ten_Khoa, Nam_Thanh_Lap) values( 'CNTT', N'Công nghệ thông tin',1995) go Insert into Khoa values('VL', N'Vật Lý', 1970) go
Khóa học:
MaKhoaHoc namBatDau namKetThuc K2002 2002 2006 K2003 2003 2007 K2004 2004 2008 -- nhập liệu cho bảng Khóa Học Insert into Khoa_Hoc(Nam_Bat_Dau, Ma_Khoa_Hoc, Nam_Ket_Thuc) values( 2002, 'K2002',2006) go Insert into Khoa_Hoc values('K2003', 2003, 2007) go Insert into Khoa_Hoc values('K2004', 2004, 2008) go
SinhVien
MaSV hoTen namSinh danToc maLop 0212001 Nguyễn Vĩnh An 1984 Kinh TH2002 / 01 0212002 Nguyên Thanh Bình 1985 Kinh TH2002 / 01 0212003 Nguyễn Thanh Cường 1984 Kinh TH2002 / 02 0212004 Nguyễn Quốc Duy 1983 Kinh TH2002 / 02 0311001 Phan Tuấn Anh 1985 Kinh VL2003 / 01 0311002 Huỳnh Thanh Sang 1984 Kinh VL2003 / 01 -- Nhập liệu cho sinh viên Insert into Sinh_Vien values('0212001', N'Nguyễn Vĩnh An', 1984, N'Kinh', 'TH2002/01') go Insert into Sinh_Vien values('0212002', N'Nguyễn Thanh Bình', 1985, N'Kinh', 'TH2002/01') go Insert into Sinh_Vien values('0212003', N'Nguyễn Thanh Cường', 1984, N'Kinh', 'TH2002/02') go Insert into Sinh_Vien values('0212004', N'Nguyễn Quốc Duy', 1983, N'Kinh', 'TH2002/02') go Insert into Sinh_Vien values('0311001', N'Phan Tuấn Anh', 1985, N'Kinh', 'TH2003/01') go Insert into Sinh_Vien values('0311002', N'Huỳnh Thanh Sang', 1984, N'Kinh', 'TH2003/01') go
ChuongTrinh
MaCT tenChuongTrinh CQ Chính Quy -- Nhập liệu cho bảng Chương trình học Insert into Chuong_Trinh_Hoc values('CQ', N'Chính Quy') go
MonHoc
MaMH tenMonHoc maKhoa THT01 Toán Cao cấp A1 CNTT VLT01 Toán hạng sang A1 VL THT02 Toán rời rạc CNTT THCS01 Cấu trúc dữ liệu 1 CNTT THCS02 Hệ quản lý CNTT -- Nhập liệu cho bảng Môn học Insert into Mon_Hoc values('THT01', 'CNTT', N'Toán cao cấp A1') go Insert into Mon_Hoc values('VLT01', 'VL', N'Toán cao cấp A1') go Insert into Mon_Hoc values('THT02', 'CNTT', N'Toán rời rạc') go Insert into Mon_Hoc values('THCS01', 'CNTT', N'Cấu trúc dữ liệu 1') go Insert into Mon_Hoc values('THCS02', 'CNTT', N'Hệ điều hành') go
KetQua
maSV maMH lanThi
diem 0212001 THT01 1 4 0212001 THT01 2
7 0212002 THT01 1 8 0212003 THT01 1 6 0212004 THT01 1 9 0212001 THT02 1 8 0212002 THT02 1 5.5 0212003 THT02 1 4 0212003 THT02 2 6 0212001 THCS01 1 6.5 0212002 THCS01 1 4 0212003 THCS01 1 7 -- Nhập liệu cho bảng Kết quả Insert into Ket_Qua values('0212001', 'THT01', 1,4) go Insert into Ket_Qua values('0212001', 'THT01', 2,7) go Insert into Ket_Qua values('0212002', 'THT01', 1,8) go Insert into Ket_Qua values('0212003', 'THT01', 1,6) go Insert into Ket_Qua values('0212004', 'THT01', 1,9) go Insert into Ket_Qua values('0212001', 'THT02', 1,8) go Insert into Ket_Qua values('0212002', 'THT02', 1,5.5) go Insert into Ket_Qua values('0212003', 'THT02', 1,4) go Insert into Ket_Qua values('0212003', 'THT02', 2,6) go Insert into Ket_Qua values('0212001', 'THCS01', 1,6.5) go Insert into Ket_Qua values('0212002', 'THCS01', 1,4) go Insert into Ket_Qua values('0212003', 'THCS01', 1,7) go
GiangKhoa
maCT maKhoa maMH namHoc hocKy soTietLyThuyet soTietThucHanh soTinChi CQ CNTT THT01 2003 1 60 30 5 CQ CNTT THT02 2003 2 45 30 4 CQ CNTT THCS01 2004 1 45 30 4 -- Nhập liệu cho bảng Giảng Khoa Insert into Giang_Khoa values('CQ', 'CNTT', 'THT01',2003, 1, 60, 30, 5) go Insert into Giang_Khoa values('CQ', 'CNTT', 'THT02',2003, 2, 45, 30, 4) go Insert into Giang_Khoa values('CQ', 'CNTT', 'THCS01',2004, 1, 45, 30, 4) go
Lop
MaLop maKhoaHoc maKhoa maCT soThuTu TH2002 / 01 K2002 CNTT CQ 1 TH2002 / 02 K2002 CNTT CQ 2 VL2003 / 01 K2003 VL CQ 1 -- nhập liệu cho bảng Lớp Insert into Lop values('TH2002/01', 'CNTT','K2002', 'CQ', 1) go Insert into Lop values('TH2002/02', 'CNTT','K2002', 'CQ', 2) go Insert into Lop values('TH2003/01', 'VL','K2003', 'CQ', 1) go
Bạn hoàn toàn có thể down về bộ nhập liệu khá đầy đủ trong source code tại phần TẢI XUỐNG bên dưới .
Truy vấn đơn giản
Hướng dẫn trong buổi học
Viết những câu truy vấn sau :
- Danh sách các sinh viên khoa “Công nghệ Thông tin” khoá
2002-2006-- 1. Danh sách các sinh viên khoa “Công nghệ Thông tin” khoá 2002-2006 Select Sinh_Vien.* from Sinh_Vien LEFT JOIN LOP ON Sinh_Vien.Ma_Lop = Lop.Ma_Lop LEFT JOIN Khoa_Hoc ON Lop.Ma_Khoa_Hoc = Khoa_Hoc.Ma_Khoa_Hoc LEFT JOIN Khoa ON Lop.Ma_Khoa = Khoa.Ma_Khoa where Khoa.Ma_Khoa = 'CNTT' and Khoa_Hoc.Nam_bat_Dau = 2002 and Khoa_Hoc.Nam_Ket_Thuc = 2006
- Cho biết các thông tin (MSSV, họ tên ,năm sinh) của các sinh viên học sớm hơn tuổi quy định (theo tuổi quy định thi sinh viên đủ 18 tuổi khi bắt đầu khóa học)
--Câu 2: "Cho biết các thông tin (MSSV, họ tên ,năm sinh) của các sinh viên học sớm hơn tuổi qui định (theo tuổi qui định thi sinh viên đủ 18 tuổi khi bắt đầu khóa học)" -- Day(GETDATE()) -> lấy ngày trong tháng -- Month(GETDATE()) -> lấy Tháng trong Năm -- Year(GETDATE()) -> lấy năm select Sinh_Vien.MaSV, Sinh_Vien.Ho_Ten, Sinh_Vien.Nam_Sinh from Sinh_Vien LEFT JOIN Lop ON Sinh_Vien.Ma_Lop = Lop.Ma_Lop LEFT JOIN Khoa_Hoc ON Lop.Ma_Khoa_Hoc = Khoa_Hoc.Ma_Khoa_Hoc where Khoa_Hoc.Nam_Bat_Dau - Sinh_Vien.Nam_Sinh < 18
- Cho biết sinh viên khoa CNTT, khoá 2002-2006 chưa học môn cấu trúc dữ liệu 1
-- Câu 3:" Cho biết sinh viên khoa CNTT, khoá 2002-2006 chưa học môn cấu trúc dữ liệu 1" select distinct Sinh_Vien.* from Sinh_Vien LEFT JOIN Lop ON Sinh_Vien.Ma_Lop = Lop.Ma_Lop LEFT JOIN Khoa ON Lop.Ma_Khoa = Khoa.Ma_Khoa LEFT JOIN Khoa_Hoc ON Lop.Ma_Khoa_Hoc = Khoa_Hoc.Ma_Khoa_Hoc LEFT JOIN Mon_Hoc ON Mon_Hoc.Ma_Khoa = Khoa.Ma_Khoa where Khoa.Ma_Khoa = 'CNTT' and Khoa_Hoc.Nam_Bat_Dau = 2002 and Khoa_Hoc.Nam_Ket_Thuc = 2006 and Mon_Hoc.TenMH NOT LIKE N'Cấu trúc dữ liệu 1' -- Theo cách truy vấn lồng select Sinh_Vien.* from Sinh_Vien LEFT JOIN Lop ON Sinh_Vien.Ma_Lop = Lop.Ma_Lop LEFT JOIN Khoa ON Lop.Ma_Khoa = Khoa.Ma_Khoa LEFT JOIN Khoa_Hoc ON Lop.Ma_Khoa_Hoc = Khoa_Hoc.Ma_Khoa_Hoc LEFT JOIN Mon_Hoc ON Mon_Hoc.Ma_Khoa = Khoa.Ma_Khoa where Khoa.Ma_Khoa = 'CNTT' and Khoa_Hoc.Nam_Bat_Dau = 2002 and Khoa_Hoc.Nam_Ket_Thuc = 2006 and Sinh_Vien.MaSV not in (select Sinh_Vien.MaSV from Sinh_Vien LEFT JOIN Lop ON Sinh_Vien.Ma_Lop = Lop.Ma_Lop LEFT JOIN Khoa ON Lop.Ma_Khoa = Khoa.Ma_Khoa LEFT JOIN Khoa_Hoc ON Lop.Ma_Khoa_Hoc = Khoa_Hoc.Ma_Khoa_Hoc LEFT JOIN Mon_Hoc ON Mon_Hoc.Ma_Khoa = Khoa.Ma_Khoa where Khoa.Ma_Khoa = 'CNTT' and Khoa_Hoc.Nam_Bat_Dau = 2002 and Khoa_Hoc.Nam_Ket_Thuc = 2006 and Mon_Hoc.TenMH = N'Cấu trúc dữ liệu 1')
Bài tập về nhà
- Cho biết sinh viên thi không đậu (Diem <5) môn cấu trúc dữ liệu 1 nhưng chưa thi lại.
- Với mỗi lớp thuộc khoa CNTT, cho biết mã lớp, mã khóa học, tên chương trình và số sinh viên thuộc lớp đó
- Cho biết điểm trung bình của sinh viên có mã số 0212003 (điểm trung bình chỉ tính trên lần thi sau cùng của sinh viên)
Kết
Trong bài này, chúng ta đã cùng nhau nhập dữ liệu cho CSDL trên SQL và giải quyết một số truy vấn cơ bản của dự án quản lý sinh viên. Buổi học đã được diễn ra vào lúc
20h ngày 12/07/2019 tại phần trình chiếu của bài
Nhập dữ liệu và thực hành truy vấn với CSDL dự án Quản lý sinh viên trên
Howkteam.comỞ bài sau, tất cả chúng ta sẽ tìm hiểu và khám phá về FUNCTIONS TRONG DỰ ÁN QUẢN LÝ SINH VIÊN
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”
Tải xuống
Project
Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!
Thảo luận
Nếu bạn có bất kể khó khăn vất vả hay vướng mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI và ĐÁP trên thư viện Howkteam. com để nhận được sự tương hỗ từ hội đồng .
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…