外观
Python连接数据库
连接SQLite
Python连接sqlite数据库不需要下载模块,Python内置了sqlite3模块。 连接SQLite的步骤
- 导入模块
import sqlite3
print(sqlite3)
---
<module 'sqlite3' from 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python310\\lib\\sqlite3\\__init__.py'>- 获取连接对象
conn = sqlite3.connect("user.db")
print(conn)
---
<sqlite3.Connection object at 0x0000025E6CF5F440>- 获取游标对象
cursor = conn.cursor()
print(cursor)
---
<sqlite3.Cursor object at 0x0000025E6C397F40>- 进行数据库操作
cursor.execute("create table if not exists user (id int not null primary key ,name varchar(20) not null)")
---
<sqlite3.Cursor at 0x25e6c397f40>- 若对数据库进行修改在关闭连接对象之前要提交事务,最后关闭游标对象和连接对象
cursor.close()
conn.close()操作SQLite的数据
- 插入数据
import sqlite3
# 向数据库中添加数据 需要使用游标对象的execute()方法
conn = sqlite3.connect('user.db')
cursor = conn.cursor()
# 接下来就是执行添加语句了 假如我们添加三行数据
# 使用游标对象的execute()方法执行查询语句 实际上这些操作都是使用游标对象的execute方法执行sql语句实现的
cursor.execute('insert into user (id ,name) values(1,"小明"),(2,"小红"),(3,"小蓝")')
cursor.execute('select * from user')
# 在执行sql查询后 使用游标对象的fetchXXX()方法执行想要查询的结果的数量
result = cursor.fetchall()
# 该方法会返回一个集合 集合内的元素是数组 存储查询到的数据
print(result)
# 最后还是要关闭游标对象和连接对象 还要提交事务
cursor.close()
conn.commit()
conn.close()
---
[(1, '小明'), (2, '小红'), (3, '小蓝')]- 修改数据
import sqlite3
# 修改数据库中的数据 还是需要使用游标对象的execute()方法
conn = sqlite3.connect('user.db')
cursor = conn.cursor()
# 接下来就是执行修改语句了 假如我们将id为2的人的名字修改为小青
# 使用游标对象的execute()方法执行查询语句 实际上这些操作都是使用游标对象的execute方法执行sql语句实现的
cursor.execute('update user set name = "小青" where id = 2')
cursor.execute('select * from user')
# 在执行sql查询后 使用游标对象的fetchXXX()方法执行想要查询的结果的数量
result = cursor.fetchall()
# 该方法会返回一个集合 集合内的元素是数组 存储查询到的数据
print(result)
# 最后还是要关闭游标对象和连接对象 还要提交事务
cursor.close()
conn.commit()
conn.close()
---
[(1, '小明'), (2, '小青'), (3, '小蓝')]- 删除数据
import sqlite3
# 删除数据库中的数据 还是需要使用游标对象的execute()方法
conn = sqlite3.connect('user.db')
cursor = conn.cursor()
# 接下来就是执行添加语句了 假如我们添加三行数据
# 使用游标对象的execute()方法执行查询语句 实际上这些操作都是使用游标对象的execute方法执行sql语句实现的
cursor.execute('delete from user where id = 1')
cursor.execute('select * from user')
# 在执行sql查询后 使用游标对象的fetchXXX()方法执行想要查询的结果的数量
result = cursor.fetchall()
# 该方法会返回一个集合 集合内的元素是数组 存储查询到的数据
print(result)
# 最后还是要关闭游标对象和连接对象 还要提交事务
cursor.close()
conn.commit()
conn.close()
---
[(2, '小青'), (3, '小蓝')]连接MySQL
首先需要安装pymysql模块,若可以导入则安装成功。 Python连接数据库的步骤:
- 导入pymysql模块
import pymysql- 获取连接对象 使用
connect()方法连接MySQL 建议使用关键字指定参数
conn = pymysql.connect(user='root', # 用户名
password="254456", # 密码
host='localhost') # 主机- 获取游标对象 使用连接对象的
cursor()方法
cursor = conn.cursor()- 通过调用cursor对象的
execute()方法操作数据库 方法的参数就是要执行的SQL语句
cursor.execute('show databases;')- 使用cursor对象的
fetchXXX()方法获取结果集 这里使用fetchall()
result = cursor.fetchall()
print(result)
---
(('db_admin',), ('information_schema',), ('mysql',), ('performance_schema',), ('sys',))- 最后关闭cursor和conn对象。
cursor.close()
conn.close()因为操作MySQL和操作SQLite的方式很接近,这里就不再演示了。
修改MySQL的数据
下方为连接数据库的操作,具体请看连接数据库的笔记。
import pymysql
conn = pymysql.connect(user='root',
password="254456",
host='localhost',)
print('conn:连接成功')
cursor = conn.cursor()
cursor.execute('create database if not exists db;')
cursor.execute('use db;')
cursor.execute('drop table if exists tb;')
cursor.execute('create table tb (id int,name varchar(10),date date);')
cursor.execute('insert into tb (id,name,date) values (1,"a",now()),(2,"b",now()),(3,"c",now());')
print('cursor:创建数据表成功')
---
conn:连接成功
cursor:创建数据表成功- 添加数据
cursor.execute('insert into tb (id,name,date) values(4,"d",now())')
cursor.execute('select * from tb')
result = cursor.fetchall()
print(result)
---
((4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)))- 修改数据
cursor.execute('update tb set name = "e" where id = 2')
cursor.execute('select * from tb')
result = cursor.fetchall()
print(result)
conn.commit() # 凡是涉及到更改数据表的操作最后都要提交事务
---
((4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)), (2, 'e', datetime.date(2022, 10, 9)), (4, 'd', datetime.date(2022, 10, 14)))- 删除数据
cursor.execute('delete from tb where id = 3')
cursor.execute('select * from tb')
result = cursor.fetchall()
print(result)
conn.commit()
---
((4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)), (4, 'd', datetime.date(2022, 10, 14)), (1, 'a', datetime.date(2022, 10, 8)), (2, 'e', datetime.date(2022, 10, 9)), (4, 'd', datetime.date(2022, 10, 14)))# 关闭
cursor.close()
conn.close()