当前位置: 首页 > news >正文

MySQL基础知识大总结

一,介绍

数据库是什么,我们在学习其他编程语言的时候会使用数组呀,链表,二叉树等等一些数据结构来存储我们的数据,但是大家有没有发现我们一旦关闭程序,所有的数据都没有了,这在发行的软件来看是很不合理的吧,比如你的游戏账号在整个应用程序更新的时候就会全部丢失,所以我们会去使用数据库,来在硬盘上长久的存储我们的数据。 

 SQL的分类

DDL数据定义语言,用来维护存储数据的结构

DML数据操纵语言,用来对数据进行操作

DCL数据控制语言,主要负责权限管理和事务

不多抄了,我们直接开始实践。 

二,数据库操作

1,展示数据库

语法:

show databases;

可以查询所有数据库,

这里就是看到我们创建的所有数据库了,这4个是系统自带的,不要删除,删除了我们就要重新下了。 

2,创建数据库

语法:

create  database if not exists [数据库名]  [character set [字符集]]  collate [排序规则];

character set 字符集的目的是让他能读取汉字,在5.7版本的字符集默认是无法读取汉字的,collate 是我们的排序规则,形成习惯,每次建库都这样写就行,if  not exists 是这个数据库如果不存在的意思。

我们这样就看到java113了。

我们创建数据库的时候是不可以使用关键字的,但是我们可以通过``(esc 下面的符号)来用关键字来创建数据库。 

我们来查询下数据库,

我们成功创建了数据库,但是我们要是使用``是会报错的。

 3,删除数据库

语法:

drop database if exists [表名]; 

我们来把刚刚创建的database数据库删掉。 

查询数据库

4,使用数据库

语法:

use [库名];

 

三,数据类型

1,数值类型

数据类型大小说明对应java类型
bit[M]M决定位数,默认1Boolean 0为假,1为真,默认位M是1
tinyint1字节Byte
smallint2字节Short
int4字节Integer 
bigint8字节Long
double(M,D)8字节Double
float(M,D)

4字节

单精度,M指定长度,D指定 小数位数。会发生精度丢失Float
decimalM/D+2双精度,M指定长度,D表示 小数点位数。精确数值BigDecimal
numericM/D+2BigDecimal

2,字符串类型

数据类型大小说明对应java类型
varchar(size)0-65,535字节可变长度字符串String
text0-65,535字节长文本数据String
mediumtext0-16 777 215字节中等长度文本数据String
blob0-65,535字节二进制形式的文本数据Byte[]

3,日期类型

数据类型大小说明对应java类型
datetime8字节范围从1000到9999年,不会进行时区的 检索及转换。

java.util.date;

java.sql.Timestamp

四,表操作

1,显示数据库中的所有表

语法:

show tables;

我们可以看到现在的表是没有的。

2,创建数据表

 语法:

create table if not exists [表名](

字段1 数据类型  [ [comment] '说明'],

字段2 数据类型 .......,

字段3 数据类型

);

我们这时候在展示所有数据表

在java113的数据库中已经出现了我们刚才创建的表;

3,查询表结构

语法:

desc 表名;

4,删除表

语法:

drop table if exists 表名;

我们数据库中的表又为空了。

 五,CRUD

语法:CRUD是啥玩应,其实就是增删查改英文的缩写。

 1,新增

语法:

insert into 表名 (字段),(字段)  value (值,值),[(值,值)];

 desc student;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| student_id | bigint       | YES  |     | NULL    |       |
| name       | varchar(50)  | YES  |     | NULL    |       |
| score      | decimal(3,1) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

 我们还是看student表,

 select * from student;
Empty set (0.00 sec)

 这里完全是空的。

1,单行数据,全列插入

 insert into student values (1,'张三',98.5);
 select * from student;
+------------+--------+-------+
| student_id | name   | score |
+------------+--------+-------+
|          1 | 张三   |  98.5 |
+------------+--------+-------+

 我们成功插入了一行数据。

2,多行数据,指定列插入

insert into student (student_id) values (1),(2),(3);
select * from student;
+------------+--------+-------+
| student_id | name   | score |
+------------+--------+-------+
|          1 | 张三   |  98.5 |
|          1 | NULL   |  NULL |
|          2 | NULL   |  NULL |
|          3 | NULL   |  NULL |
+------------+--------+-------+

 我们只指定了student_id的数据并没有指定其他字段的数据,

这里跟大家说一下,这个小黑框是可以直接导入本地文件保存的数据库的,我们首先使用编辑器来保存我们的sql代码,我用的Navicat,

保存,在小黑框输入

 source C:/MySQL/test.sql;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| java113            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

 我们就能直接执行所有的sql代码。

2,查询

语法:

select (列名) from 表名; 

select * from student;
+------------+--------+-------+
| student_id | name   | score |
+------------+--------+-------+
|          1 | 张三   |  98.5 |
|          1 | NULL   |  NULL |
|          2 | NULL   |  NULL |
|          3 | NULL   |  NULL |
+------------+--------+-------+

查询所有列的结果。

还可以查询单个的列;

select student_id from student;
+------------+
| student_id |
+------------+
|          1 |
|          1 |
|          2 |
|          3 |
+------------+

 重新弄一个数据;

select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          2 | 李四   | 99.0 |    56.0 |    74.0 |
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
+------------+--------+------+---------+---------+

 我们还可以让查询结果为表达式;

 select student_id,name,math+chinese+english from student;
+------------+--------+----------------------+
| student_id | name   | math+chinese+english |
+------------+--------+----------------------+
|          1 | 张三   |                212.0 |
|          2 | 李四   |                229.0 |
|          3 | 王五   |                270.0 |
|          4 | 赵六   |                249.0 |
+------------+--------+----------------------+

 我们查询math,chinese,english三个字段相加的表达式,这个字段的数据是放在一个临时表中的,要不212.0超出了我们定义的deccimal(3,1)的范围的,因为我们只定义的有序长度为3,

我们还可以给这个表达式起一个别名。

表达式 [as]  ' 别名' 

这个as,和' ' 是可以省略的,但是当别名中有空格的时候,''是不可以省略的;

select student_id,name,math+chinese+english as 总分 from student;
+------------+--------+--------+
| student_id | name   | 总分   |
+------------+--------+--------+
|          1 | 张三   |  212.0 |
|          2 | 李四   |  229.0 |
|          3 | 王五   |  270.0 |
|          4 | 赵六   |  249.0 |
+------------+--------+--------+

那么如果字段中出现了null还能进行表达式的运算吗

 select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          2 | 李四   | 99.0 |    56.0 |    74.0 |
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
|          5 | 钱七   | 78.0 |    NULL |    97.0 |
+------------+--------+------+---------+---------+
+------------+--------+--------+
| student_id | name   | 总分   |
+------------+--------+--------+
|          1 | 张三   |  212.0 |
|          2 | 李四   |  229.0 |
|          3 | 王五   |  270.0 |
|          4 | 赵六   |  249.0 |
|          5 | 钱七   |   NULL |
+------------+--------+--------+

 我们可以看到结果是null,所以在我们列与列之间的运算,出现了null,是无法计算的,但是之后行与行直接的聚合函数是不受null的影响的。

我们还可以对数据进行去重

select distinct (列名) from 表名;

我们在增加些数据;

我们可以看到出现了三个张三,第二个张三与第一个张三完全一样,但是最后一个张三的English与第一个不一样,我们来看看去重操作的现象;

我们看到第三个张三留下了,第二个不见了,所以我们去重操作是我们选择的字段的每一列的所有字段都重复才会被去重。

1,排序

语法:

order by (列名) asc|desc;

asc是升序,desc是降序,null被视为最小的数;

我们来从高到低查询下学生成绩的总分。 

select student_id,name,math+chinese+english as 总分 from student order by 总分 desc;
+------------+--------+--------+
| student_id | name   | 总分   |
+------------+--------+--------+
|          3 | 王五   |  270.0 |
|          1 | 张三   |  266.0 |
|          4 | 赵六   |  249.0 |
|          2 | 李四   |  229.0 |
|          1 | 张三   |  212.0 |
|          1 | 张三   |  212.0 |
|          5 | 钱七   |   NULL |
+------------+--------+--------+

这里我们在使用order by的时候是可以使用别名(总分)的,但是我们之后使用的where条件查询语句是不行的。

我们也可以指定多种排序方式,按优先级进行排序

select * from student order by math desc,chinese asc,english desc;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          2 | 李四   | 99.0 |    56.0 |    74.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
|          1 | 张三   | 89.0 |    78.0 |    99.0 |
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          5 | 钱七   | 78.0 |    NULL |    97.0 |
+------------+--------+------+---------+---------+

2,条件查询

语法:

select (列名) from 表名 where 条件;

运算符说明
>,>=,<,<=
=等于,但是null=null的结果为null
<=>等于,null=null为1,true
!=,<>一个是正常的,第二个为null设计的不等于
between a and b在[a,b]之间的数
in(a)只要数包含在a即可
is null
is not null
like模糊匹配  %代表有多个或者0个字符,_表示必须有一个字符。
and并且
or或者
not

我们来几个小练习。 

1,查询语文成绩小于80的学生
 select * from student where chinese<=80;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          2 | 李四   | 99.0 |    56.0 |    74.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          1 | 张三   | 89.0 |    78.0 |    99.0 |
+------------+--------+------+---------+---------+
2,查询名字为赵六的数学成绩
mysql> select math from student where name = '赵六';
+------+
| math |
+------+
| 97.0 |
+------+
3,查询语文成绩为空的学生编号
select student_id from student where chinese is null;
+------------+
| student_id |
+------------+
|          5 |
+------------+
4,查询数学成绩不等于语文成绩的学生姓名
select name from student where math != chinese;
+--------+
| name   |
+--------+
| 张三   |
| 李四   |
| 王五   |
| 赵六   |
| 张三   |
| 张三   |
+--------+
5,查询数学成绩在60到80之间的学生姓名
select name from student where math between 60 and 80;
+--------+
| name   |
+--------+
| 钱七   |
+--------+
6,查询语文成绩包含(98,78,45)的学生姓名
select name from student where chinese in (98,78,45);
+--------+
| name   |
+--------+
| 张三   |
| 张三   |
| 张三   |
+--------+
7,查询姓王的学生
select * from student where name like '王%';
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
+------------+--------+------+---------+---------+

这里用%的时候他可以是三个名字的也可以是两个名字的但是用’_‘的话就只能是两个名字的。

8,查询王某某必须是三个名字
select name from student where name like '王__';
Empty set (0.00 sec)
9,查询最后名字为七的学生
select * from student where name like '%七';
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          5 | 钱七   | 78.0 |    NULL |    97.0 |
+------------+--------+------+---------+---------+
1 row in set (0.00 sec)

3,分页查询

真实的数据库是很大的,我们在使用查询语句是非常的危险的,我们查询一条语句可能会产生巨大的磁盘开销,我们要加以限制。

语法:

select (列名)from 表名 [条件] limit  n;

select (列名)from 表名 [条件] limit  a,b;

select (列名)from 表名 [条件] limit  w offset t;

我用不同的字母写了,但是他的字母其实是一样的,但是我感觉不好区分。 

select (列名)from 表名 [条件] limit  n; 

用法是查询n条数据,我们来查2个学生的成绩;

select * from student limit 2;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 89.0 |    78.0 |    45.0 |
|          2 | 李四   | 99.0 |    56.0 |    74.0 |
+------------+--------+------+---------+---------+

 select (列名)from 表名 [条件] limit  a,b;

用法是跳过a条数据,查询b条数据

我们跳过张三和李四查询2条记录

select * from student limit 2,2;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
+------------+--------+------+---------+---------+

 select (列名)from 表名 [条件] limit  w offset t;

这个就是到过来,跳过t条数据,查询w条数据。

select * from student limit 2 offset 2;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
+------------+--------+------+---------+---------+

3,修改

语法:

update 表名 set 列名 = 新 +[条件]

同样,修改也是挺危险的操作,如果不加限制条件,我们可能一下就将所有用户的数据就修改成一个,所以在我们工作中,我们一般是又加了一个字段来标记这个字段是否被删除了。

这个不难,我们来几个例子就行

-- 将张三同学的数学成绩变更为 80 分

 update student set math = 80 where name = '张三';
Query OK, 3 rows affected (0.05 sec)
Rows matched: 3  Changed: 3  Warnings: 0
select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 80.0 |    78.0 |    45.0 |
|          2 | 李四   | 99.0 |    56.0 |    74.0 |
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
|          5 | 钱七   | 78.0 |    NULL |    97.0 |
|          1 | 张三   | 80.0 |    78.0 |    45.0 |
|          1 | 张三   | 80.0 |    78.0 |    99.0 |
+------------+--------+------+---------+---------+

 

-- 将李四同学的数学成绩变更为 60 分,语文成绩变更为 70 分  

update student set math = 60,chinese = 70 where name = '李四';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0
select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 80.0 |    78.0 |    45.0 |
|          2 | 李四   | 60.0 |    70.0 |    74.0 |
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
|          5 | 钱七   | 78.0 |    NULL |    97.0 |
|          1 | 张三   | 80.0 |    78.0 |    45.0 |
|          1 | 张三   | 80.0 |    78.0 |    99.0 |
+------------+--------+------+---------+---------+

-- 将总成绩倒数前三的 3 位同学的数学成绩减去 30 分

 update student set math = math - 30 order by math + chinese + english asc limit 3;
Query OK, 3 rows affected (0.03 sec)
Rows matched: 3  Changed: 3  Warnings: 0
select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 50.0 |    78.0 |    45.0 |
|          2 | 李四   | 60.0 |    70.0 |    74.0 |
|          3 | 王五   | 89.0 |    88.0 |    93.0 |
|          4 | 赵六   | 97.0 |    67.0 |    85.0 |
|          5 | 钱七   | 48.0 |    NULL |    97.0 |
|          1 | 张三   | 50.0 |    78.0 |    45.0 |
|          1 | 张三   | 80.0 |    78.0 |    99.0 |
+------------+--------+------+---------+---------+

 

-- 将所有同学的语文成绩更新为原来的 2分之一 倍


mysql> update student set chinese = chinese / 2;
Query OK, 6 rows affected (0.02 sec)
Rows matched: 7  Changed: 6  Warnings: 0mysql> select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          1 | 张三   | 50.0 |    39.0 |    45.0 |
|          2 | 李四   | 60.0 |    35.0 |    74.0 |
|          3 | 王五   | 89.0 |    44.0 |    93.0 |
|          4 | 赵六   | 97.0 |    33.5 |    85.0 |
|          5 | 钱七   | 48.0 |    NULL |    97.0 |
|          1 | 张三   | 50.0 |    39.0 |    45.0 |
|          1 | 张三   | 80.0 |    39.0 |    99.0 |
+------------+--------+------+---------+---------+

4,删除

语法:
delete from 表名  + 限制条件

删除也是挺危险的,大家一会儿进行完练习就可以把它忘了。

-- 删除两个数学成绩为50张三同学的数学成绩

 delete from student where name = '张三' and math = 50;
Query OK, 2 rows affected (0.03 sec)mysql> select * from student;
+------------+--------+------+---------+---------+
| student_id | name   | math | chinese | english |
+------------+--------+------+---------+---------+
|          2 | 李四   | 60.0 |    35.0 |    74.0 |
|          3 | 王五   | 89.0 |    44.0 |    93.0 |
|          4 | 赵六   | 97.0 |    33.5 |    85.0 |
|          5 | 钱七   | 48.0 |    NULL |    97.0 |
|          1 | 张三   | 80.0 |    39.0 |    99.0 |
+------------+--------+------+---------+---------+

-- 删除整张表数据-- 准备测试表


mysql> delete from student;
Query OK, 5 rows affected (0.03 sec)

 

select * from student;
Empty set (0.00 sec)

今天我们先到这里,火速更新下期。

相关文章:

MySQL基础知识大总结

一&#xff0c;介绍 数据库是什么&#xff0c;我们在学习其他编程语言的时候会使用数组呀&#xff0c;链表&#xff0c;二叉树等等一些数据结构来存储我们的数据&#xff0c;但是大家有没有发现我们一旦关闭程序&#xff0c;所有的数据都没有了&#xff0c;这在发行的软件来看是…...

池化技术、Commons Pool介绍

概述 池化技术&#xff0c;一种通过重复利用对象实例而非频繁创建和销毁的技术。 常见的可池化对象&#xff1a; 数据库连接(Connection)&#xff1a;数据库连接创建和销毁代价高&#xff0c;连接池广泛用于管理JDBC连接&#xff1b;线程(Thread)&#xff1a;线程的创建和销…...

下载并安装Visual Studio 2017过程

一、下载 1、下载链接 下载链接&#xff1a;官方网址 先登录 往下滑找到较早的下载 2、进行搜索下载 或者直接点击&#x1f517;网站跳转 3、确认系统信息进行下载 二、安装 下载完成后右键使用管理员身份运行 1、点击同意后安装 2、若报错—设置失败 打开控制面板-&g…...

菊风视频能力平台开发服务正式入驻华为云云商店,成为华为云联营联运合作伙伴

日前&#xff0c;菊风视频能力平台开发服务正式入驻华为云云商店&#xff0c;成为华为云在实时音视频领域的联营联运合作伙伴。 菊风结合自身产品方案优势与华为云开放、共盈的生态优势强强联手&#xff0c;在推动金融行业数字化转型的路上又向前迈出了一大步。华为云云商店作为…...

springboot整合kafka

springboot整合kafka pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven…...

Python深度学习框架:PyTorch、Keras、Scikit-learn、TensorFlow如何使用?学会轻松玩转AI!

前言 我们先简单了解一下PyTorch、Keras、Scikit-learn和TensorFlow都是什么。 想象一下你要盖一座大房子。你需要砖头、水泥、工具等等&#xff0c;对吧&#xff1f;机器学习也是一样&#xff0c;需要一些工具来帮忙。PyTorch、Keras、Scikit-learn和TensorFlow就是四种不同的…...

【Linux】安装cuda

一、安装nvidia驱动 # 添加nvidia驱动ppa库 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update# 查找推荐版本 sudo ubuntu-drivers devices# 安装推荐版本 sudo apt install nvidia-driver-560# 检验nvidia驱动是否安装 nvidia-smi 二、安装cudatoolkit&…...

为什么DDoS防御很贵?

分布式拒绝服务攻击&#xff08;DDoS攻击&#xff09;是一种常见的网络安全威胁&#xff0c;通过大量恶意流量使目标服务器无法提供正常服务。DDoS防御是一项复杂且昂贵的服务&#xff0c;本文将详细探讨为什么DDoS防御如此昂贵&#xff0c;并提供一些实用的代码示例和解决方案…...

将WPS的PPT 无损的用微软的PowerPoint打开

用WPS做了PPT&#xff0c;但是用用PowerPoint打开的时候&#xff0c;老是会有几张图错位。 解决方案&#xff1a;将wps做的PPT另存为PowerPoint的格式 参考博客&#xff1a;解决office的PPT和WPS的PPT不兼容的问题_office ppt和wps中代码不通用-CSDN博客 另存为的时候&#…...

【汇编】uniapp开发

UniApp是一款基于Vue.js构建的跨平台开发框架&#xff0c;可以用于快速开发同时运行在多个平台&#xff08;包括iOS、Android、H5和小程序&#xff09;的应用程序。UniApp的目标是提供一套代码即可在不同平台上运行的开发模式&#xff0c;从而节省开发者的时间和精力。本文将介…...

详解Oracle表的类型(二)

1.引言&#xff1a; Oracle数据库提供了多种表类型&#xff0c;以满足不同的数据存储和管理需求。本博文将对Oracle分区表及使用场景进行详细介绍。 2. 分区表 分区表是Oracle数据库中一种重要的表类型&#xff0c;它通过将表数据分割成多个逻辑部分来提高查询性能、管理灵活…...

Docker--通过Docker容器创建一个Web服务器

Web服务器 Web服务器&#xff0c;一般指网站服务器&#xff0c;是驻留于因特网上某种类型计算机的程序。 Web服务器可以向浏览器等Web客户端提供文档&#xff0c;也可以放置网站文件以供全世界浏览&#xff0c;或放置数据文件以供全世界下载。 Web服务器的主要功能是提供网上…...

Next.js-样式处理

#题引&#xff1a;我认为跟着官方文档学习不会走歪路 Next.js 支持多种为应用程序添加样式的方法&#xff0c;包括&#xff1a; CSS Modules&#xff1a;创建局部作用域的 CSS 类&#xff0c;避免命名冲突并提高可维护性。全局 CSS&#xff1a;使用简单&#xff0c;对于有传统…...

整合Springboot shiro jpa mysql 实现权限管理系统(附源码地址)

一、在开发企业级应用时,权限管理是一个至关重要的功能。本文将围绕 Spring Boot、JPA、MySQL 和 Apache Shiro,构建一个基础的权限管理系统,涵盖用户认证与授权等核心功能。 一、技术选型及框架介绍 Spring Boot:简化 Spring 应用的配置和开发。JPA:实现数据持久化,提供…...

极智嘉嵌入式面试题及参考答案

对于交叉编译器的理解 交叉编译器是一种在一个计算机平台上为另一个不同架构的计算机平台生成可执行代码的编译器。它在嵌入式系统开发中起着关键作用。 从其必要性来看&#xff0c;嵌入式系统通常使用的处理器架构与我们日常使用的 PC 等通用计算机不同&#xff0c;如 ARM、MI…...

【MySQL】数据库核心技术与应用指南

数据库的各种概念 1. 指一门学科《数据库原理与应用》。&#xff08;研究如何设计实现一个数据库&#xff09; 2. 指一类用来管理数据的软件。 3. 指某一个具体的数据库软件。 4. 指部署了某个数据库软件的电脑。 数据库软件 关系型数据库 1. 使用 “表” 的结构来组织数据。…...

23省赛区块链应用与维护(房屋租凭)

23省赛区块链应用与维护(房屋租凭) 背景描述 随着异地务工人员的增多,房屋租赁成为一个广阔市场。目前,现有技术中的房屋租赁是由房主发布租赁信息,租赁信息发布在房屋中介或租赁软件,租客获取租赁信息后,现场看房,并签订纸质的房屋租赁合同,房屋租赁费用通过中介或…...

深度学习4

一、手动构建模型 epoch 一次完整数据的训练过程&#xff08;可细分多次训练&#xff09;&#xff0c;称为 一代训练 Batch 小部分样本对权重的更新&#xff0c;称为 一批数据 iteration 使用一个 Batch 的过程&#xff0c;称为 一次训练 步骤&#xff1a; 1、生成 x,y 的…...

跳绳视觉计数方案

产品概述 提供基于摄像头视觉技术的跳绳计数解决方案&#xff0c;可精准完成跳绳动作的实时计数&#xff0c;效果完全满足考试水平的要求。方案采用先进的计算机视觉算法&#xff0c;结合高效的模型架构&#xff0c;确保计数的准确性和稳定性。适用场景 学校体育考试&#xff…...

TEA加密逆向

IDA伪代码 do{if ( v15 )v17 v38; // x120x0->0x79168ba790&#xff0c; 输入字符串经过check1处理后字符串elsev17 v40;v18 (unsigned int *)&v17[v16]; // 0x78cbbd47fc add x12, x12, x8 ; x120x79168ba790->…...

LeetCode 404.左叶子之和

题目&#xff1a;给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 思路&#xff1a;一个节点为「左叶子」节点&#xff0c;当且仅当它是某个节点的左子节点&#xff0c;并且它是一个叶子结点。因此我们可以考虑对整 node 时&#xff0c;如果它的左子节点是一个叶子…...

01-go入门

文章目录 Go语言学习1. 简介安装windows安装linux安装编译工具安装-goland 2. 入门2.1 Helloworld注释 2.2 变量初始化打印内存地址变量交换匿名变量作用域局部变量全局变量 2.3 常量iota 2.4 数据类型布尔整数浮点类型复数字符串定义字符串字符串拼接符定义多行字符串 map数据…...

【经典】抽奖系统(HTML,CSS、JS)

目录 1、添加参与者 2、多次添加 3、点击抽奖 功能介绍&#xff1a; 使用方法&#xff1a; 完整代码&#xff1a; 一个简单但功能强大的抽奖系统的示例&#xff0c;用于在网页上实现抽奖。 1、添加参与者 2、多次添加 3、点击抽奖 功能介绍&#xff1a; 参与者添加&…...

GoF设计模式——结构型设计模式分析与应用

文章目录 UML图的结构主要表现为&#xff1a;继承&#xff08;抽象&#xff09;、关联 、组合或聚合 的三种关系。1. 继承&#xff08;抽象&#xff0c;泛化关系&#xff09;2. 关联3. 组合/聚合各种可能的配合&#xff1a;1. 关联后抽象2. 关联的集合3. 组合接口4. 递归聚合接…...

Java后端如何进行文件上传和下载 —— 本地版

简介&#xff1a; 本文详细介绍了在Java后端进行文件上传和下载的实现方法&#xff0c;包括文件上传保存到本地的完整流程、文件下载的代码实现&#xff0c;以及如何处理文件预览、下载大小限制和运行失败的问题&#xff0c;并提供了完整的代码示例。 大体思路 1、文件上传 …...

json格式数据集转换成yolo的txt格式数据集

这个代码是参考了两个博客 我是感觉第一篇博客可能有问题&#xff0c;然后自己做了改进&#xff0c;如果我是错误的或者正确的&#xff0c;请各位评论区说一下&#xff0c;感谢 Json格式的数据集标签转化为有效的txt格式(data_coco)_train.json-CSDN博客 COCO&#xff08;.j…...

什么是Three.js,有什么特点

什么是 Three.js&#xff1f; Three.js 是一个基于 WebGL 技术的 JavaScript 3D 库。它允许开发者在网页上创建和展示 3D 图形内容&#xff0c;而无需用户安装任何额外的插件或软件。Three.js 简化了 WebGL 的复杂性&#xff0c;使得即便是对图形编程不太熟悉的人也能快速上手…...

Linux笔记--基于OCRmyPDF将扫描件PDF转换为可搜索的PDF

1--官方仓库 https://github.com/ocrmypdf/OCRmyPDF 2--基本步骤 # 安装ocrmypdf库 sudo apt install ocrmypdf# 安装简体中文库 sudo apt-get install tesseract-ocr-chi-sim# 转换 # -l 表示使用的语言 # --force-ocr 防止出现以下错误&#xff1a;ERROR - PriorOcrFoundE…...

Unity 导出 Xcode 工程 修改 Podfile 文件

Unity 导出 Xcode 工程 修改 Podfile 文件 在 Editor 文件夹下新建 xxx.cs 脚本 实现静态方法 [PostProcessBuild]public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject){// Unity 导出 Xcode 工程自动调用这个方法 }using System.IO; using…...

UE5 slate BlankProgram独立程序系列

源码版Engine\Source\Programs\中copy BlankProgram文件夹&#xff0c;重命名为ASlateLearning&#xff0c;修改所有文件命名及内部名称。 ASlateLearning.Target.cs // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.Collections.Ge…...