thi oracle BaithuchanhORACLE so 3 tai truong dai hoc sai gon

5 12 0
  • Loading ...
1/5 trang

Thông tin tài liệu

Ngày đăng: 15/04/2018, 23:58

Create table LOAI ( MALOAI Number NOT NULL, TENLOAI NVarchar2(50), primary key (MALOAI) ); Create table SANPHAM ( MASP Number NOT NULL, TENSP NVarchar2(50) unique, MALOAI Number NOT NULL, primary key (MASP) ); Create table NHANVIEN ( MANV Varchar2 (4) NOT NULL, HOTEN NVarchar2(50), NGAYSINH Date, PHAI NVarchar2(10) check (PHAI in ('Nam', 'Nữ')), primary key (MANV) ); Create table PHIEUXUAT ( MAPX Number NOT NULL, NGAYLAP Date, MANV Varchar2 (4) NOT NULL, primary key (MAPX) ); Create table CHITIETXUAT ( MAPX Number NOT NULL, MASP Number NOT NULL, SOLUONG Number, primary key (MASP,MAPX) ); Định nghĩa khóa ngoại: Alter table SANPHAM add foreign key (MALOAI) references LOAI (MALOAI); Alter table PHIEUXUAT add foreign key (MANV) references NHANVIEN (MANV); Alter table CHITIETXUAT add foreign key (MAPX) references PHIEUXUAT (MAPX); Alter table CHITIETXUAT add foreign key (MASP) references SANPHAM (MASP); -INSERT INTO LOAI (MALOAI, TENLOAI) VALUES (1, 'Vật liệu xây dựng'); INSERT INTO LOAI (MALOAI, TENLOAI) VALUES (2, 'Hàng tiêu dùng'); INSERT INTO LOAI (MALOAI, TENLOAI) VALUES (3, 'Ngũ cốc'); -INSERT INTO SANPHAM (MASP, TENSP, MALOAI) VALUES (1, 'Xi măng', 1); INSERT INTO SANPHAM (MASP, TENSP, MALOAI) VALUES (2, 'Gạch', 1); INSERT INTO SANPHAM (MASP, TENSP, MALOAI) VALUES (3, 'Gạo nàng hương', 3); INSERT INTO SANPHAM (MASP, TENSP, MALOAI) VALUES (4, 'Bột mì', 3); INSERT INTO SANPHAM (MASP, TENSP, MALOAI) VALUES (5, 'Kệ chén', 2); INSERT INTO SANPHAM (MASP, TENSP, MALOAI) VALUES (6, 'Đậu xanh', 3); -INSERT INTO NHANVIEN (MANV, HOTEN, NGAYSINH, PHAI) VALUES ('NV01', 'Nguyễn Mai Thi', TO_DATE('15/05/1982','DD/MM/YYYY'), 'Nữ'); INSERT INTO NHANVIEN (MANV, HOTEN, NGAYSINH, PHAI) VALUES ('NV02', 'Trần Đình Chiến',TO_DATE( '02/12/1980','DD/MM/YYYY') ,'Nam'); INSERT INTO NHANVIEN (MANV, HOTEN, NGAYSINH, PHAI) VALUES ('NV03', 'Lê Thế Chi',TO_DATE( '23/01/1979','DD/MM/YYYY'), 'Nữ'); Trước nhập dl cho Phiếu xuất, phải sequence có STT tự động tăng trước: INSERT INTO PHIEUXUAT (NGAYLAP, MANV) VALUES (TO_DATE('12/03/2015','DD/MM/YYYY') ,'NV01'); INSERT INTO PHIEUXUAT (NGAYLAP, MANV) VALUES (TO_DATE('03/02/2016','DD/MM/YYYY'), 'NV02'); INSERT INTO PHIEUXUAT (NGAYLAP, MANV) VALUES (TO_DATE('01/06/2016','DD/MM/YYYY'), 'NV03'); INSERT INTO PHIEUXUAT (NGAYLAP, MANV) VALUES (TO_DATE('16/06/2016','DD/MM/YYYY'), 'NV01'); -INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (1, 1, 10); INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (1, 2, 15); INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (1, 3, 5); INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (2, 2, 20); INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (3, 1, 20); INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (3, 3, 25); INSERT INTO CHITIETXUAT (MAPX, MASP, SOLUONG) VALUES (4, 5, 12); Trigger kiểm tra ngày sinh: SET SERVEROUTPUT ON; -CREATE or REPLACE TRIGGER KT_Ngay_sinh BEFORE INSERT OR UPDATE ON NHANVIEN FOR EACH ROW declare NS date; BEGIN select :NEW.NGAYSINH into NS from dual; if ((sysdate-NS)/365)55 then RAISE_APPLICATION_ERROR (-20500, 'Tuổi phải khoảng [18, 55]'); end if; END; Tạo Sequence tăng STT tự động: CREATE SEQUENCE STT START WITH INCREMENT BY MINVALUE MAXVALUE 10000 NOCYCLE; Tạo trigger cho phép tăng Mă phiếu xuất tự động cách gọi Sequence: CREATE or REPLACE TRIGGER MAPX_Tang_tu_dong BEFORE INSERT ON PHIEUXUAT FOR EACH ROW BEGIN select STT.NextVal into :NEW.MAPX from dual; END; create or replace function F1(Ten nvarchar2, Nam number) return number as SLXuat number; begin SLXuat:=NULL; select sum(nvl (SOLUONG,0)) into SLXuat from SANPHAM S, CHITIETXUAT C, PHIEUXUAT P where S.MASP=C.MASP and C.MAPX=P.MAPX and TENSP like Ten and extract(year from NGAYLAP)=Nam group by C.MASP; if (SLXuat = 0) then SLXuat:=0; end if; return SLXuat; end; Test select F1('Xi măng', 2016) from dual; select F1('Xi măng', 2018) from dual; select sum(nvl(SOLUONG,0)) AS SOLUONG from SANPHAM S, CHITIETXUAT C, PHIEUXUAT P where S.MASP=C.MASP and C.MAPX=P.MAPX and TENSP like 'Xi măng' and extract(year from NGAYLAP)=2016 group by C.MASP; ... 'Đậu xanh', 3); -INSERT INTO NHANVIEN (MANV, HOTEN, NGAYSINH, PHAI) VALUES ('NV01', 'Nguyễn Mai Thi' , TO_DATE('15/05/1982','DD/MM/YYYY'), 'Nữ'); INSERT INTO NHANVIEN (MANV, HOTEN, NGAYSINH, PHAI)
- Xem thêm -

Xem thêm: thi oracle BaithuchanhORACLE so 3 tai truong dai hoc sai gon, thi oracle BaithuchanhORACLE so 3 tai truong dai hoc sai gon

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay