数据库系统概论 | MySQL | 数据定义 | 单表查询 | 嵌套查询 | 连接查询 | 带有谓词的查询

数据定义

模式的定义与删除

定义模式与删除模式:

CREATE SCHEMA S_C_SC;
DROP SCHEMA S_C_SC;

进入模式:

USE S_C_SC;

建立学生表:

CREATE TABLE Student
(Sno CHAR(8) PRIMARY KEY,
Sname VARCHAR(20) UNIQUE,
Ssex CHAR(6),
Sbirthdate Date,
Smajor VARCHAR(40)
);

CHAR(8):长度为8的定长字符串

VARCHAR(20):最大长度为20的变长字符串

DATE:日期,包含年、月、日

PRIMARY KEY:列级完整性约束条件,Sno是主码

UNIQUE:Sname取唯一值

建立课程表:

CREATE TABLE Course
(Cno CHAR(5) PRIMARY KEY,
Cname VARCHAR(40) NOT NULL,
Credit SMALLINT,
Cpno CHAR(5),
FOREIGN KEY (Cpno) REFERENCES Course (Cno)
);

表级完整性约束,Cpno是外码,被参照表是Course,被参照列是Cno

SMALLINT:短整数,2字节

建立选课表:

CREATE TABLE SC
(Sno CHAR(8),
Cno CHAR(5),
Grade SMALLINT,
Semester CHAR(5),
Teachingclass CHAR(8),
PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student (Sno),
FOREIGN KEY (Cno) REFERENCES Course (Cno)
);

修改与删除基本表

向Student表增加邮箱地址列Semail,数据类型为字符型:

ALTER TABLE Student ADD Semail VARCHAR(30);

将Student表的出生日期的数据类型由DATE改为字符型:

ALTER TABLE Student MODIFY COLUMN Sbirthdate VARCHAR(20);

增加课程名称必须取唯一值的约束条件:

ALTER TABLE Course ADD UNIQUE (Cname);

删除Student表,选择CASCADE:

DROP TABLE Student CASCADE;

执行CASCADE的删除语句后,不仅表中的数据和此表的定义被删除,而且此表上建立的索引、约束、触发器等对象也被删除。

索引的建立与删除

对Student、Course和SC三个表建立索引,其中Student表按学生姓名升序建唯一索引,Course表按课程名升序建唯一索引,SC表按学号升序和课程号降序建唯一索引(即先按照学号升序,对同一个学号再按课程号降序:

CREATE UNIQUE INDEX Idx_StuSname ON Student (Sname);
CREATE UNIQUE INDEX Idx_CouCname ON Course (Cname);
CREATE UNIQUE INDEX Idx_SCCno ON SC(Sno ASC, Cno DESC);

将SC表的Idx_SCCno索引名改为Idx_SCSnoCno:

ALTER TABLE SC RENAME INDEX Idx_SCCno TO Idx_SCSnoCno;

删除Student表的Idx_StuSname索引:

DROP INDEX Idx_StuSname ON Student;

数据查询

表数据插入

/* student表插入数据*/           
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180001','李勇','男','2000-3-8','信息安全');
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180002','刘晨','女','1999-9-1','计算机科学与技术');
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180003','王敏','女','2001-8-1','计算机科学与技术');
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180004','张立','男','2000-1-8','计算机科学与技术');
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180005','陈新奇','男','2000-11-1','信息管理与信息系统');
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180006','赵明','男','2000-6-12','数据科学与大数据技术');
INSERT INTO Student(Sno,Sname,ssex,Sbirthdate,Smajor)
    VALUES ('20180007','王佳佳','女','2001-12-7','数据科学与大数据技术');

/*course表插入数据*/
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81001','程序设计基础与C语言',4,null);
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81002','数据结构',4,'81001');
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81003','数据库系统概论',4,'81002');
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81004','信息系统概论',4,'81003');
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81005','操作系统',4,'81001');
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81006','python语言',3,'81002');
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81007','离散数学',4,null);
INSERT INTO course(cno,cname,Credit,cpno)
    VALUES ('81008','大数据技术概论',4,'81003');

/*sc表插入数据*/
insert into sc values('20180001','81001',85,'20192','81001-01');
insert into sc values('20180001','81002',96,'20201','81002-01');
insert into sc values('20180001','81003',87,'20202','81003-01');
insert into sc values('20180002','81001',80,'20192','81001-02');
insert into sc values('20180002','81002',98,'20201','81002-01');
insert into sc values('20180002','81003',71,'20202','81003-02');
insert into sc values('20180003','81001',81,'20192','81001-01');
insert into sc values('20180003','81002',76,'20201','81002-02');
insert into sc values('20180004','81001',56,'20192','81001-02');
insert into sc values('20180004','81002',97,'20201','81002-02');
insert into sc values('20180005','81003',68,'20202','81003-01');

单表查询

查询全体学生的详细记录:

SELECT * FROM Student;
image-20240702170212942
图1-1

查全体学生的姓名及其年龄:

SELECT Sname, (EXTRACT(YEAR FROM CURRENT_DATE)-EXTRACT(YEAR FROM Sbirthdate)) "年龄" FROM Student;
image-20240702170445748
图1-2

查询全体学生的姓名、出生日期和主修专业:

SELECT Sname, "Date of Birth:",Sbirthdate, Smajor FROM Student;
image-20240702170848540
图1-3

查询表中的若干元组

查询选修了课程的学生学号:

SELECT ALL Sno FROM SC;
SELECT DISTINCT Sno FROM SC;
image-20240702171133136
图1-4

查询主修计算机科学与技术专业全体学生的姓名:

SELECT Sname FROM Student WHERE Smajor = '计算机科学与技术';
image-20240702171323761
图1-5

查询所有2000年后(包括2000年)出生的学生姓名及其性别:

SELECT Sname FROM Student WHERE EXTRACT(YEAR FROM Sbirthdate) >= 2000;

函数extract(year from Sbirthdate)从出生日期中抽取出年份

image-20240702171431113
图1-6

查询考试成绩不及格的学生的学号:

SELECT Sno FROM SC WHERE Grade < 60;
image-20240702190500348
图1-6

查询年龄在20~23岁(包括20岁和23岁)之间的学生的学生的姓名、出生年月和主修专业:

SELECT Sname,Sbirthdate,Smajor FROM Student WHERE EXTRACT(YEAR FROM CURRENT_DATE)-EXTRACT(YEAR FROM Sbirthdate) NOT BETWEEN 20 AND 23;
image-20240702191117174
图1-7

查询计算机科学与技术专业和信息安全专业学生的姓名和性别:

SELECT Sname,Ssex FROM Student WHERE Smajor IN ('计算机科学与技术', '信息安全');
image-20240702191623651
图1-8

如果查询一个专业,也要加括号:

SELECT Sname,Ssex FROM Student WHERE Smajor IN ('信息安全');

查询学号为20180003的学生的详细情况;

SELECT * FROM Student WHERE Sno LIKE '20180003';

image-20240702191650800

图1-9

查询所有姓刘学生的姓名、学号和性别:

SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE '刘%';

image-20240702191821484

图1-10

查询2018级学生的学号和姓名;

SELECT Sno,Sname FROM Student WHERE Sno LIKE '2018%';

image-20240702192014914

图1-11

查询课程号为81开头,最后一位是6的课程名称和课程号:

SELECT Cname,Cno FROM Course WHERE Cno LIKE '81__6';

由于课程号是定长的CHAR(5),因此在这种开头和结尾限定的查询中,要用_ _来表示。

查询以“DB_”开头,且倒数第三个字符为i的课程的详细情况:

SELECT * FROM Course WHERE Cname LIKE 'DB\\_%i__'  ESCAPE '\\';

在上面这个示例中,DB_的下划线,需要使用\\换码字符将通配符转义为普通字符,并且,倒数第三个字符为i,那么i后面要接两个下划线,由于课程名称是变长字符型,所以中间用%去匹配。

某些学生选修课程后没有参加考试,有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号:

SELECT Sno,Cno FROM SC WHERE Grade IS NULL;

IS不能用=代替

查询主修计算机科学与技术专业2000年(包括2000年)以后出生的学生学号、姓名和性别:

SELECT Sno,Sname,Ssex FROM Student WHERE Smajor IN('计算机科学与技术') AND EXTRACT(YEAR FROM Sbirthdate)>=2000;

image-20240702194239051

图1-12

ORDER BY子句

可以按一个或多个属性列排序升序(ASC)降序(DESC)排列,默认值为升序.对于空值,排序时显示的次序由具体系统实现决定

查询全体学生选修课程情况,查询结果先按照课程号升序排列,同一课程中按成绩降序排列:

SELECT * FROM SC ORDER BY Cno ,Grade DESC;
image-20240702194615852
图1-13

聚集函数

查询选修了课程的学生人数:

SELECT COUNT(DISTINCT Sno) FROM SC;

image-20240702194848216

图1-14

计算选修81001号课程的学生平均成绩:

SELECT AVG(Grade) FROM SC WHERE Cno LIKE '81001';

image-20240702195434009

图1-15

查询选修1号课程的学生最高分数:

SELECT MAX(Grade) FROM SC WHERE Cno LIKE '81001';

image-20240702195600539

图1-16

查询学号为20180003学生选修课程的总学分数:

SELECT SUM(Credit) FROM SC,Course WHERE Sno LIKE '20180001' AND SC.Cno=Course.Cno;

image-20240702200140998

图1-17

GROUP BY子句

按指定的一列或多列值分组,值相等的为一组

如果未对查询结果分组,聚集函数将作用于整个查询结果

分组后,聚集函数将作用于每一个组

求各个课程号及选修该课程的人数:

SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;

image-20240702200550708

图1-18

查询2019年第2学期选修了10门以上课程的学生学号:

SELECT Sno FROM SC WHERE Semester LIKE '20192' GROUP BY Sno HAVING COUNT(*) > 10;

先求出2019年第2学期选课的所有学生,用GROUP BY子句按Sno进行分组,再用聚集函数COUNT对每一组计数

查询平均成绩大于等于90分的学生学号和平均成绩:

SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade) >= 90;

HAVING短语与WHERE子句的区别:

WHERE子句作用于基表或视图,从中选择满足条件的元组

HAVING短语作用于组,从中选择满足条件的组

LIMIT子句

用于限制SELECT语句查询结果的(元组)数量

查询选修了数据库系统概论课程的成绩排名前10名的学生学号和成绩:

SELECT Sno, Grade FROM Course, SC WHERE Course.Cname LIKE '数据库系统概论' AND Course.Cno = SC.Cno ORDER BY SC.Grade DESC LIMIT 10;

image-20240702202851124

图1-19

查询平均成绩排名在3-5名的学生学号和平均成绩:

SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno ORDER BY AVG(Grade) DESC LIMIT 5 OFFSET 2;

由于要计算平均成绩所以要用GROUP BY进行分组,并用ORDER BY进行降序,最后用LIMIT取前五名,丢弃前三名,结果就是3~5名。

连接查询

用于同时涉及两个以上的表的查询

等值与非等值连接查询

查询每个学生及其选修课程的情况:

SELECT Student.* , SC.* FROM Student,SC WHERE Student.Sno=SC.Sno;

image-20240702210115951

图1-20

自然连接查询

若在等值连接中把目标列中重复的属性列去掉则为自然连接

查询每个学生的学号、姓名、性别、出生日期、主修专业及该学生选修课程的课程号与成绩:

SELECT Student.Sno,Sname,Sbirthdate,Smajor,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno;

image-20240702210407471

图1-21

Sname,Ssex,Sbirthdate,Smajor,Cno和Grade属性列在Student表与SC表中唯一,引用时可以去掉表名前缀

Sno在两个表都出现,因此SELECT子句和WHERE子句在引用时必须加上表名前缀

复合条件连接查询

查询选修81002号课程且成绩在90分以上的所有学生的学号和姓名:

SELECT Student.Sno,Sname FROM Student,SC WHERE Student.Sno = SC.Sno AND SC.Cno LIKE '81002' AND SC.Grade > 90;

image-20240702210807241

图1-22

自身连接查询

自身连接:一个表与其自己进行连接

需要给表起别名以示区别

由于所有属性名都是同名属性,因此必须使用别名前缀

查询每一门课的间接先修课(即先修课的先修课):

SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=SECOND.Cno AND SECOND.Cpno IS NOT NULL;

image-20240702211741474

图1-23

外连接查询

想以Student表为主体列出每个学生的基本情况及其选课情况,若某个学生没有选课,则只输出其基本情况的数据,而把选课信息填为空值NULL:

SELECT Student.Sno,Sname,Ssex,Sbirthdate,Smajor,Cno,Grade FROM Student LEFT OUTER JOIN SC ON(Student.Sno=SC.Sno);

image-20240702212024700

图1-24

多表连接查询

查询每个学生的学号、姓名、选修的课程名及成绩:

SELECT Student.Sno,Sname,Cname,Grade FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno;

image-20240702212605387

图1-25

嵌套查询

一个SELECT-FROM-WHERE语句称为一个查询块

将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询

上层的查询块称为外层查询或父查询

下层的查询块称为内层查询或子查询

SQL语言允许多层嵌套查询即一个子查询中还可以嵌套其他

子查询子查询的限制SELECT语句不能使用ORDER BY子句

带有IN谓词的子查询

查询与“刘晨”在同一个主修专业的学生学号、姓名和主修专业:

SELECT Student.Sno,Sname,Smajor FROM Student WHERE Smajor IN (SELECT Smajor FROM Student WHERE Sname LIKE '刘晨');

image-20240702213149822

图1-26

这个示例中的IN换成LIKE也可以

查询选修了课程名为“数据结构”的学生的学号和姓名:

SELECT Sname FROM Student WHERE Sno IN (SELECT SC.Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname LIKE '数据结构'));

image-20240702214912836

图1-27

带有比较运算符的子查询

找出每个学生超过他选修课程平均成绩的课程号:

SELECT Sno,Cno FROM SC X WHERE Grade >= (SELECT AVG(Grade)FROM SC Y WHERE X.Sno=Y.Sno);

别名允许在同一个查询中多次引用同一个表

image-20240702215709877

图1-28

别写成下面这种代码了:

SELECT Sno,Cno FROM SC WHERE Grade >= (SELECT AVG(Grade)FROM SC);

这是针对整个表进行计算和比较,因此它返回的是成绩高于或等于整个表所有课程的平均成绩的课程

带有ANY(SOME)或ALL谓词的子查询

>ANY 大于子查询结果中的某个值

>ALL 大于子查询结果中的所有值

<ANY 小于子查询结果中的某个值

<ALL 小于子查询结果中的所有值

≥ \ge ANY 大于等于子查询结果中的某个值

≥ \ge ALL 大于等于子查询结果中的所有值

≤ \le ANY 小于等于子查询结果中的某个值

≤ \le ALL 小于等于子查询结果中的所有值

=ANY 等于子查询结果中的某个值

=ALL 等于子查询结果中的所有值(通常没有实际意义)

!=ANY 不等于子查询结果中的某个值

!=ALL 不等于子查询结果中的任何一个值

查询非计算机科学技术专业中比计算机科学技术专业任意一个学生年龄小(出生日期晚)的学生的姓名、出生日期和主修专业:

SELECT Sname,Sbirthdate, Smajor FROM Student WHERE Sbirthdate > ANY (SELECT Sbirthdate FROM Student WHERE Smajor LIKE '计算机科学与技术') AND Smajor != '计算机科学与技术';

image-20240702223402598

图1-29

查询非计算机科学与技术专业中比计算机科学与技术专业所有学生年龄都小(出生日期晚)的学生的姓名及出生日期:

SELECT Sname,Sbirthdate FROM Student WHERE Sbirthdate > ALL (SELECT Sbirthdate FROM Student WHERE Smajor = '计算机科学与技术') AND Smajor != '计算机科学与技术';

image-20240703145744224

图1-30

这里不要写成这样:

SELECT Sname,Sbirthdate FROM Student WHERE Sbirthdate > ALL (SELECT Sbirthdate FROM Student WHERE Smajor = '计算机科学与技术') AND Smajor NOT IN '计算机科学与技术';

NOT IN操作符需要一个列表,在这里传递的是一个单独的字符串

带有EXISTS谓词的子查询

带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”

若内层查询结果非空,则外层的WHERE子句返回真值

若内层查询结果为空,则外层的WHERE子句返回假值

由EXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义

查询没有选修81001号课程的学生姓名:

SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno=Student.Sno AND Cno='81001');

image-20240703145732183

图1-31

查询选修了全部课程的学生姓名:

SELECT Sname
FROM Student
WHERE NOT EXISTS
(
    SELECT *
    FROM Course
    WHERE NOT EXISTS
    (
        SELECT *
        FROM SC
        WHERE Sno = Student.Sno AND Cno = Course.Cno
    )
);

查询至少选修了学生20180002选修的全部课程的学生的学号:

SELECT Sno
FROM Student
WHERE NOT EXISTS
(
    SELECT * /* 这是一个相关子查询 */
    FROM SC SCX /* 父查询和子查询均引用了SC表 */
    WHERE SCX.Sno = '20180002'
    AND NOT EXISTS
    (
        SELECT *
        FROM SC SCY /* 用别名SCX、SCY将父查询 */
        WHERE SCY.Sno = Student.Sno
        AND SCY.Cno = SCX.Cno /* 与子查询中的SC表区分开 */
    )
);

image-20240703145718464

图1-32

集合查询

查询计算机科学与技术专业的学生及年龄不大于19岁(包括等于19岁)的学生:

UNION:将多个查询结果合并起来时,系统自动去掉重复元组

UNION ALL:将多个查询结果合并起来时,保留重复元组

SELECT * 
FROM Student 
WHERE Smajor = '计算机科学与技术'
UNION
SELECT * 
FROM Student 
WHERE (extract(year from current_date) - extract(year from Sbirthdate)) <= 19;

image-20240703145706572

图1-33

查询计算机科学与技术专业的学生与年龄不大于19岁的学生的交集:

SELECT *
FROM Student s1
INNER JOIN (
    SELECT *
    FROM Student
    WHERE (EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM Sbirthdate)) <= 19
) s2 ON s1.Sno = s2.Sno
WHERE s1.Smajor = '计算机科学与技术';

= Student.Sno
AND SCY.Cno = SCX.Cno /* 与子查询中的SC表区分开 */
)
);


[外链图片转存中...(img-04xHjuUc-1719990528459)]

#### 图1-32

## 集合查询

查询计算机科学与技术专业的学生及年龄不大于19岁(包括等于19岁)的学生:

UNION:将多个查询结果合并起来时,系统自动去掉重复元组 

UNION ALL:将多个查询结果合并起来时,保留重复元组

```sql
SELECT * 
FROM Student 
WHERE Smajor = '计算机科学与技术'
UNION
SELECT * 
FROM Student 
WHERE (extract(year from current_date) - extract(year from Sbirthdate)) <= 19;

[外链图片转存中…(img-T6d6NhOy-1719990528460)]

图1-33

查询计算机科学与技术专业的学生与年龄不大于19岁的学生的交集:

SELECT *
FROM Student s1
INNER JOIN (
    SELECT *
    FROM Student
    WHERE (EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM Sbirthdate)) <= 19
) s2 ON s1.Sno = s2.Sno
WHERE s1.Smajor = '计算机科学与技术';

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

07.C2W2.Part-of-Speech (POS) Tagging and Hidden Markov Models

往期文章请点这里 目录 OverviewPart of Speech TaggingMarkov ChainsMarkov Chains and POS TagsPOS tags as StatesTransition probabilitiesThe transition matrixInitial probabilities Hidden Markov ModelsEmission probabilitiesSummary Calculating ProbabilitiesTran…

向新求质 智赋广西,2024华为数智转型助力企业高质量发展论坛在南宁举办

7月5日以“向新求质 智赋广西”为主题的2024华为数智转型助力企业高质量发展论坛在南宁成功举办。来自广西区管企业、驻桂央企和国有企业等80余位中高层管理者&#xff0c;与华为业务变革专家、数字化转型专家共同探讨企业数字化转型新路径&#xff0c;为企业创新转型发展献计献…

SSM城镇居民社区再生资源回收系统-计算机毕业设计源码04175

摘 要 本论文介绍了一个基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;技术的城镇居民社区再生资源回收系统的设计与实现。随着社会对环境保护意识的不断提高&#xff0c;再生资源回收成为了一种重要的环保行动。然而&#xff0c;传统的再生资源回收方式存在着信…

哈佛大学 || 概念空间中学习动态的涌现:探索隐藏能力

获取本文论文原文PDF&#xff0c;请在公众号【AI论文解读】留言&#xff1a;论文解读 今天主要看一个问题&#xff1a;在模型中的学习动态是如何涌现的。 在现代生成模型的研究与应用中&#xff0c;不断发现这些模型在处理训练数据时展现出了惊人的能力&#xff0c;这些能力很…

2024年【道路运输企业安全生产管理人员】考试及道路运输企业安全生产管理人员操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业安全生产管理人员考试参考答案及道路运输企业安全生产管理人员考试试题解析是安全生产模拟考试一点通题库老师及道路运输企业安全生产管理人员操作证已考过的学员汇总&#xff0c;相对有效帮助道路运输企…

数字身份管理发展趋势:​​​​​​扩展身份安全能力

身份作为企业各个应用的入口&#xff0c;大量存在于企业的内部业务和外部业务中&#xff0c;身份作为最核心数据对于企业的重要性不言而喻&#xff0c;因此也往往成为攻击者的攻击目标&#xff0c;从2023年国资国企受攻击的情况也不难看出&#xff0c;针对身份的攻击累计超过37…

metersphere链接腾讯邮箱步骤

1、打开腾讯邮箱生成授权码 路径&#xff1a;设置-账户-账户安全 生成的授权码只会展示1次&#xff0c;注意保存 2、在系统设置-系统参数设置-邮件设置填写授权码和SMTP信息 SMTP信息在邮箱的客户端设置中可以获取到对应的信息 3、信息填写完后&#xff0c;可以测试连接&…

golang 项目打包部署环境变量设置

最近将 golang 项目打包部署在不同环境&#xff0c;总结一下自己的心得体会&#xff0c;供大家参考。 1、首先要明确自己目标服务器的系统类型(例如 windows 或者Linux) &#xff0c;如果是Linux 还需要注意目标服务器的CPU架构(amd或者arm) 目标服务器的CPU架构可执行命令&…

Modbus通信协议学习——调试软件

Modbus通信协议是一种广泛应用于工业自动化领域的串行通信协议&#xff0c;由Modicon公司&#xff08;现为施耐德电气Schneider Electric&#xff09;于1979年开发。该协议已成为工业电子设备之间通信的通用标准&#xff0c;支持多种设备和系统之间的数据交换。以下是对Modbus通…

值传递与引用传递:深入理解Java中的变量赋值和参数传递机制

在Java中&#xff0c;理解值传递&#xff08;值拷贝&#xff09;与引用传递&#xff08;地址拷贝&#xff09;之间的区别对于正确处理数据结构和对象至关重要。本文将通过示例代码深入探讨这两种机制&#xff0c;并解释它们如何影响程序的行为。 值传递&#xff08;值拷贝&…

第16章 主成分分析:四个案例及课后习题

1.假设 x x x为 m m m 维随机变量&#xff0c;其均值为 μ \mu μ&#xff0c;协方差矩阵为 Σ \Sigma Σ。 考虑由 m m m维随机变量 x x x到 m m m维随机变量 y y y的线性变换 y i α i T x ∑ k 1 m α k i x k , i 1 , 2 , ⋯ , m y _ { i } \alpha _ { i } ^ { T } …

Drools开源业务规则引擎(二)- Drools规则语言(DRL)

文章目录 1.DRL文件的组成&#xff1a;2.package3.import4.function5.query6.declare7.global8.rule8.1.规则属性8.2.LHS8.2.1.语法格式8.2.2.运算符优先级8.2.3.特殊的运算符1.matches, not matches2.contains, not contains3.memberOf, not memberOf4.in, notin5.soundslike6…

7.8作业

一、思维导图 二、 1】按值修改 2】按值查找&#xff0c;返回当前节点的地址 &#xff08;先不考虑重复&#xff0c;如果有重复&#xff0c;返回第一个&#xff09; 3】反转 4】销毁链表 //按值修改 int value_change(linklistptr H,datatype e,int value) {if(HNULL||empty(H…

推出PSoC™ 车规级4100S Max系列,(CY8C4147LDE 和 CY8C4147LDS)支持性能更强大的第五代CAPSENSE™技术

推出全新车规级PSoC™ 4100S Max系列。这一微控制器器件系列具有更佳的闪存密度、通用输入输出接口&#xff08;GPIO&#xff09;、CAN-FD和硬件安全性&#xff0c;扩展了采用CAPSENSE™技术的汽车车身/暖通空调&#xff08;HVAC&#xff09;和方向盘应用人机界面&#xff08;H…

Unity之Text组件换行\n没有实现+动态中英互换

前因:文本中的换行 \n没有换行而是打印出来了,解决方式 因为unity会默认把\n替换成\\n 面板中使用富文本这个选项啊 没有用 m_text.text = m_text.text.Replace("\\n", "\n"); ###动态中英文互译 using System.Collections; using System.Collections…

什么叫低频晶振?低频晶振最低频率能达到多少?低频晶振封装尺寸有哪些?

低频晶振指的是那些工作在较低频率范围内的晶体振荡器&#xff0c;通常这类振荡器的标称频率低于8MHz。这些晶振在各种电子设备中都有应用&#xff0c;尤其是在那些需要精确但不需要高频振荡的应用场景中&#xff0c;比如实时时钟(RTC)、低速串行通信接口(如UART、IC等)、以及一…

怎么才能选到好的猫咪主食冻干?公认顶尖优秀主食冻干总结

如今&#xff0c;主食冻干市场纷繁多样&#xff0c;质量水平却大相径庭。部分品牌盲目追求高营养值和利润增长&#xff0c;却忽略了猫咪健康饮食的本质需求&#xff0c;导致市场上充斥着以次充好、虚假标注日期等不法行为。更有甚者&#xff0c;部分产品未经权威第三方检测便匆…

提高LabVIEW软件的健壮性

提高LabVIEW软件的健壮性&#xff0c;即增强其在各种操作条件下的可靠性和稳定性&#xff0c;是开发过程中非常重要的一环。健壮的软件能够在面对意外输入、极端环境和系统故障时依然表现出色&#xff0c;确保系统的连续性和可靠性。以下是详细的方法和策略&#xff0c;从多个角…

【活动行】参与上海两场线下活动,教育生态行业赛总决赛活动和WAIC人工智能大会活动 - 上海活动总结

目录 背景决赛最后一公里领域范围 决赛作品AI智教相机辅导老师Copilot辅导老师Copilot雅思写作竞技场 优秀作品总结 背景 决赛 百度发起的千帆杯教育生态行业赛于2024年7月4日进行线下决赛&#xff0c;博主虽然没能进入决赛&#xff0c;但也非常荣幸能够以嘉宾身份到现场给进…

Leaflet【七】加载海量点数据

本文深入探讨了Leaflet在渲染海量点数据时面临的性能挑战&#xff0c;提出了一种创新的解决方案——利用leaflet-marker-canvas插件。传统的循环绘制Marker方式在数据量巨大时会导致明显的性能下降&#xff0c;而通过将点数据加入Canvas进行批量渲染&#xff0c;显著提高了绘图…