[MySQL]数据库表内容的增删查改操作大全
目录
一、增加表数据
1.全列插入与指定列插入
2.多行数据插入
3.更新与替换插入
二、查看表数据
1.全列查询与指定列查询
2.查询表达式字段
3.为查询结果起别名
4.结果去重
5.WHERE条件
6.结果排序
7.筛选分页结果
8.插入查询的结果
9.group by子句
三、修改表数据
四、删除与截断表数据
一、增加表数据
语法:INSERT [INTO] table_name [column , column...] VALUES (value_list) [ ,(value_list)];
mysql> create table students (-> id int unsigned primary key auto_increment,-> number int not null unique comment '学号',-> name varchar(20) not null,-> telephone char(11) -> );
Query OK, 0 rows affected (0.05 sec)
1.全列插入与指定列插入
value_list的数量必须和表中定义的字段数量一样的时候,才属于全列插入,才可以省略指定插入元素的部分。因为我们设置了自增属性,所以可以不用给id设定值,但是这样的话,就不属于全列插入了就必须指定插入的字段是哪些了。
//全列插入
insert into students values(1, 202501, '张三', '15812345678');//指定列插入
insert into students (number, name, telephone) values(202503, '王五', '17712345678');
2.多行数据插入
在插入数据的时候也可以同时插入多条数据,对于多行数据的插入也满足全列插入与指定列插入的规则。
//全列多行插入
insert into students values(4, 202504, '赵六', '12312345678'), (5, 202505, '田七', '12345656789');//指定列多行插入
insert into students (number, name, telephone) values(202506, '你好', '12312345678'), (202507, '哈哈', '12345656789');
3.更新与替换插入
更新语法:ON DUPLICATE KEY UPDATE
替换语法:REPLACE
因为一般表中都会有主键和唯一键的约束,那么我们在插入的时候如果出现唯一键和主键冲突的情况就会插入失败,那么如果我们就想插入呢,那么可以使用更新或者替换语句,将数据更新成我们新插入的,或者整个替换一下。
mysql> insert into students (id, number, name) values(1, 202501, '北顾') on duplicate key update number=202510, name = '北顾';
Query OK, 2 rows affected (0.00 sec)mysql> select * from students;
+----+--------+--------+-------------+
| id | number | name | telephone |
+----+--------+--------+-------------+
| 1 | 202510 | 北顾 | 15812345678 |
| 2 | 202502 | 李四 | 17712345678 |
| 3 | 202503 | 王五 | 17712345678 |
| 4 | 202504 | 赵六 | 12312345678 |
| 5 | 202505 | 田七 | 12345656789 |
| 6 | 202506 | 你好 | 12312345678 |
| 7 | 202507 | 哈哈 | 12345656789 |
+----+--------+--------+-------------+
7 rows in set (0.00 sec)
上面的代码为插入否则更新的操作, 先使用insert插入数据,如果说遇到主键或者唯一键的冲突而导致的插入失败的时候,可以执行duplicate key update进行数据的更新操作。
如图可以看到返回值发生了变化,如果说插入的数据有冲突的但是冲突的数据和原数据是一样的那么就相当于不做任何操作,返回0;如果说没有数据冲突的话,直接插入返回1;如果有数据冲突,并执行了数据更新操作的话,就返回2。
mysql> replace into students (number, name) value(202510, 'hello');
Query OK, 2 rows affected (0.01 sec)mysql> select * from students;
+----+---------+--------+-------------+
| id | number | name | telephone |
+----+---------+--------+-------------+
| 2 | 202502 | 李四 | 17712345678 |
| 3 | 202503 | 王五 | 17712345678 |
| 4 | 202504 | 赵六 | 12312345678 |
| 5 | 202505 | 田七 | 12345656789 |
| 6 | 202506 | 你好 | 12312345678 |
| 7 | 202507 | 哈哈 | 12345656789 |
| 8 | 202510 | hello | NULL |
+----+---------+--------+-------------+
9 rows in set (0.00 sec)
上面的代码则是替换代码,他的操作是如果没有冲突那么就直接插入并返回1,如果有冲突大的话,他会先删除冲突数据,然后再重新插入并返回2。
二、查看表数据
1.全列查询与指定列查询
SELECT [column, column] FROM table_name;
当column不指定且设置为*的时候,就是全列查询了,但是一般不建议使用全列查询,因为查询的列越多,意味着需要传输的数据量就越大,会影响效率。对于指定列查询输入的字段名称不需要和定义的时候顺序一样,select关键字的作用相当于是打印,而我们定义打印什么他就会显示什么,定义什么顺序显示,他就会按什么顺序显示。
2.查询表达式字段
上述也说了select是一个起到一个打印显示的作用,而column from table_name,才是指定打印的内容,那么打印的内容可不可以不是表中的呢?或者打印的字段可以不可以是表达式呢?打印的字段可不可以用表中的字段作为参数的表达式呢?
mysql> create table exam (-> id int unsigned primary key auto_increment,-> name varchar(20) not null,-> chinese float default 0.0,-> math float default 0.0,-> english float default 0.0-> );
Query OK, 0 rows affected (0.05 sec)mysql> insert into exam (name, chinese, math, english) values -> ('张三', 67, 65, 86),-> ('李四', 98, 56, 84),-> ('王五', 76, 45, 97),-> ('赵六', 99, 43, 91);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0//显示非表中的数据
mysql> select 10;
+----+
| 10 |
+----+
| 10 |
+----+
1 row in set (0.00 sec)//显示表达式数据
mysql> select 10 + 20;
+---------+
| 10 + 20 |
+---------+
| 30 |
+---------+
1 row in set (0.00 sec)//显示表中数据为参数的表达式数据
mysql> select id + 10 from exam;
+---------+
| id + 10 |
+---------+
| 11 |
| 12 |
| 13 |
| 14 |
+---------+
4 rows in set (0.00 sec)
3.为查询结果起别名
语法:SELECT column [AS] alias_name [...] FROM table_name;
mysql> select 10 + 20 as '总数';
+--------+
| 总数 |
+--------+
| 30 |
+--------+
1 row in set (0.00 sec)mysql> select id, name, chinese + math + english as '总分' from exam;
+----+--------+--------+
| id | name | 总分 |
+----+--------+--------+
| 1 | 张三 | 218 |
| 2 | 李四 | 238 |
| 3 | 王五 | 218 |
| 4 | 赵六 | 233 |
+----+--------+--------+
4 rows in set (0.00 sec)
4.结果去重
语法: SELECT DISTINCT column FROM table_name;
5.WHERE条件
运算符 | 说明 |
>, >=, <, <= | 没有什么特殊含义,就是单纯的比较 |
= | 等于, |
<=> | 等于 |
!=, <> | 不等于 |
BETWEEN x1 AND x2 | 进行范围匹配,如果一个数值再[x1, x2]之间,那么就返回true |
IN (option, ...) | 如果是option中的一个,那么就返回ture |
IS NULL | 是NULL |
IS NOT NULL | 不是NULL |
LIKE | 模糊匹配。 %表示任意多个任意字符;_表示任意一个字符 |
运算符 | 说明 |
AND | 多个条件都必须满足才返回true |
OR | 任意满足一个条件返回true |
NOT | 满足条件的时候,返回false,相当于匹配不是该条件的内容 |
下面是操作符的一些使用案例:
基本比较的使用
mysql> select * from exam;
+----+--------+---------+------+---------+
| id | name | chinese | math | english |
+----+--------+---------+------+---------+
| 1 | 张三 | 67 | 65 | 86 |
| 2 | 李四 | 98 | 56 | 84 |
| 3 | 王五 | 76 | 45 | 97 |
| 4 | 赵六 | 99 | 43 | 91 |
+----+--------+---------+------+---------+
4 rows in set (0.00 sec)mysql> select id, name, math from exam where math < 60;
+----+--------+------+
| id | name | math |
+----+--------+------+
| 2 | 李四 | 56 |
| 3 | 王五 | 45 |
| 4 | 赵六 | 43 |
+----+--------+------+
3 rows in set (0.00 sec)
AND与BETWENN AND的使用
//查询语文分数再80到100之间的同学
mysql> select id, name, chinese from exam where chinese >= 80 and chinese <= 100;
+----+--------+---------+
| id | name | chinese |
+----+--------+---------+
| 2 | 李四 | 98 |
| 4 | 赵六 | 99 |
+----+--------+---------+
2 rows in set (0.00 sec)mysql> select id, name, chinese from exam where chinese between 80 and 100;
+----+--------+---------+
| id | name | chinese |
+----+--------+---------+
| 2 | 李四 | 98 |
| 4 | 赵六 | 99 |
+----+--------+---------+
2 rows in set (0.00 sec)
OR与IN的使用
//查询英语分数为86或97的同学
mysql> select id, name, english from exam where english=86 or english=97;
+----+--------+---------+
| id | name | english |
+----+--------+---------+
| 1 | 张三 | 86 |
| 3 | 王五 | 97 |
+----+--------+---------+
2 rows in set (0.00 sec)mysql> select id, name, english from exam where english in(86, 97);
+----+--------+---------+
| id | name | english |
+----+--------+---------+
| 1 | 张三 | 86 |
| 3 | 王五 | 97 |
+----+--------+---------+
2 rows in set (0.00 sec)
LIKE的使用
//查询姓张和姓王的同学
mysql> select id, name from exam where name like '张%' or name like '王%';
+----+--------+
| id | name |
+----+--------+
| 1 | 张三 |
| 3 | 王五 |
+----+--------+
2 rows in set (0.00 sec)mysql> insert into exam values(5, '张文强', 98, 90, 79);
Query OK, 1 row affected (0.01 sec)//查询名字为2个字,还性张的同学
mysql> select id, name from exam where name like '张_';
+----+--------+
| id | name |
+----+--------+
| 1 | 张三 |
+----+--------+
1 row in set (0.00 sec)
where与表达式混合使用
//总分大于230的同学
mysql> select id, name, chinese + math + english as '总分' from exam where chinese + math + english > 230;
+----+-----------+--------+
| id | name | 总分 |
+----+-----------+--------+
| 2 | 李四 | 238 |
| 4 | 赵六 | 233 |
| 5 | 田七 | 231 |
| 6 | 张文强 | 267 |
+----+-----------+--------+
4 rows in set (0.00 sec)
AND与NOT混合使用
//语文分数大于90,不是不姓李的同学
mysql> select name, chinese from exam where chinese > 90 and name not like '李_';
+-----------+---------+
| name | chinese |
+-----------+---------+
| 赵六 | 99 |
| 田七 | 92 |
| 张文强 | 98 |
+-----------+---------+
3 rows in set (0.00 sec)
=和<=>的区别
两者都是判断两个值是否相等的,但是第一个属于非安全的,如果用NULL去和任意值就行比较的话,都会返回NULL,因为MySQL中对于NULL代表的是未知的值,所以说比较的时候结果也是未知的。而<=>的话能处理NULL值的比较,会把NULL当作一个值来看待,如果都是NULL就返回1,不是返回0。
6.结果排序
语法:SELECT ... FROM table_name ... ORDER BY column [ASC|DESC], [...];
使用案例:select * from tset_table order by xxxx;
操作是将select选出的显示数据,按照column数据的值进行升序或者降序排列显示,ASC是默认值,表示升序,DESC表示降序。对于NULL的话,看作比任何数据都小的一个值。还可以进行多段排序规则的定义,如果两个数值相等,那么第一个排序规则就无法排序,就会继续按照第二个排序规则继续排序了。
mysql> insert into exam values(7, '哈哈', 98, 77, 79);
Query OK, 1 row affected (0.01 sec)mysql> insert into exam values(8, '王强', NULL, 79, 59);
Query OK, 1 row affected (0.01 sec)//语文按照降序,数学按照升序排列
mysql> select * from exam order by chinese desc, math;
+----+-----------+---------+------+---------+
| id | name | chinese | math | english |
+----+-----------+---------+------+---------+
| 4 | 赵六 | 99 | 43 | 91 |
| 2 | 李四 | 98 | 56 | 84 |
| 7 | 哈哈 | 98 | 77 | 79 |
| 6 | 张文强 | 98 | 90 | 79 |
| 5 | 田七 | 92 | 60 | 79 |
| 3 | 王五 | 76 | 45 | 97 |
| 1 | 张三 | 67 | 65 | 86 |
| 8 | 王强 | NULL | 79 | 59 |
+----+-----------+---------+------+---------+
8 rows in set (0.00 sec)//排序总分, order by中可以使用列名称的别名
mysql> select id, name, chinese + math + english as 总分 from exam order by 总分 desc;
+----+-----------+--------+
| id | name | 总分 |
+----+-----------+--------+
| 6 | 张文强 | 267 |
| 7 | 哈哈 | 254 |
| 2 | 李四 | 238 |
| 4 | 赵六 | 233 |
| 5 | 田七 | 231 |
| 1 | 张三 | 218 |
| 3 | 王五 | 218 |
| 8 | 王强 | NULL |
+----+-----------+--------+
8 rows in set (0.00 sec)
7.筛选分页结果
//从0开始筛选n条结果
SELECT ... FROM table_name [...] LIMIT n;
//从s开始筛选n条结果
SELECT ... FROM table_name [...] LIMIT s, n;
SELECT ... FROM table_name [...] LIMIT n OFFSET S;
在对未知的表就行查询显示的时候,最好加上LIMIT,避免表中大的数据量过大,查询全表导致数据库卡顿。如果查询的数据不够n个的话不会有任何的影响。
mysql> select * from exam limit 3;
+----+--------+---------+------+---------+
| id | name | chinese | math | english |
+----+--------+---------+------+---------+
| 1 | 张三 | 67 | 65 | 86 |
| 2 | 李四 | 98 | 56 | 84 |
| 3 | 王五 | 76 | 45 | 97 |
+----+--------+---------+------+---------+
3 rows in set (0.00 sec)mysql> select * from exam limit 3, 3;
+----+-----------+---------+------+---------+
| id | name | chinese | math | english |
+----+-----------+---------+------+---------+
| 4 | 赵六 | 99 | 43 | 91 |
| 5 | 田七 | 92 | 60 | 79 |
| 6 | 张文强 | 98 | 90 | 79 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)mysql> select * from exam limit 6, 3;
+----+--------+---------+------+---------+
| id | name | chinese | math | english |
+----+--------+---------+------+---------+
| 7 | 哈哈 | 98 | 77 | 79 |
| 8 | 王强 | NULL | 79 | 59 |
+----+--------+---------+------+---------+
2 rows in set (0.00 sec)mysql>
8.插入查询的结果
mysql> create table exam_zhang (-> id int unsigned primary key auto_increment,-> name varchar(20) not null,-> chinese float default 0.0,-> math float default 0.0,-> english float default 0.0-> );
Query OK, 0 rows affected (0.05 sec)mysql> insert into exam_zhang select distinct * from exam where name like '张%';
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> select * from exam_zhang;
+----+-----------+---------+------+---------+
| id | name | chinese | math | english |
+----+-----------+---------+------+---------+
| 1 | 张三 | 100 | 130 | 116 |
| 6 | 张文强 | 98 | 120 | 109 |
+----+-----------+---------+------+---------+
2 rows in set (0.01 sec)
9.group by子句
使用该子句可以将指定的列进行分组查询,对于使用分组查询的时候,select显示的列必须是出现在group by子句中,或者说是聚合函数才可以。
mysql> create table student (-> class_id int not null,-> name varchar(10) not null,-> score float default 0.0-> );
Query OK, 0 rows affected (0.03 sec)mysql> insert into student values -> (1, '张三', 98.7),-> (1, '李四', 97.2),-> (1, '王五', 88.6),-> (2, '赵六', 79.4),-> (2, '田七', 99.9),-> (2, '王强', 50.4);
Query OK, 6 rows affected (0.01 sec)
Records: 6 Duplicates: 0 Warnings: 0//查看每个班级的最高分
mysql> select class_id, max(score) from student group by class_id;
+----------+------------+
| class_id | max(score) |
+----------+------------+
| 1 | 98.7 |
| 2 | 99.9 |
+----------+------------+
2 rows in set (0.00 sec)//必须是聚合函数,或者是group by里出现的列
mysql> select class_id, name, max(score) from student group by class_id;
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.student.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
三、修改表数据
语法:UPDATE table_name SET column=xx [, column=xx, ...] [WHERE ...];
//将总分最高的前三名英语成绩提供30分
mysql> select name, english, math+chinese+english as 总分 from exam order by 总分 desc limit 3;
+-----------+---------+--------+
| name | english | 总分 |
+-----------+---------+--------+
| 张三 | 86 | 286 |
| 张文强 | 79 | 267 |
| 哈哈 | 79 | 254 |
+-----------+---------+--------+
3 rows in set (0.00 sec)mysql> update exam set english = english + 30 order by math+english+chinese desc limit 3;
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0mysql> select name, english, math+chinese+english as 总分 from exam order by 总分 desc limit 3;
+-----------+---------+--------+
| name | english | 总分 |
+-----------+---------+--------+
| 张三 | 116 | 316 |
| 张文强 | 109 | 297 |
| 哈哈 | 109 | 284 |
+-----------+---------+-------//全列更改--非常不建议这样做
mysql> update exam set math = math + 30;
Query OK, 8 rows affected (0.00 sec)
Rows matched: 8 Changed: 8 Warnings: 0
四、删除与截断表数据
删除语法:DELETE FROM table_name [....];
如果说不加任何范围选择条件的话,那么就相当于是删除整个表数据的操作了。
截断语法:TRUNCATE [TABLE] table_name;
对于删除操作来说,是将表单个或者多个数据进行删除,而截断则是对整个表进行操作,会将整个表数据都清除。这样的话可以通过释放表的存储空间来实现清空表的操作,而DELETE语句需要逐行删除记录,并且会记录每一行的删除操作到日志中。所以会比DELETE快很多。
如果表中有自增列,操作会将自增列的值重置为初始值(通常是 1)。而DELETE语句不会重置自增列的值。还有不可滚回和不处罚触发器的特点,以后在讲述。
相关文章:
[MySQL]数据库表内容的增删查改操作大全
目录 一、增加表数据 1.全列插入与指定列插入 2.多行数据插入 3.更新与替换插入 二、查看表数据 1.全列查询与指定列查询 2.查询表达式字段 3.为查询结果起别名 4.结果去重 5.WHERE条件 6.结果排序 7.筛选分页结果 8.插入查询的结果 9.group by子句 三、修改表数…...
解决双系统引导问题:Ubuntu 启动时不显示 Windows 选项的处理方法
方法 1:检查 GRUB 引导菜单是否隐藏 启动进入 Ubuntu 系统。打开终端,输入以下命令编辑 GRUB 配置文件:sudo nano /etc/default/grub检查以下配置项: GRUB_TIMEOUT0:如果是 0,将其改为一个较大的值&#x…...

Java面试题2025-Spring
讲师:邓澎波 Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 1.1 Spring的发展历程 先介绍Spring是怎么来的,发展中有哪些核心的节点,当前的最新版本是什么等 通过上图可以比较清晰的看到Spring的各个时间版本对…...

CentOS7安装使用containerd
一,安装 1.1、安装containerd 下载 https://github.com/containerd/containerd/releases/download/v1.7.24/cri-containerd-cni-1.7.24-linux-amd64.tar.gz wget https://github.com/containerd/containerd/releases/download/v1.7.24/cri-containerd-cni-1.7.24-…...

Redis 集群模式入门
Redis 集群模式入门 一、简介 Redis 有三种集群模式:主从模式、Sentinel 哨兵模式、cluster 分片模式 主从复制(Master-Slave Replication): 在这种模式下,数据可以从一个 Redis 实例(主节点 Master)复…...

WinDBG查找C++句柄泄露
C代码(频繁点击About按钮导致Mutex句柄泄露) HANDLE _mutexHandle;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {switch (message){case WM_COMMAND:{int wmId LOWORD(wParam);// 分析菜单选择:switch (wmId){c…...

Linux查看服务器的内外网地址
目录: 1、内网地址2、外网地址3、ping时显示地址与真实不一致 1、内网地址 ifconfig2、外网地址 curl ifconfig.me3、ping时显示地址与真实不一致 原因是dns缓存导致的,ping这种方法也是不准确的,有弊端不建议使用,只适用于测试…...

深入MapReduce——引入
引入 前面我们已经深入了HDFS的设计与实现,对于分布式系统也有了不错的理解。 但HDFS仅仅解决了海量数据存储和读写的问题。要想让数据产生价值,一定是需要从数据中挖掘出价值才行,这就需要我们拥有海量数据的计算处理能力。 下面我们还是…...
Oracle之开窗函数使用
Oracle中的开窗函数(Window Functions)是一种强大的工具,用于在SQL查询中对数据进行复杂的分析和聚合操作,而无需改变原始查询结果的行数或顺序。以下是关于Oracle开窗函数的使用方法和常见示例: 1. 开窗函数的基本语法…...
航空客户价值的数据挖掘与分析(numpy+pandas+matplotlib+scikit-learn)
文章目录 航空客户价值的数据挖掘与分析(numpy+pandas+matplotlib+scikit-learn)写在前面背景与挖掘目标1.1 需求背景1.2 挖掘目标1.3 项目概述项目分析方法规划2.1 RFM模型2.2 LRFMC模型指标2.3 分析总体流程图数据抽取探索及预处理3.1 数据抽取3.2 数据探索分析3.3 数据预处…...

云原生时代,如何构建高效分布式监控系统
文章目录 一.监控现状二.Thanos原理分析SidecarQuerierStoreCompactor 三.Sidecar or ReceiverThanos Receiver工作原理 四.分布式运维架构 一.监控现状 Prometheus是CNCF基金会管理的一个开源监控项目,由于其良好的架构设计和完善的生态,迅速成为了监控…...

什么是CIDR技术? 它是如何解决路由缩放问题的
什么是CIDR技术? 它是如何解决路由缩放问题的 一. 什么是 CIDR?二. CIDR 是如何工作的?1. 高效地址分配2. 路由聚合(Route Aggregation)3. 精确满足需求 三. CIDR 的计算详解1. 子网掩码计算2. 地址范围计算3. 可用 IP…...

Unity URP 获取/设置 Light-Indirect Multiplier
Unity URP 获取/设置 Light-Indirect Multiplier 他喵的代码的字段名称叫:bounceIntensity ~~~~~~...

用Python和Tkinter标准模块建立密码管理器
用Python和Tkinter标准模块建立密码管理器 创建一个简单的密码管理器应用程序,帮助用户存储和管理他们的密码。使用Python的tkinter模块来创建一个图形用户界面(GUI)。 本程序支持 添加、查看、搜索、复制、修改、删除 功能。 本程序使用 …...

PyQt5菜单加多页签实现
pyqt tabs标签_哔哩哔哩_bilibili 代码实现 # coding:utf-8 import sys from PyQt5.QtCore import Qt from PyQt5 import QtCore,QtWidgets from PyQt5.QtWidgets import QApplication,QWidget from QhTabs01 import Ui_Form from PyQt5.Qt import *class QhLiangHuaGUI(QWidg…...
关注搜索引擎蜘蛛压力
以前在建站的时候,他们说蜘蛛来抓取的频率越多越好,因为蜘蛛来抓取说明了网站更新速度快,受搜索引擎的欢迎,但是在最近的网站统计中,发现很多蜘蛛爬取的频次非常的高,比如有的蜘蛛一天能来网站几万次&#…...
Python3 OS模块中的文件/目录方法说明三
一. 简介 前面文章简单学习了Python3中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS模块中文件、目录的操作方法:os.fdopen()方法、os.fpathconf() 方法、os.fstat() 方法、os.fstatvfs() 方法。 二. Python3 OS模块中的文件/目录方法说明三 1. os.fdop…...

2024年终总结:技术成长与突破之路
文章目录 前言一、技术成长:菜鸟成长之路1. 学习与实践的结合2. 技术分享与社区交流 二、生活与事业的平衡:技术之外的思考1. 时间管理与效率提升2. 技术对生活的积极影响 三、突破与展望:未来之路1. 技术领域的突破2. 未来规划与目标 四、结…...

mysql-06.JDBC
目录 什么是JDBC: 为啥存在JDBC: JDBC工作原理: JDBC的优势: 下载mysql驱动包: 用java程序操作数据库 1.创建dataSource: 2.与服务端建立连接 3.构造sql语句 4.执行sql 5.关闭连接,释放资源 参考代码: 插…...
使用python调用JIRA6 进行OAuth1认证获取AccessToken
Jira配置应用程序链接 1) 创建应用程序链接 登录 JIRA 管理后台。转到 Administration > Applications > Application Links。在输入框中输入外部应用程序的 URL(例如 GitLab 或自定义应用),然后点击 Create new link。 2) 配置 Con…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...