当前位置: 首页 > news >正文

实验七 SJK数据库定义与操纵

实验题目

实验七 SJK数据库定义与操纵

实验时间

2023.5.17

实验地点

软件工程基础实验室

实验课时

2

实验目的

​了解并掌握数据库定义与操纵的知识并能熟练应用

实验要求

​熟练掌握和使用PL-SQL建立数据库基本表,使用PL/SQL developer操作数据库,熟练掌握SQL 建立关系,及增删改数据

实验步骤

及内

1、创建表

(1)创建图书分类表

CREATE TABLE 图书分类

(

图书分类号 VARCHAR(100) PRIMARY KEY,

类名 VARCHAR(100) NOT NULL

);

(2)创建书目表

CREATE TABLE 书目

(

ISBN VARCHAR(100) PRIMARY KEY,

书名 VARCHAR(100) NOT NULL,

作者 VARCHAR(100) NOT NULL,

出版单位 VARCHAR(100) NOT NULL,

单价 DECIMAL(8,2) NOT NULL,

图书分类号 VARCHAR(100) REFERENCES 图书分类(图书分类号)

);

(3)创建图书表

CREATE TABLE 图书

(

图书编号 VARCHAR(100) PRIMARY KEY,

ISBN VARCHAR(100) REFERENCES 书目(ISBN),

是否借出 VARCHAR(100) NOT NULL,

备注 VARCHAR(100)

);

(4)创建读者表

CREATE TABLE 读者

(

借书证号 VARCHAR(100) PRIMARY KEY,

姓名 VARCHAR(100) NOT NULL,

单位 VARCHAR(100) NOT NULL,

性别 VARCHAR(100) NOT NULL,

地址 VARCHAR(100) NOT NULL,

联系电话 VARCHAR(100) NOT NULL,

身份证编号 VARCHAR(100) NOT NULL

);

(5)创建罚款分类表

CREATE TABLE 罚款分类

(

罚款分类号 VARCHAR(100) PRIMARY KEY,

罚款名称 VARCHAR(100) NOT NULL,

罚金 INT NOT NULL

);

(6)创建借阅表

CREATE TABLE 借阅

(

借阅流水号 VARCHAR(100) PRIMARY KEY,

借书证号 VARCHAR(100) REFERENCES 读者(借书证号),

图书编号 VARCHAR(100) REFERENCES 图书(图书编号),

借书日期 DATE,

归还日期 DATE,

罚款分类号 VARCHAR(100) REFERENCES 罚款分类(罚款分类号),

备注 VARCHAR(100)

);

(7)创建预约表

CREATE TABLE 预约

(

预约流水号 VARCHAR(100) PRIMARY KEY,

借书证号 VARCHAR(100) REFERENCES 读者(借书证号),

ISBN VARCHAR(100) REFERENCES 书目(ISBN),

预约时间 DATE

);

2、插入数据

(1)插入图书分类数据

INSERT INTO 图书分类 VALUES(‘100’,‘文学’);

INSERT INTO 图书分类 VALUES(‘200’,‘科技’);

INSERT INTO 图书分类 VALUES(‘300’,‘哲学’);

commit;

(2)插入书目数据

INSERT INTO 书目 VALUES(‘7040195836’,‘数据库系统概论’,‘王珊’,‘高等教育出版社’,39.00,‘200’);

INSERT INTO 书目 VALUES(‘9787508040110’,‘红楼梦’,‘曹雪芹’,‘人民出版社’,20.00,‘100’);

INSERT INTO 书目 VALUES(‘9787506336239’,‘红楼梦’,‘曹雪芹’,‘作家出版社’,34.30,‘100’);

INSERT INTO 书目 VALUES(‘9787010073750’,‘心学之路’,‘张立文’,‘人民出版社’,33.80,‘300’);

commit;

(3)插入图书数据

INSERT INTO 图书 VALUES(‘2001231’,‘7040195836’,‘否’,’’);

INSERT INTO 图书 VALUES(‘2001232’,‘7040195836’,‘是’,’’);

INSERT INTO 图书 VALUES(‘1005050’,‘9787506336239’,‘否’,’’);

INSERT INTO 图书 VALUES(‘1005063’,‘9787508040110’,‘是’,’’);

INSERT INTO 图书 VALUES(‘3007071’,‘9787010073750’,‘是’,’’);

commit;

(4)插入读者数据

INSERT INTO 读者 VALUES(‘20051001’,‘王菲’,‘四川绵阳西科大计算机学院’,‘女’,‘西南科技大学’,‘12345678911’,‘431126199910030001’);

INSERT INTO 读者 VALUES(‘20062001’,‘张江’,‘四川绵阳中心医院’,‘男’,‘西南科技大学’,‘12345678912’,‘431126199910030002’);

INSERT INTO 读者 VALUES(‘20061234’,‘郭敬明’,‘四川江油305’,‘男’,‘西南科技大学’,‘12345678913’,‘431126199910030003’);

INSERT INTO 读者 VALUES(‘20071235’,‘李晓明’,‘四川成都工商银行’,‘男’,‘西南科技大学’,‘12345678914’,‘431126199910030004’);

INSERT INTO 读者 VALUES(‘20081237’,‘赵鑫’,‘四川成都工商银行’,‘女’,‘西南科技大学’,‘12345678915’,‘431126199910030005’);

commit;

(5)插入罚款分类数据

INSERT INTO 罚款分类 VALUES(‘1’,‘延期’,10);

INSERT INTO 罚款分类 VALUES(‘2’,‘损坏’,20);

INSERT INTO 罚款分类 VALUES(‘3’,‘丢失’,30);

commit;

(6)插入借阅数据

INSERT INTO 借阅 VALUES(‘1’,‘20081237’,‘3007071’,TO_DATE(‘2010/09/19’,‘yyyy/mm/dd’),TO_DATE(‘2010/09/20’,‘yyyy/mm/dd’),’’,’’);

INSERT INTO 借阅 VALUES(‘2’,‘20071235’,‘1005063’,TO_DATE(‘2010/10/20’,‘yyyy/mm/dd’),TO_DATE(‘2011/02/20’,‘yyyy/mm/dd’),‘1’,’’);

INSERT INTO 借阅 VALUES(‘3’,‘20071235’,‘2001232’,TO_DATE(‘2011/09/01’,‘yyyy/mm/dd’),’’,’’,’’);

INSERT INTO 借阅 VALUES(‘4’,‘20061234’,‘1005063’,TO_DATE(‘2011/9/20’,‘yyyy/mm/dd’),’’,’’,’’);

INSERT INTO 借阅 VALUES(‘5’,‘20051001’,‘3007071’,TO_DATE(‘2011/9/10’,‘yyyy/mm/dd’),’’,’’,’’);

INSERT INTO 借阅 VALUES(‘6’,‘20071235’,‘1005050’,TO_DATE(‘2011/10/20’,‘yyyy/mm/dd’),TO_DATE(‘2012/02/20’,‘yyyy/mm/dd’),‘1’,’’);

commit;

(7)插入预约数据

INSERT INTO 预约 VALUES(‘1’,‘20081237’,‘9787508040110’,TO_DATE(‘2011/09/11’,‘yyyy/mm/dd’));

commit;

3、修改表

(1)修改修改读者表

ALTER TABLE 读者 MODIFY(联系电话 VARCHAR(11) CHECK(LENGTH(联系电话)=11));

ALTER TABLE 读者 MODIFY(身份证编号 VARCHAR(18) CHECK((LENGTH(身份证编号)=18) AND REGEXP_LIKE(身份证编号,’1{10}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}[0-9,x]{4}$’)));

(2)修改修改图书表

ALTER TABLE 图书 MODIFY(是否借出 VARCHAR(2) CHECK(是否借出=‘是’ OR 是否借出=‘否’));

(3)修改借阅表

ALTER TABLE 借阅 MODIFY(借书日期 DATE NOT NULL);

4、修改数据

UPDATE 图书分类 SET 类名=‘思想’ WHERE 类名=‘哲学’;

5、删除数据

DELETE FROM 借阅 WHERE 借阅流水号=‘6’;

6、删除表

DROP TABLE 预约;

DROP TABLE 借阅;

DROP TABLE 罚款分类;

DROP TABLE 读者;

DROP TABLE 图书;

DROP TABLE 书目;

DROP TABLE 图书分类

实验结果及分析

经检验,实验基本达到预期效果。通过本次实验,学会了PLSQL的使用,熟练的掌握了使用SQL语句对数据库表的增删改操作和数据的增删改操作,以及CHECK对数据的约束方法和REGEXP_LIKE正则匹配,对数据库有了更加直观的体会和感悟。对数据库的设计和完整性约束有了更加深刻的认识,数据库设计必须严谨,数据约束要规范,创建表示要先确定表创建的顺序。

相关文章:

实验七 SJK数据库定义与操纵

实验题目 实验七 SJK数据库定义与操纵 实验时间 2023.5.17 实验地点 软件工程基础实验室 实验课时 2 实验目的 ​了解并掌握数据库定义与操纵的知识并能熟练应用 实验要求 ​熟练掌握和使用PL-SQL建立数据库基本表,使用PL/SQL developer操作数据库&a…...

Win10环境下yolov8快速配置与测试-详细

0.0 说明 参考黄家驹的Win10 环境下YOLO V8部署,遇到一些问题,并解决实现,记录如下: 斜线字体是原博客中的创作 0.1 参考链接 https://blog.csdn.net/m0_72734364/article/details/128865904 1 Windows10下yolov8 tensorrt模型加速部署 …...

C++面向对象学习笔记一

本文阅读下述文章,顺手记录学习《C面向对象程序设计》✍千处细节、万字总结(建议收藏)_c面向对象程序设计千处细节-CSDN博客 目录 前言 正文 浅拷贝和深拷贝 向函数传递对象 静态数据成员和静态成员函数 友元 友元函数 1、将非成员函数声明…...

C++容器之vector类

目录 1.vector的介绍及使用1.1vector的介绍1.2vector的使用1.2.1 vector的定义1.2.2 vector iterator 的使用1.2.3 vector 空间增长问题1.2.4 vector 增删查改1.2.5vector 迭代器失效问题1.2.6 vector 在OJ中的使用。 2.vector深度剖析及模拟实现2.1 std::vector的核心框架接口…...

什么是MVCC?

MVCC是一种数据库的并发控制策略,就是为了解决多个用户同时访问数据库修改同一数据所造成的问题,如何解决这个问题了? 就是通过创建同一个数据的不同的版本,通过创建时间的不同,最后进行数据合并,其就不用给数据库上锁了,其实数据库的锁,虽然说InnoDB已经非常牛逼了,可以使用行…...

数据结构队列学习

引入 众说周知,在队列的题目中,队头指针(front)和队尾指针(rear)有两种指示方法。 (1)队头指针 ①指向队头元素 ②指向队头元素元素的前一个位置 (2)队尾指针 ①指向队尾元素 ②指向队尾元素的后一个位置 指…...

Javaweb第五次作业

poet数据库sql语言 create table poet(id int unsigned primary key auto_increment comment ID,name varchar(10) not null comment 姓名,gender tinyint unsigned not null comment 性别, 说明: 1 男, 2 女,dynasty varchar(10) not null comment朝代,title varchar(20) not…...

BetterMouse for Mac激活版:鼠标增强软件

BetterMouse for Mac是一款鼠标增强软件,旨在取代笨重的、侵入性的和耗费资源的鼠标驱动程序,如罗技选项。它功能丰富,重量轻,效率优化,而且完全隐私安全,试图满足你在MacOS上使用第三方鼠标的所有需求。 B…...

红米1s 刷入魔趣 (Mokee)ROM(Android 7.1)

目录 背景准备工具硬件(自己准备)软件(我会在文末提供链接) 刷机步骤1. 重启电脑2. 安装驱动3. 刷入TWRP4. 清空数据5. 刷入魔趣6. 开机 结尾下载链接 本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 B…...

MySQL中的事务隔离级别

事务隔离级别 未提交读(Read uncommitted)是最低的隔离级别。通过名字我们就可以知道,在这种事务隔离级别下,一个事务可以读到另外一个事务未提交的数据。这种隔离级别下会存在幻读、不可重复读和脏读的问题。提交读(Read committed)也可以翻译成读已提交…...

多线程应用实战

文章目录 1、如何实现多线程交替打印字母和数字,打印效果:A1B2C3D4...AutomicBlockingQueueReentrantLockLockSupportSynchronizedWaitNotifyTransferQueueWay 2、实现多个线程顺序打印abc3、实现阻塞队列 1、如何实现多线程交替打印字母和数字&#xff…...

selenium解放双手--记某电力学校的刷课脚本

免责声明:本文仅做技术交流与学习... 重难点: 1-对目标网站的html框架具有很好的了解,定位元素,精准打击. 2-自动化过程中窗口操作的转换. 前置知识: python--selenium模块的操作使用 前端的html代码 验证码自动化操作 Chrome & Chromedriver : Chrome for Testing ava…...

JDK 17有可能代替 JDK 8 吗

不好说,去 Oracle 化是很多公司逐步推进的政策。 JVM 有 OpenJ9。很多公司可能会用 IBM 的版本。 JDK 这东西,能用就不会升级。 JDK 太基础了,决定了后面的很多 jar 的版本。 https://www.ossez.com/t/jdk-17-jdk-8/14102...

代码随想录算法训练营第36期DAY23

DAY23 530二叉搜索树的最小绝对差 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(null…...

Leetcode 3128. Right Triangles

Leetcode 3128. Right Triangles 1. 解题思路2. 代码实现 题目链接:3128. Right Triangles 1. 解题思路 这一题的话对于任意一个位置,如果该位置为1,假设其所在行中1的个数 r i r_i ri​,所在列中1的个数为 c j c_j cj​&#…...

力扣经典150题第五十三题:基本计算器

目录 力扣经典150题第五十六题:基本计算器示例提示解题思路 力扣经典150题第五十六题:基本计算器 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数&#xf…...

如何为 Nestjs 编写单元测试和 E2E 测试

前言 最近在给一个 nestjs 项目写单元测试(Unit Testing)和 e2e 测试(End-to-End Testing,端到端测试,简称 e2e 测试),这是我第一次给后端项目写测试,发现和之前给前端项目写测试还…...

基于Python的LSTM网络实现单特征预测回归任务(TensorFlow)

单特征:数据集中只包含2列,时间列价格列,仅利用价格来预测价格 目录 一、数据集 二、任务目标 三、代码实现 1、从本地路径中读取数据文件 2、数据归一化 3、创建配置类,将LSTM的各个超参数声明为变量,便于后续…...

Spring - 8 ( 10000 字 Spring 入门级教程 )

一: MyBatis 1.1 引入 MyBatis 我们学习 MySQL 数据库时,已经学习了 JDBC 来操作数据库, 但是 JDBC 操作太复杂了. 我们先来回顾⼀下 JDBC 的操作流程: 创建数据库连接池 DataSource通过 DataSource 获取数据库连接 Connection编写要执行带 ? 占位符…...

鸿蒙内核源码分析(忍者ninja篇) | 都忍者了能不快吗

ninja | 忍者 ninja是一个叫 Evan Martin的谷歌工程师开源的一个自定义的构建系统,最早是用于 chrome的构建,Martin给它取名 ninja(忍者)的原因是因为它strikes quickly(快速出击).这是忍者的特点,可惜Martin不了解中国文化,不然叫小李飞刀更合适些.究竟有多块呢? 用Martin自…...

Linux——守护进程化(独立于用户会话的进程)

目录 前言 一、进程组ID与会话ID 二、setsid() 创建新会话 三、daemon 守护进程 前言 在之前,我们学习过socket编程中的udp通信与tcp通信,但是当时我们服务器启动的时候,都是以前台进程的方式启动的,这样很不优雅&#xff0c…...

安卓开发--按键跳转页面,按键按下变色

前面已经介绍了一个空白按键工程的建立以及响应方式,可以参考这里:安卓开发–新建工程,新建虚拟手机,按键事件响应。 安卓开发是页面跳转是基础!!!所以本篇博客介绍利用按键实现页面跳转&#…...

Ps基础学习笔记

Ps基础学习笔记 Adobe Photoshop(简称Ps)是一款非常流行的图像处理软件,被广泛应用于图像编辑、修饰和设计等领域。作为一名初学者,了解Ps的基础知识是非常重要的,本文将介绍Ps的基本操作和常用工具,帮助你…...

spring开发问题总结(持续更新)

开始 最近在做项目的时候,总遇到一些大小不一,奇形怪状的问题。 现在终于有时间来总结一下遇到的问题,以备复习之用。 以下提到的问题经过简化,不代表任何项目代码或问题。 问题1:未完成任务状态搜索结果有误&#x…...

Android 状态栏WiFi图标的显示逻辑

1. 状态栏信号图标 1.1 WIFI信号显示 WIFI信号在状态栏的显示如下图所示 当WiFi状态为关闭时,状态栏不会有任何显示。当WiFi状态打开时,会如上图所示,左侧表示有可用WiFi,右侧表示当前WiFi打开但未连接。 当WiFi状态连接时&#x…...

更改 DeepXDE 的后端

DeepXDE 库为科学计算和工程优化等领域提供了深度学习方法,是一个非常有用的工具。其中一个重要的功能是它允许用户自定义后端。在本文中,我们将指导如何更改 DeepXDE 的后端,并且验证更改是否成功。 更改 DeepXDE 的后端 DeepXDE 支持多种…...

SpringBoot之Zuul服务

概述 Spring Cloud Netflix zuul组件是微服务架构中的网关组件,Zuul作为统一网关,是所有访问该平台的请求入口,核心功能是路由和过滤。 目前公司业务就是基于Zuul搭建的网关服务,且提供的服务包括转发请求(路由)、黑名单IP访问拦截、URL资源访问时的权限拦截、统一访问日志记…...

Go-变量

可以理解为一个昵称 以后这个昵称就代指这些信息 var sg string "czy" 声明赋值 package mainimport "fmt"func main() {var sg string "陈政洋"fmt.Println(sg)var age int 73fmt.Println(age)var flag bool truefmt.Println(flag) } …...

【CTF-Crypto】RSA-选择明密文攻击 一文通

RSA:选择明密文攻击 关于选择明/密文攻击,其实这一般是打一套组合拳的,在网上找到了利用的思路,感觉下面这个题目是真正将这个问题实现了,所以还是非常棒的一道题,下面先了解一下该知识点:(来自…...

Pytorch基础:torch.expand() 和 torch.repeat()

在torch中,如果要改变某一个tensor的维度,可以利用view、expand、repeat、transpose和permute等方法,这里对这些方法的一些容易混淆的地方做个总结。 expand和repeat函数是pytorch中常用于进行张量数据复制和维度扩展的函数,但其…...

怎样做元古建筑的网站结构图/如何推广产品

1表单是一个包含表单元素的区域。表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。表单使用表单标签 来设置:写法为;用户名密码复选框单选框隐藏框下拉列表框打开文件重置提交2 frame框架的…...

商业网站建设视频教程/如何编写一个网站

DFT_MON_STMT:语句监视器(用于动态 SQL) DFT_MON_TABLE:表监视器 DFT_MON_LOCK:锁监视器 DFT_MON_BUFPOOL:缓冲池监视器 DFT_MON_SORT:排序监视器 DFT_MON_UOW:工作单元信息 DFT_MON…...

福州做网站建设服务商/互联网营销师证书怎么考多少钱

大数据预计市场将在2020美元之间达到2030亿美元,迄今取得的进展与预测完全同步。虽然现在的企业正努力在这些高度竞争的环境中巩固自己的地位,但新兴技术最终赢得了他们应有的利益,并且正在逐渐地发挥自己的潜力。营销一直是一个灵活的领域&a…...

高中生做网站网页/关键词免费下载

2019独角兽企业重金招聘Python工程师标准>>> 一、首先要理解http-only模式意味着什么 网上已经有一堆相关资料了,这里只说明Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换…...

腾讯公告最新官方消息/搜索引擎优化策略有哪些

今天,我们开始学习运维自动化工具Ansible。 一、Ansible原理 1.1 什么是Ansible Ansible一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台/框架。基于Python语言实现,核心模块包括:jinja2、PyYAML和paramiko。Ansible允许重复…...

wordpress提交内容表格/策划方案模板

今天为多进程采集写了一个任务调度的程序,然后写了一个测试代码,取得任务之后用error_log写下进程号、任务ID就继续取下一个任务。开了10个进程进行测试,每次100000条任务,实际上打出来的error_log总是不到100000,大概…...