Functions trong dự án quản lý sinh viên

Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên

5.0 (3 đánh giá)
Tạo bởi K9 Cập nhật lần cuối 21:30 14-07-2019 3.122 lượt xem 7 bình luận
Học nhanh

Danh sách bài học

Functions trong dự án quản lý sinh viên

Dẫn nhập

Ở bài trước, chúng ta đã cùng nhau NHẬP DỮ LIỆU VÀ THỰC HÀNH TRUY VẤN CƠ BẢN. Qua đó, Kteam cũng đã hướng dẫn bạn cách nhập dữ liệu bằng giao diện, bằng code và cùng nhau thực hiện một số câu truy vấn cơ bản.

Trong bài này chúng ta sẽ cùng nhau đi vào một phần khá thú vị của khóa thực chiến với dự án Quản lý sinh viên đó chính là Functions trong CSDL dự án Quản lý sinh viên

Đừng quên hoàn thành bài tập truy vấn của buổi trước trong dự án Quản lý sinh viên lên SQL Server nhé! Chúng ta sẽ sửa các bài tập đó trước!

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ó kiến thức về các phần:

Trong bài này, Kteam sẽ cùng các bạn tìm hiểu các nội dung:

  • Giải quyết bài tập của bài trước
  • Nhắc lại kiến thức functions trong SQL Server
  • Hướng dẫn thực hành functions
  • Phân tích các vấn đề thực tế trong sử dụng functions
  • 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 có thể sử dụng các phiên bản khác từ 2008 trở lên. (vì không có nhiều khác biệt)


Functions

Bạn nên tìm hiểu qua phần FUNCTIONS TRONG SQL SERVER để nắm kiến thức và hiểu cách ứng dụng của functions

Hướng dẫn thực hành

Source code mẫu của phần này sẽ được cập nhập sau khi khóa livestream kết thúc.

Hãy viết các function sau :

  1. Với 1 mã sinh viên và 1 mã khoa, kiểm tra xem sinh viên có thuộc khoa này không (trả về đúng hoặc sai)
  2. Tính điểm thi sau cùng của một sinh viên trong một môn học cụ thể
  3. Tính điểm trung bình của một sinh viên (chú ý : điểm trung bình được tính dựa trên lần thi sau cùng), sử dụng function 2 đã viết

Bài tập về nhà

  1. Nhập vào 1 sinh viên và 1 môn học, trả về các điểm thi của sinh viên này trong các lần thi của môn học đó.
  2. Nhập vào 1 sinh viên, trả về danh sách các môn học mà sinh viên này phải học. 

Khảo sát buổi học

Hôm nay chúng ta đã hoàn buổi 4 của khóa THỰC CHIẾN SQL VỚI KTEAM - DỰ ÁN QUẢN LÝ SINH VIÊN
Đây là bài khảo sát ngắn sau mỗi bài học, nhằm giúp Kteam đánh giá hiệu quả truyền tải của khóa học và hỗ trợ bạn các giải đáp các câu hỏi, kiến thức được đề cập đến trong bài.

KHẢO SÁT BÀI FUNCTIONS TRONG CSDL QUẢN LÝ SINH VIÊN

Vui lòng giúp Kteam hoàn thành khảo sát để nhận được email theo dõi tiến độ cùng source code bài hôm nay, học liệu bài mới và đường dẫn tham gia khóa học mỗi ngày nhé! 


Kết

Trong bài này,chúng ta đã tìm hiểu về Functions trong dự án quản lý sinh viên. Buổi học đã được diễn ra vào lúc 20h ngày 14/07/2019 tại phần trình chiếu của bài  Functions trong dự án quản lý sinh viên trên Howkteam.com

Lưu ý: Sau bài học, Kteam sẽ gửi mail Khảo sát & giải đáp câu hỏi đến mail đã đăng ký của các bạn. Hoàn thành mail trước buổi học tiếp theo để xác nhận đã tham gia buổi học và đăng ký nhận đường dẫn kèm học liệu cho buổi học tiếp theo.

Ở bài sau, chúng ta sẽ tìm hiểu về PROCEDURES 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ó” 


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung bài viết

Tác giả/Dịch giả

K9

Nhà sáng lập Howkteam.com & tác giả các khóa học C#, Auto, Unity3D, Python....

Với mong muốn mang đến kiến thức chất lượng, miễn phí cho mọi người, với tâm huyết phá bỏ rào cản kiến thức từ việc giáo dục thu phí. Tôi đã cùng đội ngũ Kteam đã lập nên trang website này để thế giới phẳng hơn.
Hãy cùng chúng tôi lan tỏa kiến thức đến cộng đồng! 

Khóa học

Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên

sql, kteam, howkteam,cơ sở dữ liệu, bài tập cơ sở dữ liệu

Trong các khóa học SỬ DỤNG SQL SERVER PHÂN TÍCH THIẾT KẾ PHẦN MỀM, Kteam đã đề cập đến các kiến thức cần thiết để bạn có thể bắt đầu xây dựng một cơ sở dữ liệu với SQL server và truy vấn qua CSDL đó.

Ở combo Thực chiến SQL, chúng ta sẽ cùng nhau phân tích các CSDL đó từ đặc tả và ứng dụng các kiến thức đã học ở hai khóa trên vào việc giải quyết các yêu cầu thực tế của một CSDL. Trong bộ khóa học này các bạn sẽ đi qua các kiến thức từ cơ bản đến nâng cao qua các dự án khác nhau.

Nào! Chúng ta sẽ cùng nhau tìm hiểu dự án đầu tiên THỰC CHIẾN SQL CÙNG DỰ ÁN QUẢN LÝ SINH VIÊN

Đánh giá

thinhpham đã đánh giá 23:02 10-08-2019

Phạm Tấn Thành Moderator đã đánh giá 20:06 14-07-2019

SQL thực chiến - Quản lý sinh viên phần 4-Functions

Minh Đức đã đánh giá 19:59 13-07-2019

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
builehoangnhattruong đã bình luận 11:18 07-08-2019

Em chào anh, em mới biết đến khóa học này nên hỏi hơi trễ.

Câu 6 em làm như thế này không biết có được không ạ

    DECLARE @MaSV CHAR(10);
    SET @MaSV = '0212003' 
    DECLARE @Lanthi INT;
    SELECT @Lanthi = max (dbo.KetQua.lanThi) FROM dbo.KetQua
    SELECT AVG(KQ.diem) 
        FROM dbo.KetQua AS KQ 
        WHERE 
            KQ.MaSV = @MaSV AND KQ.lanThi = @Lanthi
 

quocbao16vn@gmail.com đã bình luận 20:13 14-07-2019

-- 4. 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. (bài tập về nhà)
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 Mon_Hoc ON Mon_Hoc.Ma_Khoa=Khoa.Ma_Khoa 
LEFT JOIN Ket_Qua ON Sinh_Vien.Ma_SV = Ket_Qua.Ma_SV
WHERE Ket_Qua.Ma_MH = (SELECT Ma_MH FROM Mon_Hoc WHERE Mon_Hoc.Ten_MH = N'Cấu trúc dữ liệu 1')
AND Ket_Qua.Diem < 5 
AND (
    SELECT COUNT(1) Ma_SV  FROM Ket_Qua WHERE Ket_Qua.Ma_SV = Sinh_Vien.Ma_SV 
    AND Ket_Qua.Ma_MH = (SELECT Ma_MH FROM Mon_Hoc WHERE Mon_Hoc.Ten_MH = N'Cấu trúc dữ liệu 1')
    ) <= 1

-- cái này có tối ưu chưa vậy anh ?

linhbeo228 đã bình luận 10:01 14-07-2019
-- 1. Với 1 mã sinh viên và 1 mã khoa, kiểm tra xem sinh viên 
-- có thuộc khoa này không (trả về đúng hoặc sai)
CREATE FUNCTION UF_Cau1
    (
      @masv VARCHAR(10) ,
      @makhoa VARCHAR(10)
    )
RETURNS NVARCHAR(5)
AS
    BEGIN
        DECLARE @ketqua NVARCHAR(5)
        IF ( EXISTS ( SELECT    *
                      FROM      dbo.SinhVien SV
                                JOIN dbo.Lop L ON L.MaLop = SV.MaLop
                                JOIN dbo.Khoa K ON K.MaKhoa = L.MaKhoa
                      WHERE     SV.MaSV = @masv
                                AND K.MaKhoa = @makhoa ) )
            SET @ketqua = 'True'
        ELSE
            SET @ketqua = 'False'
        RETURN @ketqua
    END
GO

-- 2. Tính điểm thi sau cùng của một sinh viên trong một môn học cụ thể
CREATE FUNCTION UF_Cau2
	(
      @masv VARCHAR(10) ,
      @mamh VARCHAR(10)
    )
RETURNS FLOAT
AS
    BEGIN
        DECLARE @diem FLOAT
        SELECT  TOP 1 @diem = Diem
        FROM    dbo.KetQua
        WHERE   MaSV = @masv
                AND MaMH = @mamh
		ORDER BY LanThi DESC
        RETURN @diem
    END
GO

-- 3. Tính điểm trung bình của một sinh viên (chú ý : điểm trung bình
-- được tính dựa trên lần thi sau cùng)
CREATE FUNCTION UF_Cau3 ( @masv VARCHAR(10) )
RETURNS FLOAT
AS
    BEGIN
        DECLARE @dtb FLOAT
        SELECT  @dtb = AVG(dbo.UF_Cau2(MaSV, MaMH))
        FROM    dbo.KetQua
        WHERE   MaSV = @masv
        RETURN @dtb
    END
GO

-- 4. Nhập vào 1 sinh viên và 1 môn học, trả về các điểm thi 
-- của sinh viên này trong các lần thi của môn học đó.
CREATE FUNCTION UF_Cau4
    (
      @masv VARCHAR(10) ,
      @mamh VARCHAR(10)
    )
RETURNS TABLE
RETURN
    SELECT  *
    FROM    dbo.KetQua
    WHERE   MaSV = @masv
            AND MaMH = @mamh
GO

-- 5. Nhập vào 1 sinh viên, trả về danh sách các môn học mà sinh viên này phải học. 
CREATE FUNCTION UF_Cau5 ( @masv VARCHAR(10) )
RETURNS TABLE
RETURN
    SELECT  MH.TenMH
    FROM    dbo.MonHoc MH
            JOIN dbo.Khoa K ON K.MaKhoa = MH.MaKhoa
            JOIN dbo.Lop L ON L.MaKhoa = K.MaKhoa
            JOIN dbo.SinhVien SV ON SV.MaLop = L.MaLop
    WHERE   SV.MaSV = @masv 
GO

 

tvmodvn đã bình luận 20:20 13-07-2019

Nay chua bat dau hoc soa

 

Không có video.