数据库系统原理实验报告5 | 数据查询

news2024/11/25 10:40:19

整理自博主本科《数据库系统原理》专业课自己完成的实验报告,以便各位学习数据库系统概论的小伙伴们参考、学习。

专业课本:

————

本次实验使用到的图形化工具:Heidisql

目录

一、实验目的

二、实验内容

1.找出读者所在城市是“shanghai”的身份是“professor”的读者,或所在城市名包含“jing”的身份为“student”的读者的读者号及身份,按读者号的降序排列

2.对每一种有读者订购的图书,找出书号及有读者订购该书读者所在的所有城市,输出结果包括:书号和城市(输出的列取别名)

3.找出订购了书号为B2的图书的读者姓名及所在城市(用两种方法做:连接、嵌套)

4.找出有一个以上读者订购的图书书号和图书名 

5.求至少订购了一本《Pascal》的读者姓名

6.找出没有订购B1号图书的读者号

7.找出价格大于等于15.00或者读者R2最近订购的图书的书号及书名

8.求图书B2的订购数

9.查询订购的书的数量不确定的(qty是空值),读者编号和书号

10.查询图书单价不是15,17,10的图书的图书号和图书名及价格 

11.查询所有订购了图书的读者的读者号和姓名

12.查询单价小于等于10的所有图书被读者订购的数量,输出书名和订购总数量 

13.查询订购了至少两种书的读者姓名和书的种类数

14.查询书价比同一出版社的平均书价高的图书的书号和书名

15.查询每个出版社书价最高的图书是哪些, 输出出版社,书号,书名

16.找出没有订购B2号图书的读者号,读者的姓名(用存在谓词查询)

17.查询读者R4订购的图书的书号和书名(用存在谓词查询)

18.查询订购了全部书籍的读者的姓名

19.查询至少订购了R1所订购的书籍的读者的编号 

20.把所有Commerce出版社的图书的价格都增加1 

21.把B2读者订购的所有图书的数量改为0

23.查出每个出版社的图书的平均价格,保存到数据库中

24.将所有Beijing读者订购的图书数量改为一本 

25.删去Shanghai的所有读者的订书单

三、实验结果总结

四、实验结果的运用


缅怀!

一、实验目的

1、掌握 数据查询select语句,能够灵活使用它的各个子句进行各种查询,包括分组查询、链接查询、嵌套查询、集合查询等。

2、进一步掌握数据更新语句,insert,update,delete,尤其是数据更新的嵌套操作。


二、实验内容

现有读者购书数据库,该数据库中包含三个表:读者相关信息表R,图书信息表B,读者订购图书表OD。

具体情况如下表:

  1. 根据以上表的情况,做出如下查询,逐题给出代码及截图。

  2. R-B-OD数据库建库建表代码:

  3. CREATE DATABASE RBOD2;
    
    USE RBOD2;
    
    CREATE TABLE R
    (
    Rno CHAR(4)   PRIMARY KEY,
    Rname VARCHAR(20),
    STATUS VARCHAR(20),
    CITY VARCHAR(20)
    );
    
    
    CREATE TABLE B
    (
    Bno CHAR(4)   PRIMARY KEY,
    Bname VARCHAR(20),
    Price numeric(5,2),
    Pub VARCHAR(20)
    );
    
    
    CREATE TABLE OD
    (
    Rno CHAR(4) NOT NULL,
    Bno CHAR(4) NOT NULL,
    Qty SMALLINT,
    PRIMARY KEY(Rno,Bno),
    FOREIGN KEY (Rno) REFERENCES R(Rno),
    FOREIGN KEY (Bno) REFERENCES B(Bno)
    );
    
    INSERT INTO R VALUES('R1','CHenBing','Student','Beijing');
    INSERT INTO R VALUES('R2','ZhouYucai','Professor','Shanghai');
    INSERT INTO R VALUES('R3','WangLiping','Doctor','Nanjing');
    INSERT INTO R VALUES('R4','LiYong','Student','Shanghai');
    INSERT INTO R VALUES('R5','DingWei','Assistant','Beijing');
    
    
    INSERT INTO B VALUES('B1','Modern',15,'Education');
    INSERT INTO B VALUES('B2','Pascal',17,'Qinghua');
    INSERT INTO B VALUES('B3','Scentific',10,'Commerce');
    INSERT INTO B VALUES('B4','PenHuai',9.8,'People');
    INSERT INTO B VALUES('B5','Date Stru',12.6,'Commerce');
    
    INSERT INTO OD VALUES('R1','B1',2);
    INSERT INTO OD VALUES('R1','B2',1);
    INSERT INTO OD VALUES('R2','B1',3);
    INSERT INTO OD VALUES('R2','B2',3);
    INSERT INTO OD VALUES('R2','B4',4);
    INSERT INTO OD VALUES('R3','B3',1);
    INSERT INTO OD VALUES('R4','B2',2);
    INSERT INTO OD VALUES('R4','B5',1);

  4. 1.找出读者所在城市是“shanghai”的身份是“professor”的读者,或所在城市名包含“jing”的身份为“student”的读者的读者号及身份,按读者号的降序排列

  5. 代码:
  6. SELECT rno,rname
    FROM r
    WHERE city='Shanghai' AND STATUS='professor'
    UNION 
    SELECT rno,rname
    FROM r
    WHERE city LIKE '%jing%' AND STATUS='student'
    ORDER BY rno DESC;

      运行结果:

  7. 2.对每一种有读者订购的图书,找出书号及有读者订购该书读者所在的所有城市,输出结果包括:书号和城市(输出的列取别名)

  8. 代码:
  9. SELECT bno 书号,city 城市
    FROM od,r
    WHERE od.Rno=r.Rno;
    运行结果:

3.找出订购了书号为B2的图书的读者姓名及所在城市(用两种方法做:连接、嵌套)

代码:

SELECT rname,city
FROM od,r
WHERE od.Rno=r.Rno AND bno='B2'

运行结果: 

  

代码:

SELECT rname,city
FROM r
WHERE rno IN (
	SELECT rno
	FROM od
	WHERE bno='B2'
);

运行结果:

4.找出有一个以上读者订购的图书书号和图书名 

代码:

SELECT od.Bno,bname
FROM b,od
WHERE b.Bno=od.Bno
GROUP BY Bno HAVING COUNT(*)>1

 运行结果:

  

5.求至少订购了一本《Pascal》的读者姓名

代码:

SELECT rname
FROM r,b,od
WHERE r.Rno=od.Rno AND b.Bno=od.Bno AND qty>=1 AND bname='Pascal'

运行结果:

6.找出没有订购B1号图书的读者号

代码:

SELECT rno
FROM r
WHERE rno NOT IN(
	SELECT rno
	FROM od
	WHERE Bno='B1' 
);

运行结果:

7.找出价格大于等于15.00或者读者R2最近订购的图书的书号及书名

代码:

SELECT bno,bname
FROM b
WHERE price>=15
UNION
SELECT b.Bno,bname
FROM od,b
WHERE od.Bno=b.Bno AND rno='R2'

 运行结果:

  

8.求图书B2的订购数

代码:

SELECT SUM(Qty)
FROM od
WHERE Bno='B2';

运行结果:

9.查询订购的书的数量不确定的(qty是空值),读者编号和书号

代码:

SELECT rno,bno
FROM od
WHERE qty IS NULL;

运行结果:

10.查询图书单价不是15,17,10的图书的图书号和图书名及价格 

代码:

SELECT bno,bname,price
FROM b
WHERE price NOT IN (15,17,10);

运行结果:

11.查询所有订购了图书的读者的读者号和姓名

代码:

SELECT rno,rname
FROM r
WHERE EXISTS (
	SELECT *
	FROM od
	WHERE od.Rno=r.Rno
)

运行结果:

12.查询单价小于等于10的所有图书被读者订购的数量,输出书名和订购总数量 

代码:

SELECT Bname,SUM(qty)
FROM b,od
WHERE Price <= 10 AND b.bno=od.Bno
GROUP BY od.Bno,Bname;

运行结果:

13.查询订购了至少两种书的读者姓名和书的种类数

代码:

SELECT rname,COUNT(bno) 书的种类数
FROM od,r
WHERE od.Rno=r.Rno
GROUP BY od.Rno HAVING COUNT(*)>=2

运行结果:

14.查询书价比同一出版社的平均书价高的图书的书号和书名

代码:

SELECT bno,bname
FROM b x
WHERE price> (
	SELECT AVG(price)
	FROM b y
	WHERE x.Pub=y.Pub 
)

运行结果:

15.查询每个出版社书价最高的图书是哪些, 输出出版社,书号,书名

代码:

SELECT pub,bno,bname
FROM b x
WHERE price= (
	SELECT MAX(price)
	FROM b y
	WHERE x.Pub=y.Pub
);

运行结果:

16.找出没有订购B2号图书的读者号,读者的姓名(用存在谓词查询)

代码:

SELECT rno,rname
FROM r
WHERE NOT EXISTS (
	SELECT *
	FROM od
	WHERE od.rno=r.Rno AND bno='B2'
);

运行结果:

17.查询读者R4订购的图书的书号和书名(用存在谓词查询)

代码:

SELECT bno,bname
FROM b
WHERE EXISTS (
	SELECT *
	FROM od
	WHERE od.bno=b.bno AND rno='R4'
);

运行结果:

18.查询订购了全部书籍的读者的姓名

代码:

SELECT rname
FROM r
WHERE NOT EXISTS (
	SELECT *
	FROM b
	WHERE NOT EXISTS (
		SELECT *
		FROM od
		WHERE od.Rno=r.Rno AND od.Bno=b.bno
	)
);

运行结果:

19.查询至少订购了R1所订购的书籍的读者的编号 

代码:

SELECT DISTINCT  rno
FROM od X
WHERE NOT EXISTS (
	SELECT *
	FROM od y
	WHERE rno='R1' AND NOT EXISTS (
		SELECT *
		FROM od z
		WHERE z.Rno=x.rno AND z.Bno=y.Bno
	)
);

运行结果:

20.把所有Commerce出版社的图书的价格都增加1 

代码:

UPDATE b 
SET price=price+1
WHERE pub='Commerce';

运行结果:

21.把B2读者订购的所有图书的数量改为0

代码:

UPDATE od
SET qty=0
WHERE rno='R2'

运行结果:

22.查询读者表中是否有一个Beijing的读者WangWei,如果有,把他删除

代码:

DELETE FROM r
WHERE city='Beijing' AND rname='WangWei'

运行结果:

23.查出每个出版社的图书的平均价格,保存到数据库中

代码:

CREATE TABLE pub_price (
	pub CHAR(15),
	Avg_price smallint
);
INSERT 
INTO pub_price(pub,Avg_price)
SELECT pub,AVG(price)
FROM b
GROUP BY pub;

运行结果:

24.将所有Beijing读者订购的图书数量改为一本 

代码:

update od
SET Qty=1
WHERE Rno IN
(
	select Rno
	from R
	where CITY='北京'
);

运行结果:

25.删去Shanghai的所有读者的订书单

代码:

delete
from od
where Rno IN
(
	select Rno
	from R
	where CITY='上海'
);

运行结果:

(备注:由于我是代码全部写完,执行过了之后最后再截图粘贴到实验报告的,后五题是增删改,有的数据已经被更改过了,再运行前面的查询代码截图时结果可能会和正确的不太一样。不过前面的代码我是多次更改后保证正确之后才写上去的,实际结果应没有问题。)


三、实验结果总结

 1、本次实验我用时3个半小时,做得比较慢,有些地方有卡顿。单个查询作业没什么问题,但综合起来做,由于可选择的方法太多,以及对题目表述的不熟悉,导致完成起来有些不熟练。

2、为了避免上述问题,我需要再次进行综合性的梳理,以及保持每天的练习。

3、本次实验中遇到的部分问题通过上网搜索以及与同学讨论,已经成功解决。

4、在照着书敲代码时,结果报出了语法错误。意识到书本上的不是mysql,在实验过程中不能盲目跟随课本。

5、应当对之前章节或实验中学习的建表删除更新的语句语法进行复习,以免遗忘。 


四、实验结果的运用

在educ数据库中的应用。

educ数据库建库建表代码:

create database educ;
use educ;
CREATE TABLE Student
(
Sno CHAR(9) NOT NULL PRIMARY KEY,
Sname CHAR(20),
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);

CREATE TABLE Course
(
Cno CHAR(4) NOT NULL PRIMARY KEY,
Cname CHAR(40) NOT NULL,
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);

CREATE TABLE SC
(
Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);

INSERT INTO Student VALUES('200215121','李勇','男',20,'CS');
INSERT INTO Student VALUES('200215122','刘晨','女',19,'CS');
INSERT INTO Student VALUES('200215123','王敏','女',18,'MA');
INSERT INTO Student VALUES('200215125','张立','男',19,'IS');
INSERT INTO Student VALUES('200215124','张立','男',19,'IS');

INSERT INTO Course VALUES('2','数学',null,2);
INSERT INTO Course VALUES('6','数据处理',null,2);
INSERT INTO Course VALUES('7','pascal语言','6',4);
INSERT INTO Course VALUES('5','数据结构','7',4);
INSERT INTO Course VALUES('4','操作系统','6',3);
INSERT INTO Course VALUES('1','数据库','5',4);
INSERT INTO Course VALUES('3','信息系统','1',4);

INSERT INTO SC VALUES('200215121','1',92);
INSERT INTO SC VALUES('200215121','2',85);
INSERT INTO SC VALUES('200215121','3',88);
INSERT INTO SC VALUES('200215122','2',90);
INSERT INTO SC VALUES('200215122','3',80);

代码:

/* 嵌套查询(不相关) */
SELECT sno,sname
FROM student
WHERE ssex='女' and sno IN 
		(SELECT sno
		FROM sc
		);
		
SELECT sno,cno 
FROM sc
WHERE sno IN 
		(SELECT sno
		FROM student
		WHERE sdept='CS'
		);


/* 嵌套查询(相关)	*/
SELECT cno,sno
FROM sc x
WHERE grade<
		(SELECT AVG(grade)
			FROM sc y
			WHERE x.Sno=y.Sno
		);
		
SELECT sno,AVG(grade)
FROM sc
GROUP BY sno HAVING  AVG(grade)>80

SELECT cno,sno
FROM sc x
WHERE grade<
		(SELECT avg(grade)
		 FROM sc y
		 WHERE x.sno=y.sno
		);

SELECT sno,sname
FROM student x
WHERE sage <
		(SELECT AVG(sage)
		FROM student y
		WHERE x.Sno=y.Sno
		GROUP BY sdept
		);
		
SELECT sno,sname
FROM student
WHERE NOT EXISTS (
		SELECT *
		FROM sc
		WHERE sno=student.Sno AND cno='1'
);


/* 嵌套查询(全称谓词) */
SELECT cno,cname
FROM course
WHERE NOT EXISTS (
		SELECT *
		FROM sc
		WHERE cno=course.Cno AND sno='200215121'
);

SELECT distinct sno
FROM sc X
WHERE NOT EXISTS (
	SELECT *
	FROM sc y
	WHERE y.Sno='200215122' AND NOT EXISTS (
		SELECT *
		FROM sc z
		WHERE z.sno=x.sno AND z.cno=y.Cno));
		
SELECT DISTINCT sno
FROM sc x
WHERE NOT EXISTS (
	SELECT *
	FROM sc y
	WHERE y.Cno='1' AND NOT EXISTS (
		SELECT *
		FROM sc z
		WHERE z.Cno=y.Cno AND z.Sno=x.Sno));
		
SELECT sname
FROM student
WHERE NOT EXISTS (
	SELECT *
	FROM course
	WHERE NOT EXISTS (
		SELECT *
		FROM sc
		WHERE sno=student.Sno AND cno=course.cno));
		
SELECT sname
FROM student
WHERE sno IN (
	SELECT sno
	FROM sc
	GROUP BY sno HAVING COUNT(*)>3);
	
SELECT sno,sname
FROM student x
WHERE sage<(
	SELECT AVG(sage)
	FROM student y
	WHERE y.Sdept=x.Sdept);
	
SELECT sno
FROM sc X
WHERE grade=(
	SELECT MIN(grade)
	FROM sc y
	WHERE y.Cno=x.Cno);	



/* 删除(带有子查询的) */
delete
from student
where sno IN
(
	select sno
	from sc
	where grade='88'
);


/* 更新(带有子查询的) */
update sc
SET grade=90
WHERE sno IN
(
	select sno
	from student
	where sdept='IS'
);

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

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

相关文章

垂起固定翼+多旋翼无人机+集群组网:高低空域协同组网通信技术详解

垂起固定翼、多旋翼无人机与自组网的结合&#xff0c;为高低空域协同组网通信技术提供了创新的解决方案。这种结合充分利用了各种技术的优势&#xff0c;使得无人机在高低空域中的协同作业和通信更加高效和灵活。 首先&#xff0c;垂起固定翼无人机以其垂直起降能力和长航时的…

第28章-PPPoE

1. 以太网接入的典型应用 1.1. IP技术的应用与发展 1.2. 以太网接入的典型应用场景之一——大型园区接入的典型应用 2. PPPoE技术的基本原理 2.1. 技术背景 2.2. PPPoE工作原理 2.3. PPPoE的两个阶段&#xff1a;Discovery阶段和PPPSession阶段 2.4. PPPoE的帧结构 2.5. PPPoE…

如何高效封装App?小猪APP分发平台一站式解决方案

在移动应用开发领域&#xff0c;App封装&#xff08;App Packaging&#xff09;是一个至关重要的环节&#xff0c;它不仅关乎应用的安全性&#xff0c;还直接影响到最终用户体验和市场推广策略。本文旨在通过实战指南&#xff0c;揭示如何高效完成App封装&#xff0c;并介绍如何…

python爬虫(二) 之 42号网汽车文章爬虫

python爬虫&#xff08;二&#xff09; 之 42号网汽车文章爬虫 今天在咸鱼上有个买家找我一个42号网汽车文章的爬虫&#xff0c;目前需求已经做完了&#xff0c;现在将这部分代码开源&#xff0c;供大家参考。爬虫能够抓取到网站上所有文章的数据&#xff0c;大概一小时左右就…

buuctf[pwn]

buuctf[PWN] 题目&#xff1a;rip(栈对齐) 知识点&#xff1a;栈对齐 题目地址&#xff1a;BUUCTF在线评测 (buuoj.cn)知识点&#xff1a;64位ubuntu18以上系统调用system函数时需要栈对齐&#xff0c;因为64位下的system函数有个movaps指令&#xff0c;这个指令要求内存地址…

​《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制德国每日风能和太阳能产量3D线图

在MATLAB中&#xff0c;要绘制3D线图&#xff0c;可以使用 plot3 函数。 在《MATLAB科研绘图与学术图表绘制从入门到精通》书中通过绘制德国每日风能和太阳能产量3D线图解释了如何在MATLAB中绘制3D线图。 购书地址&#xff1a;https://item.jd.com/14102657.html

读天才与算法:人脑与AI的数学思维笔记20_数学图灵测试

1. 数学图灵测试 1.1. 能不能将这种计算机证明语言翻译成易于与人交流的方式呢&#xff1f; 1.1.1. 剑桥大学的两位数学家蒂莫西高尔斯&#xff08;Timothy Gowers&#xff09;和莫汉加内萨林加姆&#xff08;Mohan Ganesalingam&#xff09;开展了此项研究 1.1.1.1. 他们决…

已解决SyntaxError: EOL while scanning string literal 亲测有效!!!

已解决SyntaxError: EOL while scanning string literal 亲测有效&#xff01;&#xff01;&#xff01; 亲测有效 报错问题解决思路解决方法 报错问题 SyntaxError: EOL while scanning string literal 这个错误通常发生在Python代码中&#xff0c;表示字符串字面量没有被正确…

撸爆公众号流量主,简单无脑,单日变现2000+

详情介绍 目前公众号流量主的收益非常的好&#xff0c;不管你是小白还是老鸟&#xff0c;都能拿到一个很好的收益&#xff0c;轻轻松松日入2000&#xff0c;接下来我给大家带来一个保姆级的教学&#xff0c;大家跟着操作就可以了

360手机去除广告 360手机关闭弹窗广告 360手机刷机

360手机去除广告 360手机关闭弹窗广告 360手机刷机 360手机去广告 360手机刷机 360手机弹窗广告 永久去除360手机的各种广告教程 360手机禁止更新 360手机关闭广告 360手机去除内部广告 360手机资源网 360手机刷机资源下载链接&#xff1a;360rom.github.io 参考&#xff1a;…

C语言/数据结构——每日一题(链表的中间节点)

一.前言 今天我在LeetCode刷到了一道单链表题&#xff0c;想着和大家分享一下这道题&#xff1a;https://leetcode.cn/problems/middle-of-the-linked-list。废话不多说让我们开始今天的知识分享吧。 二.正文 1.1题目描述 1.2题目分析 这道题有一个非常简便的方法——快慢指…

xx学校(微信)挖掘

挖掘目标的部署在微信的资产(减少信息的收集,毕竟一般web站点没有账号密码不好进入后台,挖掘功能点少) 1. 寻找目标的微信小程序(非原图) 1. 招生小程序打不开,只能挖掘管理系统 进入后发现存在上报安全隐患功能,可以上传图片 1. 准备上传shell 发现控制上传名字参数为name,…

mysql数据库(排序与分页)

目录 一. 排序数据 1.1 排序规则 1.2 单列排序 1.我们也可以使用列的别名&#xff0c;给别名进行排序 2.列的别名只能在 ODER BY 中使用&#xff0c; 不能在WHERE中使用。 3.强调格式&#xff1a;WHERE 需要在 FROM 后&#xff0c; ORDER BY 之前 1.3 二级排序&…

【软考高项】三十三、质量管理

一、管理基础 质量定义 国际标准&#xff1a;反映实体满足主体明确和隐含需求的能力的特性总和。 国家标准&#xff1a;一组固有特性满足要求的程度。固有特性是指在某事或某物中本来就有的&#xff0c;尤其是那种永久的可区分的特征。 ➢ 对产品来说&#xff0c;例如…

【Windows】Windows电脑如何给hosts添加解析

前言 hosts是一个没有扩展名的系统文件&#xff0c;在浏览器输入一个我们想要登录的网站时&#xff0c;电脑系统会自动帮助我们在hosts文件中寻找对应的IP地址&#xff0c;然后打开网站&#xff0c;如果找不到对应IP&#xff0c;电脑就需要对域名和IP地址进行解析。当对一个网…

面向新手在无人机竞速场景下的飞行辅助系统——浙大 FAST-Lab 高飞团队 ICRA 论文三项 Best Paper 入围

恭喜浙江大学 FAST-Lab 钟宇航同学的论文 A Trajectory-based Flight Assistive System for Novice Pilots in Drone Racing Scenario 顺利发表 ICRA 2024&#xff0c;并同时入选三项 Finalist&#xff1a; the IEEE ICRA Best Conference Paper Awardthe IEEE ICRA Best Pape…

人工智能_大模型049_模型微调009_llama2模型训练_代码分析和实现_代码记录---人工智能工作笔记0184

以上是项目的整体结构,其中上一节我们看了chatglm3目录下,对chatglm3模型的训练部分的代码,然后 这里的llama2目录下是对llama2模型进行训练的代码. 然后web_demo目录是,对web浏览器中,使用chatglm3,以及llama2.py进行的封装下一节我们再看这个部分 E:\2024\人工智能\fine-tun…

c++函数返回指针和引用

写一个常量字符串复制函数 我们以为的方式 写不了,我们把指针指向了这个常量区,看似拥有了,其实不属于str 我们需要把常量字符拿出来,让指针指向栈区或者堆区 #include<iostream> using namespace std; int clen(const char* str) {int len 0;for (int i 0; str[i];…

车牌号识别系统:PyQT5+QT Designe+crnn/PaddleOCR+YOLO+OpenCV矫正算法。

PyQT5&QT Designecrnn/PaddleOCRYOLO传统OpenCV矫正算法。可视化的车牌识别系统项目。 车牌号识别系统 项目绪论1.项目展示2.视频展示3.整体思路 一、PyQT5 和 QT Designer1.简介2.安装3.使用 二、YOLO检测算法三、OpenCV矫正算法四、crnn/PaddleOCR字符识别算法五、QT界面…

Linux权限控制进阶:ACL、su与sudo的完美结合

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Linux的起源与发展 2、什么是ACL 3、什么是用…