📜  PythonMySQL

📅  最后修改于: 2022-05-13 01:55:44.293000             🧑  作者: Mango

PythonMySQL

Python MySQL Connector是一个Python驱动程序,有助于集成Python和 MySQL。这个Python MySQL 库允许Python和 MySQL 数据类型之间的转换。 MySQL Connector API 使用纯Python实现,不需要任何第三方库。

python mysql 教程

Python MySQL 教程将帮助您从基础到进阶学习如何在Python中使用 MySQL,包括在优秀Python MySQL 示例的帮助下详细解释的所有必要功能和查询。所以,让我们开始吧。

安装

要安装Python-mysql-connector模块,必须在其系统上预装Python和 PIP。如果已经安装了Python和 pip,请在终端中键入以下命令。

pip3 install mysql-connector-python

注意:如果Python不存在,请参阅如何在 Windows 和 Linux 上安装Python ?并按照提供的说明进行操作。

python mysql连接器安装

连接到 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")

输出:

Pyhton mysql 创建数据库

创建表

对于创建表,我们将遵循类似的方法,将 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()

输出:

创建表 python mysql

将数据插入表格

将数据插入 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()

输出:

使用 Python 在 mysql 数据库中插入 1 行

示例 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()

输出:

python mysql 插入多行

获取数据

我们可以通过以下方式在 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()

输出:

python mysql 选择查询

哪里条款

MySQL 数据库中使用 where 子句根据所需条件过滤数据。您可以使用 where 子句获取、删除或更新 MySQL 数据库中的一组特定数据。

句法:

示例:使用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()

输出:

python mysql ordery by

限制条款

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()

输出:

python mysql 更新表

从表中删除数据

我们可以使用 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()

输出:

python mySQL 从表中删除

删除表

Drop 命令影响表的结构而不是数据。它用于删除已经存在的表。对于不确定要删除的表是否存在的情况,使用 DROP TABLE IF EXISTS 命令。这两种情况都将在以下示例中处理。

句法:

DROP TABLE tablename;
DROP TABLE IF EXISTS tablename;

首先,让我们看看我们数据库中的表列表。

python mysql 删除表

我们可以看到学生有两张桌子,所以我们去掉第二张桌子。

示例 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()

输出:

python mysql 删除表

示例 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 从数据库中提取数据