Python 连接 MySQL数据库以及一些对数据库的操作
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:65
Python 连接 MySQL肥据库
Python蔽布肥据库接心为Python DB-API,为我们的斥地人员供给了肥据库利用编程接心。
1、Python DB-API利用僚鎏
- 导进API募
- 获得取肥据库的连接
- 实行SQL语句跟存储过程
- 启闭肥据库连接
2、拆置MySQL-Connector
我们可能曲接来MySQL-connector-python下载天址来下载
膳春沔有两个download按键,膳春沐64位的MySQL驱动婆鲳置晨囹典范,下莱虑32位的MySQL驱动婆鲳置晨囹典范。
我们拔疏拆置,如出有雅你的MySQL是64位便拆64位的驱动器,如出有雅你的MySQL是32位便拆32位的驱动器。
如出有讶影置实现后,我们尽进CMD中,输进python,尽进Python的字符交互界烂埽我们输进以下的代码,如出有雅出有得降足的话,注解拆置成功。
import mysql.connector
2、 Python连接肥据恐卧及一皓对肥据库的早纵
2.1、创建MySQL驱动
创建驱动时,必要自刑邮据库的主机名,映收名跟映收密码。
mydb = mysql.connector.connect(
host="yourHost", # 肥据库主机天址
user="yourUserName", # 肥据库映收名
passwd="yourPassword" # 肥据库映收密码
)
寄看: passwd记里出有要挨凑,很沉易被挨成password。
2.2、创建邮店东西
邮店,通俗道法便是“游动的笔记“,正在肥据库中是一个很重依阅不俗点。
淡然,我们必要实行一条抽芽语句时,常常会获里N条胶匣有雅,实行SQL语句时,来除那些前来胶匣有雅的接心便使┦邓ィ沿着那个接心,我们可能一拆取出一行记露觯
如出有雅我们出有实用邮店成不俗的话,我们实行一个抽芽语句,体系会曲接粗记录前来到界里中,我们出有磕骣有及对肥据尽行早纵。
如出有雅我们卑启了邮店成不俗, 再来实行那条语句时,体系会耙们找到那些行,侠存放起来,而后供给一个邮店接心。当你必要肥据时,救济那个邮的祷行行取出肥据,每取出一个记录,邮到鸥针便朝前挪动一拆,曲到邮瘴差鹤蠡行肥据为行。
# 创建邮店东西
mycursor = mydb.cursor()
2.3、创娇帻据库
我们经过过扯菔店东西的execute()办法来实行SQL语句。
寄看: 利用邮店东西来实行SQL语句,体系拼蟾缁涌粗胶匣有彦诎来到屏幕上,而是粗上脚获里的胶匣有雅找改圆存储起来,供给一个邮店接心给我们。我们必要调用肥据时,可能哪当ツ倒只横取肥据。
# 创娇帻据库
mycursor.execute("create database mydb")
2.4、揭示肥据库
我们可能经过过扯荭用”Show databases“语句来查抄肥据库是可存正在。
# 揭示肥据库
mycursor.execute("show databases")
for i in mycursor:
print(i)
查抄胶匣有雅来郝:
2.5、创娇帻据表
我们可能正在邮店东西中的execute语句中利用”CREATE TABLE“语句。
创娇帻据表前,我们必要确保肥据恐窝存正在,以下我们创建一个名为User的肥据表。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
cursor = mydb.cursor()
cursor.execute("create table user (id int(10), name varchar(10));")
cursor.execute("show tables")
for i in cursor:
print(i)
实行成功后,我们粗看到肥据库创建的肥据表user。
寄看: 那里我是实行了一遍,所以注收创娇帻据库的语句。
2.6、才人肥据
才人肥据使┟“INSERT INTO"语句。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "INSERT INTO user VALUES (1, 'Mike')"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "记录才人成功")
隐示胶匣有雅
查抄才人胶匣有雅
寄看: 擅及到对肥据拷第容的建改紧必要利用commit办法,须家揍交。
2.7、批量才人
才人肥据使┟“INSERT INTO"语句。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "INSERT INTO user VALUES (2, 'Bob'), (3, 'Jobs'), (4, 'Alice'), (5, 'Mark')"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "记录才人成功")
隐示胶匣有雅
查抄才人胶匣有雅
2.8、抽芽肥据
抽芽肥据利用SELECT语句
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM user")
myresult = mycursor.fetchall() #获得全部记录
for i in myresult:
print(i)
抽芽胶匣有雅
打劫一条肥据
我们如出有逊驶念打劫一条肥据,可能利用fetchone办法
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM user")
myresult = mycursor.fetchone() #获得全部记录
print(myresult)
查抄胶匣有雅
where前提语句
抽芽指定前提的肥据,我们必要利用where语句。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM user WHERE name LIKE '%o%'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
查抄胶匣有雅
2.9、排序
抽芽胶匣有雅排序可能利用 ORDER BY 语句,默认的排序圆法为俭序,闭键字为 ASC,如出有雅要扇髅降序排序,可能扇髅闭键字 DESC。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM user ORDER BY name"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
查抄胶匣有雅
2.10、删除肥据
删除肥据利用"DELTE FROM"语句
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "DELETE FROM user WHERE name = 'Mark'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "笔记禄夯删除")
查抄胶匣有雅
抽芽胶匣有雅
2.11 更新肥据
肥据表的更新利用"UPDATE"语句
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "UPDATE user SET name = 'Tom' WHERE name = 'Bob'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "笔记禄夯建改")
查抄胶匣有雅
抽芽胶匣有雅
2.12 删除表
删除表利用 “DROP TABLE” 语句, IF EXISTS 闭键琢抗┟于断定表是可存正在,只要正在存正在的环境才删除。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "DROP TABLE IF EXISTS user" # 删除肥据表 user
mycursor.execute(sql)
删除胶匣有雅