Python——pymysql操作数据库

目录

数据库准备

查询数据 

增加数据

删除

修改


数据库准备

CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

 首先需要在本项目的控制台中安装pymysql包

pip install pymysql

查询数据 

导入pymysql包 

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

# 打印结果
print(content)


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

执行代码,发现只得到了数据数量。

那么如何获取数据呢,使用cs.fetchone()方法

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

# 获取单个数据
content=cs.fetchone()

# 打印结果
print(content)

 这样只是获取了一行数据,那么如何获取所有的数据,就需要用到cs.fetchall()方法

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)
# 获取所有数据
content=cs.fetchall()
# 打印结果
print(content)

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

python是以元组的形式返回所有的数据 

增加数据

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

sql="insert into t_user value(null,'宋江',23,'河北省');"
cs.execute(sql)

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

content=cs.fetchall()
# 打印结果
print(content)

# conn.commit()

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

可以看到输出的结果中添加了一个id为6的数据 

但是当我们到数据库中查看的话,发现还是5条数据,并没有加入id为6的数据

之所以发生这种情况是因为,python并不会自动提交事务,所以需要手动去提交事务,手动调用conn.commit()方法

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

sql="insert into t_user value(null,'宋江',23,'河北省');"
cs.execute(sql)

# sql语句
sql="select * from t_user;"

# 执行sql
content=cs.execute(sql)

content=cs.fetchall()
# 打印结果
print(content)

conn.commit()

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

注意:这里之所以新数据为7是因为,id为自增的,之前没有提交事务,但是id号已经被使用了,所以再次新增就会从7开始自增。

删除

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="delete from t_user where id='7';"

# 执行sql
content=cs.execute(sql)

conn.commit()

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

启动程序,发现id为7的数据已经被删除,注意:必须要手动提交事务

修改

import pymysql


# 创建连接对象
conn=pymysql.connect(host="localhost",port=3306,user="root",password="xxx",database="python_test")
# 获取游标对象
cs=conn.cursor()

# sql语句
sql="update t_user set name='张飞' where id='5';"

# 执行sql
content=cs.execute(sql)

conn.commit()

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

猜你喜欢

转载自blog.csdn.net/select_myname/article/details/129244211