Mysql高级语句

高级语句

1.按关键字排序

SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... 
ASC|DESC
ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。
SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC方式进行排序。
DESC 是按降序方式进 行排列。
当然 ORDER BY 前面也可以使用 WHERE 子句对查询结果进一步过滤

实验准备

数据库有一张info表,记录了学生的id,姓名,分数,地址和爱好
create table ky30 (id int,name varchar(10) primary key not null ,score decimal(5,2),address varchar(20),hobbid int(5));

insert into ky30 values(1,'liuyi',80,'beijing',2);
insert into ky30 values(2,'wangwu',90,'shengzheng',2);
insert into ky30 values(3,'lisi',60,'shanghai',4);
insert into ky30 values(4,'tianqi',99,'hangzhou',5);
insert into ky30 values(5,'jiaoshou',98,'laowo',3);
insert into ky30 values(6,'hanmeimei',10,'nanjing',3);
insert into ky30 values(7,'lilei',11,'nanjing',5);

order by(asc desc)

按分数排序,默认不指定是升序排列

select name,score from ky30 order by score;

 分数按降序排列

select name,score from ky30 order by score desc;

 order by还可以结合where进行条件过滤,筛选地址是杭州的学生按分数降序排列

select name,score,address from ky30 where address='hangzhou' order by score desc;

ORDER BY 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,ORDER BY 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定
但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义
① 查询学生信息先按兴趣id降序排列,相同分数的,id也按降序排列

select id,name,hobbid from ky30 order by hobbid desc,id desc;

②  查询学生信息先按兴趣id降序排列,相同分数的,id按升序排列

select id,name,hobbid from ky30 order by hobbid desc,id;

2.区间判断及查询不重复记录

 AND/OR ——且/或

统计分数在70-90之间的

select * from ky30 where score >70 and score <=90;

统计分数在90之上和分数在60之下的

select * from ky30 where score>=90 or score <=60; 

在90之上和分数在60之下的降序排列

select * from ky30 where score>=90 or score <=60 order by score desc;

 嵌套/多条件

查询成绩小于70或者在80-90之间的并降序排列

select * from ky30 where score < 70 or (score >= 80 and score <= 90) order by score desc;

 distinct 查询不重复记录

select distinct 字段 from 表名﹔

 3.对结果进行分组

group by

通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 
GROUP BY 通常都是结合聚合函数一起使用的
常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN)
GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。
语法
SELECT column_name, aggregate_function(column_name)FROM table_name
 WHERE column_name operator value GROUP BY column_name;

 按hobbid相同的分组,计算相同分数的学生个数(基于name个数进行计数)

select hobbid,count(name) from ky30 group by hobbid;

 结合where语句,筛选分数大于等于80的根据爱好分组,计算学生个数

select hobbid,score,count(name) from ky30 where score>=80 group by hobbid;

 结合order by把计算出的学生个数按升序排列

select count(name),score,hobbid from ky30 
where score>=80 group by hobbid order by count(name) asc;

 4.限制结果条目(limit⭐⭐⭐)

limit 限制输出的结果记录
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。
有时候仅 需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句

LIMIT 的第一个参数是位置偏移量(可选参数),是设置 MySQL 从哪一行开始显示。 
如果不设定第一个参数,将会从表中的第一条记录开始显示。
需要注意的是,第一条记录的 位置偏移量是 0(0表示的是字段),第二条是 1,以此类推。
第二个参数是设置返回记录行的最大数目。

语法
SELECT column1, column2, ... FROM table_name LIMIT [offset,] number

查询所有信息显示前4行记录

select * from ky30 limit 3;

从第4行开始,往后显示3行内容

select * from ky30 limit 3,3;

结合order by语句,按id的大小升序排列显示前三行

select id,name from ky30 order by id limit 3;

#输出最后三行⭐⭐

select id,name from ky30 order by id desc limit 3;

 5.设置别名

在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,
为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。
使用的时候直接使用别名,简洁明了,增强可读性

语法
对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;


在使用 AS 后,可以用 alias_name 代替 table_name,其中 AS 语句是可选的。
AS 之后的别名,主要是为表内的列或者表提供临时的名称,
在查询过程中使用,库内实际的表名 或字段名是不会被改变的

使用场景:
1、对复杂的表进行查询的时候,别名可以缩短查询语句的长度
2、多表相连查询的时候(通俗易懂、减短sql语句)

 对于列设置别名

select name as n,score as s from ky30;
用于从名为“ky30”的表中选择“name”和“score”两列,并将它们的列名分别指定为“n”和“s”。其中:

name:表示“ky30”表中的“name”列。
score:表示“ky30”表中的“score”列。
AS:用于将列名指定为别名。
n:指定“name”列的别名为“n”。
s:指定“score”列的别名为“s”。

 对于表设置别名

select i.name as 姓名,i.score as 成绩 from ky30 as i;
用于从名为“ky30”的表中选择“name”和“score”两列,并将它们的列名分别指定为“姓名”和“成绩”,同时使用“i”作为表的别名。其中:

i.name:表示“ky30”表中的“name”列,使用“i”作为表的别名。
i.score:表示“ky30”表中的“score”列,使用“i”作为表的别名。
AS:用于将列名指定为别名。
姓名:指定“name”列的别名为“姓名”。
成绩:指定“score”列的别名为“成绩”。

查询ky30表的字段数量,以number显示

select count(*) as number from ky30;
用于从名为“ky30”的表中计算表中行的数量,并将其别名为“number”。其中:

count():用于计算表中行的数量,其中“”表示所有行。
AS:用于将计算结果指定为别名。
number:指定计算结果的别名为“number”。

 AS 还可以作为连接语句的操作符

create table t1 as select * from ky30;

这是一条 SQL 语句,用于创建一个名为“t1”的新表,并将“ky30”表中的所有数据复制到新表中。其中:

create table:用于创建新表。
t1:指定新表的名称为“t1”。
as select * from ky30:用于从“ky30”表中选择所有数据,并将其插入到新表“t1”中。
因此,执行该 SQL 语句后,将创建一个名为“t1”的新表,该表包含与“ky30”表相同的列和数据。
注意,新表“t1”将不包含任何索引、约束或其他属性,这些属性需要在创建表后手动添加。

相当于克隆、复制表结构

 也可加上where进行语句判断

 create table t2 as select * from ky30 where score >=90;

在为表设置别名时,要保证别名不能与数据库中的其他表的名称冲突。
列的别名是在结果中有显示的,而表的别名在结果中没有显示,只在执行查询时使用。

 6.通配符与like

通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。

通常通配符都是跟 LIKE 一起使用的,
并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个
% :百分号表示零个、一个或多个字符
_ :下划线表示单个字符
通配符“%”和“_”不仅可以单独使用,也可以组合使用


---- LIKE ----匹配一个模式来找出我们要的数据记录
语法:SELECT "字段" FROM "表名" WHERE "字段" LIKE {模式};

 需求:查询名字是l开头的记录

select id,name from ky301 where name like 'l%';

 查询名字里是l和i中间有一个字符的记录

select id,name from ky301 where name like 'l%i';

 查询名字中间有g的记录

select id,name from ky301 where name like '%g%';

 查询liu后面3个字符的名字记录

select id,name from ky301 where name like 'liu__';

 查询名字第二个字符是i的记录

select id,name from ky301 where name like '_i%';

7.子查询

子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语句。
子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一步的查询过滤。
PS: 子语句可以与主语句所查询的表相同,也可以是不同表
PS:子语句中的sql语句是为了,最后过滤出一个⭐⭐ 结果集 ⭐⭐ ,用于主语句的判断条件


⭐⭐ in: 将主表和子表关联/连接的语法
IN 用来判断某个值是否在给定的结果集中,通常结合子查询来使用
语法:
<表达式> [NOT] IN <子查询>
当表达式与子查询返回的结果集中的某个值相等时,返回 TRUE,否则返回 FALSE。 
使用NOT 关键字,则返回值相反,其作用与IN相反,表示否定(即不在子查询的结果集里面)
子查询只能返回一列数据,如果需求比较复杂,一列解决不了问题,可以使用多层嵌套的方式来应对
多数情况下,子查询都是与 SELECT 语句一起使用的




连接表格,在WHERE 子句或 HAVING 子句中插入另一个 SQL 语句
语法:SELECT "字段1" FROM "表格1" WHERE "字段2" [比较运算符] 				#外查询
(SELECT "字段1" FROM "表格2" WHERE "条件");									#内查询
 
#可以是符号的运算符,例如 =、>、<、>=、<= ;也可以是文字的运算符,例如 LIKE、IN、BETWEEN
 
#括号里的查询语句作为where语句的查询条件
SELECT SUM(Sales) FROM store_info WHERE store_name IN  (SELECT Store_Name FROM location WHERE Region = 'West');

 查询分数大于80的记录

select id,name,score from ky301 where id in (select id from ky301 where score > 80);

用于从名为“ky301”的表中选择“id”、“name”和“score”三个字段,
其中“id”在子查询中被筛选出来,该子查询选择了“score”大于80的所有记录。

SELECT id, name, score:用于选择“id”、“name”和“score”三个字段。
FROM ky301:用于指定查询的表为“ky301”。
WHERE id IN (SELECT id FROM ky301 WHERE score > 80):用于筛选出“id”在子查询中被选择的记录。
子查询选择了“ky301”表中“score”大于80的所有记录的“id”,然后结果集由主语句显示查询选择的三个字段

 子查询还可以用在 INSERT 语句中。

子查询的结果集可以通过 INSERT 语句插入到其 他的表中

将t1里的记录全部删除,重新插入ky301表的记录

insert into t1 select * from ky301 wheree id in (select id from ky301);

该语句包含以下几个部分:
INSERT INTO t1:用于将数据插入到“t1”表中。
SELECT * FROM ky301:用于从“ky301”表中选择所有字段的值。
WHERE id IN (SELECT id FROM ky301):用于筛选出“ky301”表中所有“id”字段的值,并将这些值插入到“t1”表中。

UPDATE 语句也可以使用子查询。

UPDATE 内的子查询,在 set 更新内容时,可以是单独的一列,也可以是多列。 

将lisi的分数改为50

update ky301 set score=50 where id in ( select id from ky30 where id=3);

如果子查询使用*,那么查询的表只能由id字段

 DELETE 也适用于子查询

删除分数大于80的记录

 delete from ky301 where id in (select id where score>80);

8.exists

用来测试内查询有没有产生任何结果,类似布尔值是否为真
EXISTS 这个关键字在子查询时,主要用于判断子查询的结果集是否为空。
如果不为空, 则返回 TRUE;反之,则返回 FALSE
#如果有的话,系统就会执行外查询中的SQL语句。若是没有的话,那整个 SQL 语句就不会产生任何结果。
语法:SELECT "字段1" FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件");
 
 
SELECT SUM(Sales) FROM store_info WHERE EXISTS (SELECT * FROM location WHERE Region = 'West');

 查询如果存在分数等于80的记录则计算ky301的字段数

select count(*) from ky301 where exists(select id from ky301 where score=80);

9.Mysql视图

数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射
作用场景[图]:
针对不同的人(权限身份),提供不同结果集的“表”(以表格的形式展示)


功能:
简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性
本质而言视图是一种select(结果集的呈现)

PS:视图适合于多表连接浏览时使用!不适合增、删、改
而存储过程适合于使用较频繁的SQL语句,这样可以提高执行效率!
##视图和表的区别和联系

#区别:
①、视图是已经编译好的sql语句。而表不是

②、视图没有实际的物理记录。而表有。
show table status\G

③、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改

④、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

⑤、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

⑥、视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的)

#联系:
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,
它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。
视图是基本表的抽象和在逻辑意义上建立的新关系。
视图不保存真实数据,视图本质类似select
示例1:
需求:满足80分的学生展示在视图中
PS:这个结果会动态变化,同时可以给不同的人群(例如权限范围)展示不同的视图

#创建视图(单表)
create view v_score as select * from ky301 where score>=80;

#查看表状态
show table status\G

#查看视图
select * from v_score;

#查看视图与源表结构
desc v_score;

desc ky301;
示例2:
#多表创建视图
创建test01表
create table test01 (id int,name varchar(10),age char(10));
insert into test01 values(1,'zhangsan',20);
insert into test01 values(2,'lisi',30);
insert into test01 values(3,'wangwu',29);

需求:需要创建一个视图,需要输出id、学生姓名、分数以及年龄

CREATE VIEW v_ky301 (id, name, score, age)
AS SELECT ky301.id, ky301.name, ky301.score, test01.age
FROM ky301, test01
WHERE ky301.name = test01.name;
#内容是通过连接“ky301”表和“test01”表来生成的,其中“ky301.name=test01.name”是连接条件

select * from v_ky301;

#修改原表数据
update ky301 set score='60' where name='lisi';
select * from v_ky301;   #视图发生变化

#同时可以通过视图修改原表
update v_ky301 set score='110' where name='wangwu';
#原表数据改变

10.连接查询

MySQL 的连接查询,通常都是将来自两个或多个表的记录行结合起来,
基于这些表之间的 共同字段,进行数据的拼接。
首先,要确定一个主表作为结果集,然后将其他表的行有选择 性的连接到选定的主表结果集上。
使用较多的连接查询包括:内连接、左连接和右连接

模板:
create table test1 (
a_id int(11) default null,
a_name varchar(32) default null,
a_level int(11) default null);

create table test2 (
b_id int(11) default null,
b_name varchar(32) default null,
b_level int(11) default null);

insert into test1 values (1,'aaaa',10);
insert into test1 values (2,'bbbb',20);
insert into test1 values (3,'cccc',30);
insert into test1 values (4,'dddd',40);

insert into test2 values (2,'bbbb',20);
insert into test2 values (3,'cccc',30);
insert into test2 values (5,'eeee',50);
insert into test2 values (6,'ffff',60);

10.1 内连接

MySQL 中的内连接就是两张或多张表中同时符合某种条件的数据记录的组合。
通常在 FROM 子句中使用关键字 INNER JOIN 来连接多张表,并使用 ON 子句设置连接条件,
内连接是系统默认的表连接,所以在 FROM 子句后可以省略 INNER 关键字,只使用 关键字 JOIN。
同时有多个表时,也可以连续使用 INNER JOIN 来实现多表的内连接,
不过为了更好的性能,建议最好不要超过三个表

内连查询:通过inner join 的方式将两张表指定的相同字段的记录行输出出来

select a_id,a_name from test1 inner join test2 t2 on test1.a_name=test2.b_name;
+------+--------+
| a_id | a_name |
+------+--------+
|    2 | bbbb   |
|    3 | cccc   |
+------+--------+

10.2 左连接

左连接也可以被称为左外连接,在 FROM 子句中使用 LEFT JOIN 或者 LEFT OUTER JOIN 关键字来表示。
左连接以左侧表为基础表,接收左表的所有行,并用这些行与右侧参 考表中的记录进行匹配,也就是说匹配左表中的所有行以及右表中符合条件的行。
左连接中左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为 NULL。

select * from test1 left join test2 on test1.a_name=test2.b_name;
+------+--------+---------+------+--------+---------+
| a_id | a_name | a_level | b_id | b_name | b_level |
+------+--------+---------+------+--------+---------+
|    2 | bbbb   |      20 |    2 | bbbb   |      20 |
|    3 | cccc   |      30 |    3 | cccc   |      30 |
|    1 | aaaa   |      10 | NULL | NULL   |    NULL |
|    4 | dddd   |      40 | NULL | NULL   |    NULL |
+------+--------+---------+------+--------+---------+

 10.3 右连接

右连接也被称为右外连接,在 FROM 子句中使用 RIGHT JOIN 或者 RIGHT OUTER JOIN 关键字来表示。
右连接跟左连接正好相反,它是以右表为基础表,用于接收右表中的所有行,并用这些记录与左表中的行进行匹配

 

select * from test1 right join test2 on test1.a_name=test2.b_name;
+------+--------+---------+------+--------+---------+
| a_id | a_name | a_level | b_id | b_name | b_level |
+------+--------+---------+------+--------+---------+
|    2 | bbbb   |      20 |    2 | bbbb   |      20 |
|    3 | cccc   |      30 |    3 | cccc   |      30 |
| NULL | NULL   |    NULL |    5 | eeee   |      50 |
| NULL | NULL   |    NULL |    6 | ffff   |      60 |
+------+--------+---------+------+--------+---------+

11 NULL值

通常使用 NULL 来表示缺失 的值,也就是在表中该字段是没有值的。

如果在创建表时,限制某些字段不为空,则可以使用 NOT NULL 关键字,不使用则默认可以为空。在向表内插入记录或者更新记录时,如果该字段没有 NOT NULL 并且没有值,这时候新记录的该字段将被保存为 NULL。

需要注意 的是,NULL 值与数字 0 或者空白(spaces)的字段是不同的,值为 NULL 的字段是没有 值的。在 SQL 语句中,使用 IS NULL 可以判断表内的某个字段是不是 NULL 值,相反的用 IS NOT NULL 可以判断不是 NULL 值。

 

插入一条记录,分数字段输入null,显示出来就是null

insert into ky30 values (8,'chx',null,'henan'  ,3);

select * from ky30;                                  
+------+-----------+-------+------------+--------+
| id   | name      | score | address    | hobbid |
+------+-----------+-------+------------+--------+
|    8 | chx       |  NULL | henan      |      3 |
|    6 | hanmeimei | 10.00 | nanjing    |      3 |
|    5 | jiaoshou  | 98.00 | laowo      |      3 |
|    7 | lilei     | 11.00 | nanjing    |      5 |
|    3 | lisi      | 60.00 | shanghai   |      4 |
|    1 | liuyi     | 80.00 | beijing    |      2 |
|    4 | tianqi    | 99.00 | hangzhou   |      5 |
|    2 | wangwu    | 90.00 | shengzheng |      2 |
+------+-----------+-------+------------+--------+


 null值与空值的区别(空气与真空)

空值长度为0,不占空间,NULL值的长度为null,占用空间
is null无法判断空值
空值使用"=“或者”<>"来处理(!=)
count()计算时,NULL会忽略,空值会加入计算

#验证:
alter table ky30 add  addr varchar(50);

update ky30 set addr='nj' where score >=70;

#统计数量:检测null是否会加入统计中
select count(addr) from ky30;

#将ky30表中其中一条数据修改为空值''
update ky30 set addr='' where name='wangwu';

#统计数量,检测空值是不会被添加到统计中
select count(addr) from ky30;

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

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

相关文章

【数据结构】——查找、散列表的相关习题

目录 一、选择填空判断题题型一&#xff08;顺序、二分查找的概念&#xff09;题型二&#xff08;分块查找的概念&#xff09;题型三&#xff08;关键字比较次数&#xff09; 二、应用题题型一&#xff08;二分查找判定树&#xff09; 一、选择填空判断题 题型一&#xff08;顺…

Leetcode328 奇偶链表

思路&#xff1a;分别处理奇偶&#xff0c;保存奇偶的第一个和最后一个节点&#xff0c;注意最后链接的时候需要把偶数的next去掉再拼接不然就成环了 class Solution:def oddEvenList(self, head: ListNode) -> ListNode:if not head or not head.next or not head.next.ne…

YOLOv5算法改进(10)— 替换主干网络之GhostNet

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。GhostNet是一种针对计算机视觉任务的深度神经网络架构&#xff0c;它于2020年由中国科学院大学的研究人员提出。GhostNet的设计目标是在保持高精度的同时&#xff0c;减少模型的计算和存储成本。GhostNet通过引入Ghost模块…

阿里云架构

负载均衡slb 分类以及应用场景 负载均衡slb clb 传统的负载均衡(原slb) 支持4层和7层(仅支持对uri(location),域名进行转发) 一般使用slb(clb) alb 应用负载均衡 只支持7层,整合了nginx负载均衡的各种功能,可以根据用户请求头,响应头 如果需要详细处理用户请求(浏…

【Dart】学习使用(二):基本类型

前言 基本类型是语言的基础。 Dart 语言支持以下基础类型&#xff1a;Numbers(int、double)&#xff0c; 整形Strings(String), 字符串Booleans(bool) , 布尔型Records((value1,value2)) 记录Lists(List ) 数组Sets(Set) 集合Maps(Map) 映射Runes(Runes,通常由 characters AP…

springBoot--终

目录 Web定制SpringMVC定制某些mvc配置定制mvc核心组件完全自定义mvc 静态资源静态资源映射静态资源缓存示例自定义静态资源规则配置方式代码方式 欢迎页Favicon&#xff08;网站图标&#xff09;路径匹配策略内容协商制定返回json类型数据制定返回xml类型数据制定返回自定义类…

2023年高教社杯 国赛数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模…

本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)

GitHub地址&#xff1a;https://github.com/dvlab-research/LISA 该项目论文paper reading&#xff1a;https://blog.csdn.net/Transfattyacids/article/details/132254770 在GitHub上下载源文件&#xff0c;进入下载的文件夹&#xff0c;打开该地址下的命令控制台&#xff0c;…

Vue安装过程的困惑解答——nodejs和vue关系、vue的项目结构

文章目录 一、为什么在使用vue前要下载nodejs&#xff1f;二、为什么安装nodejs后就能使用NPM包管理工具&#xff1f;三、为什么是V8引擎并且使用C实现&#xff1f;四、为什么会安装淘宝镜像&#xff1f;五、什么是webpack模板&#xff0c;为什么需要他&#xff1f;六、vue项目…

深入探索C语言自定义类型:打造你的编程世界

一、什么是自定义类型 C语言提供了丰富的内置类型&#xff0c;常见的有int, char, float, double, 以及各种指针。 除此之外&#xff0c;我们还能自己创建一些类型&#xff0c;这些类型称为自定义类型&#xff0c;如数组&#xff0c;结构体&#xff0c;枚举类型和联合体类型。 …

Unreal5(虚幻5)学习记录 快捷键

虚幻5学习记录 快捷键 世界场景中漫游&#xff08;镜头移动): 按住鼠标右键 键盘的W(前) S(后) A(左) D(右) E(上) Q(下)键 透视 透视 ALTG 上部分 ALTJ 底视图ALTSHIFTJ 左视图 ALTK 右视图 ALTSHIFTK 前视图 ALTH 后视图 ALTSHIFTH 内容浏览器 Ctrl Space 内容浏览器…

stm32CubeMX HAL W5500芯片介绍 第一章

W5500芯片介绍 文章目录 W5500芯片介绍简单简绍以太网以太网分五层&#xff1a;第一层物理层&#xff1a;第二层&#xff1a;数据链路层&#xff1a;第三层&#xff1a;网络层&#xff1a;第四层&#xff1a;传输层&#xff1a;第五层&#xff1a;应用层&#xff1a;以太网应用…

Scala的特质trait与java的interface接口的区别,以及Scala特质的自身类型和依赖注入

1. Scala的特质trait与java接口的区别 Scala中的特质&#xff08;trait&#xff09;和Java中的接口&#xff08;interface&#xff09;在概念和使用上有一些区别&#xff1a; 默认实现&#xff1a;在Java中&#xff0c;接口只能定义方法的签名&#xff0c;而没有默认实现。而在…

Matlab(结构化程式和自定义函数)

目录 1.脚本编辑器 2.脚本流 2.1 控制流 2.2 关系&#xff08;逻辑&#xff09;操作符 3.脚本与函数 1.脚本编辑器 Matlab的命名规则&#xff1a; 常用功能&#xff1a; 智能缩进&#xff1a; 在写代码的时候&#xff0c;有的时候代码看起来并不是那么美观&#xff08;可读性…

单片机通用学习-​什么是寄存器?​

什么是寄存器&#xff1f; 寄存器是一种特殊的存储器&#xff0c;主要用于存储和检查微机的状态。CPU寄存器用于存储和检查CPU的状态&#xff0c;具体包括计算中途数据、程序因中断或子程序分支时的返回地址、计算结果为零时的负值、计算结果为零时的信息、进位值等。 由于CP…

怎么提取视频中的音乐保存到本地?其实方法很简单

当你想要使用视频中的音乐时&#xff0c;你可以考虑将它从视频中提取出来。这可以用于制作音频样本集&#xff0c;制作铃声或其他音频素材&#xff0c;或者向其他人展示视频的音乐部分而无需显示视频本身。如果你是一位音乐制作人员&#xff0c;你可能会需要一些特定类型的音效…

HTML之VSCode简单配置与创建

目录 插件下载 然后输入源码&#xff1a; 使用 效果 插件下载 下载这个插件后可以直接运行&#xff1a; 然后创建一个文件&#xff1a; 然后输入源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

Vue3列表竖向滚动(包含使用swiper的翻页效果)

一、使用element-plus表格进行滚动&#xff1a; 可以满足的需求&#xff1a;表格一行一行竖向滚动&#xff0c;类似走马灯。 不能满足的需求&#xff1a;表格分页竖向滚动&#xff0c;有翻页的效果。 代码&#xff1a; <template><el-table:data"tableData"…

AMEYA360:兆易创新获得ISO 26262 ASIL D流程认证, 汽车功能安全管理体系再上新台阶

中国北京(2023年8月29日) —— 业界半导体器件供应商兆易创新GigaDevice(股票代码 603986)今日宣布&#xff0c;获得由国际公认的测试、检验和认证机构通标标准技术服务有限公司(以下简称SGS)授予的ISO 26262:2018汽车功能安全最高等级ASIL D流程认证证书&#xff0c;这标志着兆…

文心一言 VS CHATGPT

由于近几天来&#xff0c;我的手机短信不断收到百度公司对于“文心一言”大模型的体验邀请&#xff08;真是不胜其烦&#xff09;&#xff01;&#xff01;所以我就抱着试试看的态度点开了文心一言的链接&#xff1a;文心一言 目前看来&#xff0c;有以下两点与chatgpt是有比较…
最新文章