前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python每天五分钟-操作MySQL(mysql.connector)

Python每天五分钟-操作MySQL(mysql.connector)

作者头像
用户2475223
发布2019-12-17 16:03:17
8800
发布2019-12-17 16:03:17
举报
文章被收录于专栏:codersamcodersam

MySQL是现今最流行的数据库之一,接下来使用Python对MySQL进行curd操作。

安装mysql.connector拓展

代码语言:javascript
复制
pip install mysql-connector

代码语言:javascript
复制
python -m pip install mysql-connector

当出现Successfully installed mysql-connector2.2.9时表示安装成功。

连接数据库

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
print(conn)

最终会打印一个数据库连接对象

创建数据表

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
mycursor = conn.cursor()

mycursor.execute('CREATE TABLE `user` (`id`  int(10) NOT NULL AUTO_INCREMENT ,`name` varchar(255) NOT NULL, `url` varchar(255) NOT NULL ,PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARACTER SET=utf8')

mycursor.execute('SHOW TABLES')

for x in mycursor:
	print(x)
# 输出结果 会把当前库的每个表名放在元祖中返回
(user, )

增删改数据

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
mycursor = conn.cursor()
sql = "INSERT INTO user (name, url) VALUES (%s, %s)" # 防止SQL注入,使用占位符
val = ("abc", "ddd")
mycursor.execute(sql, val) # 执行语句 execute() 并不会真正的将数据插入,会将当前语句保存为一个事务节点。
conn.commit() # 提交事务
print(mycursor.rowcount, "记录插入成功。 ID:", mycursor.lastrowid)
# rowcount:影响的数据行数,lastrowid 新插入数据的主键值

批量插入

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
mycursor = conn.cursor()
sql = "INSERT INTO user (name, url) VALUES (%s, %s)" # 防止SQL注入,使用占位符
val = [
	("abc", "ddd"),
	("abc", "ddd"),
	("abc", "ddd"),
	("abc", "ddd")
]
mycursor.execute(sql, val) # 执行语句 execute() 并不会真正的将数据插入,会将当前语句保存为一个事务节点。
conn.commit() # 提交事务
print(mycursor.rowcount, "记录插入成功。 ID:", mycursor.lastrowid)
# rowcount:影响的数据行数,lastrowid 新插入数据的主键值

需要注意的是lastrowid 这个时候只会返回第一条插入的主键值而不是最后一条 更新

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
mycursor = conn.cursor()
sql = "UPDATE user SET name = %s WHERE id = %s"
val = ("xyz", 6)
mycursor.execute(sql, val) # 执行语句 execute() 并不会真正的将数据插入,会将当前语句保存为一个事务节点。
conn.commit() # 提交事务
print(mycursor.rowcount, "记录更新成功。 ID:", mycursor.lastrowid)
# rowcount:影响的数据行数,lastrowid 新插入数据的主键值

删除

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
mycursor = conn.cursor()
sql = "DELETE FROM user WHERE name = %s"
val = ("xyz",)
mycursor.execute(sql, val) # 执行语句 execute() 并不会真正的将数据插入,会将当前语句保存为一个事务节点。
conn.commit() # 提交事务
print(mycursor.rowcount, "记录更新成功。 ID:", mycursor.lastrowid)
# rowcount:影响的数据行数,lastrowid 新插入数据的主键值

查询数据

代码语言:javascript
复制
# 引入拓展
import mysql.connector
# 连接配置
conn = mysql.connector.connect(
	host = '127.0.0.1', # 数据库ip
	user = 'username', # 用户
	passwd = 'password', # 密码
	database = 'database' # 数据库名
)
mycursor = conn.cursor()

sql = "SELECT * FROM user WHERE id = %s"
condition = (2,)
mycursor.execute(sql, condition)
result = mycursor.fetchall() # 获取全部数据
# result = mycursor.fetchone() # 获取1条
print(result)
# 全部数据的输出结果
[(1, 'abc', 'ddd'), (2, 'abc', 'aaa'), (3, 'abc', 'ccc'), (4, 'abc', 'bbb'), (5, 'abc', 'eee')]
# 获取1条的输出结果
(1, 'abc', 'ddd')
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年6月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装mysql.connector拓展
  • 连接数据库
  • 创建数据表
  • 增删改数据
  • 查询数据
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档