PythonMySQL
Python MySQL Connector是一个Python驱动程序,有助于集成Python和 MySQL。这个Python MySQL 库允许Python和 MySQL 数据类型之间的转换。 MySQL Connector API 使用纯Python实现,不需要任何第三方库。
本Python MySQL 教程将帮助您从基础到进阶学习如何在Python中使用 MySQL,包括在优秀Python MySQL 示例的帮助下详细解释的所有必要功能和查询。所以,让我们开始吧。
安装
要安装Python-mysql-connector模块,必须在其系统上预装Python和 PIP。如果已经安装了Python和 pip,请在终端中键入以下命令。
pip3 install mysql-connector-python
注意:如果Python不存在,请参阅如何在 Windows 和 Linux 上安装Python ?并按照提供的说明进行操作。
连接到 MySQL 服务器
我们可以使用 connect() 方法连接到 MySQL 服务器。
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password"
)
print(dataBase)
# Disconnecting from the server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
# creating database
cursorObject.execute("CREATE DATABASE gfg")
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
# creating table
studentRecord = """CREATE TABLE STUDENT (
NAME VARCHAR(20) NOT NULL,
BRANCH VARCHAR(50),
ROLL INT NOT NULL,
SECTION VARCHAR(5),
AGE INT
)"""
# table created
cursorObject.execute(studentRecord)
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
sql = "INSERT INTO STUDENT (NAME, BRANCH, ROLL, SECTION, AGE)\
VALUES (%s, %s, %s, %s, %s)"
val = ("Ram", "CSE", "85", "B", "19")
cursorObject.execute(sql, val)
dataBase.commit()
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
sql = "INSERT INTO STUDENT (NAME, BRANCH, ROLL, SECTION, AGE)\
VALUES (%s, %s, %s, %s, %s)"
val = [("Nikhil", "CSE", "98", "A", "18"),
("Nisha", "CSE", "99", "A", "18"),
("Rohan", "MAE", "43", "B", "20"),
("Amit", "ECE", "24", "A", "21"),
("Anil", "MAE", "45", "B", "20"),
("Megha", "ECE", "55", "A", "22"),
("Sita", "CSE", "95", "A", "19")]
cursorObject.executemany(sql, val)
dataBase.commit()
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT NAME, ROLL FROM STUDENT"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT * FROM STUDENT where AGE >=20"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT * FROM STUDENT ORDER BY NAME DESC"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT * FROM STUDENT LIMIT 2 OFFSET 1"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "UPDATE STUDENT SET AGE = 23 WHERE Name ='Ram'"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "DELETE FROM STUDENT WHERE NAME = 'Ram'"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query ="DROP TABLE Student;"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
Python3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query ="Drop Table if exists Employee;"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
输出:
注意:有关更多信息,请参阅使用 MySQL-Connector Python连接 MySQL 数据库。
创建数据库
连接到 MySQL 服务器后,让我们看看如何使用Python创建 MySQL 数据库。为此,我们将首先创建一个 cursor() 对象,然后将 SQL 命令作为字符串传递给 execute() 方法。创建数据库的 SQL 命令是 -
CREATE DATABASE DATABASE_NAME
示例:使用Python创建 MySQL 数据库
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
# creating database
cursorObject.execute("CREATE DATABASE gfg")
输出:
创建表
对于创建表,我们将遵循类似的方法,将 SQL 命令编写为字符串,然后将其传递给游标对象的 execute() 方法。用于创建表的 SQL 命令是 -
CREATE TABLE
(
column_name_1 column_Data_type,
column_name_2 column_Data_type,
:
:
column_name_n column_Data_type
);
示例:使用Python创建 MySQL 表
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
# creating table
studentRecord = """CREATE TABLE STUDENT (
NAME VARCHAR(20) NOT NULL,
BRANCH VARCHAR(50),
ROLL INT NOT NULL,
SECTION VARCHAR(5),
AGE INT
)"""
# table created
cursorObject.execute(studentRecord)
# disconnecting from server
dataBase.close()
输出:
将数据插入表格
将数据插入 MySQL 表中使用Insert into查询。
句法:
INSERT INTO table_name (column_names) VALUES (data)
示例 1:插入单行
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
sql = "INSERT INTO STUDENT (NAME, BRANCH, ROLL, SECTION, AGE)\
VALUES (%s, %s, %s, %s, %s)"
val = ("Ram", "CSE", "85", "B", "19")
cursorObject.execute(sql, val)
dataBase.commit()
# disconnecting from server
dataBase.close()
输出:
示例 2:插入多行
要一次插入多个值,请使用 executemany() 方法。此方法遍历参数序列,将当前参数传递给 execute 方法。
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
sql = "INSERT INTO STUDENT (NAME, BRANCH, ROLL, SECTION, AGE)\
VALUES (%s, %s, %s, %s, %s)"
val = [("Nikhil", "CSE", "98", "A", "18"),
("Nisha", "CSE", "99", "A", "18"),
("Rohan", "MAE", "43", "B", "20"),
("Amit", "ECE", "24", "A", "21"),
("Anil", "MAE", "45", "B", "20"),
("Megha", "ECE", "55", "A", "22"),
("Sita", "CSE", "95", "A", "19")]
cursorObject.executemany(sql, val)
dataBase.commit()
# disconnecting from server
dataBase.close()
输出:
获取数据
我们可以通过以下方式在 MySQL 表上使用选择查询 -
- 为了从表中选择特定的属性列,我们编写了属性名称。
SELECT attr1, attr2 FROM table_name
- 为了从表中选择所有属性列,我们使用星号“*”符号。
SELECT * FROM table_name
示例:使用Python从 MySQL 表中选择数据
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT NAME, ROLL FROM STUDENT"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
输出:
哪里条款
MySQL 数据库中使用 where 子句根据所需条件过滤数据。您可以使用 where 子句获取、删除或更新 MySQL 数据库中的一组特定数据。
句法:
SELECT column1, column2, …. cloumnN FROM [TABLE NAME] WHERE [CONDITION];
示例:使用Python的 MySQL 中的 Where 子句
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT * FROM STUDENT where AGE >=20"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
输出:
('Rohan', 'MAE', 43, 'B', 20)
('Amit', 'ECE', 24, 'A', 21)
('Anil', 'MAE', 45, 'B', 20)
('Megha', 'ECE', 55, 'A', 22)
按条款排序
OrderBy 用于按升序或降序排列结果集。默认情况下,它总是按升序排列,除非提到“DESC”,它按降序排列。 “ASC”也可用于明确地按升序排列。但是,通常不会这样做,因为默认已经这样做了。
句法:
SELECT column1, column2
FROM table_name
ORDER BY column_name ASC|DESC;
示例:使用Python的 MySQL 中的 Order By 子句
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT * FROM STUDENT ORDER BY NAME DESC"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
输出:
限制条款
Limit 子句在 SQL 中用于控制或限制从生成的查询返回的结果集中的记录数。默认情况下,SQL 从顶部开始给出所需数量的记录,但它允许使用 OFFSET 关键字。 OFFSET 允许您从自定义行开始并获得所需数量的结果行。
句法:
SELECT * FROM tablename LIMIT limit;
SELECT * FROM tablename LIMIT limit OFFSET offset;
示例:使用Python的 MySQL 中的限制子句
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "SELECT * FROM STUDENT LIMIT 2 OFFSET 1"
cursorObject.execute(query)
myresult = cursorObject.fetchall()
for x in myresult:
print(x)
# disconnecting from server
dataBase.close()
输出:
('Nikhil', 'CSE', 98, 'A', 18)
('Nisha', 'CSE', 99, 'A', 18)
更新数据
更新查询用于更改数据库中的现有值。通过使用更新,可以更正或更新特定值。它只影响数据而不影响表的结构。此命令提供的基本优点是它可以保持表格准确。
句法:
UPDATE tablename
SET ="new value"
WHERE ="old value";
示例:使用Python更新 MySQL 表
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "UPDATE STUDENT SET AGE = 23 WHERE Name ='Ram'"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
输出:
从表中删除数据
我们可以使用 Delete 查询从 MySQL 中的表中删除数据。
句法:
DELETE FROM TABLE_NAME WHERE ATTRIBUTE_NAME = ATTRIBUTE_VALUE
示例:使用Python从 MySQL 表中删除数据
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query = "DELETE FROM STUDENT WHERE NAME = 'Ram'"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
输出:
删除表
Drop 命令影响表的结构而不是数据。它用于删除已经存在的表。对于不确定要删除的表是否存在的情况,使用 DROP TABLE IF EXISTS 命令。这两种情况都将在以下示例中处理。
句法:
DROP TABLE tablename;
DROP TABLE IF EXISTS tablename;
首先,让我们看看我们数据库中的表列表。
我们可以看到学生有两张桌子,所以我们去掉第二张桌子。
示例 1:使用Python在 MySQL 中删除表
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query ="DROP TABLE Student;"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
输出:
示例 2:删除表(如果存在)
蟒蛇3
# importing required libraries
import mysql.connector
dataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password",
database = "gfg"
)
# preparing a cursor object
cursorObject = dataBase.cursor()
query ="Drop Table if exists Employee;"
cursorObject.execute(query)
dataBase.commit()
# disconnecting from server
dataBase.close()
上面的例子不会产生任何错误和输出,因为我们使用了 Drop Table is exists 查询。如果我们将简单地使用 Drop 表 Employee 那么ProgrammingError: 1051 (42S02): Unknown table 'gfg.Employee'被引发。
Python MySQL 练习
使用表格
- 如何使用Python将值插入 MySQL 服务器表?
- 如何使用Python显示 MySQL 中的所有表?
- 如何使用Python在 MySQL 中获取表的大小?
- 如何在Python中重命名 MySQL 表?
- 如何使用Python在 MySQL 中复制表?
- 如何使用Python在 MySQL 中复制表定义?
- 使用Python插入 MySQL 数据库后获取 id
- 如何使用Python在 MySQL 中使用 IF 语句
- 使用Python从MySql中的表中删除元素
- 使用Python授予 MySQL 表和列权限
处理列
- 如何在Python中计算 MySQL 表中的行数?
- 使用Python计算 SQL 表列
- 如何在Python中向 MySQL 表添加列?
- 如何使用Python获取 MySQL 表列的最小值和最大值?
- 如何使用Python跨 MySQL 表的列执行算术?
- 如何使用Python连接 MySQL 表的列值?
- 使用Python向 MySQL 中的列添加注释
- 使用Python授予 MySQL 表和列权限
Python MySQL 应用程序和项目
- 使用 Tkinter 在Python中创建 MySQL 数据库登录页面
- 在Python中使用 MySQL-Connector 和 XAMPP 从数据库中提取数据