【MySQL】(1)数据库基础,库与表的增删查改,数据库的备份与还原
文章目录
- 服务器,数据库,表关系
- MySQL 数据存储逻辑
- SQL 分类
- 存储引擎
- 库的操作
- 查看数据库
- 创建数据库
- 查看创建语句
- 删除数据库
- 选择(切换)数据库
- 查看当前选择的数据库
- 修改数据库
- 字符集和排序规则
- 表的操作
- 创建表
- 查询表
- 查询表结构
- 插入数据
- 检索数据
- 修改表
- 删除表
- 备份
- 还原
- show processlist
服务器,数据库,表关系
- 所谓安装数据库服务器,就是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:

mysqld 就是 MySQL 数据库服务器的守护进程程序,它是 MySQL 数据库系统的核心组件之一。mysqld 进程负责监听 MySQL 数据库服务器的端口,接受客户端连接请求,处理 SQL 查询请求,管理数据库文件、表、索引等对象,以及执行各种数据库操作,如备份、恢复、复制等。mysqld 进程在运行时会读取 MySQL 配置文件(通常是 /etc/my.cnf 文件),根据配置文件中的参数设置来决定 MySQL 数据库服务器的行为。
当在系统中安装 MySQL 数据库时,通常会同时安装 mysqld 进程。在 Linux 系统中,可以通过启动、停止、重启 mysqld 进程来控制 MySQL 数据库服务器的启停和重启,常见的命令是 systemctl start/stop/restart mysqld。
查看配置文件
cat /etc/my.cnf

datadir 参数是指定 MySQL 数据库服务器存储数据库文件的目录路径。
建立一个数据库,本质是在 Linux 下建立了一个目录。也就是说,你不仅可以使用 SQL 指令创建数据库,也可以在 datadir 路径下直接新建目录来创建数据库,但是我们不建议这样做。
建立一个表,本质是在 Linux 下建立了一个文件。
MySQL 数据存储逻辑
MySQL 是一个关系型数据库管理系统(RDBMS),它是基于表的。
MySQL 中的表是由列(列名和列的数据类型)和行(具体的数据)组成的,每个表都有一个唯一的表名,并且可以在表中定义索引以提高查询效率。
例:

SQL 分类
- DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构,侧重于对数据库和表结构进行属性操作。代表指令:
createdropalter - DML(Data Manipulation Language) 数据操纵语言,用来对数据进行操作,侧重于对数据库和表结构进行内容操作。代表指令:
insertdeleteupdate- DML 中以单独分了一个 DQL 数据查询语言,代表指令:
select
- DML 中以单独分了一个 DQL 数据查询语言,代表指令:
- DCL(Data Control Language) 数据控制语言,主要负责权限管理和事务。代表指令:
grantrevokecommit
存储引擎
存储引擎是数据库管理系统存储数据,为存储的数据建立索引、更新、查询等技术的实现方法。
MySQL 的核心就是插件式存储引擎,支持多种存储引擎。
show engines; -- 查看支持的存储引擎

库的操作
查看数据库
语法:
SHOW DATABASES;
该命令将返回所有可用的数据库列表,包括系统默认的数据库和用户创建的数据库。
例:
执行该命令将返回类似如下结果:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| stu |
+--------------------+
其中,information_schema、mysql 和 performance_schema 是 MySQL 系统默认的数据库。
创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] database_name [CHARACTER SET charset_name] [COLLATE collation_name];
-
大写的表示关键字。实际上 SQL 语言对关键字的大小写不敏感,所以平时写 SQL 语句时关键字可大写也可小写。
-
[] 表示可选项。
CREATE DATABASE 用于创建一个新的数据库。
[IF NOT EXISTS] 表示如果该数据库不存在,才执行创建操作,否则将会抛出错误。
database_name 为要创建的数据库的名称,可以使用任意字符,但需要遵循 MySQL 标识符的命名规则。
[CHARACTER SET charset_name] 用于指定数据库的字符集。
[COLLATE collation_name] 用于指定数据库的排序规则。
例:
创建一个名为 mydb 的数据库:
CREATE DATABASE `mydb`;
如果该数据库不存在,则创建一个名为 mydb 的数据库。如果该数据库已经存在,则会返回一个错误。如果需要在创建数据库时指定字符集和排序规则,可以使用以下语句:
CREATE DATABASE IF NOT EXISTS `mydb` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
该语句创建了一个名为 mydb 的数据库,并将其字符集设置为 utf8mb4,排序规则设置为 utf8mb4_unicode_ci。如果该数据库已经存在,则不会执行创建操作。
注:
database_name 通常使用反引号(`)括起来。
在 MySQL 中,使用反引号(`)将标识符括起来可以使其成为一个独立的标识符,即使标识符中包含了空格、关键字或其他特殊字符。
查看创建语句
SHOW CREATE DATABASE 命令,用于显示指定数据库的创建语句。该语句包含了创建数据库时使用的所有参数和选项,包括数据库名、字符集、排序规则等。
例:

删除数据库
语法:
DROP DATABASE [IF EXISTS] database_name;
注意:
一旦数据库被删除,所有与之相关的数据都将永久删除。因此,在执行此操作之前,请确保已经备份好需要保留的数据。
选择(切换)数据库
语法:
USE database_name;
database_name 是要选择的数据库名称。该语句将使得后续的查询、插入、更新等操作默认在该数据库中进行。
查看当前选择的数据库
使用 DATABASE() 函数
SELECT DATABASE();
该函数不需要任何参数,调用它将返回当前选择的数据库名称。如果当前没有选择任何数据库,则该命令返回 NULL。
修改数据库
语法:
-- 修改数据库字符集和校验规则
ALTER DATABASE database_name CHARACTER SET character_set_name COLLATE collation_name;
old_database_name 是要修改名称的数据库名称,new_database_name 是新的数据库名称。
database_name 是要修改的数据库名称,character_set_name 是新的字符集名称,collation_name 是新的校验规则名称。
CHARACTER SET 也可以写成 CHARSET=
例:
将名为 test 的数据库的名称修改为 new_test
ALTER DATABASE test RENAME TO new_test;
将 test 数据库的字符集修改为 utf8mb4,校验规则修改为 utf8mb4_general_ci
ALTER DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
注意:
修改数据库的字符集和校验规则会影响所有表格和列的字符集和校验规则。因此,在执行 ALTER DATABASE 命令之前,请确保已经备份了所有数据,并且了解修改操作可能带来的风险。
ALTER不支持修改数据库名:
MySQL 修改数据库名称比较麻烦,不支持直接修改,需要通过其它方式间接达到修改数据库名称的目的。
在 MySQL 5.1.23 之前的旧版本中,我们可以使用 RENAME DATABASE 来重命名数据库,但此后版本,因为安全考虑,删掉了这一条命令。
上面说过,可以通过在 datadir 下创建目录来创建数据库,那么当然也可以在 datadir 下直接修改目录名,但是我们不建议这样做。
字符集和排序规则
要查看 MySQL 实例的默认字符集和排序规则,可以使用以下命令:
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';

字符集和排序规则在 MySQL 中非常重要,因为它们直接影响到数据库中存储和处理的数据。
字符集决定了数据库中可以存储哪些字符以及如何存储这些字符。不同的字符集支持不同的字符,如 ASCII 字符集只支持英文字母和数字,而 UTF-8 字符集支持更广泛的字符范围,包括不同语言的文字和符号等。同时,字符集还定义了每个字符的编码方式,以确保数据可以在不同的系统和应用程序之间正确地传输和处理。
排序规则决定了在对数据库中的字符数据进行排序时使用哪种规则。这是因为不同的字符集和语言中,字符的排序方式可能是不同的。例如,在中文中,字符的排序方式是根据拼音排序,而在英文中则是按照字典序排序。如果没有正确地设置排序规则,就可能导致排序结果不准确或不符合预期。
因此,字符集和排序规则对于正确存储和处理数据库中的字符数据非常重要,尤其是在涉及多语言和多字符集的应用程序中。在 MySQL 中,通过设置合适的字符集和排序规则,可以确保数据库中的数据可以正确地存储、传输和处理。
注:
在“创建数据库”的语法中我们注意到,在创建数据库时可以指定字符集和排序规则,但是通常我们不这样做。因为不需要指定,它就会使用我们已经配置好的默认字符集和排序规则。
表的操作
创建表
语法:
CREATE TABLE [IF NOT EXISTS] table_name (column1 datatype constraints,column2 datatype constraints,...columnN datatype constraints
) [CHARSET=字符集] [COLLATE=校验规则] [ENGINE=存储引擎];
table_name 是要创建的表格名称。
column1 到 columnN 是表格的列名。
datatype 是列数据类型。
constraints 是列的约束条件,如默认值、非空、唯一性等。
最后一行指定字符集,校验规则,存储引擎是可选项
例:
创建一个名为 students 的表格,包含 id、name 和 gender 三个字段,可以使用以下命令:
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,gender ENUM('M', 'F') DEFAULT 'M'
);
id、name 和 gender 三个字段,分别使用了 INT、VARCHAR 和 ENUM 三种数据类型。其中,id 是主键,name 不允许为空,gender 有默认值 ‘M’,且只能取值为 ‘M’ 或 ‘F’。
执行该命令后,如果创建成功,系统会提示 Query OK, 0 rows affected,表示成功创建了一个名为 students 的表格。如果创建失败,系统会给出相应的错误提示信息。
注:使用 comment 注释表和列:
在 MySQL 中,可用 comment 注释表和列,可以用来记录该表或列的作用、用途、限制、注意事项等信息。
例如,在创建一个名为 employees 的表时,可以添加一个注释来描述该表的作用:
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),hire_date DATE,salary DECIMAL(10,2),comment '员工信息表'
);
使用 SHOW CREATE TABLE 命令可以查看表的详细信息,包括注释信息。例如:
SHOW CREATE TABLE employees;
输出结果如下:
CREATE TABLE `employees` (`id` int(11) NOT NULL,`name` varchar(50) DEFAULT NULL,`hire_date` date DEFAULT NULL,`salary` decimal(10,2) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工信息表'
在列中添加注释的方式与上面类似,只需要在列定义后面添加 COMMENT 关键字即可。
查询表
在选择了数据库后,使用
SHOW TABLES;
查询表结构
语法:
DESC table_name;
执行 DESC 命令后,MySQL 会返回该表格的列信息,如列名、数据类型、是否允许为空、默认值等。
例:
查询刚才创建的 students 表格

该输出表格中的每一行表示一个列的信息,包括 Field(列名)、Type(数据类型)、Null(是否允许为空)、Key(键类型)和 Default(默认值),Extra 表示该列的一些额外信息,如自增长属性、虚拟列等。如果某个字段不允许为空,则其 Null 列显示 NO;如果该字段为主键,则其 Key 列显示 PRI。
插入数据
语法:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
table_name 表示要插入数据的表格名称。
column1, column2, column3, ... 列出了要插入数据的列名称。
value1, value2, value3, ... 对应了这些列要插入的值。
例:
向 students 表格中插入一条记录,包括 id、name 和 gender 三个列,可以使用以下语句:
INSERT INTO students (id, name, gender)
VALUES (1, 'Alice', 'F');
这条语句会向 students 表格中插入一条 id 为 1、name 为 'Alice'、gender 为 'F' 的记录。如果不指定列名称,可以省略列名列表,如下所示:
INSERT INTO students
VALUES (1, 'Alice', 'F');
这条语句与上述语句等价,因为 students 表格中的列顺序与指定的值的顺序一致。不过不建议这样写,上面的写法不容易出错,同时可以使代码更加易于维护。
检索数据
SELECT 语句用于从一个或多个表中检索数据。
语法:
SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column_name ASC|DESC;
column1, column2, ... 列出了要检索的列名称,可以使用通配符 * 表示所有列。
table_name 指定了要检索数据的表格名称。
WHERE condition 是可选的,表示用于筛选要检索的行的条件,可以使用比较运算符、逻辑运算符、通配符等进行筛选。
ORDER BY column_name ASC|DESC 是可选的,表示按照指定列进行升序或降序排列。
例:
从名为 student 的表格中检索所有列

只检索 name 和 gender 两列,并且只需要检索 gender 为 'F' 的记录

将 students 表格按照 id 列进行降序排列:

以上只是 SELECT 语句的一些基本用法,实际上 SELECT 语句有很多高级用法,如聚合函数、子查询、连接查询等,这些我们会在后面的章节中进行讲解。
修改表
-- 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;-- 修改列的数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;-- 修改列名
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;-- 删除列
ALTER TABLE 表名 DROP 列名;-- 添加主键
ALTER TABLE 表名 ADD PRIMARY KEY (列名);-- 添加唯一索引
ALTER TABLE 表名 ADD UNIQUE (列名);-- 添加普通索引
ALTER TABLE 表名 ADD INDEX (列名);-- 删除索引
ALTER TABLE 表名 DROP INDEX 索引名;-- 修改表名
ALTER TABLE 旧表名 RENAME TO 新表名; -- TO可省略-- 修改存储引擎
ALTER TABLE 表名 ENGINE=存储引擎名称;-- 修改表的字符集和校对规则
ALTER TABLE 表名 CONVERT TO CHARACTER SET 字符集名称 COLLATE 校对规则名称;
删除表
DROP TABLE [IF EXISTS] table_name [, table_name] ... [RESTRICT | CASCADE];
IF EXISTS:可选项,表示在删除表时,如果表不存在则不会报错。table_name:需要删除的表的名称,支持同时删除多个表,用逗号隔开。RESTRICT:可选项,表示在删除表时,如果有其他对象依赖于该表,则不会删除该表。CASCADE:可选项,表示在删除表时,同时删除依赖于该表的对象。
备份
使用 mysqldump 工具备份:
mysqldump 是一个命令行工具,可以用来备份 MySQL 数据库。
语法:
mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径]
[用户名] 和 [密码] 分别是要使用的 MySQL 用户名和密码
[数据库名] 是要备份的数据库名称,[备份文件路径] 是备份文件的保存路径。
注:[数据库名] 可以带 -B 选项,这样在还原数据库时,不需要先创建空的数据库。
例:
备份名为 test 的数据库,可以使用以下命令:
mysqldump -u root -p test > /home/user/test_backup.sql
本质上
mysqldump 本质上是通过生成一组 SQL 语句来备份数据库中的数据和结构。备份时,mysqldump 会将数据库中所有的表结构和数据导出为一组 SQL 语句,并将这些语句保存到一个文本文件中。在需要恢复数据时,可以使用这个文本文件来重新创建数据库,并将数据导入到新创建的数据库中。
打开备份的文件,类似于这样:

注:
- 如果你只想备份一个数据库中的特定几个表,可以使用
mysqldump命令的--tables参数指定要备份的表名,语法如下:
mysqldump -u username -p --tables database_name table1 table2 table3 > backup_file.sql
- 同时备份多个数据库
mysqldump -u username -p --databases db1 db2 db3 > backup_file.sql
- 如果备份一个数据库时,没有带上
-B参数,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用 source 来还原。
还原
source命令是 MySQL 客户端工具中的一个命令,用于在当前 MySQL 连接中执行指定的 SQL 脚本文件。
基本步骤:
-
选择要执行脚本文件的数据库。
use database_name; -
使用
source命令执行 SQL 脚本文件,也就是我们刚刚用 mysqldump 备份出来的 sql 文件。source /path/to/script.sql;/path/to/script.sql是要执行的SQL脚本文件的路径。
例:
进入一个空的数据库

执行备份文件,会显示许多 Query OK

查询表,表结构,检索数据,发现数据还原成功

show processlist
SHOW PROCESSLIST 命令用于显示当前 MySQL 服务器上正在执行的所有连接和相应的进程列表。
例:

上述结果中,每一行代表一个MySQL连接和进程的信息,其中Id表示连接ID,User表示连接的用户名,Host表示连接的主机名,db表示当前连接正在使用的数据库名,Command表示当前连接正在执行的命令,Time表示连接已经持续的时间(单位为秒),State表示当前连接的状态,Info表示当前连接正在执行的SQL语句或命令。
相关文章:
【MySQL】(1)数据库基础,库与表的增删查改,数据库的备份与还原
文章目录服务器,数据库,表关系MySQL 数据存储逻辑SQL 分类存储引擎库的操作查看数据库创建数据库查看创建语句删除数据库选择(切换)数据库查看当前选择的数据库修改数据库字符集和排序规则表的操作创建表查询表查询表结构插入数据…...
Python基础-01 变量
注释 注释的分类 在Python中,支持单行及多行注释 单行注释 使用#对代码进行说明,#右边的所有内容就是注释的内容,起辅助说明作用 # #右边的都是注释,解析器会忽略 print(hello world) #在控制台里打印一段话多行注释 多行注释中,允许换行,使用三个单引号开始,三个单引号结…...
springcloud2.1.0整合seata1.5.2+nacos2.10(附源码)
springcloud2.1.0整合seata1.5.2nacos2.10(附源码) 1.创建springboot2.2.2springcloud2.1.0的maven父子工程如下,不过多描述: 搭建过程中也出现很多问题,主要包括: 1.seataServer.properties配置文件的组…...
map原理
map源码结构体: type hmap struct {count int // 元素的个数B uint8 // buckets 数组的长度就是 2^B 个overflow uint16 // 溢出桶的数量buckets unsafe.Pointer // 2^B个桶对应的数组指针oldbuckets unsafe.Pointer // 发生扩容时࿰…...
[Ext JS]3.6 Ext JS 表格(Grid)概览
Grid, 翻译过来是网格, 也就是表格。 Grid 的基本构成 面板 :Ext.grid.Panel表格视图 :Ext.view.Table。 不直接使用, 通过面板的viewConfig配置项进行配置。比如可以用来配置表格中行是否跳色显示列: Ext.grid.column.Column。 表格中的列定义store , 表格的数据示例代码…...
关于使用云渲染的五大优势
在不影响质量或性能的情况下节省时间、金钱和资源,对于需要在通常较短且严格的期限内创建高质量 3D 内容的专业人士来说,云渲染都是最好的选择!云渲染作为数字媒体生产的最新趋势,与传统的渲染农场和机器相比具有许多优势…...
CSS基础样式
1.高度和宽度 .c1{height:300px;width:500px; } 注意事项: 宽度,支持百分比 行内标签:默认无效 块级标签:默认有效(右侧区域就算是空白,也不给占用) 2.块级和行内标签 css样式:标签…...
第03章_流程控制语句
第03章_流程控制语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模…...
配电网电压调节及通信联系研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
stegano(图片隐写、摩斯密码)
附件是PDF,我们在选择内容时发现光标溢出了文本 说明这里还存在一些我们看不到的内容 直接CtrlA全选,CtrlC复制后新建一个纯文本文件 将复制的东西粘贴过去 粘贴后发现果然多出来了一些东西,提取出来 BABA BBB BA BBA ABA AB B AAB ABAA A…...
wsl安装torch_geometric
在官网选择需要的版本 选择安装途径,选择runfile 执行第一行,会下载一个文件到目录下 需要降低C的版本,否则 执行sudo sh cuda_11.1.0_455.23.05_linux.run,会出现 查看对应的文件,会有 可以加上override参数之后,…...
ASP.NET Core - 依赖注入(二)
2,NET Core 依赖注入的基本用法 话接上篇,这一章介绍 .NET Core 框架自带的轻量级 Ioc 容器下服务使用的一些知识点,大家可以先看看上一篇文章 [ASP.NET Core - 依赖注入(一)] 2.3 服务解析 通过 IServiceCollection 注册了服务之后…...
Scala之集合(1)
目录 集合介绍: 不可变集合继承图:编辑 可变集合继承图 数组: 不可变数组: 样例代码: 遍历集合的方法: 1.for循环 2.迭代器 3.转换成List列表: 4.使用foreach()函数&a…...
公网使用SSH远程登录macOS服务器【内网穿透】
文章目录前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址5. 使用固定TCP端口地址ssh远程前言…...
PVE相关的各种一键脚本(一键安装PVE)(一键开设KVM虚拟化的NAT服务器-自带内外网端口转发)
PVE 原始仓库:https://github.com/spiritLHLS/pve 前言 建议debian在使用前尽量使用最新的系统 非debian11可使用 debian一键升级 来升级系统 当然不使用最新的debian系统也没问题,只不过得不到官方支持 请确保使用前机器可以重装系统,…...
CSDN目录博客(zhaoshuangjian)
总目录 一、Java1.1 高并发1.2 多线程1.3 集合1.4 I/O1.5 异常1.6 事务1.7 锁机制1.8 JVM 二、数据库2.1 mysql2.1.1 mysql索引2.1.1 mysql锁2.1.1 mysql事务2.1.1 2.2 oracle2.3 postgresql2.4 达梦2.5 人大金仓kingbase 三、设计模式四、中间件4.1 缓存中间件-redis4.2 缓存中…...
uniapp人脸识别解决方案
APP端: 因为APP端无法使用uni的camera组件,最开始考虑使用内嵌webview的方式,通过原生dom调用video渲染画面然后通过canvas截图。但是此方案兼容性在ios几乎为0,如果app只考虑安卓端的话可以采用此方案。后面又想用live-pusher组件…...
hashlib模块
欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 hashlib模块专栏:《python从入门到实战》 哈希算法,也叫摘要算法。 加密&…...
NC65合并报表如何取消上报并退回以及注意事项和相关问题总结
NC65合并报表如何取消上报并退回? 在【企业绩效管理】-【合并报表】-【合并】-【合并执行】节点中,点击〖数据中心〗按钮,在弹出的〖合并报表数据中心〗界面中,点击〖报送管理〗-〖合并方案请求退回〗,然后到【合并综…...
28岁,终于从字节退休了...
大厂一直是每个程序员都向往职业目标,大厂意味着薪资高、福利好、倍有面儿,而且发展空间也大。甚至有人调侃不想进大厂的程序员不是好程序员。 而在网上,也有各个网友分享自己在大厂的经历,在某平台还有一个近2600万浏览的话题&a…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
