Bài tập ORACLE DANH SÁCH SINH VIÊN TRÚNG TRUYỂN
- 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,… 
- Insert dữ liệu vào như trên 
- Viết hàm trả về mã SV và họ tên Sv có điểm cao nhất ngành CNTT CTCLC 
- Viết thủ tục cập nhật ngành trúng tuyển cho một MSSV nào đó 
- 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;