数据库原理及应用·关系数据库标准语言SQL

4.1 SQL概述

4.1.1 SQL的产生和发展

1.产生

1974年,SQL语言的雏形最早由美国IBM公司的Raymond F. Boyce和Donald D. Chamberlin提出
1975-1979年,在System R上首次实现,由IBM的San Jose研究室研制,称为SEQUEL

2.发展

1986年推出了SQL-86标准,正式命名为“SQL: Structured Query Language”
1989年ANSI / ISO推出了SQL-89标准,它是数据库语言SQL的标准集合
1992年进一步推出了SQL-92标准,也称为SQL2,是SQL-89的超集,增加了许多新特性
1999年推出了SQL-99标准,也称为SQL3,对面向对象的一些特征予以支持

4.1.2 SQL的特点

(1)综合统一
(2)高度非过程化
(3)面向集合的操作方式
(4)语言简捷,易学易用
(5)以同一种语法结构提供两种使用方式:独立和嵌入。

4.1.3 SQL的基本概念

SQL与DBMS的关系
SQL的方言问题
SQL语言的功能组件
DML数据操纵语言
DDL数据定义语言
DCL数据控制语言

4.1.4 SQL基本数据类型

一、数值类型

(1)准确型:指在计算机中能够精确存储的数据


(2)近似型:指近似的数值数据类型

二、文本类型

(1)普通字符编码(每个英文字符占一个字节存储空间,每个汉字占两个字节存储空间)

(2)Unicode字符编码(每个英文字符和汉字都占两个字节存储空间)

三、日期时间类型

四、二进制类型

4.2 学生选课数据库

此部分只简单罗列库中四张表的结构:学生表、教师表、课程表、选课表

学生表:

教师表:

课表:

选课表:

4.3  数据定义

4.3.1 模式的定义与删除

1.模式的概念

数据库模式是一种逻辑分组对象,数据库模式是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。
可以想象一个模式作为对象的容器。
数据库模式可以作为一个命名空间,能防止来自不同模式的对象名称冲突。

2.模式创建的语法

创建模式的语法:
Create schema <模式名>
authorization <用户名>
定义模式实际上是定义一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表,视图,索引等

用sa账户登录,创建一个名为StudentDB的数据库,然后创建名为Sch1的模式。

准备工作:

Create database StudentDB
Use StudentDB 
Go 

CREATE LOGIN Zhou1 WITH PASSWORD = 'MyPassword123' 
Go 

CREATE USER Zhou1 FOR LOGIN Zhou1

模式创建与删除

Create schema Sch1 authorization Zhou1


Drop Schema Sch1

4.3.2 表操作

一、创建表

创建表的SQL语法的简化版是:

Create  Table  表名 
(
    字段1   数据类型1(长度),
    字段2   数据类型2(长度),
    字段3   数据类型3(长度) 
) 

注意:不是所有类型都需要长度,逗号用来分隔开多个字段。

创建一张名为Users的表,包含用户名vUserName和密码vPassword两个字段。用户名最大允许长度18个字符,密码最大允许长度20个字符。

Create Table Users 
(  
    vUserName varchar(18) Not NULL,
    vPassword varchar(20) Not NULL 
)

 创建学生表

CREATE TABLE Student
(
  Sno char(10) NOT NULL Constraint PK_Stu_No Primary Key ,
  Sname char(20) NOT NULL,
  Ssex char(2) NOT NULL Constraint CK_Stu_Sex Check(Ssex in ('男','女')),
  Smajor char(20) NOT NULL,
  Sdept char(20) NOT NULL,
  Sage tinyint  Constraint CK_Stu_Age Check(Sage between 1 and 80),
  Tel char(15) NOT NULL,
  EMAIL varchar(30) NOT NULL
)

二、修改表

 修改学生表结构

删除Sage年龄字段,增加dBirth字段。

另外将Smajor字段从目前的char(20)修改为varchar(20)。

Alter Table Student Drop Constraint CK_Stu_Age  --删除Sage字段上的约束
Alter Table Student Drop Column Sage
Alter Table Student Add dBirth datetime
Alter Table Student Alter Column Smajor varchar(20)

 三、删除表

删除表的语法为:

Drop  Table  表名

要删除先前的学生表,执行下面语句即可:

Drop Table Student

4.4 数据查询

4.4.1 查询语句的基本结构

SELECT select_list [ INTO new_table ]
[ FROM table_source ] 
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]

说明:ASC代表升序,DESC代表降序

4.4.2 单表查询

检索Student表的所有行和列。

Select * from Student

说明:“Select  *  from 表名”的语法形式,可以让用户快速了解一张表的数据样式。

投影运算:从Student表检索学号、姓名、性别、年龄、专业这五列信息。

Select Sno,Sname,Ssex,Sage,Smajor from Student

说明:只显示部分的列,是在Select之后给出要显示的字段的列表,并用逗号分隔开。

友好列标题:从Student表检索学号、姓名、性别、年龄、专业这五列信息,要求使用友好列标题。

Select Sno as 学号,Sname as 姓名,Ssex as 性别,Sage as 年龄 ,Smajor as 专业 from Student

说明:在原始字段名之后跟上as,然后就可以给一个友好列标题了。

top关键字:从Student表检索前三行数据

Select Top  3  * from Student

说明:使用Top n 语法来说明只显示前n条数据。

选择运算 :从Student表检索年龄为20岁的学生信息。

Select * from Student where Sage=20

说明:用where条件来实现行上的选择,此处需要使用比较运算符。

And连接多个条件:从Student表检索年龄大于21岁的女学生信息。

Select * from Student where Ssex='女' and Sage>21

Or连接多个条件:从Student表检索专业是“计算机应用”或“石油工程”的学生。

 Select * from Student where Smajor='计算机应用' or Smajor='石油工程'

说明:当要满足的条件有多个的时候,需要用And或者Or来连接。And表示同时满足,Or表示满足一个条件即可。

Between...And:检索学号在J2016001到J2016004之间的学生信息,显示学号、姓名、性别、年龄。

Select Sno,Sname,Ssex,Sage from Student where Sno between 'J2016001' and  'J2016004' 

说明:要比较的值是介于某个范围,并且包含边界值,则可以使用between…and语法。值可以是字符串,也可以是数字。


检索年龄不在19到21岁之间的学生信息,显示学号、姓名、性别、年龄。

Select Sno,Sname,Ssex,Sage from Student where Sage not between 19 and 21

说明:可以在between…and语法之前使用not进行取反。

In关键字:从Teacher表中检索职称为教授或副教授的教师信息。

Select * from Teacher where Tprot in ('教授','副教授')

说明:要检索的信息是一系列取值列表,可以使用in。

DISTINCT关键字:显示Teacher表中有哪些职称,要求显示结果不能有重复数据。

Select DISTINCT Tprot from Teacher 

说明:可以在字段名之前使用DISTINCT关键字,表示检索时显示不重复的信息。

Like模糊查询:查询Student表中姓刘的学生信息。

Select * from Student where Sname like '刘%' 

说明:可以使用like关键字进行模糊查询。


查询Student表专业中含有“学”字的学生的姓名及专业。

 Select Sname,Sdept from Student where Sdept like '%学%' 

说明:只要在Sdept的任何位置,出现“学”字,就检索出来。

查询Student表中邮箱地址满足在@左侧有且仅有四个字符的学生信息,结果显示姓名、院系、邮箱地址三列。

Select Sname,Sdept,EMAIL from Student where EMAIL like '____@%'

说明:@符号之前是四个紧密相连的下划线符号“_”,一个下划线代码与一个字符匹配。

IS NULL:检索Master数据库中spt_values表里low字段为空的数据行。

select * from spt_values where low IS NULL

说明:执行此语句,需要先转到Master数据库。

IS NOT NULL:检索Master数据库中spt_values表里high字段不为空的数据行。

select * from spt_values where high IS NOT NULL

说明:IS NOT NULL表示检索某列不为空的数据行。

Order by排序:显示Course表的所有行,要求按照课程名称的降序显示。

Select * from Course Order by Cname Desc

说明:使用Order by对显示的数据进行排序。


显示Course表的所有行,按照课程学分的降序排列,学分相同时再按照课程号的升序排列。

Select * from Course Order by Ccredit Desc,Cno Asc

说明:可以用逗号隔开多个排序的列或表达式,升序排列时Asc可以省略。

算术表达式:计算3乘以5的结果,及根号2的值。

Select 3*5,SQRT(2) 

说明:Select语句之后,可以是算术表达式,或者是函数。


对Course表,显示课程号、课程名、学分,另外额外增加一列“学时”,学时是等于学分乘以16。

Select Cno,Cname,Ccredit, Ccredit*16 as 学时 from Course

说明:从Course表中检索数据时,额外增加一个原来不存在的列,通过计算得到。

COUNT()函数:统计Teacher表中教授的数量。

Select COUNT(*) from Teacher where Tprot='教授' 

说明:COUNT()函数返回匹配指定条件的行数。COUNT(*) 函数返回表中的记录数,COUNT(column_name)函数返回指定列的值的数目(NULL不计入)。

集合函数:显示Teacher表中教师的最大、最小、平均年龄。

 Select MAX(Tage),MIN(Tage),AVG(Tage) from Teacher

说明:集合函数MAX、MIN、AVG可以用来计算某个字段的最大值、最小值、平均值


对Course表中的必修课的学分进行求和。

Select SUM(Ccredit) from Course where XKLB='必修'

说明:SUM函数用于求和。

Group By分组:对Course表,按照必修和选修进行分类,统计每种类别的课程数量。

Select XKLB as 类别,COUNT(Cname) as 数量 from Course Group by XKLB

说明:“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组


对Student表,按照专业和性别进行分组,显示每个专业、每种性别的学生数量。按照学生数量的降序显示结果。

Select Smajor,Ssex,COUNT(sNo) from Student Group by Smajor,sSex order by COUNT(sNo) Desc

说明:在指定分组字段时,可以不止一个分组字段。

对Teacher表,显示职称及对应的人数,要求只有统计人数大于等于5人才显示。

Select Tprot ,COUNT(Tprot) from Teacher Group by Tprot Having COUNT(Tprot)>=5

4.4.3 多表连接查询

一、连接查询分类

多表连接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征。

连接查询可分为三大类,分别是内连接、外连接,交叉连接

1.内连接

内连接是最典型、最常用的连接查询,它根据表中共同的列来进行匹配,只有满足匹配的条件的数据才能被查询出来。通常,两个表存在主外键关系时会使用到内连接查询。

内联结常使用“=”比较运算符来判断两列数据是否相等,通过使用Inner Join关键字进行表之间的关联。

对SC和Student表进行内连接,显示学生的学号、姓名、课程号、分数。

--方法一
Select  Student.Sno,Student.Sname, SC.Cno,SC.Grade     
from SC Join Student     
On SC.Sno=Student.Sno

--方法二
Select  Student.Sno,Student.Sname, SC.Cno,SC.Grade
from SC,Student
where SC.Sno=Student.Sno 

将SC和Student内连接起来,显示相应的信息,其实可以理解为,对SC表中的每一个学号,到Student表中根据学号查找到对应的姓名。

2.外连接

在内连接中,只有满足连接条件的元组才能作为结果输出。但有时我们也希望输出哪些不满足连接条件的元组信息,这时就需要使用外连接。外连接可分为:左连接、右连接、完全外连接

(1)左连接 left join 或 left outer join

(2)右连接 right join 或 right outer join

(3)完全外连接  full join 或 full outer join

3.交叉连接

交叉连接就是表之间没有任何关联条件,查询将返回左表与右表逐个连接的所有行,就是左表的的每一行与右表的所有行一一组合,相当于两个表相乘

没有 WHERE 子句的交叉连接将产生连接所涉及的表的笛卡尔积第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。

三张表连接:显示学生的学号,姓名,课程名,考试分数。

--方法一
Select  Student.Sno,Student.Sname,Course.Cname ,SC.Grade
from SC Join Student
On SC.Sno=Student.Sno
Join Course
On SC.Cno=Course.Cno 

--方法二
Student.Sno,Student.Sname, Course.Cname ,SC.Grade
from SC,Student,Course
where  SC.Sno=Student.Sno and SC.Cno=Course.Cno

本质就是对SC表,将其中的一些编号,翻译成对应的含义。将学号翻译为了学生的姓名,将课程号翻译为了课程名。三张表的连接,需要两个连接条件。

4.4.4 嵌套查询

1.使用IN的子查询

过IN(或NOT IN)引入的子查询结果是包含零个值或多个值的列表。

子查询返回结果之后,外部查询将利用这些结果。

2.用ANY、ALL修改的比较运算符

可以用ALL或ANY关键字修改引入子查询的比较运算符。SOME是与ANY等效的ISO标准。

以>比较运算符为例,>ALL表示大于每一个值。换句话说,它表示大于最大值。例如,>ALL(1,2,3)表示大于3。

ANY表示至少大于一个值,即大于最小值。因此>ANY(1,2,3)表示大于1。

3.使用EXISTS的子查询

使用EXISTS关键字引入子查询后,子查询的作用就相当于进行存在测试。

外部查询的WHERE子句测试子查询返回的行是否存在。

子查询实际上不产生任何数据,它只返回TRUE或FALSE值。

等于单个值:查询有某科目考试分数为48分的学生信息:

Select * from Student Where Sno = (Select sNo from SC where Grade=48)

In列表:查询在SC表中选修了课程的学生的信息。

Select * from Student  Where Sno in (Select Distinct Sno  from SC)

说明:子查询得到学生的学号,外部查询根据学号找到学生。

Not In:查询没有选修过任何课程的学生的信息。

Select * from Student Where Sno Not In (Select Distinct Sno from SC) 

说明:Not In表示字段的值不在后面的子查询返回结果中。
 

ALL:在教师表中,检索比任何一个女教师年龄都大的男教师的信息。

Select * from Teacher
Where Tsex ='男' and Tage > ALL(Select Tage from Teacher  where Tsex='女')

分析:子查询得到每一位女教师的年龄,外层查询使用“>ALL”的语法,即比集合中最大值还大。


exists:查询选修了B004课程的学生的基本信息。

Select * from Student
where exists (Select * from SC where Sno=Student.Sno  and Cno='B004')

查询没有选修X001课程的学生的基本信息。

Select * from Student where not exists (Select * from SC where Sno=Student.Sno and Cno='X001')

查询与王国在同一个专业学习的所有学生的基本信息。

Select Sno,Sname, Smajor  from Student S1 where exists (Select * from Student S2 Where S1.Smajor = S2.Smajor and S2.Sname='王国') 

4.4.5 集合查询

1.集合查询简介

SELECT语句查询的结果是元组的集合,所以多个SELECT语句的查询结果可进行集合操作,包括并 (Union)、 交 (Intersect) 、差 (Except)。

这三种运算能够进行的前提,是SELECT语句必须拥有相同数量的列,且类型兼容

2.并运算

将学生的学号、姓名,与教师的教工号、姓名,在一个检索结果中显示出来。

Select Sno,Sname from Student Union select Tno ,Tname from Teacher

注意:并运算有UNION和UNION ALL两种用法

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

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

3.交运算

对专业名以计算机开头的学生,及年龄是21的学生,用交运算求二者的交集。

Select Sno,Sname,Sage ,Smajor from Student
where Smajor like '计算机%'
Intersect
Select Sno,Sname,Sage ,Smajor from Student Where Sage=21

4. 差运算

查询专业名以计算机开头的学生,但不包括年龄是21的学生。

Select Sno,Sname,Sage ,Smajor from Student
where Smajor like '计算机%'
Except
Select Sno,Sname,Sage ,Smajor from Student
Where Sage=21 

4.5 数据更新

4.5.1 插入数据

插入数据分为插入单个元组、插入子查询结果及直接从查询结果创建新表。

(1)插入数据(插入单个元组),语法:

 INSERT [INTO] table_or_view [(column_list)] data_values

(2)插入数据(插入子查询结果) 在INSERT语句中使用SELECT子查询。

(3)插入数据(直接从查询结果创建表) SELECT INTO 语句用于创建一个新表

插入单行数据:在Course中插入一行数据,四项数据为('X004','计算机前沿',2,'选修')。

Insert Into Course(Cno,Cname,Ccredit,XKLB) Values('X004','计算机前沿',2,'选修')

如果不是对表中的所有字段都给出值,或者是要更改列出现的顺序,则必须在表名后面出现字段名的列表。如果是要对表中的所有字段赋值,则可以省略字段名。

 查询创建新表:将Teacher中职称为教授的信息,存入到一张目前还不存在的Experts表。

Select * Into Experts from Teacher
Where Tprot='教授'

说明:语法是“Select  选择列表  Into 新表名  from 原始表”。

 4.5.2 更新数据

更新数据也叫做修改数据。修改数据分为修改符合一定条件元组的值、修改所有元组的值及带子查询的修改。

(1)修改符合一定条件元组的值,语法:

Update table_or_view set column=data_values WHERE search_condition

(2)修改数据(修改所有元组的值),不指定Where字句即可。

(3)带子查询的修改

修改特定行:将Course表中编号是B002的课程,学分修改为3分。

Update Course set Ccredit=3 Where Cno='B002'

说明:通过Where字句限定行,通过“set  字段名=新值”进行数据修改。

 带子查询的修改:对学生表,将现有的专业字段,用来存放该学生选修的第一门课程的编号。

Update Student
set Smajor=(Select top 1 Cno from SC  Where SC.Sno=Student.Sno)

说明:要能成功执行,Smajor必须允许非空

4.5.2 删除数据

删除数据分为删除符合一定条件的元组、删除所有元组及带子查询的删除。

(1)删除符合一定条件的元组,语法:

 DELETE table_or_view FROM table_sources WHERE search_condition

(2)删除所有元组

 DELETE FROM 表名

(3)带子查询的删除

删除满足条件的行:删除Course表中编号为B009的记录。

 Delete from Course Where Cno='B009' 

说明:根据主关键字,找到特定的行,并进行删除。

带子查询的删除: 对Course表中,没有任何学生选修过的课程,执行删除操作。

Delete from Course Where Cno not in (Select Cno from sc)

4.6  视图

4.6.1  定义视图

利用CREATE VIEW语句可以创建视图,该命令的基本语法如下:

CREATE VIEW [ schema_name . ] view_name
[ (column [ ,...n ] ) ]
[ WITH ENCRYPTION ]
AS SELECT_statement
[ WITH CHECK OPTION ]

创建视图的Select的限制

① 定义视图的用户必须对所参照的表或视图有查询权限,即可执行SELECT语句。

② 不能使用COMPUTE或COMPUTEBY子句。

③ 不能使用ORDERBY子句。

④ 不能使用INTO子句。

⑤ 不能在临时表或表变量上创建视图。

创建视图:创建一个名为vwScs的视图,是将学生表中院系是计算机科学学院的学生的学号,姓名,性别,专业四个字段显示出来。

Create view vwScs
As
Select Sno,Sname,Ssex,Tel,EMAIL from Student Where Sdept='计算机科学学院'

创建名为vwScore的视图,显示学生的学号、姓名、课程号、考试分数。

Create view vwScore
As
Select  Student.Sno,Student.Sname, SC.Cno, SC.Grade
from SC,Student
where SC.Sno=Student.Sno

4.6.2 更新视图

更新视图是指,通过视图对基本表中的数据进行修改。更新视图有以下三条规则:

(1)  若视图是基于多个表使用联接操作而导出的,那么对这个视图执行更新操作时,每次只能影响其中的一个表。

(2)  若视图导出时包含有分组和聚合操作,则不允许对这个视图执行更新操作。

(3)  若视图是从一个表经选择、投影而导出的,并在视图中包含了表的主键字或某个候选键,这类视图称为“行列子集视图”,对这类视图可执行更新操作。

通过视图修改数据:通过vwScs视图进行数据更新,将杨华的电话修改为13966667777。

Update vwScs set  tel='13966667777' where Sname='杨华'

4.6.3 查询视图

视图建立完成后,就可以像访问表一样访问视图了。如针对向先前创建的视图,可以执行下面的SQL:

Select * from  vwScore Select * from  vwScore Where Grade <85

4.6.4 视图的优点

视图隐藏了底层的表结构,简化了数据访问操作

因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据。

使用视图,方便了权限管理,让用户对视图有权限而不是对底层表有权限进一步加强了安全性。

视图提供了一个用户访问的接口,当底层表改变后,改变视图的语句来进行适应,使已经建立在这个视图上客户端程序不受影响。

4.6.5 视图修改与加密

对于已经创建的视图,要修改封装在其中的SQL代码,使用“Alter  View  视图名  As…”的语法即可。

视图要进行加密,只需要在创建视图的时候,在视图名称之后使用“WITH ENCRYPTION”即可。

创建视图代码加密:创建名为vwScore2的视图,能显示学生的学号、姓名、课程名、分数。要求创建视图的源代码要加密。

Create View vwScore2
With Encryption As
Select Student.Sno,Student.Sname, Course.Cname ,SC.Grade
from SC,Student,Course
where SC.Sno=Student.Sno and SC.Cno=Course.Cno

4.7 索引

4.7.1 索引概述

在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单

索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

建立索引的一般原则:如果某属性或属性组经常出现在查询条件中,则考虑为该属性或属性组建立索引;如果某个属性经常作为分组的依据列,则考虑为该属性建立索引; 如果某属性和属性组经常出现在连接操作的连接条件中,则考虑为该属性或属性组建立索引。

索引的分类:
主键索引:当创建表时指定的主键列,会自动创建主键索引,并且拥有唯一的特性。
唯一索引(UNIQUE):每一行的索引值都是唯一的(创建了唯一约束,系统将自动创建唯一索引)
聚集索引(CLUSTERED):聚集索引就相当于使用字典的拼音查找,因为聚集索引存储记录是物理上连续存在的,即拼音a过了后面肯定是b一样。
非聚集索引(NONCLUSTERED):非聚集索引就相当于使用字典的部首查找,非聚集索引是逻辑上的连续,物理存储并不连续

4.7.2 建立与删除索引

聚集索引:对Course2表,将Cno字段设置为聚集索引和主关键字字段。

Alter Table Course2
Add Constraint PK_Course2_Cno Primary Key Clustered (Cno)

说明:通过修改表结构的语句,来指定主关键字的字段名称。

唯一索引:对Course2表,将Cname字段设置为唯一索引。

Create unique index idxCourseName on Course2(Cname)

说明:在Create和Index之间使用Unique关键字。

 删除索引:对Course2表,删除创建的索引idxCourseName。

drop index idxCourseName On Course2
drop index Course2.idxCourseName

说明:使用上述两种方法之一,都可以删除对应的索引。

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

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

相关文章

文件夹共享功能的配置 以及Windows server2012防火墙的配置

目录 一. 配置文件夹共享功能 1.1 为什么需要配置文件夹共享功能 1.2 配置文件夹共享 1.3 访问共享文件夹 1.4 配置取消 用户名和密码认证 二. windows server 2012防火墙配置 思维导图 一. 配置文件夹共享功能 1.1 为什么需要配置文件夹共享功能 我们在工作和生活中经…

RM3100 stm32驱动(硬件i2c)

目录 RM3100接线HAL库I2C函数HAL_I2C_Mem_ReadHAL_I2C_Mem_WriteHAL_I2C_Master_Transmit / HAL_I2C_Master_Receive例子 HSHAKE寄存器 cubemx配置RM3100寄存器驱动最终效果 RM3100接线 原理图 SA0 SA1接地&#xff0c;此时i2c设备地址为0100000&#xff0c;即0x20 如果SA0接…

Scikit-Learn线性回归(一)

Scikit-Learn线性回归一 1、线性回归概述1.1、回归1.2、线性1.3、线性回归1.4、线性回归的优缺点1.5、线性回归与逻辑回归2、线性回归的原理2.1、线性回归的定义与原理2.2、线性回归的损失函数3、Scikit-Learn线性回归3.1、Scikit-Learn库3.2、Scikit-Learn线性回归API3.3、Sci…

Spring-2-配置和Springboot

bean的生命周期 挂钩到bean的创建 通过了解初始化的时间&#xff0c;bean可以检查是否满足其所需的所有依赖项。 尽管Spring可以帮助我们检查依赖项&#xff0c;但它几乎是一种全有或全无的方法&#xff0c;并且不会提供任何机会来将其他逻辑应用于依赖项的解析过程中。 假设…

JavaWeb的Servlet的入门和使用方法

1 什么是Servlet Servlet是Server Applet的简称&#xff0c;是用Java编写的是运行在 Web 服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet&#xff0c;可以收集来自网页表单的用户输…

猴子目标检测数据集VOC格式1300张

猴子是一种充满活力和灵巧的灵长类动物&#xff0c;分布广泛&#xff0c;生活在世界各地的热带雨林、草原、沼泽和山区。猴子通常以水果、坚果、种子、昆虫和植物叶子为食&#xff0c;它们拥有灵敏的双手和手指&#xff0c;可以灵活地采摘食物。猴子的智商相当高&#xff0c;有…

杜邦6150up同级抛光树脂:生产超纯水的关键

超纯水的制备不仅对单晶硅电池的制造至关重要&#xff0c;而且对整个清洁能源领域的发展具有深远影响。随着全球对可再生能源的需求不断增长&#xff0c;提高太阳能电池的效率和降低成本已成为当务之急。超纯水的使用直接关系到电池的性能和寿命&#xff0c;因此&#xff0c;掌…

家校互通小程序实战开发02首页搭建

目录 1 创建应用2 搭建首页总结 我们上一篇介绍了家校互通小程序的需求&#xff0c;创建了对应的数据源。有了这个基础的分析之后&#xff0c;我们就可以进入到开发阶段了。开发小程序&#xff0c;先需要创建应用。 1 创建应用 登录控制台&#xff0c;点击创建应用&#xff0c…

【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

第一章 简介 太赫兹波是介于微波和光波之间的光谱区域&#xff0c;频率从 0.1THz ~ 10THz 之间&#xff0c;波长在 3mm ~ 30μm 之间。提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的需求&#xff0c;使该区域成为下一代无线通信&#xff08;6G&#xff09;的重…

ARCGIS PRO SDK GeometryEngine处理独立几何图形的函数

1、面积类&#xff1a;pol为Polygon 1).Area&#xff1a;获取几何图形的面积。这是使用二维笛卡尔数学来计算面积的平面测量 double d GeometryEngine.Instance.Area(pol) 2).GeodesicArea:获取几何图形的椭球面积 …

FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

FPGA-AMBA协议、APB协议、AHB协议、AXI&#xff14;协议规范概述 笔记记录&#xff0c;AMBA协议、APB协议、AHB规范、AXI&#xff14;协议规范概述&#xff0c;只是概述描述&#xff0c;具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 文章目录 FPGA-AMBA协议…

爬虫系列----Python解析Json网页并保存到本地csv

Python解析JSON 1 知识小课堂1.1 爬虫1.2 JSON1.3 Python1.4 前言技术1.4.1 range1.4.2 random1.4.3 time.sleep1.4.4 with open() as f: 2 解析过程2.1 简介2.2 打开调试工具2.3 分析网址2.3.1 网址的规律2.3.2 网址的参数 2.4 爬取第一页内容2.5 存入字典并获取2.6 循环主体数…

【LeetCode刷题笔记(13-1)】【Python】【回文数】【反转整数】【简单】

文章目录 引言回文数题目描述提示 题意分析解决方案1&#xff1a;【反转字符串】解决方案2&#xff1a;【反转整数】题外话结束语 9. 回文数 引言 编写通过所有测试案例的代码并不简单&#xff0c;通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的测试案例&#xff0…

blender scripting 编写

blender scripting 编写 一、查看ui按钮对应的代码二、查看或修改对象名称三、案例&#xff1a;渲染多张图片并导出对应的相机参数 一、查看ui按钮对应的代码 二、查看或修改对象名称 三、案例&#xff1a;渲染多张图片并导出对应的相机参数 注&#xff1a;通过ui交互都设置好…

基于springboot+vue的教材管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

windows操作系统蓝屏错误日志分析日志通用方法全网唯一程序员必学技能

windows11操作系统蓝屏错误分析日志通用方法全网唯一程序员必学技能 一、背景介绍 本人是一个老程序员&#xff0c;DBA&#xff0c;架构师&#xff0c;开发工作10年了&#xff0c;我们平常用的开发电脑以及游戏电脑时不时会遇到操作系统突然蓝屏&#xff0c;一般情况下都是一…

C++力扣题目232--用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头…

ThingsBoard 3.4 -- 规则链使用

规则链的使用 创建规则链 调试模式用于调试日志的输出&#xff0c;测试阶段建议选择 配置规则 点击规则链&#xff0c;进入详情页面 打开规则链进行规则配置 规则链节点类型分为6类&#xff0c;每一类下面又包含多个小类 过滤器/筛选器&#xff1a;过滤器节点用于消息过滤…

springboot对接WebSocket实现消息推送

1.修改pom文件 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.增加配置WebSocketConfig.java import org.springframework.context.annotation.Bean…

网络隔离后,怎样建立高效安全的数据安全交换通道?

数据安全对企业生存发展有着举足轻重的影响&#xff0c;数据资产的外泄、破坏都会导致企业无可挽回的经济损失和核心竞争力缺失。数据流动才能让其释放价值&#xff0c;想要保护企业核心资产&#xff0c;就要实现数据安全交换。 很多企业为了防止知识产权、商业机密数据泄露&am…
最新文章