用oracle写一个关于图书管理系统带有一个函数以及触发命令
时间: 2024-03-26 15:34:47 浏览: 20
好的,下面是一个简单的 Oracle SQL 脚本,实现了一个基本的图书管理系统,并带有一个函数和一个触发器:
```sql
-- 创建图书表
CREATE TABLE books (
id NUMBER PRIMARY KEY,
title VARCHAR2(100) NOT NULL,
author VARCHAR2(50) NOT NULL,
publish_date DATE,
price NUMBER(8, 2) NOT NULL
);
-- 创建借阅历史表
CREATE TABLE borrow_history (
id NUMBER PRIMARY KEY,
book_id NUMBER NOT NULL,
borrower VARCHAR2(50) NOT NULL,
borrow_date DATE NOT NULL,
return_date DATE,
FOREIGN KEY (book_id) REFERENCES books(id)
);
-- 创建一个函数,用于查询某个作者的图书数量
CREATE OR REPLACE FUNCTION count_books_by_author(auth VARCHAR2) RETURN NUMBER IS
cnt NUMBER;
BEGIN
SELECT COUNT(*) INTO cnt FROM books WHERE author = auth;
RETURN cnt;
END;
-- 创建一个触发器,用于在借阅历史表中插入记录时,更新图书表中的借阅次数
CREATE OR REPLACE TRIGGER update_borrow_count
AFTER INSERT ON borrow_history
FOR EACH ROW
BEGIN
UPDATE books SET borrow_count = borrow_count + 1 WHERE id = :new.book_id;
END;
```
这个脚本创建了两个表,一个用于存储图书信息,另一个用于存储借阅历史。还创建了一个函数,用于查询某个作者的图书数量。最后,创建了一个触发器,用于在借阅历史表中插入记录时,更新图书表中的借阅次数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)