python数据库——Mysql

一、pymysql库

        要使用Python操作MySQL数据库,可以使用PyMySQL库。PyMySQL是一个纯Python编写的MySQL客户端库,可以在Python程序中进行MySQL数据库的连接、查询、插入等操作。

        与之相似的还有mysql官方提供的MySQL Connector/Python也可以实现类似功能。它们的区别主要在以下方面:

  • pymysql库是一个纯Python实现的库,可以直接使用pip安装。
  • MySQL Connector/Python是MySQL官方提供的Python驱动程序,是使用C编写的,提供了更高的性能和更多的功能选项。

        在本文中使用pymysql进行操作

使用前需要先安装pymysql:

pip install pymysql

二、数据库连接

python对数据库进行操作前需要使用pymysql库中的connect函数连接到对应的数据库

import pymysql

# 连接到MySQL数据库
db  = pymysql.connect(
    host='localhost',  # 数据库地址
    port=3306,  # 端口号,默认为3306
    user='root',  # 用户名
    password='password',  # 密码
    database='testdb'  # 数据库名称
)

三、游标对象

        在连接到数据库以后,我们还需要一个游标对象用于执行SQL语句来 控制数据库。

创建游标对象:

cusor = db.cusor()

可以使用游标对象的以下函数进行数据库操作:

  1. execute(sql, params=None): 执行SQL语句。可以通过参数传递SQL语句以及需要绑定的参数。返回值为受影响的行数。

  2. executemany(sql, seq_of_params): 批量执行SQL语句。可以通过参数传递SQL语句以及需要绑定的参数序列。返回值为受影响的行数。

  3. fetchone(): 获取查询结果的下一行。返回值为一个元组,包含查询结果的一行数据。

  4. fetchmany(size=None): 获取查询结果的多行。可以通过参数指定获取的行数,默认为游标的arraysize属性。返回值为一个包含多行数据的列表。

  5. fetchall(): 获取查询结果的所有行。返回值为一个包含所有行数据的列表。

  6. scroll(value, mode=‘relative’): 在查询结果中移动游标的位置。可以通过参数指定移动的行数以及移动的方式。mode参数可以是’relative’(相对移动),‘absolute’(绝对移动)或’first’(移到第一行)。

  7. close(): 关闭游标。关闭之后,游标对象将不再可用。

  8. rowcount: 返回最近一次execute()方法执行后受影响的行数。

  9. description: 返回查询结果的元数据,包含查询结果的列名、数据类型等信息。

四、创建数据库表

mport pymysql

# 连接数据库
conn = pymysql.connect(
    host='localhost',  # 数据库地址
    user='root',  # 数据库用户名
    password='password',  # 数据库密码
    db='test_db'  # 数据库名称
)

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

# 创建表的SQL语句
create_table_sql = '''
CREATE TABLE IF NOT EXISTS students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INT
)
'''

# 执行SQL语句
cursor.execute(create_table_sql)

# 提交事务
conn.commit()

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

五、增删查改

import pymysql

# 创建数据库连接
conn = pymysql.connect(host='localhost', user='root', password='password', database='testdb')

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

# 执行SQL语句,创建表
create_table_sql = '''
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        age INT
    )
'''
cursor.execute(create_table_sql)

# 插入数据insert_sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
cursor.execute(insert_sql, ('Alice', 25))
cursor.execute(insert_sql, ('Bob', 30))
conn.commit()

# 查询数据
select_sql = "SELECT * FROM users"
cursor.execute(select_sqlresults =.fetchall()
for row in results:
    print(row)

# 更新数据
update_sql = "UPDATE users SET age = %s WHERE name = %s"
cursor.execute(update_sql, (26, 'Alice'))
conn.commit()

# 删除数据
delete_sql = "DELETE FROM users WHERE name = %s"
cursor.execute(delete_sql, 'Bob')
conn.commit()

# 关闭游标和数据库连接
cursor.close()
conn.close()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值