实验七 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自…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
C# WPF 左右布局实现学习笔记(1)
开发流程视频: https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码: GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用(.NET Framework) 2.…...
