MySQL在cmd以及在python上的常用指令

MySQL 在cmd上的常用指令

MySQL 5.7.37以及Navicat的安装教程

连接到MySQL数据库

mysql -u root -p

假设用户名为"root",当执行上述命令时,系统会提示你输入密码。输入正确的密码后,你将成功连接到名为"mydatabase"的数据库。
在这里插入图片描述

创建数据库

CREATE DATABASE databasefromJay;

使用上述命令创建一个名为"databasefromJay"的数据库。
在这里插入图片描述

查看已有的数据库有哪些

SHOW DATABASES;

在这里插入图片描述

  • information_schema数据库是MySQL服务器的数据字典(保存所有数据表和库的结构信息)
  • performance_schema数据库是MySQL服务器的性能字典(保存全局变量等的设置)
  • mysql 主要负责MySQL服务器自己需要使用的控制和管理信息(用户的权限关系等)
  • sys是系统数据库,包括了存储过程,自定义函数等信息

这4个数据库是MySQL安装时自动创建的,建议不要随意的删除和修改这些数据库,避免造成服务器故障。

选择数据库

USE databasefromJay;

在这里插入图片描述
执行上述命令将当前数据库切换到"databasefromJay"。

查看指定数据库的创建信息

SHOW CREATE DATABASE databasefromJay;

在这里插入图片描述

查看当前数据库

SELECT DATABASE();

在这里插入图片描述
在输入当前数据库查询的SQL语句前,必须先选择数据库。

删除数据库

DROP DATABASE databasefromJay;

创建表

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名( 
    字段1 字段1类型 [字段属性] [COMMENT 字段1注释 ], 
    字段2 字段2类型 [字段属性] [COMMENT 字段2注释 ], 
    字段3 字段3类型 [字段属性] [COMMENT 字段3注释 ],
    ...... 
    字段n 字段n类型 [COMMENT 字段n注释 ] 
) [表属性] [ COMMENT 表注释 ] ;
CREATE TABLE customers (id INT, name VARCHAR(50),email VARCHAR(100));

使用上述命令创建一个名为"customers"的表,包含id、name和email三列。
用navicat可以进行实时的查看:
在这里插入图片描述

查看表

SHOW TABLES [KIKE 匹配模式];

查看数据表结构

#语法格式1
SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名];

修改数据表名称

#语法格式1
ALTER TABLE 旧表名 RENAME [TO|AS] 新表名;

插入数据

INSERT INTO customers (id, name, email) VALUES (1, 'John Doe', 'john@example.com');

使用上述命令将一行数据插入到"customers"表中。

查询数据

SELECT * FROM customers;

使用上述命令查询"customers"表中的所有数据。

更新数据

UPDATE customers SET name = 'Jane Smith' WHERE id = 1;

使用上述命令将id为1的客户的姓名更新为"Jane Smith"。

删除数据

DELETE FROM customers WHERE id = 2;

使用上述命令从"customers"表中删除id为2的客户。

python常用操作语句

要使用Python完成对MySQL数据库的操作,你可以使用Python的MySQL数据库驱动程序,例如PyMySQL或mysql-connector-python。这些库提供了与MySQL数据库进行交互的API,允许你在Python代码中执行各种数据库操作。

以下是使用PyMySQL库进行数据库连接、创建数据库、创建表、插入数据、查询数据和删除数据的示例代码:

import pymysql

# 连接到MySQL数据库
connection = pymysql.connect(host='localhost', user='root', password='your_password', db='mydatabase')

# 创建游标对象
cursor = connection.cursor()

# 创建数据库
cursor.execute("CREATE DATABASE mydatabase")

# 选择数据库
connection.select_db('mydatabase')

# 创建表
cursor.execute("CREATE TABLE customers (id INT, name VARCHAR(50), email VARCHAR(100))")

# 插入数据
sql = "INSERT INTO customers (id, name, email) VALUES (%s, %s, %s)"
data = [(1, 'John Doe', 'john@example.com'), (2, 'Jane Smith', 'jane@example.com')]
cursor.executemany(sql, data)

# 查询数据
sql = "SELECT * FROM customers"
result = cursor.execute(sql)
for row in result:
    print(row)

# 删除数据
sql = "DELETE FROM customers WHERE id = %s"
data = (3,)
cursor.execute(sql, data)
connection.commit()

# 关闭游标和连接
cursor.close()
connection.close()

PyMySQL的常见语句
好的,以下是每个函数的例子:

  1. connect(host, user, password, database[, port, unix_socket, charset])

    • 示例:connection = pymysql.connect(host='localhost', user='root', password='your_password', db='mydatabase')
    • 这个函数用于连接到MySQL数据库,其中host表示数据库主机地址,user和password是登录信息,database是要连接的数据库名称。
  2. cursor()

    • 示例:cursor = connection.cursor()
    • 这个函数返回一个游标对象,用于执行SQL语句和获取结果。游标对象提供了execute()方法来执行SQL查询语句。
  3. execute(query[, params[, flags]])

    • 示例:cursor.execute("SELECT * FROM customers")
    • 这个函数用于执行SQL查询语句并返回结果。它接受查询语句作为参数,可以接受参数作为占位符并使用params参数进行替换。flags参数可以指定一些选项和标志。
  4. fetchone()

    • 示例:result = cursor.fetchone()
    • 这个函数返回查询结果中的一行数据。如果没有数据可返回,它将返回一个空值(如None)。
  5. fetchmany([size])

    • 示例:result = cursor.fetchmany(size=2)
    • 这个函数返回多个行数据。如果没有数据可返回,它将返回一个空列表。size参数指定要返回的行数。
  6. fetchall()

    • 示例:result = cursor.fetchall()
    • 这个函数返回查询结果中的所有行数据。如果没有数据可返回,它将返回一个空列表。
  7. close()

    • 示例:cursor.close()
    • 这个函数用于关闭与MySQL数据库的连接。在完成所有操作后,应该调用此函数来释放资源。
  8. commit()

    • 示例:connection.commit()
    • 这个函数用于提交事务。在执行一系列数据库操作后,如果所有操作都成功完成,应该调用此函数来保存更改并确保它们被永久保存到数据库中。
  9. rollback()

    • 示例:connection.rollback()
    • 这个函数用于回滚事务。如果在执行一系列数据库操作中出现错误或需要撤销更改,可以使用此函数来回滚事务并撤销所有更改。
  10. insert(table, *fields_values)

    • 示例:insert_result = connection.insert('customers', (1, 'John Doe', 'john@example.com'))
    • 这个函数用于执行插入操作,将数据插入到指定的表中。它接受表名和字段值作为参数,并使用连接对象执行插入操作。
  11. update(table, *fields_values)

    • 示例:update_result = connection.update('customers', (('name', 'Jane Smith'),))
    • 这个函数用于执行更新操作,更新指定的表中的数据。它接受表名和更新条件和值作为参数,并使用连接对象执行更新操作。
  12. delete(table, where)

    • 示例:delete_result = connection.delete('customers', where='id=3')
    • 这个函数用于执行删除操作,删除满足条件的行数据。它接受表名、条件和可选的排序参数作为参数,并使用连接对象执行删除操作。
### RT-DETRv3 网络结构分析 RT-DETRv3 是一种基于 Transformer 的实时端到端目标检测算法,其核心在于通过引入分层密集正监督方法以及一系列创新性的训练策略,解决了传统 DETR 模型收敛慢和解码器训练不足的问题。以下是 RT-DETRv3 的主要网络结构特点: #### 1. **基于 CNN 的辅助分支** 为了增强编码器的特征表示能力,RT-DETRv3 引入了一个基于卷积神经网络 (CNN) 的辅助分支[^3]。这一分支提供了密集的监督信号,能够与原始解码器协同工作,从而提升整体性能。 ```python class AuxiliaryBranch(nn.Module): def __init__(self, in_channels, out_channels): super(AuxiliaryBranch, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): return F.relu(self.bn(self.conv(x))) ``` 此部分的设计灵感来源于传统的 CNN 架构,例如 YOLO 系列中的 CSPNet 和 PAN 结构[^2],这些技术被用来优化特征提取效率并减少计算开销。 --- #### 2. **自注意力扰动学习策略** 为解决解码器训练不足的问题,RT-DETRv3 提出了一种名为 *self-att 扰动* 的新学习策略。这种策略通过对多个查询组中阳性样本的标签分配进行多样化处理,有效增加了阳例的数量,进而提高了模型的学习能力和泛化性能。 具体实现方式是在训练过程中动态调整注意力权重分布,确保更多的高质量查询可以与真实标注 (Ground Truth) 进行匹配。 --- #### 3. **共享权重解编码器分支** 除了上述改进外,RT-DETRv3 还引入了一个共享权重的解编码器分支,专门用于提供密集的正向监督信号。这一设计不仅简化了模型架构,还显著降低了参数量和推理时间,使其更适合实时应用需求。 ```python class SharedDecoderEncoder(nn.Module): def __init__(self, d_model, nhead, num_layers): super(SharedDecoderEncoder, self).__init__() decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead) self.decoder = nn.TransformerDecoder(decoder_layer, num_layers=num_layers) def forward(self, tgt, memory): return self.decoder(tgt=tgt, memory=memory) ``` 通过这种方式,RT-DETRv3 实现了高效的目标检测流程,在保持高精度的同时大幅缩短了推理延迟。 --- #### 4. **与其他模型的关系** 值得一提的是,RT-DETRv3 并未完全抛弃经典的 CNN 技术,而是将其与 Transformer 结合起来形成混合架构[^4]。例如,它采用了 YOLO 系列中的 RepNCSP 模块替代冗余的多尺度自注意力层,从而减少了不必要的计算负担。 此外,RT-DETRv3 还借鉴了 DETR 的一对一匹配策略,并在此基础上进行了优化,进一步提升了小目标检测的能力。 --- ### 总结 综上所述,RT-DETRv3 的网络结构主要包括以下几个关键组件:基于 CNN 的辅助分支、自注意力扰动学习策略、共享权重解编码器分支以及混合编码器设计。这些技术创新共同推动了实时目标检测领域的发展,使其在复杂场景下的表现更加出色。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值