实验七 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、如何实现多线程交替打印字母和数字ÿ…...
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 ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数…...
如何为 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通信,但是当时我们服务器启动的时候,都是以前台进程的方式启动的,这样很不优雅,…...
安卓开发--按键跳转页面,按键按下变色
前面已经介绍了一个空白按键工程的建立以及响应方式,可以参考这里:安卓开发–新建工程,新建虚拟手机,按键事件响应。 安卓开发是页面跳转是基础!!!所以本篇博客介绍利用按键实现页面跳转&#…...
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,大概…...