Hướng dẫn làm bài tập hệ quản trị cơ sở dữ liệu

Xin chào mọi người mình có chút bài tập hệ quản trị cơ sở dữ liệu ,mong mọi người có thể giải đáp cho mình với nhé !

vì mình không upload được file nên mình copy paste vậy mọi người thông cảm nhé !
giúp mình gỡ rối với vì minh đang tự học nên cần ý tưởng tham khảo để có kinh nghiêm cho các bài kế tiếp…

Hãy tạo 1 CSDL gồm 4 bảng sau:
SinhVien(MaSV, TenSV, MaLop, NamSinh, GioiTinh) {Sinh viên}
Monhoc(MaMon, TenMon, SoTinChi) {Môn học}
DangKy(MaSV, Mamon, HocKy) {Đăng ký}
Lop(Malop, Tenlop, SoSV) {Lớp}

PHẦN I: FUNCTION

  • Bài 1. Hãy viết một Function để tách tên của sinh viên từ Họ và tên (giả sử cột TenSV đang lưu Họ và tên của SV). Sau đó sử dụng hàm đó để viết 1 câu truy vấn liệt kê danh sách Sinh viên của lớp có tên là ‘TTD56’ được sắp xếp theo thứ tự alphabet của Tên sinh viên.
  • Bài 2. Hãy viết 1 hàm để tính tuổi của 1 người dựa vào năm sinh. Sau đó sử dụng hàm đó hãy viết 1 câu truy vấn để liệt kê danh sách các Sinh viên (MaSV, TenSV, Tuoi, Gioitinh) của các sinh viên đăng ký học môn có mã là ‘MH001’ ở kỳ 3.
  • Bài 5. Hãy thêm 1 bảng mới có cấu trúc như sau: Thong_Ke(MaSV, Nam1, Nam2, Nam3, Nam4, Nam5, Tong) để lưu lại thống kê về số lượng tín chỉ mà từng SV đã đăng ký theo từng năm và tổng số tín chỉ đăng ký (Trong đó: Cột Nam1 sẽ lưu tổng số tín chỉ đã đăng ký trong năm học thứ 1, . . ., cột Tong sẽ lưu tổng số tín chỉ đã đăng ký đến thời điểm hiện nay). Hãy viết 1 stored procedure để Insert dữ liệu vào cho bảng này.
  • Bài 3. Xét bài số 5 ở ở trên : insert dữ liệu cho bảng Thong_Ke(MaSV, Nam1, Nam2, Nam3, Nam4, Nam5, Tong). Hãy viết 1 hàm với tham số đầu vào là (MaSV, Nam) để tính tổng số tín chỉ mà sinh viên đó đã đăng ký trong năm tương ứng. Sau đó sử dụng hàm này để Insert dữ liệu cho bảng trên chỉ bằng 1 câu truy vấn.

PHẦN I: TRIGGER

  • Bài 1. Hãy viết một Trigger để đưa ra câu thông báo khi Xóa 1 bản ghi khỏi bảng Monhoc
  • Bài 2. Hãy viết trigger để tự động kiểm tra khi Insert một bản ghi vào bảng Dangky nếu Hocky>10 hoặc <0 thì không được phép Insert (dùng lệnh ROLLBACK TRAN)
  • Bài 3. Hãy viết trigger để tự động kiểm tra khi Insert một bản ghi vào bảng Dangky nếu Mã môn học không có trong bảng Monhoc thì không được phép Insert (dùng lệnh ROLLBACK TRAN)
  • Bài 4. Hãy viết trigger để tự động kiểm tra khi Delete một bản ghi ở bảng Monhoc, nếu Môn học đó đã được Sinh viên đăng ký thì không được phép Delete (dùng lệnh ROLLBACK TRAN)
  • Bài 5. Hãy viết trigger để tự động xóa tất cả Sinh viên của 1 lớp khi Delete một bản ghi ở bảng Lop tương ứng với lớp đó.
  • Bài 6. Hãy viết trigger để tự động cập nhật lại Mã lớp của tất cả Sinh viên của 1 lớp khi Update lại mã lớp của bản ghi tương ứng với lớp đó ở bảng Lop.
  • Bài 7. Hãy viết trigger để tự động cập nhật lại Số SV (cộng thêm 1) của 1 lớp ở bảng Lớp khi thêm 1 sinh viên của lớp đó vào bảng Sinhvien. Tương tự viết Trigger cho trường hợp xóa 1 SV khỏi bảng Sinhvien.

thank cả nhà

2 Likes

@ltd @tuancoi2506 các anh giúp em với nhé !!! thank ạk

em có thẻ tạo bảng và dữ liệu mẫu trước không em. Vậy sẽ nhanh hơn đó em.

em tạo rồi ak giờ xuất ra post len ha anh

Đây là trang web cơ bản cho những ai muốn học SQL
http://www.w3schools.com/sql/

1 Like

đây anh ơi cái này nhìn trực quan chưa anh

e taoj file script hay file .bak rồi đưa lên e

Hi @vanhop, câu hỏi của em dài quá, em tách ra thành từng phần nhỏ để hỏi. Em post cả bài tập lên thế kia khó mà giải hết cùng một lúc được.

Trong diễn đàn cũng có nhiều bạn đi làm (giống anh và @tuancoi2506 và nhiều người khác nữa). Em có thể chờ đến tối hoặc bạn nào có thời gian sẽ giúp em. Mà hôm nay anh bận tí :smile:

4 Likes

a đợi em chút ! em khong upload lên được

vâng em ! em post bai lên làm dần anh ak hj

a ơi sao phần upload các file lên diễn đàn khó và chọn lọc thế ak : vd nhu file pdf và word không tải len được

Hiện anh chỉ hỗ trợ các định dạng file hình ảnh thôi. Các định dạng file khac em up lên host ở ngoài như mediafire, dropbox, … Vì upload các định dạng file khác sẽ chiếm hết dung lượng lưu trữ của diễn đàn.

1 Like

em chưa uploat lên được ak , vì em xuất ra word mà không up lên được đang đổi dduoi để tải lên

Bây giờ em nên phân tích bài tập của em thành nhiều câu hỏi nhỏ, rồi em đặt câu hỏi để đó. Buổi tối sẽ có người vào xem cho em. Hơn là em đặt một câu hỏi bài tập mà không có cho biết em đã làm gì, em muốn làm gì, và em sẽ làm gì.

1 Like

anh ơi link fshare đây ạ http://www.fshare.vn/file/T2184HZK5E/

em muốn hỏi câu 1 ấy muốn viết 1 function tách tên sinh viên thì phải làm cách nào ạ !
em ngĩ nên dung hàm right trong sql nhưng chưa biết diễ đạt ý tương như thế nào

vấn đề của em nằm ở câu 1 chưa biết phải đi thế nào ?
muốn tách tên sinh viên thì dùng hàm cắt chuổi bên phải nhưng cắt thế nào em vẫn chưa áp dụng được

1 Like

có j trưa gỉ giữa giờ a giúp nhé e, h a đang bận tý

1 Like

vâng buye anh nhé !!! hi

Mình nghĩ bn nên đọc cái notice ở cuối trang này trước. Phần lớn những người có thể giải đáp cho bạn thì họ đã đi làm, không có nhiều thời gian. Mình nghĩ bạn nên đưa ra một vấn đề thảo luận thì tốt hơn là hỏi cách làm bài tập

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?