Python连接数据库,实现增删改查基本操作

python操作数据库

工具:vscode , navicat for MySQL,使用之前需下载pymysql模块(windows平台下)
(win+R–>cmd–>pip install pymysql)若是Anaconda用户直接使用conda命令下载

1.连接数据库
代码:

import pymysql
host="localhost"
username="root"
password="123456"
db_name="test"
#创建connect对象
connect=pymysql.connect(host,username,password,db_name)
#获取游标对象
cursor=connect.cursor()
cursor.execute("SELECT VERSION()")
result=cursor.fetchone()
print(result)
cursor.close()
connect.close()

连接成功将打印mysql的版本

('5.7.26-log',)

2.在vscode创建表
连接test数据库,创建表单name=users,属性包括id,name,age
代码:

import pymysql
import pprint
host="localhost"
username="root"
password="123456"
db_name="test"

create_sql="""
CREATE TABLE `users`(
    `id` INT NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(45) NULL,
    `age` INT NULL,
    PRIMARY KEY(`id`))
DEFAULT CHARACTER SET =utf8;

"""
#创建connect对象
connect=pymysql.connect(host,username,password,db_name)
#获取游标对象
cursor=connect.cursor()
cursor.execute(create_sql)
#查询表的结构
cursor.execute("DESC users")
result=cursor.fetchall()
pprint.pprint(result)
cursor.close()
connect.close()

执行代码后,在navicat可见创建的表单users
Python连接数据库,实现增删改查基本操作_第1张图片
3.向表中插入数据
插入数据后需要调用commit()方法提交对数据库的修改,不然数据不会插入到数据库中
代码:

import pymysql

host="localhost"
username="root"
password="123456"
db_name="test"

insert_sql="""
INSERT INTO users(id,name,age)
    VALUES (1,'小白',16),(2,'大白',20),(3,'小明',18)

"""
#创建connect对象
connect=pymysql.connect(host,username,password,db_name,charset='utf8')
#获取游标对象
cursor=connect.cursor()

try:
    #插入数据
    cursor.execute(insert_sql)
    connect.commit()
    print("插入成功")
    pass
except Exception as e:
    connect.rollback()
    print("插入失败",e)
cursor.close()
connect.close()

在数据库可看到插入的数据
Python连接数据库,实现增删改查基本操作_第2张图片
4.查询数据
fetchone()方法返回一行数据,fetchall()方法获取所有数据
代码:

import pymysql
import pprint
host="localhost"
username="root"
password="123456"
db_name="test"


#创建connect对象
connect=pymysql.connect(host,username,password,db_name,charset='utf8')
#获取游标对象
cursor=connect.cursor(pymysql.cursors.DictCursor)

cursor.execute("SELECT * FROM users")

result=cursor.fetchone()
print("fetchone")
pprint.pprint(result)

cursor.execute("SELECT * FROM users")
result=cursor.fetchall()
print("fetchall")
pprint.pprint(result)

cursor.close()
connect.close()

程序执行结果:

fetchone
{'age': 16, 'id': 1, 'name': '小白'}
fetchall
[{'age': 16, 'id': 1, 'name': '小白'},
 {'age': 20, 'id': 2, 'name': '大白'},
 {'age': 18, 'id': 3, 'name': '小明'}]

5.更新数据
此处我们对id 为2的修改其age
代码:

import pymysql
import pprint
host="localhost"
username="root"
password="123456"
db_name="test"

#创建connect对象
connect=pymysql.connect(host,username,password,db_name,charset='utf8')
#获取游标对象
cursor=connect.cursor(pymysql.cursors.DictCursor)


cursor.execute("SELECT * FROM users")
result=cursor.fetchall()
print("更新前:")
pprint.pprint(result)

cursor.execute("UPDATE users SET age=30 WHERE id=2")
connect.commit()

cursor.execute("SELECT * FROM users")
result=cursor.fetchall()
print("更新后:")
pprint.pprint(result)

cursor.close()
connect.close()

执行结果:

更新前:
[{'age': 16, 'id': 1, 'name': '小白'},
 {'age': 20, 'id': 2, 'name': '大白'},
 {'age': 18, 'id': 3, 'name': '小明'}]
更新后:
[{'age': 16, 'id': 1, 'name': '小白'},
 {'age': 30, 'id': 2, 'name': '大白'},
 {'age': 18, 'id': 3, 'name': '小明'}]

navicat 查看数据变化
Python连接数据库,实现增删改查基本操作_第3张图片
6.删除数据
此处删除id=3的数据
代码:

import pymysql
import pprint
host="localhost"
username="root"
password="123456"
db_name="test"
#创建connect对象
connect=pymysql.connect(host,username,password,db_name,charset='utf8')
#获取游标对象
cursor=connect.cursor(pymysql.cursors.DictCursor)

cursor.execute("SELECT * FROM users")
result=cursor.fetchall()
print("删除前:")
pprint.pprint(result)

cursor.execute("DELETE FROM users WHERE id=3")
connect.commit()

cursor.execute("SELECT * FROM users")
result=cursor.fetchall()
print("删除后:")
pprint.pprint(result)

cursor.close()
connect.close()

执行结果:

删除前:
[{'age': 16, 'id': 1, 'name': '小白'},
 {'age': 30, 'id': 2, 'name': '大白'},
 {'age': 18, 'id': 3, 'name': '小明'}]
删除后:
[{'age': 16, 'id': 1, 'name': '小白'}, {'age': 30, 'id': 2, 'name': '大白'}]

navicat查看数据删除情况
Python连接数据库,实现增删改查基本操作_第4张图片

你可能感兴趣的:(Python连接数据库,实现增删改查基本操作)