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决定位数,默认1 | Boolean 0为假,1为真,默认位M是1 | |
| tinyint | 1字节 | Byte | |
| smallint | 2字节 | Short | |
| int | 4字节 | Integer | |
| bigint | 8字节 | Long | |
| double(M,D) | 8字节 | Double | |
| float(M,D) | 4字节 | 单精度,M指定长度,D指定 小数位数。会发生精度丢失 | Float |
| decimal | M/D+2 | 双精度,M指定长度,D表示 小数点位数。精确数值 | BigDecimal |
| numeric | M/D+2 | BigDecimal |
2,字符串类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
| varchar(size) | 0-65,535字节 | 可变长度字符串 | String |
| text | 0-65,535字节 | 长文本数据 | String |
| mediumtext | 0-16 777 215字节 | 中等长度文本数据 | String |
| blob | 0-65,535字节 | 二进制形式的文本数据 | Byte[] |
3,日期类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
| datetime | 8字节 | 范围从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基础知识大总结
一,介绍 数据库是什么,我们在学习其他编程语言的时候会使用数组呀,链表,二叉树等等一些数据结构来存储我们的数据,但是大家有没有发现我们一旦关闭程序,所有的数据都没有了,这在发行的软件来看是…...
池化技术、Commons Pool介绍
概述 池化技术,一种通过重复利用对象实例而非频繁创建和销毁的技术。 常见的可池化对象: 数据库连接(Connection):数据库连接创建和销毁代价高,连接池广泛用于管理JDBC连接;线程(Thread):线程的创建和销…...
下载并安装Visual Studio 2017过程
一、下载 1、下载链接 下载链接:官方网址 先登录 往下滑找到较早的下载 2、进行搜索下载 或者直接点击🔗网站跳转 3、确认系统信息进行下载 二、安装 下载完成后右键使用管理员身份运行 1、点击同意后安装 2、若报错—设置失败 打开控制面板-&g…...
菊风视频能力平台开发服务正式入驻华为云云商店,成为华为云联营联运合作伙伴
日前,菊风视频能力平台开发服务正式入驻华为云云商店,成为华为云在实时音视频领域的联营联运合作伙伴。 菊风结合自身产品方案优势与华为云开放、共盈的生态优势强强联手,在推动金融行业数字化转型的路上又向前迈出了一大步。华为云云商店作为…...
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都是什么。 想象一下你要盖一座大房子。你需要砖头、水泥、工具等等,对吧?机器学习也是一样,需要一些工具来帮忙。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防御很贵?
分布式拒绝服务攻击(DDoS攻击)是一种常见的网络安全威胁,通过大量恶意流量使目标服务器无法提供正常服务。DDoS防御是一项复杂且昂贵的服务,本文将详细探讨为什么DDoS防御如此昂贵,并提供一些实用的代码示例和解决方案…...
将WPS的PPT 无损的用微软的PowerPoint打开
用WPS做了PPT,但是用用PowerPoint打开的时候,老是会有几张图错位。 解决方案:将wps做的PPT另存为PowerPoint的格式 参考博客:解决office的PPT和WPS的PPT不兼容的问题_office ppt和wps中代码不通用-CSDN博客 另存为的时候&#…...
【汇编】uniapp开发
UniApp是一款基于Vue.js构建的跨平台开发框架,可以用于快速开发同时运行在多个平台(包括iOS、Android、H5和小程序)的应用程序。UniApp的目标是提供一套代码即可在不同平台上运行的开发模式,从而节省开发者的时间和精力。本文将介…...
详解Oracle表的类型(二)
1.引言: Oracle数据库提供了多种表类型,以满足不同的数据存储和管理需求。本博文将对Oracle分区表及使用场景进行详细介绍。 2. 分区表 分区表是Oracle数据库中一种重要的表类型,它通过将表数据分割成多个逻辑部分来提高查询性能、管理灵活…...
Docker--通过Docker容器创建一个Web服务器
Web服务器 Web服务器,一般指网站服务器,是驻留于因特网上某种类型计算机的程序。 Web服务器可以向浏览器等Web客户端提供文档,也可以放置网站文件以供全世界浏览,或放置数据文件以供全世界下载。 Web服务器的主要功能是提供网上…...
Next.js-样式处理
#题引:我认为跟着官方文档学习不会走歪路 Next.js 支持多种为应用程序添加样式的方法,包括: CSS Modules:创建局部作用域的 CSS 类,避免命名冲突并提高可维护性。全局 CSS:使用简单,对于有传统…...
整合Springboot shiro jpa mysql 实现权限管理系统(附源码地址)
一、在开发企业级应用时,权限管理是一个至关重要的功能。本文将围绕 Spring Boot、JPA、MySQL 和 Apache Shiro,构建一个基础的权限管理系统,涵盖用户认证与授权等核心功能。 一、技术选型及框架介绍 Spring Boot:简化 Spring 应用的配置和开发。JPA:实现数据持久化,提供…...
极智嘉嵌入式面试题及参考答案
对于交叉编译器的理解 交叉编译器是一种在一个计算机平台上为另一个不同架构的计算机平台生成可执行代码的编译器。它在嵌入式系统开发中起着关键作用。 从其必要性来看,嵌入式系统通常使用的处理器架构与我们日常使用的 PC 等通用计算机不同,如 ARM、MI…...
【MySQL】数据库核心技术与应用指南
数据库的各种概念 1. 指一门学科《数据库原理与应用》。(研究如何设计实现一个数据库) 2. 指一类用来管理数据的软件。 3. 指某一个具体的数据库软件。 4. 指部署了某个数据库软件的电脑。 数据库软件 关系型数据库 1. 使用 “表” 的结构来组织数据。…...
23省赛区块链应用与维护(房屋租凭)
23省赛区块链应用与维护(房屋租凭) 背景描述 随着异地务工人员的增多,房屋租赁成为一个广阔市场。目前,现有技术中的房屋租赁是由房主发布租赁信息,租赁信息发布在房屋中介或租赁软件,租客获取租赁信息后,现场看房,并签订纸质的房屋租赁合同,房屋租赁费用通过中介或…...
深度学习4
一、手动构建模型 epoch 一次完整数据的训练过程(可细分多次训练),称为 一代训练 Batch 小部分样本对权重的更新,称为 一批数据 iteration 使用一个 Batch 的过程,称为 一次训练 步骤: 1、生成 x,y 的…...
跳绳视觉计数方案
产品概述 提供基于摄像头视觉技术的跳绳计数解决方案,可精准完成跳绳动作的实时计数,效果完全满足考试水平的要求。方案采用先进的计算机视觉算法,结合高效的模型架构,确保计数的准确性和稳定性。适用场景 学校体育考试ÿ…...
TEA加密逆向
IDA伪代码 do{if ( v15 )v17 v38; // x120x0->0x79168ba790, 输入字符串经过check1处理后字符串elsev17 v40;v18 (unsigned int *)&v17[v16]; // 0x78cbbd47fc add x12, x12, x8 ; x120x79168ba790->…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
