Bài tập ORACLE DANH SÁCH SINH VIÊN TRÚNG TRUYỂN

 Bài tập ORACLE DANH SÁCH SINH VIÊN TRÚNG TRUYỂN


  1. Tạo bảng (các bảng) để lưu trữ dữ liệu như dưới đây. Suy nghĩ các ràng buộc, biểu thức chính quy,…

  1. Insert dữ liệu vào như trên

  2. Viết hàm trả về mã SV và họ tên Sv có điểm cao nhất ngành CNTT CTCLC

  3. Viết thủ tục cập nhật ngành trúng tuyển cho một MSSV nào đó

  4. Viết trigger để lưu vết người dùng sửa dữ liệu điểm

----
BÀI LÀM


---CÂU 1 - 2---
 Các bạn tạo bảng tạo ràng buộc và thêm dữ liệu vào bảng.
---CAU 3-----
SELECT*FROM TRUNGTUYEN;
----------------
CREATE OR REPLACE FUNCTION nganh(tennganh trungtuyen.nganhtt%type)
return NVARCHAR2
AS
    HOTEN trungtuyen.hoten%TYPE;
    MSSV trungtuyen.mssv%TYPE;
BEGIN
    SELECT hoTen,mssv INTO HOTEN, MSSV FROM TRUNGTUYEN 
    where diem IN (SELECT MAX(DIEM) FROM TRUNGTUYEN WHERE NGANHTT=tennganh);
    return concat(hoten,mssv);
END;
-----THUC THI LENH -----
SET SERVEROUTPUT ON;
DECLARE 
    KETQUA TRUNGTUYEN.NGANHTT%TYPE;
BEGIN
    KETQUA:=NGANH('Công nghệ thông tin - CTCLC');
    DBMS_OUTPUT.PUT_LINE('THONG_TIN THI SINH CO DIEM CAO NHAT MSSV VA KET QUA LA: ' ||ketqua);

END;

---CÂU 4--- CREATE OR REPLACE PROCEDURE UPDATE_NGANH(Mss_v TRUNGTUYEN.mssv%TYPE,nganh NVARCHAR2) Is BEGIN UPDATE TRUNGTUYEN SET nganhtt=nganh where mssv=Mss_v; COMMIT; END; EXECUTE UPDATE_NGANH('B2012598','Hệ thống thông tin');
--- CÂU 5--- CREATE TABLE CHANGE_POINT( USERNAME NVARCHAR2(100), THOIGIAN DATE, MSSV CHAR(8), OLD_DIEM NUMBER, NEW_DIEM NUMBER ); CREATE OR REPLACE TRIGGER store_change_point AFTER UPDATE ON TRUNGTUYEN FOR EACH ROW BEGIN INSERT INTO CHANGE_POINT(USERNAME, THOIGIAN, MSSV, OLD_DIEM, NEW_DIEM) VALUES(USER, SYSDATE, :NEW.MSSV,:OLD.DIEM, :NEW.DIEM ); END; --THUC THI THAY DOI DIEM ---- UPDATE TRUNGTUYEN SET DIEM=29.5 WHERE MSSV='B2012598'; -----XEM NGUOI DUNG CAP NHAT----- SELECT*FROM CHANGE_POINT;