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

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)

删除结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44116023/article/details/109144870