C++学习之MYSQL数据库
目录
1.mysql数据库介绍
2.mysql数据库安装
3.mysql数据库启动和登录
4.mysql数据库CURD
5.mysql数据库表CURD
6.mysql数据库数据CURD
7.mysql基础综合练习
8.mysql数据库总日期和时间函数
9.mysql中函数
10.PLSQL工具使用介绍
11.ORACLE实例别名和ORACLE客户端
12.课程复习
13.ORACLE客户端工具安装
14.MYSQL多表查询
15.MYSQL约束
16.MYSQL中文乱码问题
18.mysql参考手册概述
19.C连接MYSQL数据库
20.MYSQL使用CAPI执行insert语句
21.课程复习
22.makefile编写
23.执行删除和更新SQL语句
24.mysql_error函数应用
25.mysql_store_result获取结果集
26.执行selec 语句输出结果
27.执行select语句输出结果(2)
28.简单客户端实现
29.MYSQL预处理语句
30.MYSQL事务
1.mysql数据库介绍
瑞典MySQL AB公司开发,
2008年1月16日,Sun宣布已经与MySQL AB达成协议,以大约10亿美元收购MySQL AB。
2009年04月20日,甲骨文宣布,该公司将以每股9.5美元的价格收购Sun。该交易价值约为74亿美元。
MySQL是一种关联数据库管理系统 由于其体积小、速度快、总体拥有成本低,一般中小型网站的开发都选择 MySQL 作为网站数据库。
2.mysql数据库安装
- Create specification是建库的一些选项
- 创建一个名称为mydb1的数据库。
create database mydb1;
- 创建一个使用utf-8字符集的mydb2数据库。
create database mydb2 character set utf8;
- 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。会对存入的数据进行检查。
create database mydb3 character set utf8 collate utf8_general_ci;
-
-
- 查看数据库
-
显示所有数据库
show databases;
显示创建数据库的语句信息
show create database mydb2;
“ ` ”(ESC键 下面的按键),表示反引号,默认情况下,反引号括起来的字符串,区分大小写。
show create database mydb1;
注意 :mysql默认语言集是latin1,每次在创建数据库的时候应指定字符集。Oracle是在安装时,即指定了字符集。
3.mysql数据库启动和登录
-
-
- 查看数据库
-
显示所有数据库
show databases;
显示创建数据库的语句信息
show create database mydb2;
“ ` ”(ESC键 下面的按键),表示反引号,默认情况下,反引号括起来的字符串,区分大小写。
show create database mydb1;
注意 :mysql默认语言集是latin1,每次在创建数据库的时候应指定字符集。Oracle是在安装时,即指定了字符集。
-
-
- 修改数据库
-
修改mydb1的字符集为utf8(不能修改数据库名)
alter database mydb1 character set utf8;
-
-
- 删除数据库
-
删除数据库mydb3
drop database mydb3;
4.mysql数据库CURD
-
- 表的CURD
对表本身进行操作:创建,查看,修改,删除
-
-
- 创建表
-
create table t1 (id int, name varchar(20))
但此时会报错误:ERROR 1046 (3D000): No database selected。注意,在mysql中对表操作前,必须先选择所使用的数据库。
use mydb2;
查看当前选择的数据库中的表:
show tables;
查看表结构:
在Mysql中显示多行数据应该在查询语句结尾处添加 \G来替换结束标记“;”
查看创建表的语法:
show create table t1; ENGINE=InnoDB 默认指定的存储引擎 innoDB。
mysql中的数据类型:
5.mysql数据库表CURD
-
-
- 查看表
-
查看所有的表:
show tables;
查看指定表的创建语句
show create table employee;
注意,mysql表名称区分大小写, 对列名不区分大小写
显示指定表的结构:
desc employee;
-
-
- 修改表
-
更改表名: rename table employee to worker;
增加一个字段: alter table employee add column height double; (column关键字在Oracle中,添加则语法错误)
修改一个字段:alter table employee modify column height float;
删除一个字段:alter table employee drop column height;
修改表的字符集:alter table employee character set gbk;
6.mysql数据库数据CURD
-
- 表数据的CURD
- create数据
- 表数据的CURD
创建一个员工表,新建employee表并向表中添加一些记录:
create table employee(
id int,
name varchar(20),
sex int,
birthday date,
salary double,
entry_date date,
resume text
);
insert into employee values(1,'张三',1,'1983-04-27',15000,'2012-06-24','一个大牛');
insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(2,'李四',1,'1984-02-22',10000,'2012-07-24','一个中牛');
insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(3,'王五',0,'1985-08-28',7000,'2012-08-24','一个小虾');
7.mysql基础综合练习
创建一个学生表,插入数据
create table student(
id int,
name varchar(20),
chinese int,
english int,
math int
);
insert into student(id,name,chinese,english,math) values(1, '范建',80,85,90);
insert into student(id,name,chinese,english,math) values(2,'罗况',90,95,95);
insert into student(id,name,chinese,english,math) values(3,'杜子腾',80,96,96);
insert into student(id,name,chinese,english,math) values(4,'范冰',81,97,85);
insert into student(id,name,chinese,english,math) values(5,'申晶冰',85,84,90);
insert into student(id,name,chinese,english,math) values(6,'郝丽海',92,85,87);
insert into student(id,name,chinese,english,math) values(7,'郭迪辉',75,81,80);
insert into student(id,name,chinese,english,math) values(8,'拎壶冲',77,80,79);
insert into student(id,name,chinese,english,math) values(9,'任我行',95,85,85);
insert into student(id,name,chinese,english,math) values(10,'史泰香',94,85,84);
-
-
-
- 基础SQL
-
-
- 查询表中所有学生的信息。
select * from student;
- 查询表中所有学生的姓名和对应的英语成绩。
select name,english from student;
- 过滤表中重复数据。
select english from student;
select DISTINCT english from student;
select DISTINCT english,name from student;
select english+chinese+math from student;
select english+chinese+math as 总分 from student;
select name,english+chinese+math as 总分 from student;
- 在所有学生英语分数上加10分特长分。
select name,english+10 from student;
- 统计每个学生的总分。
select english+chinese+math from student;
- 使用别名表示学生分数
select name,english+chinese+math as 总分 from student;
select name,english+chinese+math 总分 from student;
- 查询姓名为何东的学生成绩
select * from student where name='何东';
- 查询英语成绩大于90分的同学
select * from student where english>90;
- 查询总分大于250分的所有同学
select * from student where english+chinese+math>250;
- 查询英语分数在 85-95之间的同学。
select * from student where english>=85 and english<=95;
select * from student where english between 85 and 95;
- 查询数学分数为84,90,91的同学。
select * from student where math=84 or math=90 or math=91;
select * from student where math in(84,90,91);
- 查询所有姓何的学生成绩。
select * from student where name like '何%';
- 查询数学分>85,语文分>90的同学。
select * from student where math>85 and chinese>90;
- 对数学成绩排序后输出。
select * from student order by math;
- 对总分排序后输出,然后再按从高到低的顺序输出
select * from student order by math+chinese+english desc;
- 对姓何的学生成绩排序输出
select * from student where name like '何%' order by math+chinese+english desc;
select name, math+chinese+english from student where name like '何%' order by math+chinese+english desc;
- 统计一个班级共有多少学生?
select count(*) from student;
- 统计数学成绩大于90的学生有多少个?
select count(*) from student where math>90;
- 统计总分大于250的人数有多少?
select count(*) from student where math+chinese+english>250;
- 统计一个班级数学总成绩?
select sum(math) from student;
- 统计一个班级语文、英语、数学各科的总成绩
select sum(math), sum(chinese), sum(english) from student;
- 统计一个班级语文、英语、数学的成绩总和
select sum(math+chinese+english)from student;
select sum(math)+sum(chinese)+sum(english) from student;
- 求一个班级数学平均分?
select avg(math) from student;
- 求一个班级总分平均分
select avg(math+chinese+english)from student;
select avg(math)+avg(chinese)+avg(english) from student;
- 求班级最高分和最低分
select max(math+chinese+english),min(math+chinese+english) from student;
8.mysql数据库总日期和时间函数
-
- 日期时间函数
MySQL里面时间分为三类:时间、日期、时间戳(含有时分秒的sysdate)。
如执行:select now(), year(now()) 年, month(now()) 月, day(now()) 日, date(now());
select CURRENT_DATE() , CURRENT_TIME(), CURRENT_TIMESTAMP() from dual;
昨天、今天、明天:
select now()-1 昨天, now() 今天, now()+1 明天 from dual;
发现与Oracle中的日期加减操作有所不同。
9.mysql中函数
10.PLSQL工具使用介绍
日期转字符串:
在MySQL中没有to_date函数,进行日期转换需使用date_format()来代替。
select date_format(now(), 'yyyy-mm-dd') from dual; 在Oracle中的‘yyyy-mm-dd’MySQL下不支持。
select date_format(now(), '%Y-%m-%d') from dual; y和Y不一样。
select date_format(now(), '%Y-%c-%d %h:%i:%s') from dual; c和m、M不一样
所以yyyy-mm-dd hh24:mi:ss格式在MySQL中对应'%Y-%c-%d %h:%i:%s'
字符串转日期:
select str_to_date('2013-6-04 05:14:15' , '%Y-%c-%d %h:%i:%s') from dual;
MySQL的格式字符串格式如下:
11.ORACLE实例别名和ORACLE客户端
12.课程复习
mysql> select abs(-1) from dual;
mysql> select bin(255) from dual;
mysql> select ceiling(5.9) from dual;
mysql> select conv(255, 10, 8) from dual;
mysql> select floor(5.8) from dual;
mysql> select format(3.1415926, 3) from dual;
mysql> select hex(255) from dual;
mysql> select least(3, 4, 5, -1 , 8, 0) from dual;
mysql> select mod(10, 3) from dual;
mysql> select rand() from dual;
13.ORACLE客户端工具安装
- 在配置页面上,输入管理员密码,比如“password”,点击“Next”
14.MYSQL多表查询
-
- 多表查询
创建多表查询案例——MySQL建表_仿照oracle建表脚本.sql 【mysql> source 绝对路径/脚本名】
Oracle中连接方法:
等值连接
不等值连接
外连接
自连接
MySQL 使用SQL99标准的连接查询(JOIN..ON..)
-
-
- 交叉连接:
-
叉集,即笛卡尔集
select e.*, d.*
from emp e cross join dept d
无连接条件
-
-
- 内连接
-
只返回满足连接条件的数据(两边都有的才显示)。 对应等值连接
select e.*, d.*
from emp e inner join dept d
on e.deptno=d.deptno
也可以省略inner关键字。
对应Oracle写法:
select e.*, d.*
from emp e , dept d
where e.deptno=d.deptno
15.MYSQL约束
*定义主键约束 primary key: 不允许为空,不允许重复
*定义主键自动增长 auto_increment
*定义唯一约束 unique
*定义非空约束 not null
*定义外键约束 constraint ordersid_FK foreign key(ordersid) references orders(id)
*删除主键:alter table tablename drop primary key ;
MySQL中约束举例:
create table myclass (
id INT(11) primary key auto_increment,
name varchar(20) unique
);
create table student (
id INT(11) primary key auto_increment,
name varchar(20) unique,
passwd varchar(15) not null,
classid INT(11),
constraint stu_classid_FK foreign key(classid) references myclass(id)
);
check约束在MySQL中语法保留,但没有效果。
16.MYSQL中文乱码问题
两层因素:
因素1: MySQL自身的设计
【实验步骤1】:
mysql> show variables like 'character%'; 查看所有应用的字符集
【实验步骤2】:
$ mysql -uroot -p123456 --default_character_set=gbk 指定字符集登录数据库
mysql> show variables like 'character%';
影响了与客户端相关联的 3处 (最外层)
在这种状态下执行use mydb2;
mysql> select * from employee;
查看输出,会出现乱码。
原来的三条数据,是以utf8的形式存储到数据库中,当使用gbk连接以后,数据库仍按照utf8的形式将数据返回,出错。
17.navicate连接和操作MYSQL
18.mysql参考手册概述
第二步: 使用root进入mysql命令行,执行如下2个命令,示例中mysql的root账号密码:123456
> mysql> mysql –u root -p 123456
>
> mysql> use mysql;
>
> mysql> update user set host = '%' where user = 'root';
>
> mysql> flush privileges;
第一句:以权限用户root登录
第二句:选择mysql库
第三句:修改host值(以通配符%的内容增加主机/IP地址),也可以直接增加IP地址
第四句:刷新MySQL的系统权限相关表
19.C连接MYSQL数据库
安装MySQL对应的安装包
2. 找到对应的头文件
>[root@deng ~]# locate mysql.h
>**/usr/include/mysql/mysql.h** <---对应的头文件
>/usr/share/doc/rsyslog-5.8.10/ommysql.html
>/usr/share/doc/rsyslog-5.8.10/rsyslog_mysql.html
3. 找到对应的库文件
>[root@deng ~]# locate libmysqlclient.a
>**/usr/lib64/mysql/libmysqlclient.a**
20.MYSQL使用CAPI执行insert语句
4. 找到对应的开发手册, 查看对应的API接口
## 03. 编程步骤
1. 通过调用mysql_init()初始化连接处理程序,得到句柄
2. 通过调用mysql_real_connect()连接到服务器。
3. 发出SQL语句并处理其结果。
4. 通过调用mysql_close(),关闭与MySQL服务器的连接。
## 04. 初始化和连接到MySQL
mysql_init函数
```C
MYSQL *mysql_init(MYSQL *mysql)
功能:
分配或初始化与mysql_real_connect()相适应的MYSQL对象。如果mysql是NULL指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。如果mysql_init()分配了新的对象,当调用mysql_close()来关闭连接时。将释放该对象。
参数:
mysql: 一般填写NULL, 会自动分配 初始化和返回对象
21.课程复习
``C
void mysql_close(MYSQL *mysql)
功能:
关闭前面打开的连接。如果句柄是由mysql_init()或mysql_connect()自动分配的,mysql_close()还将解除分配由mysql指向的连接句柄
参数:
mysql: 是mysql_init的返回值
返回值:
无
```
22.makefile编写
mysql_real_connect函数
```C
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
功能:
mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。在你能够执行需要有效MySQL连接句柄结构的任何其他API函数之前,mysql_real_connect()必须成功完成。
参数:
mysql: mysql_init返回值, 初始化好的句柄
host: 主机名或IP地址
user: 数据库用户名
passwd: 数据库对应用户名的密码
db: 数据库名称
port: 0表示使用默认的端口
unix_socket: 一般填写NULL
client_flag: 通常为0
返回值:
如果连接成功,返回MYSQL*连接句柄。如果连接失败,返回NULL。对于成功的连接,返回值与第1个参数的值相同。
```
23.执行删除和更新SQL语句
```C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#define _HOST_ "192.168.73.36"
#define _USER_ "root"
#define _PASSWD_ "123456"
#define _DB_ "scott"
//初始化 关闭
int main(void)
{
MYSQL *mysql = NULL;
//1. 初始化一个句柄
mysql = mysql_init(NULL);
if (NULL == mysql)
{
printf("mysql_init failed...\n");
return 1;
}
printf("mysql_init ok....\n");
//2. 连接mysql数据库
mysql = mysql_real_connect(mysql, _HOST_, _USER_, _PASSWD_, _DB_, 0, NULL, 0);
if (NULL == mysql)
{
printf("连接mysql数据库失败...\n");
}
else
{
printf("连接mysql数据库成功....\n");
}
//3. 关闭连接
mysql_close(mysql);
return 0;
}
```
24.mysql_error函数应用
RedHat6.5版本
>[test1@deng 4th]$ gcc 1mysql_init.c -L/usr/lib64/mysql -lmysqlclient -lm -ldl -lpthread -lrt -lstdc++
Centos7.5版本
```powershell
[deng@localhost code]$ gcc 1mysql_init.c -L/usr/lib64/mysql -lmysqlclient
```
25.mysql_store_result获取结果集
mysql_query函数
```C
int mysql_query(MYSQL *mysql, const char *query)
功能:
执行由“Null终结的字符串”查询指向的SQL查询。正常情况下,字符串必须包含1条SQL语句,而且不应为语句添加终结分号(‘;’)或“\g”。如果允许多语句执行,字符串可包含多条由分号隔开的语句
参数:
mysql: 是mysql_real_connect连接成功之后的句柄
query: 对应的SQL语句
返回值:
如果查询成功,返回0。如果出现错误,返回非0值。
26.执行selec 语句输出结果
简单的Makefile编写:
```Makefile
#获取当前目录中所有的.c文件
SRC:=$(wildcard *.c)
#去掉所有的.c后缀
BIN:=$(patsubst %.c, %, $(SRC))
#头文件的目录
INC:=/usr/lib64/mysql
#链接的库
LIB:= -lmysqlclient -lm -ldl -lpthread -lrt -lstdc++
#目标:依赖
all:$(BIN)
#将对应的.c生成对应的可执行文件
%:%.c
gcc $< -L$(INC) $(LIB) -o $@
.PHONY:clean
clean:
rm -rf *.o $(BIN)
```
27.执行select语句输出结果(2)
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#define _HOST_ "192.168.73.36"
#define _USER_ "root"
#define _PASSWD_ "123456"
#define _DB_ "scott"
#define SIZE 128
//初始化 关闭
int main(void)
{
int ret = -1;
MYSQL *mysql = NULL;
char buf[SIZE];
//1. 初始化一个句柄
mysql = mysql_init(NULL);
if (NULL == mysql)
{
printf("mysql_init failed...\n");
return 1;
}
printf("mysql_init ok....\n");
//2. 连接mysql数据库
mysql = mysql_real_connect(mysql, _HOST_, _USER_, _PASSWD_, _DB_, 0, NULL, 0);
if (NULL == mysql)
{
printf("连接mysql数据库失败...\n");
}
else
{
printf("连接mysql数据库成功....\n");
}
//3. 执行SQL语句
memset(buf, 0, SIZE);
strcpy(buf, "insert into dept values(3, '3name', '3loc')");
ret = mysql_query(mysql, buf);
if (0 != ret)
{
printf("mysql_query failed....\n");
}
else
{
printf("执行SQL语句ok....\n");
}
//4. 关闭连接
mysql_close(mysql);
return 0;
}
```
28.简单客户端实现
29.MYSQL预处理语句
现思路分析:
- 通过调用mysql_init()初始化连接处理程序,得到句柄
- 通过调用mysqlrealconnect()连接到服务器。
- 循环读取用户输入的sql语句
- 执行sql语句
- 如果是查询语句, 获取查询的结果
- 如果是非查询语句, 获取影响的行数
- 释放结果集
- 通过调用mysql_close(),关闭与MySQL服务器的连接。
12. MySQL事务
30.MYSQL事务
相关文章:
C++学习之MYSQL数据库
目录 1.mysql数据库介绍 2.mysql数据库安装 3.mysql数据库启动和登录 4.mysql数据库CURD 5.mysql数据库表CURD 6.mysql数据库数据CURD 7.mysql基础综合练习 8.mysql数据库总日期和时间函数 9.mysql中函数 10.PLSQL工具使用介绍 11.ORACLE实例别名和ORACLE客户端 12.…...
Node.js 开发的简单 Web 服务器代码
步骤 1:创建项目文件 新建名为 app.js 的文件,添加以下代码: // 1. 导入内置 http 模块 const http require(http);// 2. 创建服务器实例 const server http.createServer((req, res) > {// 设置响应头res.writeHead(200, { Content-T…...
Postgresql安装mysql_fdw并映射MySQL数据库
关于Postgresql映射Mysql数据库数据 领导:小汪啊,他们的数据库是不是能连接上了。 我:对啊,我已经读数据了。 领导:那改一下吧,直接把他们的数据映射过来,体现一下我们功能的多样性。 我&#…...
flutter 获取通话记录和通讯录
Dart SDK version is 3.7.01 dependencies:flutter:sdk: flutterpermission_handler: ^11.0.1 # 权限管理flutter_contacts: ^1.1.92call_log: ^5.0.5cupertino_icons: ^1.0.8dev_dependencies:flutter_test:sdk: flutterflutter_lints: ^5.0.0 2 contact_and_calls_page.da…...
AICon 2024年全球人工智能与大模型开发与应用大会(脱敏)PPT汇总(36份).zip
AICon 2024年全球人工智能与大模型开发与应用大会(脱敏)PPT汇总(36份).zip 1、面向开放域的大模型智能体.pdf 2、企业一站式 AI 智能体构建平台演进实践.pdf 3、PPIO 模型平台出海实战,跨地域业务扩展中的技术优化之道…...
swift菜鸟教程6-10(运算符,条件,循环,字符串,字符)
一个朴实无华的目录 今日学习内容:1.Swift 运算符算术运算符比较运算符逻辑运算符位运算符赋值运算区间运算符其他运算符 2.Swift 条件语句3.Swift 循环4.Swift 字符串字符串属性 isEmpty字符串常量let 变量var字符串中插入值字符串连接字符串长度 String.count使用…...
【14】RUST高级特性
文章目录 不安全操作裸指针应用 不安全函数or方法extern调用外部函数调用C语言函数创建供C调用的接口 全局变量(静态变量)不安全的trait访问联合体中的字段 不安全操作 裸指针 需要程序员保证有效性 从引用创建 let mut num 5; let r1 &num as …...
Linux 系统中 `echo`、`cat`、`tail`、`grep` 四个常用命令介绍
以下是 Linux 系统中 echo、cat、tail、grep 四个常用命令的详细介绍,涵盖其功能、常用选项及实际示例: 1. echo - 输出文本 作用:将文本或变量的值输出到终端或文件。常用于脚本中的信息提示或日志记录。 常用选项: 选项说明-…...
Python 根据多个下标向列表中插入对应的值的巧妙方法:逆序插入
例如根据多个下标(比如2, 5, 8)向列表中插入对应的值,即: 在位置2插入一个值A,在位置5插入一个值B,在位置8插入一个值C, 而且每次插入都会改变列表长度,所以后续位置也会发生偏移。…...
“实时滚动”插件:一个简单的基于vue.js的无缝滚动
1、参考连接: 安装 | vue-seamless-scroll 2、使用步骤: 第一步:安装 yarn add vue-seamless-scroll 第二步:引入 import vueSeamlessScroll from vue-seamless-scroll/src 第三步:注册 components: { vueSeamless…...
【Vue3 + Element-Plus】TreeTransfer树形穿梭框组件
基于 Element Plus 实现高效树形穿梭框组件 组件概述 本组件实现了一个基于 Element Plus 的双树形结构穿梭框,支持以下核心功能: 树形结构数据展示节点多选与批量转移展开状态记忆双向数据同步节点禁用与过滤全选/全不选功能(待完善&#…...
014_多线程
多线程 多线程创建线程方式一:继承Thread类方式二:实现Runable接口方式三:实现Callbale接口 Thread的常用方法线程安全线程同步方式一:同步代码块同步方法方式三:Lock锁 线性池创建线程池处理Runnable任务处理Callable…...
vue自定义颜色选择器
vue自定义颜色选择器 效果图: step0: 默认写法 调用系统自带的颜色选择器 <input type"color">step1:C:\Users\wangrusheng\PycharmProjects\untitled18\src\views\Home.vue <template><div class"container"><!-- 颜…...
(十五)安卓开发中不同类型的view之间继承关系详解
在安卓开发中,View 是所有 UI 组件的基类,不同类别的 View 通过继承关系扩展和特化功能,以满足多样化的界面需求。以下将详细讲解常见 View 类别的继承关系,并结合代码示例和使用场景进行说明。 1. View 继承关系: java.lang.Obj…...
Linux 入门七:从基础到进阶的文件操作
一、Linux 文件系统基础:一切皆文件的哲学 在 Linux 的世界里,“一切皆文件” 是核心设计哲学。无论是普通文件、目录、设备(如硬盘、串口),还是网络套接字,都被抽象为文件模型,通过统一的接口…...
DeepSeek的神经元革命:穿透搜索引擎算法的下一代内容基建
DeepSeek的神经元革命:穿透搜索引擎算法的下一代内容基建 ——从语义网络到价值共识的范式重构 一、搜索引擎的“内容饥渴症”与AI的基建使命 2024年Q1数据显示,百度索引网页总数突破3500亿,但用户点击集中在0.78%的高价值页面。这种“数据…...
【时时三省】(C语言基础)用switch语句实现多分支选择结构 例题
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 例题: 用switch语句处理菜单命令。在许多应用程序中,用菜单对流程进行控制,例如从键盘输入一个 A 或 a 字符,就会执行A操作,输入一…...
CMake macro
CMake中的macro主要用于在调用处直接展开代码,类似于文本替换,其作用类似于C语言的#define宏,但具备更复杂的结构。以下是详细分析: 1. macro的作用 代码展开:调用宏时,其内容会原地展开,如同…...
高防服务器防御DDoS全解析——从架构设计到实战对抗
本文系统阐述高防服务器对抗DDoS攻击的技术原理与实施路径,深度剖析BGP线路、流量清洗、协议栈优化等关键技术,结合2024年最新攻击案例与Gartner防御框架,提供企业级防御体系构建指南,涵盖硬件选型、策略配置、合规审计等全生命周…...
高防IP如何构筑DDoS防线?_解析抗攻击核心技术体系
本文深度解析高防IP防御DDoS攻击的技术实现路径,涵盖流量清洗机制、智能调度策略、混合防护架构三大核心技术体系。通过2023年某金融平台800Gbps混合攻击实战案例,结合Gartner最新防护成熟度模型,给出高防IP部署的六步实施框架与成本优化方案…...
RDD行动算子和累加器
RDD行动算子: 是能触发真正计算数据的算子 reduce:聚集RDD元素 collect:返回数据集所有元素 foreach:分布式遍历元素 count:返回元素个数: first:返回首个元素 take:返回前n个元素 takeOrdered:返回排序后的前n个元素 aggregate:分区和分区间数据聚合 fol…...
【计算机网络】同步操作 vs 异步操作:核心区别与实战场景解析
📌 引言 在网络通信和分布式系统中,**同步(Synchronous)和异步(Asynchronous)**是两种基础却易混淆的操作模式。本文将通过代码示例、生活类比和对比表格,帮你彻底理解它们的区别与应用场景。 1…...
iframe学习与应用场景指南
一、iframe核心原理与学习路径 1. 嵌套网站的本质原理 技术特性: • 浏览器为每个iframe创建独立的window对象和DOM环境 • 资源独立加载:子页面拥有自己的CSS/JS/Cookie作用域 • 跨域限制:同源策略下无法直接访问DOM(需CORS或…...
基于SSM的线上花店鲜花销售商城网站系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
【大模型理论篇】Search-R1: 通过强化学习训练LLM推理与利⽤搜索引擎
最近基于强化学习框架来实现大模型在推理和检索能力增强的项目很多,也是Deep Research技术持续演进的缩影。之前我们讨论过《R1-Searcher:通过强化学习激励llm的搜索能⼒》,今天我们分析下Search-R1【1】。 1. 研究背景与问题 ⼤模型(LLM&a…...
错误码code:9568282 error: install releaseType target not same怎么处理?
目录 1.背景 2.解决方案 1.背景 当前是由于应用从4.1版本升级到5.0版本,然后安装应用会报错9568282 ,如果签名是一致的&#...
qt联动其他库实现一个客户端(本章主要是概述如何实现)
一.服务器功能 1.能连接多个客户端通信 2.负责统计与手机客户端的数据 3.遇到客户端请求数据时能检索数据库并发送对应数据 4.服务器需要能连接到公网 5.服务器需要有账号密码登录功能 6.服务器要有日志与管理员系统能统计信息 二.客户端 1.客户端需要有登录界面 2.客户端需要…...
爱普生FC1610AN5G手机中替代传统晶振的理想之选
在 5G 技术引领的通信新时代,手机性能面临前所未有的挑战与机遇。从高速数据传输到多任务高效处理,从长时间续航到紧凑轻薄设计,每一项提升都离不开内部精密组件的协同优化。晶振,作为为手机各系统提供稳定时钟信号的关键元件&…...
SpringMVC基础二(RestFul、接收数据、视图跳转)
ReauestMapping ReauestMapping注解用于映射url到控制器类或一个特定的处理程序方法。可用于类或方法上,用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 创建一个新项目:设置为web项目 编写web.xml(此配置也几…...
BERT - 段嵌入(Segment Embedding)
1. 段嵌入(Segment Embedding)的作用 在BERT模型中,段嵌入的主要作用是区分不同的句子。具体来说: 单句任务:所有位置的段嵌入都是0。 句子对任务:第一个句子的所有位置使用段嵌入0,第二个句子…...
Kaggle-Disaster Tweets-(二分类+NLP+模型融合)
Disaster Tweets 题意: 就是给出一个dataframe包含text这一列代表着文本,文本会有一些词,问对于每条记录中的text是真关于灾难的还是假关于灾难的。 比如我们说今天作业真多,这真是一场灾难。实际上这个灾难只是我们调侃而言的。…...
关于哈希冲突的讨论
文章目录 1. 什么是哈希冲突?2. 为什么会产生哈希冲突?3. 如何解决哈希冲突?4. 为什么哈希算法一定会产生冲突?5. 存在不发生冲突的哈希算法吗?6. 为什么不用无冲突的哈希算法(如完美哈希)&…...
傅利叶发布首款开源人形机器人N1:开发者可实现完整复刻
2025年4月11日,上海——通用机器人公司傅利叶正式发布首款开源人形机器人 Fourier N1,并同步开放涵盖物料清单、设计图纸、装配指南、基础操作软件在内的完整本体资源包。作为傅利叶 “Nexus 开源生态矩阵” 的首个落地项目(“N1” 即 “Nexu…...
2020年INS SCI1区TOP:平衡复合运动优化算法BCMO,深度解析+性能实测
目录 1.摘要2.算法原理3.结果展示4.参考文献5.代码获取 1.摘要 元启发式算法因其强大的鲁棒性和简便的编程方式,在优化领域中发挥着重要作用。本文提出了一种基于平衡复合运动优化算法BCMO,其核心思想是在解空间中平衡个体的复合运动特性。通过概率选择…...
2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(3卷)任务书
2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(3卷)任务书 背景描述:模块A:大数据平台搭建(容器环境)(15分)任务一:Hadoop HA安装部署任务二&#x…...
Express中间件(Middleware)详解:从零开始掌握(4)
下面我将为你提供四个实战项目的完整实现代码,每个项目都展示了Express中间件的实际应用场景。 1. API网关实现 const express require(express); const rateLimit require(express-rate-limit); const helmet require(helmet); const morgan require(morgan)…...
Ubuntu22环境下,Docker部署阿里FunASR的gpu版本
番外: 随着deepseek的爆火,人工智能相关的开发变得异常火爆,相关的大模型开发很常见的agent智能体需要ASR语音识别的功能,阿里开源的FunASR几乎是把一个商业的项目放给我们使用了。那么我们项目中的生产环境怎么部署gpu版本的语音识别服务呢?经过跟deepseek的一上午的极限…...
vue springboot 案例 收集
vue springboot 案例 收集 SpringbootVue前后端分离项目-管理系统 https://blog.csdn.net/m0_56308072/article/details/130893828...
Windows环境下本地部署deepseek-r1或其他大模型 【保姆级教程】
目录 背景准备工作开始部署下载olloma安装olloma下载deepseek-r1模型使用如何使用 结束语 背景 最近deepseek本地部署的概念越来越火,勾起了我学习的兴趣。 我就在思考如何使用家用机或者平时打游戏的机器来本地部署deepseek,给自己开发个智能体来辅佐…...
ubuntu20.04系统安装apollo10.0系统
文章目录 前言一、安装基础软件1、更新相关软件2 安装 Docker Engine 二、获取 GPU 支持1、安装显卡驱动2、安装 Nvidia container toolkit 三、安装 Apollo 环境管理工具1、安装依赖软件2、在宿主机添加 Apollo 软件源的 gpg key,并设置好源和更新3、安装aem 四、安…...
图片文本识别OCR+DeepSeekapi实现提取图片关键信息
用到的技术: 通过腾讯OCR文字识别,deepseek的api实现 目录 需求分析: 文字识别(OCR)具体实现步骤 起步工作 代码编写 deepseek整合消息,返回文本关键信息 起步工作 编写工具类 具体调用实现 具体…...
minio改成https+域名访问
思路有两个: 方式一:通过nginx反向代理,将https配置在nginx,内部的MinIO还是使用HTTP;方式二:MinIO服务端直接配置成HTTPS; 注意: 私钥需要命名为:private.key 公钥需要…...
unity与usb串口通信(web版)
一、本文介绍在web环境下unity与usb串口进行通信的代码 本篇使用本地服务器作为unity与串口的中介,unity发送数据到服务器,服务器发送给串口收到响应并解析返回给uinty。 使用websocket协议。 注: 1.我的硬件是检测磁阻液位,用…...
UE5每次都打开上一次的工程文件 , 如何取消?
点击左上角 - 文件 点击 打开项目 取消勾选 - 启动时固定加载上次打开的项目...
AI大模型与人类未来的协作图景:从工具到“数字共生体”
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:技术跃迁与文明重塑的十字路口 2020年代以来,人工智能特别是**AI大语言模型(Large Language Models, LLMs)**的迅猛发展,正在从根本上改变人类与技术的关系。从最初的“智能写作助手”到今日…...
C++ I/O 性能优化指南
在高性能计算和大规模数据处理中,I/O 性能优化是提升系统整体效率的关键环节。C 作为一种高性能编程语言,提供了丰富的工具和机制来优化 I/O 操作。本文将详细介绍在 Linux 环境下,如何通过代码层面的优化、系统调用的选择以及多线程技术等手…...
Idea忽略已提交文件
全局忽略 项目根目录下新增.gitignore文件,写入想要忽略的信息,以下可参考 **/src/main/resources/application-local.yamltarget/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/### IntelliJ IDEA ### .idea/mod…...
Mamba原理及在low-level vision的工作[持续更新]
文章目录 Mamba原理选择性扫描(Selective Retain Information):选择有关/无关信息状态空间模型(SSM)Mamba的选择性保留信息Mamba的扫描操作(The Scan Operation) 硬件感知(Hardware-…...
openlayers入门02 -- 地图控件
地图控件 1.视图跳转控件(ZoomToExtent) 视图跳转控件用于将地图快速跳转到指定的范围。示例: // 视图跳转控件(extent这里用的是学校的经纬度范围,可以按照需要修改) const ZoomToExtent new ol.contro…...
Python 装饰器(Decorator)
文章目录 代码解析1. 装饰器定义 timer(func)2. 应用装饰器 timer **执行流程****关键点****实际应用场景****改进版本(带 functools.wraps)** 这是一个 Python 装饰器(Decorator) 的示例,用于测量函数的执行时间。下…...