MySQL-数据库约束
1.约束类型
类型 | 说明 |
NOT NULL非空约束 | 指定非空约束的列不能存储NULL值 |
DEFAULT默认约束 | 当没有给列赋值时使用的默认值 |
UNIQUE唯一约束 | 指定唯一约束的列每行数据必须有唯一的值 |
PRIMARY KEY主键约束 | NOT NULL和UNIQUE的结合,可以指定一个列霍多个列,有助于防止数据重复和提高数据的查询性能 |
FOREIGN KEY外键约束 | 外键约束是一种关系约束,用于定义两个表之间的关联关系,可以确保数据的完整性和一致性 |
CHECK约束 | 用于限制列或数据在数据库表中的值,确保数据的准确性和可靠性 |
2.NOT NULL非空约束
定义表时某列不允许为NULL时,可以为列添加非空约束
drop table if exists student;
create table student(id bigint,name varchar(20)
);# 插⼊数据
insert into student values (1, null);# 查询
select * from student;
+------+------+
| id | name |
+------+------+
| 1 | NULL | # 班级名为NULL,没有意义
+------+------+
1 row in set (0.00 sec)
此时需要约束学生名的列不能为NULL
drop table if exists student;
# 为所有列添加⾮空约束
create table student (id bigint,name varchar(20) NOT NULL
);# 由于name列有⾮空约束,插⼊NULL值时报错
insert into student values (1, null);
ERROR 1048 (23000): Column 'name' cannot be null# 正常值可以成功插⼊
insert into student values (1, '张三');
Query OK, 1 row affected (0.00 sec)
select * from student;
+------+--------+
| id | name |
+------+--------+
| 1 | 张三 |
+------+--------+
1 row in set (0.00 sec)
desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | bigint | YES | | NULL | |
| name | varchar(10) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
3.DEFALUT默认值约束
drop table student;
# 创建学⽣表,加⼊年龄列
create table student (id bigint,name varchar(20) not null,age int
);
insert into student(id, name) values (1, '张三');select * from student;
+------+--------+------+
| id | name | age |
+------+--------+------+
| 1 | 张三 | NULL | # 年龄值为NULL
+------+--------+------+
1 row in set (0.00 sec)
drop table student;# 为年龄列加⼊默认约束create table student (id bigint,name varchar(20) not null,age int DEFAULT 18
);
select * from student;
+------+--------+------+
| id | name | age |
+------+--------+------+
| 1 | 张三 | 18 |
+------+--------+------+
1 row in set (0.00 sec)
desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | bigint | YES | | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | int | YES | | 18 | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
当手动明确值年龄列为NULL时列值为NULL
insert into student(id, name, age) values (2, '李四', NULL);
Query OK, 1 row affected (0.00 sec)
select * from student;
+------+--------+------+
| id | name | age |
+------+--------+------+
| 1 | 张三 | 18 |
| 2 | 李四 | NULL |
+------+--------+------+
2 rows in set (0.00 sec)
4.UNIQUE唯一约束
重构学生表,新增学号列
drop table student;
# 学号列设置唯⼀约束
create table student (id bigint,name varchar(20) not null,age int DEFAULT 18,sno varchar(10)
);
不设置唯⼀约束时,学号可以重复
insert into student(id, name, sno) values (1, '张三', '100001');
Query OK, 1 row affected (0.00 sec)insert into student(id, name, sno) values (2, '李四', '100001');
Query OK, 1 row affected (0.00 sec)select * from student;
+------+--------+------+--------+
| id | name | age | sno |
+------+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 李四 | 18 | 100001 |
+------+--------+------+--------+
2 rows in set (0.00 sec)
drop table student;
create table student (id bigint,name varchar(20) not null,age int DEFAULT 18,sno varchar(10) UNIQUE # 唯⼀约束
);
insert into student(id, name, sno) values (1, '张三', '100001');
Query OK, 1 row affected (0.01 sec)insert into student(id, name, sno) values (2, '李四', '100001');
ERROR 1062 (23000): Duplicate entry '100001' for key 'student.sno'select * from student;
+------+--------+------+--------+
| id | name | age | sno |
+------+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
+------+--------+------+--------+
1 row in set (0.00 sec)
desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | bigint | YES | | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | int | YES | | 18 | |
| sno | varchar(10) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
5.PRIMARY KEY主键约束
主键约束唯⼀标识数据库表中的每条记录。主键必须包含唯⼀的值,且不能包含 NULL 值。每个表只能有⼀个主键,可以由单个列或多个列组成。通常为每张表都指定⼀个主键,主键列建议使⽤BIGINT类型
重构学⽣表,为ID列添加⾮空和唯⼀约束
drop table student;
create table student (id bigint not null unique,name varchar(20) not null,age int DEFAULT 18,sno varchar(10) UNIQUE
);
desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | bigint | NO | PRI | NULL | | # 主键
| name | varchar(20) | NO | | NULL | |
| age| int | YES | | 18 | |
| sno| varchar(10) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
insert into student(id, name, sno) values (1, '张三', '100001');
Query OK, 1 row affected (0.01 sec)insert into student(id, name, sno) values (1, '李四', '100001');
ERROR 1062 (23000): Duplicate entry '1' for key 'student.id'
drop table student;# 重构学⽣表
create table student (id bigint PRIMARY KEY auto_increment, # 设置⾃增主键name varchar(20) not null,age int DEFAULT 18,sno varchar(10) UNIQUE
);
# 主键列的值为NULL
insert into student(id, name, sno) values (NULL, '张三', '100001');
Query OK, 1 row affected (0.00 sec)# 不指定主键
insert into student(name, sno) values ('李四', '100002');
Query OK, 1 row affected (0.01 sec)# 主键列的值⾃动⽣成
select * from student;
+----+--------+------+--------+
| id | name | age | sno |
+----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 李四 | 18 | 100002 |
+----+--------+------+--------+
2 rows in set (0.00 sec)
desc student;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | bigint | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
| age | int | YES | | 18 | |
| sno | varchar(10) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
# 由于学号重复,产⽣了唯⼀冲突,导致插⼊失败,ID为3的主键值作废
insert into student(name, sno) values ('王五', '100002');
ERROR 1062 (23000): Duplicate entry '100002' for key 'student.sno'# 修改学号后成功插⼊数据
insert into student(name, sno) values ('王五', '100003');
Query OK, 1 row affected (0.00 sec)# 查询后发现新记录ID列的值为4
select * from student;
+----+--------+------+--------+
| id | name | age | sno |
+----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 王五 | 18 | 100002 |
| 4 | 王五 | 18 | 100003 | # 新插⼊的记录
+----+--------+------+--------+
3 rows in set (0.00 sec)
# ⼿动指定⼀个值
insert into student(id, name, sno) values (100, '赵六', '100004');
Query OK, 1 row affected (0.01 sec)select * from student;
+-----+--------+------+--------+
| id | name | age | sno |
+-----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 王五 | 18 | 100002 |
| 4 | 王五 | 18 | 100003 |
| 100 | 赵六 | 18 | 100004 |
+-----+--------+------+--------+
4 rows in set (0.00 sec)# 下⼀次⾃增从主键的最⼤值开始
insert into student(name, sno) values ('钱七', '100005');
Query OK, 1 row affected (0.01 sec)select * from student;
+-----+--------+------+--------+
| id | name | age | sno |
+-----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 王五 | 18 | 100002 |
| 4 | 王五 | 18 | 100003 |
| 100 | 赵六 | 18 | 100004 |
| 101 | 钱七 | 18 | 100005 | # ID列的值是101
+-----+--------+------+--------+
5 rows in set (0.00 sec)
# 语法
INSERT ... ON DUPLICATE KEY UPDATE column = value [, column = value] ...# 插⼊ID为100,学号为100100的学⽣记录时,报主键冲突
insert into student(id, name, sno) values (100, '赵六', '100100');
ERROR 1062 (23000): Duplicate entry '100' for key 'student.PRIMARY'# 可以使⽤以上语法,如果插⼊时有冲突则更新当前列的值
insert into student(id, name, sno) values (100, '赵六', '100100')-> ON DUPLICATE KEY UPDATE name = '赵六', sno = '100100';
Query OK, 2 rows affected (0.01 sec) # 两⾏受影响,表⽰删除了原来的记录,⼜新写⼊了⼀条记录
# 与update student set name = '赵六', sno = '100100' where id = 100; 等效select * from student;
+-----+--------+------+--------+
| id | name | age | sno |
+-----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 王五 | 18 | 100002 |
| 4 | 王五 | 18 | 100003 |
| 100 | 赵六 | 18 | 100100 | # 学号已修改
| 101 | 钱七 | 18 | 100005 |
+-----+--------+------+--------+
5 rows in set (0.00 sec)
# 语法
REPLACE [INTO] table_name[(column [, column] ...)]
VALUES(value_list) [, (value_list)] ...
value_list: value, [, value] ...# 写⼊或更新Id为101的记录
REPLACE into student(id, name, sno) values (101, '钱七', '100101');
Query OK, 2 rows affected (0.01 sec) # 受影响两⾏# 原数据已更新
select * from student;
+-----+--------+------+--------+
| id | name | age | sno |
+-----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 王五 | 18 | 100002 |
| 4 | 王五 | 18 | 100003 |
| 100 | 赵六 | 18 | 100100 |
| 101 | 钱七 | 18 | 100101 |
+-----+--------+------+--------+
5 rows in set (0.00 sec)# 写⼊⼀条新数据
REPLACE into student(id, name, sno) values (102, '吴⼋', '100102');
Query OK, 1 row affected (0.01 sec) # 受影响⼀⾏# 成功写⼊
select * from student;
+-----+--------+------+--------+
| id | name | age | sno |
+-----+--------+------+--------+
| 1 | 张三 | 18 | 100001 |
| 2 | 王五 | 18 | 100002 |
| 4 | 王五 | 18 | 100003 |
| 100 | 赵六 | 18 | 100100 |
| 101 | 钱七 | 18 | 100101 |
| 102 | 吴⼋ | 18 | 100102 |
+-----+--------+------+--------+
6 rows in set (0.00 sec)
表中不能有多个主键
drop table student;
# 重构学⽣表
create table student (id bigint PRIMARY KEY auto_increment, # 定义主键name varchar(20) PRIMARY KEY # 定义主键
);
ERROR 1068 (42000): Multiple primary key defined # 报错
drop table student;
# 重构学⽣表
create table student (id bigint,name varchar(20),PRIMARY KEY (id, name) # 指定复合主键
);# 插⼊数据
insert into student(id, name) values (1, '张三');
Query OK, 1 row affected (0.01 sec)# 重复插⼊主键冲突,此时主键值由id和name两个列共同决定
insert into student(id, name) values (1, '张三');
ERROR 1062 (23000): Duplicate entry '1-张三' for key 'student.PRIMARY'# 修改id值插⼊成功
insert into student(id, name) values (2, '张三');
Query OK, 1 row affected (0.00 sec)select * from student;
+----+--------+
| id | name |
+----+--------+
| 1 | 张三 |
| 2 | 张三 |
+----+--------+
2 rows in set (0.00 sec)
6.FOREIGN KEY外键约束
外键⽤于定义主表和从表之间的关系外键约束主定义在从表的列上,主表关联的列必须是主键或唯⼀约束当定义外键后,要求从表中的外键列数据必须在主表的主键或唯⼀列存在或为null。
创建班级表(主表),并初始化数据
drop table if exists class;
# 建表
create table class (id bigint primary key auto_increment,name varchar(20) not null
);# 初始化数据
insert into class (name) values ('java01'), ('java02'), ('java03'), ('C++01'),
('C++02');
Records: 5 Duplicates: 0 Warnings: 0select * from class;
+----+--------+
| id | name |
+----+--------+
| 1 | java01 |
| 2 | java02 |
| 3 | java03 |
| 4 | C++01 |
| 5 | C++02 |
+----+--------+
5 rows in set (0.00 sec)
重构学生表(从表),加入外键约束
# 语法
foreign key (id) references class(id)drop table if exists student;# 重构表
create table student(id bigint PRIMARY KEY auto_increment, name varchar(20) not null,age int DEFAULT 18,class_id bigint,foreign key (class_id) references class(id) # 创建外键约束
);
desc student;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | bigint | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
| age | int | YES | | 18 | |
| class_id | bigint | YES | MUL | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
# 班级编号在主表中存在
insert into student(name, class_id) values ('张三', 1), ('李四', 2);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0# 插⼊成功
select * from student;
+----+--------+------+----------+
| id | name | age | class_id |
+----+--------+------+----------+
| 1 | 张三 | 18 | 1 |
| 2 | 李四 | 18 | 2 |
+----+--------+------+----------+
2 rows in set (0.00 sec)
# 班级编号在主表中不存在,提⽰外键约束限制导致插⼊失败
insert into student(name, class_id) values ('王五', 100);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint
fails (`java01`.`student`, CONSTRAINT `student_ibfk_1` FOREIGN KEY
(`class_id`) REFERENCES `class` (`id`))
# 班级为NULL
insert into student(name, class_id) values ('王五', NULL);
Query OK, 1 row affected (0.00 sec)
select * from student;
+----+--------+------+----------+
| id | name | age | class_id |
+----+--------+------+----------+
| 1 | 张三 | 18 | 1 |
| 2 | 李四 | 18 | 2 |
| 4 | 王五 | 18 | NULL |
+----+--------+------+----------+
3 rows in set (0.00 sec)
# 删除从表中没有引⽤的记录,可以成功
delete from class where name = 'java03';
Query OK, 1 row affected (0.00 sec)select * from class;
+----+--------+
| id | name |
+----+--------+
| 1 | java01 |
| 2 | java02 |
| 4 | C++01 |
| 5 | C++02 |
+----+--------+
4 rows in set (0.00 sec)# 删除从表中引⽤的记录,失败
delete from class where name = 'java01';
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key
constraint fails (`java01`.`student`, CONSTRAINT `student_ibfk_1` FOREIGN KEY
(`class_id`) REFERENCES `class` (`id`))
# 从表存在是不能删除主表
drop table class;
ERROR 3730 (HY000): Cannot drop table 'class' referenced by a foreign key
constraint 'student_ibfk_1' on table 'student'.# 删除从表
drop table student;
Query OK, 0 rows affected (0.02 sec)# 再删除主表,成功
drop table class;
Query OK, 0 rows affected (0.01 sec)
7.CHECK约束
可以应⽤于⼀个或多个列,⽤于限制列中可接受的数据值,从⽽确保数据的完整性和准确性。在8.0.16开始全⾯⽀持CHECK约束,之前的版本会忽略CHECK的定义
drop table if exists student;# 加⼊CHECK约束
create table student(id bigint PRIMARY KEY auto_increment, # 设置⾃增主键name varchar(20) not null,age int DEFAULT 18,gender char(1),check (age >= 16),check (gender = '男' or gender = '⼥')
);# 正常插⼊数据
mysql> insert into student(name, age, gender) values ('张三', 17, '男'), ('李
四', 19, '⼥');
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> select * from student;
+----+--------+------+--------+
| id | name | age | gender |
+----+--------+------+--------+
| 1 | 张三 | 17 | 男 |
| 2 | 李四 | 19 | ⼥ |
+----+--------+------+--------+
2 rows in set (0.00 sec)# 插⼊年龄⼩于16岁的记录,失败
mysql> insert into student(name, age, gender) values ('张三', 15, '男');
ERROR 3819 (HY000): Check constraint 'student_chk_1' is violated.# 插⼊性别的值不是男或⼥的记录,失败
mysql> insert into student(name, age, gender) values ('张三', 17, '1');
ERROR 3819 (HY000): Check constraint 'student_chk_2' is violated.
# 列与列之间也可以⽐较,需要在单独⼀⾏中定义
create table t_check (c1 int check(c1 <> 0),c2 int check(c2 > 0),c3 int,check(c3 >= c2)
);# 插⼊正常数据
mysql> insert into t_check values (-1, 3, 10);
Query OK, 1 row affected (0.01 sec)mysql> select * from t_check;
+------+------+------+
| c1 | c2 | c3 |
+------+------+------+
| -1 | 3 | 10 |
+------+------+------+
1 row in set (0.00 sec)# c1 = 0时,失败
mysql> insert into t_check values (0, 5, 6);
ERROR 3819 (HY000): Check constraint 't_check_chk_1' is violated.# c2 <= 0时,失败
mysql> insert into t_check values (2, -10, 10);
ERROR 3819 (HY000): Check constraint 't_check_chk_2' is violated.# c3 < c2时,失败
mysql> insert into t_check values (2, 10, 9);
ERROR 3819 (HY000): Check constraint 't_check_chk_3' is violated.
相关文章:

MySQL-数据库约束
1.约束类型 类型说明NOT NULL非空约束 指定非空约束的列不能存储NULL值 DEFAULT默认约束当没有给列赋值时使用的默认值UNIQUE唯一约束指定唯一约束的列每行数据必须有唯一的值PRIMARY KEY主键约束NOT NULL和UNIQUE的结合,可以指定一个列霍多个列,有助于…...

线性表三——队列queue
#include<bits/stdc.h> using namespace std; int n,m; queue<int> q;int main(){cin>>n>>m;for(int i1;i<n;i) q.push(i);int k0;while(!q.empty()){k;if(k<m)//从队头出来,再次回到队尾{int idq.front();//记录出去的编号 q.pop();…...

算法笔记(十)——队列+宽搜
文章目录 N 叉数的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度在每个树行中找最大值 BFS是图上最基础、最重要的搜索算法之一; 每次都尝试访问同一层的节点如果同一层都访问完了,再访问下一层 BFS基本框架 void bfs(起始点) {将起始点放入队列中;标记…...
webpack配置全面讲解【完整篇】
文章目录 前言webpack 核心包:配置文件导出三种方式:在线配置 webpack配置文件解析:入口(Entry):输出(Output):加载器(Loaders):插件&…...

十、kotlin的协程
协程 基本概念定义组成挂起和恢复结构化并发协程构建器作用域构建器挂起函数阻塞与非阻塞runBlocking全局协程像守护线程 Job的生命周期 常用函数延时和等待启动和取消启动取消 暂停 协程启动调度器启动方式启动模式线程上下文继承的定义继承的公式 协程取消与超时取消挂起点取…...

vscode qt 最新开发环境配置, 基于最新插件 Qt All Extensions Pack
qt 之前发布了vscode qt offical ,但是最新更新中将其升级改为了几个不同的插件,功能更强大 1. 前置条件 qt 已安装 2. 插件安装 打开vscode 插件安装,搜索qt 会看到很多qt插件,直接选择Qt All Extensions Pack 安装 会安装qt环境所需的…...

【MySQL】Ubuntu环境下MySQL的安装与卸载
目录 1.MYSQL的安装 2.MySQL的登录 3.MYSQL的卸载 4.设置配置文件 1.MYSQL的安装 首先我们要看看我们环境里面有没有已经安装好的MySQL 我们发现是默认是没有的。 我们还可以通过下面这个命令来确认有没有mysql的安装包 首先我们得知道我们当前的系统版本是什么 lsb_…...
C# StringBuilder类:高效构建和修改字符串的利器
C# 中的 StringBuilder 类是一个可变的字符序列,用于高效地构建和修改字符串。与字符串(string)不同,字符串在 C# 中是不可变的,这意味着每次修改字符串(如拼接、替换等操作)时,都会…...
AVL平衡树(AVL Tree)
**场景:课堂讨论** --- **小明(ESFP学生)**:张老师,为什么AVL树(AVL Tree)中的旋转操作这么重要?感觉只是节点的移动,有没有什么实际意义? **张老师&#…...

【python实操】python小程序之两数取大值以及login登录
引言 python小程序之两数取大值以及login登录 文章目录 引言一、两数取大值1.1 题目1.2 代码1.3 代码解释 二、login登录2.1 题目2.2 代码2.3 代码解释 三、思考3.1 两数取大值3.2 login登录 一、两数取大值 1.1 题目 定义一个函数my_max,包含两个参数, 函数的作用…...

Pikachu-File Inclusion-远程文件包含
远程文件包含漏洞 是指能够包含远程服务器上的文件并执行。由于远程服务器的文件是我们可控的,因此漏洞一旦存在,危害性会很大。但远程文件包含漏洞的利用条件较为苛刻;因此,在web应用系统的功能设计上尽量不要让前端用户直接传变…...

TIM(Timer)定时器的原理
一、介绍 硬件定时器的工作原理基于时钟信号源提供稳定的时钟信号作为计时器的基准。计数器从预设值开始计数,每当时钟信号到达时计数器递增。当计数器达到预设值时,定时器会触发一个中断信号通知中断控制器处理相应的中断服务程序。在中断服务程序中&a…...
Microsoft Visual Studio有多油饼
#1 Microsoft Visual Studio C 2023: 必须安装在C盘 为啥? 安其他盘能亖啊? 真有病 #2 Microsoft Visual Studio C 2013: 每个硬盘必须都腾出至少8个G的空间 不是我安在这个盘不就是为了其他盘没空间吗? 合着…...

Golang | Leetcode Golang题解之第452题用最少数量的箭引爆气球
题目: 题解: func findMinArrowShots(points [][]int) int {if len(points) 0 {return 0}sort.Slice(points, func(i, j int) bool { return points[i][1] < points[j][1] })maxRight : points[0][1]ans : 1for _, p : range points {if p[0] > …...

Python 从入门到实战35(进程-multiprocessing模块)
我们的目标是:通过这一套资料学习下来,可以熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了turtle库绘制图画操作的相关知识。今天学习一下…...

“米哈游悄然布局未来科技:入股星海图,共绘具身智能机器人新篇章“
米哈游悄然入股具身智能机器人公司:技术布局与未来展望 近日,米哈游阿尔戈科技有限公司宣布入股具身智能机器人公司星海图,这一消息在行业内引起了广泛关注。米哈游,这家以游戏开发而闻名的企业,近年来正逐步扩大其在人工智能和新兴科技领域的投资布局,此次入股星海图正是…...

基于spring boot的篮球论坛系统
作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…...

华夏ERP账号密码泄露漏洞
漏洞描述 华夏ERP账号密码泄露漏洞 漏洞复现 FOFA "jshERP-boot" POC IP/jshERP-boot/user/getAllList;.ico...

Android问题笔记五十:构建错误-AAPT2 aapt2-7.0.2-7396180-windows Daemon
Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…...

CAD 3dsmax maya等autodesk系列专用卸载修复工具AutoRemove,一键完全彻底卸载删除软件的专用卸载工具
AutoRemove 是一款功能强大的软件卸载工具,专门设计用于彻底清除Autodesk系列软件,如AutoCAD、3ds Max、Revit、Maya、Inventor、Navisworks、civil 3d、sketchbook、Architecture、Electrical、Mechanical、、等,从您的系统中。它通过深度清…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...