当前位置: 首页 > news >正文

四、MySQL

MySQL

  • MySQL
    • 1.初识网站
    • 2.安装MySQL
      • 2.1 下载(最重要的一点是路径中不能有中文,哪怕是同级目录也不行)
      • 2.2安装补丁
      • 2.3安装
      • 2.4创建配置文件
      • 2.5初始化
    • 3.启动MySQL
    • 4.连接测试
      • 4.1 设置密码
      • 4.2 查看已有的文件夹(数据库)
      • 4.3 退出(关闭连接)
      • 4.4 再连接MySQL
    • 5.忘记密码
    • 小结
    • 6.MySQL指令
      • 6.1数据库管理文件(文件夹)
      • 6.2数据表的管理(文件)
      • 6.3 数据行操作
        • 1.新增数据
        • 2.删除数据
        • 3.修改数据
        • 4.查询数据
      • 小结
    • 7.案例:员工管理
      • 7.1创建表结构
      • 7.2python操作MySQL
        • 1.创建数据库
        • 2.查询数据
        • 3.删除数据
        • 4.修改数据
    • 8.案例:Flask+MySQL
      • 8.1新增用户
      • 8.2查询所有用户

MySQL

  • python相关:基础、函数、数据类型、面向、模块。

  • 前端开发:HTML、CSS、JavaScript、jQuery。【静态页面】

    Java+前端;python+前端;Go+前端  -> 【动态页面】
    

直观:

  • 静态,写死了,页面永远长一个样子。
  • 动态页面,页面上的数据可以实时的修改和展示。

1.初识网站

  • 默认编写的静态效果

  • 动态:需要用到Web框架的功能。
    在这里插入图片描述

对于目前的我们来看,都什么可以做数据的存储:

  • txt文件

  • excel文件

  • 专业的软件:数据库管理系统。

    MySQL(*)免费
    Oracle/SQLServer/DB2/Access...
    

在这里插入图片描述

今日概要:

  • MySQL安装 & 配置
  • MySQL的启动和关闭
  • 指令(*)
  • Python第三方模块,发送指令并获取MySQL返回的结果。

2.安装MySQL

MySQL,本质上就是一个软件。

  • 8.x
  • 5.x,课堂上5.7.31版本
  • windows补丁
  • MySQL压缩包

2.1 下载(最重要的一点是路径中不能有中文,哪怕是同级目录也不行)

参考一下博主这个就可以安装好:https://blog.csdn.net/i_for/article/details/131133383?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171025622116800185830297%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=171025622116800185830297&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-131133383-null-null.142v99pc_search_result_base2&utm_term=mysql8.0.26%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187

https://downloads.mysql.com/archives/community/

在这里插入图片描述

2.2安装补丁

2.3安装

2.4创建配置文件

2.5初始化

3.启动MySQL

启动MySQL一般有两种方式:

  • 临时启动(不建议)

    在这里插入图片描述

  • 制作成Windows服务,服务来进行关闭和开启。

    • 制作服务

      将目录添加到系统环境变量后,之后在cmd后,直接输入mysql -u root -p
      

4.连接测试

4.1 设置密码

set password = password('root123');

4.2 查看已有的文件夹(数据库)

show databases;

在这里插入图片描述

4.3 退出(关闭连接)

exit;

4.4 再连接MySQL

汇总命令:

C:\Users\Administrator>mysql -u root -p
mysql> set password = password('root123');
mysql> show databases;
mysql> exit;
C:\Users\Administrator>mysql -u root -p
输入密码
mysql>exit;

5.忘记密码

默认情况下,启动MySQL时,需要用户输入账户名、密码。修改MySQL配置,重新启动MySQL(无账号模式)mysql -u root -p重新设置密码退出再重新修改MySQL配置文件,重新启动MySQL(需要账号的模式)mysql -u root -p新密码
  • 停止现在MySQL服务

小结

至此,MySQL的环境搭建相关的事全部搞定了。

  • 安装
  • 配置
  • 启动
  • 连接(密码、忘记密码)

以后我们再操作MySQL时:

  • 关闭和开启MySQL服务

  • 用MySQL自动工具连接MySQL并发送指令

    mysql -u root -p
    

6.MySQL指令

MySQL认知(类似于)
数据库文件夹
数据表文件(Excel文件)

6.1数据库管理文件(文件夹)

  • 查看已有的数据库(文件夹)

    show databases;
    
  • 创建数据库(文件夹)

    create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    
    create database gx_day14 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    
  • 删除数据库(文件夹)

    drop database gx_day14;
    
  • 进入数据库(进入文件夹)

    use gx_day14;
    
  • 查看文件夹下所有的数据表(文件)

    show tables;
    
  • mysql清屏命令

    system cls;
    

6.2数据表的管理(文件)

  • 进入数据库(进入文件夹)

    use 数据库;
    
  • 查看当前数据库下所有表(文件)

    show tables;
    
  • 创建表(文件)

    create table 表名称(列名称 类型,列名称 类型,列名称 类型
    ) default charset=utf8;
    

    在这里插入图片描述

    create table tb1(id int,name varchar(16),  age int) default charset=utf8;
    
    create table tb2(id int,name varchar(16)age int
    ) default charset=utf8;
    
    create table tb2(id int,name varchar(16) not null,    -- 不允许为空age int null				  -- 允许为空(默认)
    ) default charset=utf8;
    
    create table tb1(id int primary key,				  -- 主键(不允许为空,不允许重复)name varchar(16),    age int default 3				  -- 插入数据时,age列的值默认3
    ) default charset=utf8;
    

    主键一般用于表示当前行的数据的编号(类似于人的身份证)。

    create table tb1(id int auto_increment primary key,				  -- 内部维护,自增name varchar(16),    age int				  
    ) default charset=utf8;
    

    一般情况下,我们在创建表时都会这样来写:【标准】

    create table tb1(id int not null auto_increment primary key,name varchar(16),    age int				  
    ) default charset=utf8;
    

    描述tb1表

    mysql> desc tb1;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int         | NO   | PRI | NULL    | auto_increment |
    | name  | varchar(16) | YES  |     | NULL    |                |
    | age   | int         | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    3 rows in set (0.00 sec)
    
  • 删除表

    drop table 表名称;
    

常见数据类型:

  • tinyint

    有符号,取值范围:-128~127 (有正有负)【默认】
    无符号,取值范围:0~255(只有正)
    
    create table tb1(id int not null auto_increment primary key,name varchar(16),    age tinyint			-- 有符号,取值范围:-128~127	  
    ) default charset=utf8;
    
    create table tb1(id int not null auto_increment primary key,name varchar(16),    age tinyint unsigned	-- 无符号,取值范围:0~255			  
    ) default charset=utf8;
    
  • int

    int 						表示有符号,取值范围:-2147483648 ~ 2147483647
    int unsigned				表示无符号,取值范围:0 ~ 4294967295
    
  • bigint

    有符号,取值范围:-9223372036854775808 ~ 9223372036854775807
    无符号,取值范围:0 ~ 18446744073709551615
    

    练习题:

    # 创建表
    create table tb2(id bigint not null auto_increment primary key,    salary int,age tinyint				  
    ) default charset=utf8;# 插入数据
    insert into tb2(salary,age) values(10000,18);
    insert into tb2(salary,age) values(20000,28);
    insert into tb2(salary,age) values(30000,38),(40000,48);# 查看表中的数据
    select * from tb2;
    
    mysql> show tables;
    +--------------------+
    | Tables_in_gx_day14 |
    +--------------------+
    | tb1                |
    +--------------------+
    1 row in set (0.00 sec)mysql> desc tb1;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int         | NO   | PRI | NULL    | auto_increment |
    | name  | varchar(16) | YES  |     | NULL    |                |
    | age   | int         | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    3 rows in set (0.00 sec)mysql> create table tb2(->  id bigint not null auto_increment primary key,->  salary int,->  age tinyint-> ) default charset=utf8;
    Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> show tables;
    +--------------------+
    | Tables_in_gx_day14 |
    +--------------------+
    | tb1                |
    | tb2                |
    +--------------------+
    2 rows in set (0.00 sec)mysql> insert into tb2(salary,age) values(10000,18);
    Query OK, 1 row affected (0.01 sec)mysql> insert into tb2(salary,age) values(20000,28);
    Query OK, 1 row affected (0.00 sec)mysql> insert into tb2(salary,age) values(30000,38),(40000,48);
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 0mysql> select * from tb2;
    +----+--------+------+
    | id | salary | age  |
    +----+--------+------+
    |  1 |  10000 |   18 |
    |  2 |  20000 |   28 |
    |  3 |  30000 |   38 |
    |  4 |  40000 |   48 |
    +----+--------+------+
    4 rows in set (0.00 sec)
    
  • float

  • double

  • decimal

    准确的小数值,m是数字总个数(负号不算),d是小数点后个数。m最大值为65,d最大值为30。例如:
    create table tb3(id int not null primary key auto_increment,    salary decimal(8,2)			  
    ) default charset=utf8;insert into tb3(salary) values(1.28);
    insert into tb3(salary) values(5.289);
    insert into tb3(salary) values(5.282);
    insert into tb3(salary) values(122115.11);
    insert into tb3(salary) values(12211511.11);select * from tb3;
    
  • char(m),速度快

    定长字符串,m代表字符串的长度,最多可容纳255个字符。char(11),固定用11个字符串进行存储,哪怕真是没有11个字符,也会按照11存储。create table tb4(id int not null primary key auto_increment,    mobile char(11)			  
    ) default charset=utf8;insert into tb4(mobile) values("151");
    insert into tb4(mobile) values("1513125555");
    
  • varchar(m),节省空间

    变长字符串,m代表字符的长度。      最大65535字节/3 = 最大的mvarchar(11),真实数据有多少长就按照多长存储。create table tb5(id int not null primary key auto_increment,    mobile char(11)			  
    ) default charset=utf8;insert into tb5(mobile) values("151");
    insert into tb5(mobile) values("1513125555");
    
  • text

    text数据类型用于保存变长的大字符串,可以组多到655352**16 - 1)个字符串。一般情况下,长文本会用text类型。例如:文章、新闻等。create table tb6(id int not null primary key auto_increment,    title varchar(128),contect text
    ) default charset=utf8;
    
  • mediumtext

    A TEXT column with a maximum length of 16777215(2**24 - 1) characters.
    
  • longtext

    A TEXT column with a maximum length of 4294967295 or 4GB (2*32 - 1)
    
  • datetime

    YYYY-MM-DD HH:MM:SS (1000-01-01 00:00:00/999-12-31 23:59:59)
    
  • date

    YYYY-MM-DD (1000-01-01 00:00:00/999-12-31)
    

练习题:用户表

create table tb7(id int not null primary key auto_increment,    name varchar(64) not null,password char(64) not null,email varchar(64) not null,age tinyint,salary decimal(10,2),ctime datetime
) default charset=utf8;insert into tb7 (name,password,email,age,salary,ctime) values("吴佩琦", "123", "xx@live.com",19,1000.20,"2011-11-11 11:11:10");insert into tb7 (name,password,email,age,salary,ctime) values("张典谟", "123", "xx@live.com",19,1000.20,"2011-11-11 11:11:10");insert into tb7 (name,password,email,age,salary,ctime) values("庞晓青", "123", "xx@live.com",19,1000.20,"2011-11-11 11:11:10");insert into tb7 (name,password,email,age,salary,ctime) values("谢涛", "123", "xx@live.com",19,1000.20,"2011-11-11 11:11:10");insert into tb7 (name,password,email,age,salary,ctime) values("谢鹏", "123", "xx@live.com",19,1000.20,"2011-11-11 11:11:10");select * from tb7;+----+-----------+----------+-------------+------+---------+---------------------+
| id | name      | password | email       | age  | salary  | ctime               |
+----+-----------+----------+-------------+------+---------+---------------------+
|  1 | 吴佩琦    | 123      | xx@live.com |   19 | 1000.20 | 2011-11-11 11:11:10 |
+----+-----------+----------+-------------+------+---------+---------------------+
1 row in set (0.00 sec)

MySQL还有很多其他的数据类型,例如:set、enum、TinyBlob、Blob、MediumBlob、LongBlob等,详细见官方文档。

我们平时开发系统时,一般情况下:

  • 创建数据库
  • 创建表结构

都是需要提前通过上述命令创建。

6.3 数据行操作

1.新增数据
insert into 表名(列名,列名) values(值,值);
insert into 表名(列名,列名) values(值,值),(值,值),(值,值),(值,值),(值,值);
2.删除数据
delete from 表名;
delete from 表名 where 条件;
delete from tb7;
delete from tb7 where id = 3;
delete from tb7 where id = 5 and name = "谢涛";
delete from tb7 where id = 5 or name = "谢涛";
delete from tb7 where id > 4;
delete from tb7 where id >= 4;
delete from tb7 where id != 4;
delete from tb7 where id in (1,5);
3.修改数据
update 表名 set=;
update 表名 set=,=;
update 表名 set=where 条件;
update tb7 set password="哈哈哈";
update tb7 set email="哈哈哈" where id > 5;
update tb7 set age=age+10 where id > 5;
4.查询数据
select * from 表名称;
select 列名称,列名称 from 表名称;
select 列名称,列名称 from 表名称 where 条件;
select * from tb7;
select id,name from tb7;
select id,name from tb7 where id > 10;
select id,name from tb7 where name="xx" and password="xx";

小结

我们平时开发系统时,一般情况下:

  • 创建数据库
  • 创建表结构

都是需要提前通过工具+命令创建。

但是,表中的数据一般情况下都是通过程序来实现增删改查。

7.案例:员工管理

  • 使用MySQL内置工具(命令)

    • 创建数据库:unicom

    • 数据一张表:admin

      表名:admin
      列:id 			整型,自增,主键。username 	字符串 不为空password	字符串 不为空mobile		字符串 不为空
      
  • python代码实现:

    • 添加用户
    • 删除用户
    • 查看用户
    • 更新用户信息

在这里插入图片描述

7.1创建表结构

create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use unicom;
create table admin(id int not null auto_increment primary key,username varchar(16) not null, password varchar(64) not null,mobile char(11) not null				  
) default charset=utf8;

7.2python操作MySQL

用python代码连接MySQL并发送指令。

1.创建数据库
import pymysql# 1.连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xx', db='unicom', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令
cursor.execute("insert into admin(username,password,mobile) values('wupeiqi','qwe123456','151555555')")
conn.commit()# 3.关闭
cursor.close()
conn.close()
import pymysql# 1.连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xx', db='unicom', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
# sql = "insert into admin(username,password,mobile) values(%s, %s, %s)"
# cursor.execute(sql, ["汉朝", "qwe123", "19999999"])sql = "insert into admin(username,password,mobile) values(%(n1)s, %(n2)s, %(n3)s)"
cursor.execute(sql, {"n1": "济宁", "n2": "qwe123", "n3": "19999999"})conn.commit()# 3.关闭
cursor.close()
conn.close()
2.查询数据
import pymysql# 1.连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xx', db='unicom', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令( **** 千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入 ***)
cursor.execute("select * from admin where id >%s", [2, ])# 获取符合条件的所有数据, 得到的是 [字典,字典]       空列表
data_list = cursor.fetchall()
for row in data_list:print(row)# 3.关闭
cursor.close()
conn.close()
import pymysql# 1.连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xx', db='unicom', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令( **** 千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入 ***)
cursor.execute("select * from admin where id >%s", [2, ])# 获取符合条件的第一条数据,字典     None
data_list = cursor.fetchone()
print(data_list)  # {'id': 3, 'username': '济宁', 'password': 'qwe123', 'mobile': '19999999'}# 3.关闭
cursor.close()
conn.close()
3.删除数据
import pymysql# 1.连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xxx', db='unicom', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令( **** 千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入 ***)
cursor.execute("delete from admin where id=%s", [3,])
conn.commit()# 3.关闭
cursor.close()
conn.close()
4.修改数据
import pymysql# 1.连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xxx', db='unicom', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令( **** 千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入 ***)
cursor.execute("update admin set mobile=%s where id=%s", ["1888888", 4, ])
conn.commit()# 3.关闭
cursor.close()
conn.close()

强调:

  • 在进行新增、删除、修改时,一定要记得commit,不然数据库没有数据。

    cursor.execute("..")
    conn.commit()
    
  • 在查询时,不需要commit,执行fetchall/fetchone

    cursor.execute("..")# 第一条数据,字典,无数据时是None
    v1 = cursor.fetchone()# 所有数据,列表套字典,无数据时事空列表
    v1 = cursor.fetchall()
    
  • 对于SQL语句不要用python的字符串格式化进行拼接(会被SQL注入),一定要用execute+参数

    cursor.execute(".%s.....%s", ["xx","xx"])
    

8.案例:Flask+MySQL

8.1新增用户

补充代码实现

在这里插入图片描述
在这里插入图片描述

8.2查询所有用户

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

四、MySQL

MySQL MySQL1.初识网站2.安装MySQL2.1 下载(最重要的一点是路径中不能有中文,哪怕是同级目录也不行)2.2安装补丁2.3安装2.4创建配置文件2.5初始化 3.启动MySQL4.连接测试4.1 设置密码4.2 查看已有的文件夹(数据库)4.3 …...

C#使用泛型自定义的方法设计队列CQueue<T>类

目录 一、涉及到的知识点 1.C#中的队列类 2.自定义队列的方法 &#xff08;1&#xff09;先设计一个CList<T>类 &#xff08;2&#xff09;再设计CQueue<T>类 二、自定义队列CQueue<T>类的实例 一、涉及到的知识点 1.C#中的队列类 在C#中实现队列类&a…...

IDEA自定义Maven仓库

Maven 是一款广泛应用于 Java 开发的工具&#xff0c;其作用类似于一个全自动的 JAR 包管理器&#xff0c;能够方便地导入开发所需的相关 JAR 包。在使用 Maven 进行 Java 程序开发时&#xff0c;开发者能够极大地提高开发效率。以下是关于如何安装 Maven 以及在 IDEA 中配置自…...

Codeql复现CVE-2018-11776学习笔记

基本使用 1、首先下载struts2漏洞版本源码&#xff1a; https://codeload.github.com/apache/struts/zip/refs/tags/STRUTS_2_3_20 2、构建codeql数据库&#xff08;构建失败文末有解决办法&#xff09;&#xff1a; codeql database create ~/CodeQL/databases/struts2-2.3.…...

CVE-2024-27199 JetBrains TeamCity 身份验证绕过漏洞2

漏洞简介 TeamCity Web 服务器中发现了第二个身份验证绕过漏洞。这种身份验证旁路允许在没有身份验证的情况下访问有限数量的经过身份验证的端点。未经身份验证的攻击者可以利用此漏洞修改服务器上有限数量的系统设置&#xff0c;并泄露服务器上有限数量的敏感信息。 项目官网…...

ms office学习记录12:Excel学习记录㈥

数据工具 分列的其他运用&#xff1a;身份证号中“出生日期”切片&#xff1a;分列→固定宽度→下一步→切割出三列→下一步→不导入第一列→导入第二列且转换成日期→不导入第三列→完成 删除重复值&#xff1a;定位到要“数据”选项卡→删除重复项→取消全选再勾选要删除的…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的条形码二维码检测系统(深度学习+UI界面+训练数据集+Python代码)

摘要&#xff1a;在物流和制造业中&#xff0c;开发一套高效的条形码与二维码识别系统显得尤为关键。本博文深入探讨了如何利用深度学习技术打造出一套先进的条形码及二维码检测系统&#xff0c;并且提供了一套完整的实施方案。该系统搭载了性能卓越的YOLOv8算法&#xff0c;并…...

npm yarn 一起使用报错

项目记录&#xff0c;具有独特性&#xff0c;仅供参考 项目好好的运行&#xff0c;前一天装个测试工具包&#xff0c; 突然就不行了&#xff0c;卸载重装也不行&#xff0c;所有的项目都安装失败&#xff0c;新起一个项目也不行&#xff0c;有时候某个单独安装一个包可以&…...

基于springboot实现驾校信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现驾校信息管理系统演示 摘要 随着人们生活水平的不断提高&#xff0c;出行方式多样化&#xff0c;也以私家车为主&#xff0c;那么既然私家车的需求不断增长&#xff0c;那么基于驾校的考核管理也就不断增强&#xff0c;那么业务系统也就慢慢的随之加大。信息…...

DXP软件界面显示“No Hard Devices”【简单的操作问题】加【软件下载】

目录 一&#xff0c;DXP软件界面显示“No Hard Devices” 二&#xff0c;软件下载的百度网盘资源 一&#xff0c;DXP软件界面显示“No Hard Devices” Protel DXP是2004是澳大利亚Altium公司于2002年推出的一款电子设计自动化软件。它的主要功能包括&#xff1a;原理图编辑、印…...

通过Spring Boot 实现页面配置生成动态接口?

流程介绍 在Spring Boot中实现页面配置生成动态接口通常涉及几个关键步骤: 设计页面配置:首先,你需要设计一个用户界面(UI),允许用户通过此界面来配置接口的各种参数,例如HTTP方法(GET、POST等)、URL路径、请求参数、响应数据格式等。保存配置信息:当用户通过页面配置…...

【数据结构与算法】:插入排序与希尔排序

&#x1f525;个人主页&#xff1a; Quitecoder &#x1f525;专栏: 数据结构与算法 欢迎大家来到初阶数据结构的最后一小节&#xff1a;排序 目录 1.排序的基本概念与分类1.1什么是排序的稳定性&#xff1f;1.2内排序与外排序内排序外排序 2.插入排序2.1实现插入排序2.3稳定性…...

前端性能优化——javascript

优化处理&#xff1a; 讲javascript脚本文件放到body标记的后面 减少页面当中所包含的script标记的数量 课堂练习&#xff1a; 脚本优化处理 使用原生JavaScript完成操作过程。 document.querySelector document.querySelectorAll classList以及类的操作API Element.class…...

Docker容器化技术(使用Docker搭建论坛)

第一步&#xff1a;删除容器镜像文件 [rootlocalhost ~]# docker rm -f docker ps -aq b09ee6438986 e0fe8ebf3ba1第二步&#xff1a;使用docker拉取数据库 [rootlocalhost ~]# docker run -d --name db mysql:5.7 02a4e5bfffdc81cb6403985fe4cd6acb0c5fab0b19edf9f5b8274783…...

C# ListView 控件使用

1.基本设置 listView1.Columns.Add("序号", 60); //向 listView1控件中添加1列 同时设置列名称和宽度listView1.Columns.Add("温度", 100); //下同listView1.Columns.Add("偏移", 100);listView1.Columns.Add("分割", 50);listView1…...

【string一些函数用法的补充】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 string类对象的修改操作 我们来看 c_str 返回c格式的字符串的操作&#xff1a; 我们来看 rfind 和 substr 的操作&#xff1a; string类非成员函数 我们来看 r…...

【Go】令牌桶限流算法

1. 限流 限流&#xff0c;顾名思义&#xff0c;限制用户请求流量&#xff0c;避免大规模并发导致系统宕机。 2. 令牌桶算法 令牌管理员以恒定的速率向令牌桶里放置一个令牌。如果桶满&#xff0c;就丢弃令牌。 请求到达时&#xff0c;都要先去令牌桶里取一个令牌&#xff0c…...

go的slice学习

并发访问slice 线上出现一粒多协程并发append全局slice的情况&#xff0c;导致内存不断翻倍&#xff0c;因此对slice的使用需要重新考虑。 并发读写的情况下&#xff0c; 可以利用锁、channel等避免竞态 问题 func TestDemo32(t *testing.T) {var wg sync.WaitGroupvar n 1…...

软件设计师17--磁盘管理

软件设计师17--磁盘管理 考点1&#xff1a;存储管理 - 磁盘管理调度算法磁盘调度 - FCFS磁盘调度 - SSTF例题&#xff1a; 考点1&#xff1a;存储管理 - 磁盘管理 存取时间寻道时间等待时间&#xff0c;训导时间是指磁头移动到磁道所需的时间&#xff1b;等待时间为等待读写的扇…...

学点Java打小工——Day2Day3一点作业

1 猜数字&#xff08;10次机会&#xff09; 随机生成[1,1000]的一个数&#xff0c;输入你猜的数程序会给出反馈&#xff0c;直到猜对或次数用尽(10次)。 //猜数字 10次机会Testpublic void guessNumber() {Random random new Random();// [0, 1000) 1// [1, 1000]int num ra…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...