Python基础之操作mysql数据库

一:安装驱动程序

Pythons要想操作Mysql,必须要有一个中间件,或者叫做驱动程序。驱动程序有很多,如:mysqldb, mysqlclient, pymysql等。这里选择使用pymysql

pip install pymysql

二:数据库操作

2.1 连接数据库

import pymysql
conn = pymysql.connect(host = '172.17.2.36', user = 'root', password = 'root', database = 'spider', port = 3306)
cursor = conn.cursor()

cursor.execute('select 1')
result = cursor.fetchone()
print(result)

conn.close()

2.2 建库

conn = pymysql.connect(
    host = '172.17.2.36',
    user = 'root',
    password = 'root',
    charset = 'utf8'
)
cursor = conn.cursor()
# 建库
cursor.execute('create database pytest charset utf8;')
# 使用库
cursor.execute('use pytest;')
conn.close()

2.2 建表

conn = pymysql.connect(host = '172.17.2.36',user = 'root',password = 'root', database = 'pytest', charset = 'utf8')
cursor = conn.cursor()
cursor.execute('drop table if exists user;')
cursor.execute("create table `user`(id int primary key auto_increment, username varchar(20), age int, password varchar(64));")
conn.close()

2.3 插入表数据

conn = pymysql.connect(host = '172.17.2.36',user = 'root',password = 'root', database = 'pytest', charset = 'utf8')
cursor = conn.cursor()

sql = '''insert into user values(null,'ginvip02', 20, '123456');'''
cursor.execute(sql)
conn.commit()

conn.close()

2.4 查询

查询单条数据:

cursor.execute('select * from user where id=1;')
result = cursor.fetchone()
print(result)
# (1, 'ginvip', 20, '123456')

查询多条数据:

cursor.execute('select * from user;')
while True:
    result = cursor.fetchone()
    if not result: break
    print(result)

也可以使用fetchall一次性把数据全部取出:

cursor.execute('select * from user;')
result = cursor.fetchall()
print(result)
# ((1, 'ginvip', 20, '123456'), (2, 'ginvip02', 20, '123456'))

或者使用fetchmany(num)指定取次数据的条数:

cursor.execute('select * from user;')
result = cursor.fetchmany(2)		# 取出2条数据
print(result)

2.5 删除

cursor.execute('delete from user where id=2;')
conn.commit()

delete和truncate区别如下:

  1. 灵活性:delete可以条件删除数据,而truncate只能删除表的所有数据;
delete from table_test where ... 
truncate table table_test 
  1. 效率:delete效率低于truncate,delete是一行一行地删除,truncate会重建表结构,
  2. 事务:truncate是DDL语句,需要drop权限,因此会隐式提交,不能够rollback;delete是DML语句,可以使用rollback回滚。
  3. 触发器:truncate 不能触发任何Delete触发器;而delete可以触发delete触发器。

2.6 更新

cursor.execute('update user set username="Bruce" where id=1;')
conn.commit()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyMySQL是Python操作MySQL数据库的一个库,可以通过它来连接MySQL数据库,执行SQL语句,获取查询结果等操作。以下是使用PyMySQL操作MySQL数据库的基本步骤: 1. 安装PyMySQL库 在终端或命令行中输入以下命令来安装PyMySQL库: ``` pip install pymysql ``` 2. 连接MySQL数据库 使用pymysql.connect()方法来连接MySQL数据库。需要指定主机名、用户名、密码、数据库名等参数。示例代码如下: ``` import pymysql #连接MySQL数据库 conn = pymysql.connect(host='localhost', user='root', password='123456', database='testdb', charset='utf8') ``` 3. 执行SQL语句 使用cursor()方法获取游标对象,然后使用execute()方法来执行SQL语句。示例代码如下: ``` #获取游标对象 cursor = conn.cursor() #执行SQL语句 sql = 'SELECT * FROM students' cursor.execute(sql) ``` 4. 获取查询结果 使用fetchall()方法获取查询结果。示例代码如下: ``` #获取查询结果 result = cursor.fetchall() #打印查询结果 for row in result: print(row) ``` 5. 关闭数据库连接 使用close()方法关闭数据库连接。示例代码如下: ``` #关闭数据库连接 conn.close() ``` 完整示例代码: ``` import pymysql #连接MySQL数据库 conn = pymysql.connect(host='localhost', user='root', password='123456', database='testdb', charset='utf8') #获取游标对象 cursor = conn.cursor() #执行SQL语句 sql = 'SELECT * FROM students' cursor.execute(sql) #获取查询结果 result = cursor.fetchall() #打印查询结果 for row in result: print(row) #关闭数据库连接 conn.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值