欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 连接 MySQL数据库以及一些对数据库的操作

程序员文章站 2022-05-17 18:49:35
...

Python 连接 MySQL数据库

Python标准数据库接口为Python DB-API,为我们的开发人员提供了数据库应用编程接口。

1、Python DB-API使用流程

  • 导入API模块
  • 获取与数据库的连接
  • 执行SQL语句和存储过程
  • 关闭数据库连接

2、安装MySQL-Connector

我们可以直接去MySQL-connector-python下载地址去下载
Python 连接 MySQL数据库以及一些对数据库的操作
上面有两个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)

查看结果如下:

Python 连接 MySQL数据库以及一些对数据库的操作

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。
Python 连接 MySQL数据库以及一些对数据库的操作
注意: 这里我是执行了一遍,所以注释了创建数据库的语句。

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, "记录插入成功")

显示结果
Python 连接 MySQL数据库以及一些对数据库的操作
查看插入结果

Python 连接 MySQL数据库以及一些对数据库的操作
注意: 涉及到对数据库内容的修改都需要使用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, "记录插入成功")

显示结果
Python 连接 MySQL数据库以及一些对数据库的操作

查看插入结果
Python 连接 MySQL数据库以及一些对数据库的操作

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)

查询结果

Python 连接 MySQL数据库以及一些对数据库的操作

读取一条数据

我们如果只想读取一条数据,可以使用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)

查看结果
Python 连接 MySQL数据库以及一些对数据库的操作

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)

查看结果
Python 连接 MySQL数据库以及一些对数据库的操作

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)

查看结果
Python 连接 MySQL数据库以及一些对数据库的操作

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, "条记录被删除")

查看结果
Python 连接 MySQL数据库以及一些对数据库的操作
查询结果
Python 连接 MySQL数据库以及一些对数据库的操作

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, "条记录被修改")

查看结果
Python 连接 MySQL数据库以及一些对数据库的操作
查询结果

Python 连接 MySQL数据库以及一些对数据库的操作

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)

删除结果
Python 连接 MySQL数据库以及一些对数据库的操作