连接数据库
①在终端下载安装 pymysql库:pip install pymysql
②并导入pymyqsl包: import pymysql
③连接:pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称',port=3306)
注:红色字体均为默认下的状态,一般无需更改
创建数据库表
import pymysql
db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306)
try:
cursor = db.cursor()#使用 cursor() 方法创建一个游标对象 cursor
cursor.execute('DROP TABLE IF EXISTS table1')#创建表之前检验是否已有该表,有则删除
#用sql语句创建表table1,并定义各参数
sqlQuery = "CREATE TABLE table1(Name CHAR(20) NOT NULL ,professional CHAR(20),number int )"
cursor.execute(sqlQuery)
except pymysql.Error as error:
print('表创建失败' + str(error))
db.close()# 关闭数据库连接
数据库的插入
import pymysql
db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接
cursor = db.cursor()#创建一个游标对象
try:
sqlQuery = " INSERT INTO table1(Name, professional,number) VALUE (%s,%s,%s) "
#使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s
value = ('姓名', '专业', 110)#插入内容
cursor.execute(sqlQuery, value)
db.commit()#真正提交到数据库
except pymysql.Error as error:
print('数据插入失败' + str(error))
db.rollback()## 如果发生错误则回滚
数据库查询操作
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
- fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
- fetchall(): 接收全部的返回结果行.
- rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
SQL 查询语句示例
sql = "SELECT * FROM table1 WHERE Name=%s" value = ('姓名') cursor.execute(sql,value)
sql = "SELECT * FROM table1 WHERE Name='姓名'" cursor.execute(sql) sql = "SELECT * FROM table1 WHERE number=%s"%(数值) cursor.execute(sql)
import pymysql
db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接
cursor = db.cursor()#创建一个游标对象
# SQL 查询语句
sql = "SELECT * FROM 表名 WHERE 参数名 = %s" % (值)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
参数1 = row[0]
参数2 = row[1]
# 打印结果
print ("参数1=%s,参数2=%s" %(参数1,参数2 ))
except:
print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()
更新表中数据
import pymysql
db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接
cursor = db.cursor()#创建一个游标对象
try:
#更新表中数据
sql = "UPDATE 表名 SET 需改的参数= %s WHERE 需改的参数=%s"
value = ('新的内容', '原先的内容')
cursor.execute(sql, value)
db.commit()
print('数据更新成功!')
except pymysql.Error as error:
print("数据更新失败:" + str(error))
db.rollback() # 如果发生错误则回滚
删除表中数据
import pymysql
db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接
cursor = db.cursor()#创建一个游标对象
try:
sql="DELETE FROM table1 where Name=%s"
value=('姓名1')
cursor.execute(sql,value)
db.commit()
print('Date Deleted Successfully')
except pymysql.Error as error:
print("数据删除失败:" + str(error))
db.rollback() # 如果发生错误则回滚
删除表中数据
import pymysql
db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接
cursor = db.cursor()#创建一个游标对象
try:
#删除表
sql="DROP TABLE IF EXISTS 表名"
cursor.execute(sql)
db.commit()
print('表删除成功')
except pymysql.Error as error:
print("表删除失败:" + str(error))
db.rollback() # 如果发生错误则回滚
cursor游标对象
概念
- 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。
- 把集合操作转换成单个记录处理方式。
- 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。
- 游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
用途
①执行命令,
- callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
- execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
- executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
- nextset(self):移动到下一个结果集
②接收返回值
- fetchall(self):接收全部的返回结果行.
- fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
- fetchone(self):返回一条结果行.
- scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一 行移动value条.
- (24条消息) Python连接MySQL数据库_Python全栈之巅-CSDN博客_python 连接mysql数据库
- (24条消息) SQL语句大全实例_飞龙在天的博客-CSDN博客_sql语句大全实例教程
- cursor() — 数据库连接操作 python - 程序员新兵 - 博客园 (cnblogs.com)
- Python3 MySQL 数据库连接 – PyMySQL 驱动 | 菜鸟教程 (runoob.com)