MySQL数据库实验三

news2024/12/27 22:06:39

本文承接前面的俩次实验基础上完成,不过实现的都是基础操作的练习

目录

目录

前言

实验目的

实验要求

实验内容及步骤

updata操作

delete操作 

alter操作

添加列

删除列

修改列的数据类型

要求实现

实验结果

代码结果

注意事项

思考题

总结


前言

本文是MySQL数据库的简单操作的练习实验,掌握基本的sql练习。了解数据库的维护操作,包含数据的插入、检索、修改,掌握MySQL 中用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。


实验目的

要求学生熟练使用和掌握数据库的维护操作,包含数据的插入、检索、修改,掌握MySQL 中用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。

实验要求

1. 将B5的单价改为6.00元

2. 删去图书B2及的单价改为6.00元

3. 修改江苏新华书店的图书的数量为50

4. 为图书发行LBS表的QTY字段设计CHECK约束:  0<QTY<100

5. 将(B6,人工智能库论,4.5)加入图书B

6. 实现对LBS表的操作权限管理的使用。

实验内容及步骤

updata操作

UPDATE table_name  
SET column1 = value1, column2 = value2, ...  
WHERE condition;

delete操作 

DELETE FROM table_name  
WHERE condition;

alter操作

添加列

ALTER TABLE students  
ADD email VARCHAR(255);
-- 例子
ALTER TABLE students  
ADD email VARCHAR(255);

删除列

ALTER TABLE table_name  
DROP COLUMN column_name;
-- 例子
ALTER TABLE students  
DROP COLUMN email;

修改列的数据类型

ALTER TABLE table_name  
MODIFY COLUMN column_name new_datatype;
-- 例子
ALTER TABLE students 
MODIFY COLUMN age SMALLINT;

这里只枚举了alter几个作用,alter实际上还有很多功能可以使用。 

要求实现

1. 将B5的单价改为6.00元
只要直接在B表中使用UPDATE修改对应B5的价格即可

-- 将B5的单价改为6.00元
select * from b;
UPDATE B SET PRICE = 6.00 WHERE BNO = 'B5';

2. 删去图书B2及的单价改为6.00元

首先,删除图书B2的发行记录(因为可能存在外键约束,需要先删除外键表中的数据),然后,删除图书B2的记录.

-- 删去图书B2及相应的发行记录
DELETE FROM LBS WHERE BNO = 'B2';
select *from lbs;
DELETE FROM B WHERE BNO = 'B2';
select *from b;

3. 修改江苏新华书店的图书的数量为50

由于图书数量只在LBS表中,而江苏新华书店只在S表中,我们在使用updata更改LBS中数量数据前,要用sno来使俩个表产生链接,找到对应需要修改的数据

-- 修改江苏新华书店的图书的数量为50
select * from S;
select * from LBS;
SELECT SNO FROM S WHERE SNAME = '江苏新华书店';
UPDATE LBS SET QTY = 50 WHERE SNO = (SELECT SNO FROM S WHERE SNAME = '江苏新华书店');

4. 为图书发行LBS表的QTY字段设计CHECK约束:  0<QTY<100
用alter可以调增LBS表,使用ADD CONSTRAINT添加约束
同时可以使用下述的代码查询是有在约束名中有新增添的约束

-- 为图书发行LBS表的QTY字段设计CHECK约束:  0<QTY<100
select * from LBS;
ALTER TABLE LBS ADD CONSTRAINT CHK_QTY CHECK (QTY > 0 AND QTY < 100);
-- 查找约束名
SELECT constraint_name
FROM information_schema.table_constraints
WHERE table_name = 'LBS' AND constraint_type = 'CHECK';

5. 将(B6,人工智能库论,4.5)加入图书B
主要使用insert进行数据的插入

-- 将(B6,人工智能库论,4.5)加入图书B
select * from b;
INSERT INTO B (BNO, BNAME, PRICE) VALUES ('B6', '人工智能库论', 4.50);

6. 实现对LBS表的操作权限管理的使用。

首先要创建用户,然后提供不同操作的权限,同时提供了查询用户权限和删除的操作

-- 实现对LBS表的操作权限管理的使用。
CREATE USER 'lbs_user'@'localhost' IDENTIFIED BY '123456';
-- 允许用户查询LBS表:
GRANT SELECT ON bookdistribution.LBS TO 'lbs_user'@'localhost';
-- 允许用户插入、更新和删除LBS表中的数据:
GRANT INSERT, UPDATE, DELETE ON bookdistribution.LBS TO 'lbs_user'@'localhost';
-- 允许用户执行所有操作(包括创建和删除表等):并未执行
GRANT ALL PRIVILEGES ON bookdistribution.LBS TO 'lbs_user'@'localhost';
-- 查询用户
SHOW GRANTS FOR 'lbs_user'@'localhost';
-- 删除用户
DROP USER 'lbs_user'@'localhost';

实验结果

代码结果

1. 将B5的单价改为6.00元

2. 删去图书B2及的单价改为6.00元

3. 修改江苏新华书店的图书的数量为50

4. 为图书发行LBS表的QTY字段设计CHECK约束:  0<QTY<100

5. 将(B6,人工智能库论,4.5)加入图书B

6. 实现对LBS表的操作权限管理的使用。

注意事项

1、数据更改时要注意外码约束:在更改数据时,如果涉及到外键约束的表,需要先确保外键表中没有引用到这些数据,或者适当地更新外键表中的数据以维持数据的一致性和完整性。

2、数据删除时要注意外码约束:在删除数据时,如果涉及到外键约束的表,需要先删除外键表中的数据或者解除外键约束,然后再删除主表中的数据。

3、用户、角色和权限的职能,以及它们之间的关系:用户是访问数据库的主体,角色是一组权限的集合,用户可以被赋予一个或多个角色,从而继承角色的权限。这样,通过角色管理权限可以简化权限管理过程。

思考题

1、为什么不能随意删除被参考表中的主码:因为被参考表(通常称为父表或主表)的主码在子表(通常称为外键表)中被用作外键,用于维护两个表之间的关联关系。如果随意删除父表的主码数据,可能会导致子表中的外键数据失效或成为悬空引用,破坏数据的完整性和一致性。

2、数据库中一般不允许更改主码数据。如果需要更改主码数据时,怎样处理:如果确实需要更改主码数据,通常需要先删除原有的数据记录,然后插入新的数据记录,同时更新所有外键表中引用该主码的数据。但在实际操作中,这通常不是一个好的做法,因为可能会导致数据丢失或不一致。更好的做法是在设计数据库时尽量避免需要更改主码的情况。

3、两种SQL Server的安全认证模式及特点:SQL Server支持两种安全认证模式:Windows身份验证模式和混合身份验证模式。Windows身份验证模式使用Windows账户和密码进行身份验证,简化了管理并提供了更强的安全性。混合身份验证模式允许使用Windows账户和SQL Server账户进行身份验证,提供了更大的灵活性。

4、什么是触发器?主要功能是什么:触发器(Trigger)是一种特殊的存储过程,它会在指定的表上进行INSERT、UPDATE或DELETE操作时自动执行。触发器的主要功能包括数据完整性检查、数据审计、级联更新和删除等。通过触发器,可以在数据发生更改时自动执行一系列操作,以确保数据的完整性和一致性。


总结

通过对于MySQL数据实验的要求实现,额外了解了一些原本并未学到的操作。
了解了数据库的维护操作,包含数据的插入、检索、修改,掌握MySQL 中用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。

推荐学习博客 https://xxetb.xetslk.com/s/4GgGz6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1660668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有了Supervisor,再也不用担心程序撂挑子了!

目录 1. 概述 2. 问题场景 3. Supervisor 简介 4.部署流程 4.1. 安装 Supervisor 4.2. 自定义服务配置文件 4.3. 自定义应用配置文件 4.4. 启动 supervisord 服务进程 4.5. 启动 supervisorctl 客户端进程 4.6. 验证 supervisor 的监控重启特性 5. 高级特性 5.1. 进…

大模型微调之 在亚马逊AWS上实战LlaMA案例(七)

大模型微调之 在亚马逊AWS上实战LlaMA案例&#xff08;七&#xff09; 微调SageMaker JumpStart上的LLaMA 2模型 这是在us-west-2的测试结果。 展示了如何使用SageMaker Python SDK部署预训练的Llama 2模型&#xff0c;并将其微调到你的数据集&#xff0c;用于领域适应或指令…

Python注意事项【自我维护版】

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 本篇博客在之前的博客上进行的维护 创建Python…

Java转Kotlin调用JNI方法异常

一、背景 Java调用JNI方法时没有任何问题&#xff0c;但是使用Java转Kotlin以后出现了崩溃异常&#xff1a;A java_vm_ext.cc:597] JNI DETECTED ERROR IN APPLICATION: jclass has wrong type: 校验参数后没有任何变化&#xff0c;经过分析验证找到解决方案 二、原因…

Python中的多进程、多线程、协程

Python中的多线程、多进程、协程 一、概述 1. 多线程Thread &#xff08;threading&#xff09;&#xff1a; 优点&#xff1a;同一个进程中可以启动多个线程&#xff0c;充分利用IO时&#xff0c;cpu进行等待的时间缺点&#xff1a;相对于进程&#xff0c;多线程只能并发执…

Windows:管理用户账户,密码策略和安全配置

在Windows操作系统中&#xff0c;管理用户账户和密码策略是确保系统安全的关键步骤。本文将探讨如何通过PowerShell和其他Windows工具管理用户账户&#xff0c;包括查看和设置密码策略、检查用户状态&#xff0c;以及导出和导入安全策略。这些管理任务对于系统管理员尤其重要&a…

STM32学习和实践笔记(25):USART(通用同步、异步收发器)

一&#xff0c;STM32的USART简介 USART即通用同步、异步收发器&#xff0c;它能够灵活地与外部设备进行全双工数据交换&#xff0c;满足外部设备对工业标准 NRZ 异步串行数据格式的要求。 UART即通用异步收发器&#xff0c;它是在USART基础上裁剪掉了同步通信功能。 开发板上…

Star-CCM+分配零部件至区域2-根据零部件的特性分组分配零部件至区域

前言 前文已经讲解了将零部件分配至区域的方法。其中有一种方法是"将所有部件分配到一个区域"。在工程应用中&#xff0c;有时会把同一种类型的部件分配到一个区域&#xff0c;因此在一个项目中有可能需要多次进行"将所有部件分配到一个区域"。如在电机温…

主机通过带光发端和ops接收端控制屏串口调试记录

场景就是主机电脑使用cutecom通过光纤口再到ops接收端从而控制屏过程 光纤口有个发送端波特率&#xff0c;Ops有接收端波特率&#xff0c;屏有自己的波特率&#xff0c;主机电脑可以通过发串口指令去设置发送端波特率和ops接收端波特率。因为主机只有一个&#xff0c;屏有多种…

【机器学习300问】82、RMSprop梯度下降优化算法的原理是什么?

RMSprop&#xff0c;全称Root Mean Square Propagation&#xff0c;中文名称“均方根传播”算法。让我来举个例子给大家介绍一下它的原理&#xff01; 一、通过举例来感性认识 建议你第一次看下面的例子时忽略小括号里的内容&#xff0c;在看完本文当你对RMSprop有了一定理解时…

智能助手上线,大模型提供云服务专属顾问

业务背景 在使用云服务的时候&#xff0c;当您遇到复杂问题&#xff0c;如配置、关联或计费方式不明确时&#xff0c;可能需要向客服提交工单进行技术沟通。在漫长的工作过程中&#xff0c;耗费了宝贵的时间和精力。 2024 年 4 月&#xff0c;百度智能云正式推出了融合文心大…

嵌入式学习<1>:建立工程、GPIO和keil仿真

嵌入式学习_part1 本部分笔记用于学习记录&#xff0c;笔记源头 >>b站江科大_STM32入门教程_新建工程 建立工程、GPIO 开发环境&#xff1a;keil MDK、STM32F103C8T6 1 &#xff09;建立工程 &#xff08;1&#xff09;基于寄存器开发、基于标准库 或者 基于HAL库开…

学习网络需要认识的各种设备

网桥&#xff08;bridge&#xff09; 网桥工作在数据链路层&#xff0c;可以把多个局域网连接起来&#xff0c;组成一个更大的局域网 以太网中&#xff0c;数据链路层地址就是mac地址&#xff0c;网桥与集线器的区别就是&#xff0c;网桥会过滤mac&#xff0c;只有目的mac地址…

财务管理|基于SprinBoot+vue的财务管理系统(源码+数据库+文档)

财务管理系统 目录 基于SprinBootvue的财务管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 1管理员功能模块 2员工功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1…

Word设置代码块格式

前言 Word中无法像Markdown和LaTeX一样插入代码块&#xff0c;若要在Word中插入代码块可以手动设置代码块格式或自动粘贴代码块格式。若不追求完美高亮效果&#xff0c;可使用前者方案&#xff1b;若追求完美的高亮效果&#xff0c;可使用后者方案。下文介绍这2种方案。 手动…

同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本(两个详细方法)

目录 一.使用nvm的方法&#xff1a; 1.卸载nodejs 2.前往官网下载nvm 3.安装nvm 4.查看安装是否完成 5.配置路径和淘宝镜像 6.查看和安装各个版本的nodejs 7.nvm的常用命令 二.不使用nvm&#xff0c;安装多个版本&#xff1a; 1.安装不同版本的nodejs 2.解压到你想放…

生信技能45 - 基于docker容器运行生信软件

1. 获取docker镜像 以运行xhmm CNV分析软件为例。 # 搜索仓库镜像 sudo docker search xhmm# 拉取镜像 sudo docker pull ksarathbabu/xhmm_v1.0# 启动镜像,非后台 sudo docker run -it ksarathbabu/xhmm_v1.0 /bin/bash # -i: 交互式操作。 # -t: 终端。 # ksarathbabu/xhmm…

鲁棒控制:鲁棒性能

鲁棒控制&#xff08;Robust Control&#xff09;是一种控制系统设计方法&#xff0c;其目标是使控制系统在面临参数摄动、外部干扰、建模误差等不确定性因素时&#xff0c;仍能够保持其期望的性能特性。鲁棒性是指控制系统在一定&#xff08;结构&#xff0c;大小&#xff09;…

分布式光伏管理平台功能介绍

一、项目管理系统 1、关键信息&#xff1a;板块化展现项目关键信息&#xff0c;包含所在区域、屋面类型、未来25年发电量、累计收益等信息。 (1) 可迅速获取项目核心要点 (2) 及时跟进修改&#xff0c;凸显项目信息 (3) 项目信息清晰展现&#xff0c;了解整体项目流程 2、项…

QQ超大文件共享(别用,传进去后,压缩都显示不出来,LJ qq!)(共享文件)

文章目录 需要共享双方同时在线开启方法第一次会提示设置默认共享目录&#xff0c;默认是E:\QQFileShare\<qq号>\&#xff1a;然后新建共享会在其后创建共享目录&#xff0c;共享目录中只能共享文件。需要点击添加文件&#xff0c;直接把文件拷贝到目录里好像还不行&…