Python MySQL 教程
Python MySQL Connector是一个 Python 驱动程序,有助于集成 Python 和 MySQL。这个 Python MySQL 库允许在 Python 和 MySQL 数据类型之间进行转换。MySQL Connector API 使用纯 Python 实现,不需要任何第三方库。
本Python MySQL 教程将帮助您学习如何从基础到高级将 MySQL 与 Python 结合使用,包括借助优秀的 Python MySQL 示例详细解释的所有必要函数和查询。那么,让我们开始吧。
安装
要安装Python-mysql-connector模块,必须在他们的系统上预装 Python 和 PIP。如果 Python 和 pip 已安装,请在终端中键入以下命令。
pip3 install mysql-connector-python
注意:如果 Python 不存在,请查看如何在Windows和Linux上安装 Python ?并按照提供的说明进行操作。
连接到 MySQL 服务器
我们可以使用 connect() 方法连接到 MySQL 服务器。
# importing required libraries
import mysql.connectordataBase = mysql.connector.connect(
host ="localhost",
user ="user",
passwd ="password"
)print(dataBase)# Disconnecting from the server
dataBase.close()
输出:
<mysql.connector.connection_cext.CMySQLConnection 对象在 0x7f73f0191d00>
注意:有关更多信息,请参阅使用 MySQL-Connector Python 连接 MySQL 数据库。
创建数据库
连接到 MySQL 服务器后,让我们看看如何使用 Python创建 MySQL 数据库。为此,我们将首先创建一个 cursor() 对象,然后将 SQL 命令作为字符串传递给 execute() 方法。创建数据库的 SQL 命令是——
CREATE DATABASE DATABASE_NAME
示例:使用 Python 创建 MySQL 数据库
# importing required libraries
import mysql.connectordataBase = 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 表
# importing required libraries
import mysql.connectordataBase = 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 query。
句法:
INSERT INTO table_name (column_names) VALUES (data)
示例 1:插入单行
- 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()
|
输出:
示例 2:插入多行
要一次插入多个值,使用 executemany() 方法。此方法遍历参数序列,将当前参数传递给 execute 方法。
- 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()
|
输出:
获取数据
我们可以通过以下方式对 MySQL 表使用select 查询-
- 为了从表中选择特定的属性列,我们编写属性名称。
从表名中选择 attr1、attr2
- 为了从表中选择所有属性列,我们使用星号“*”符号。
选择 * FROM 表名
示例:使用Python从 MySQL 表中选择数据
- 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()
|
输出:
哪里子句
MySQL数据库中使用where子句根据需要的条件过滤数据。您可以使用 where 子句获取、删除或更新 MySQL 数据库中的特定数据集。
句法:
选择第 1 列,第 2 列,...。来自[表名]的第N列,其中[条件];
示例:使用 Python 的 MySQL 中的 Where 子句
- 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()
|
输出:
('罗汉','MAE',43,'B',20) ('阿米特','ECE',24,'A',21) ('阿尼尔','MAE',45,'B',20) ('Megha','ECE',55,'A',22)
按条款排序
OrderBy用于按升序或降序排列结果集。默认情况下,除非提到“DESC”,否则它始终按升序排列,它按降序排列。“ASC”也可以用来明确地按升序排列。但是,通常不会这样做,因为默认已经这样做了。
句法:
选择第 1 列,第 2 列 FROM 表名 按列名 ASC|DESC 排序;
示例:使用 Python 的 MySQL 中的 Order By 子句
- 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()
|
输出:
限制条款
Limit 子句在SQL 中用于控制或限制从生成的查询返回的结果集中的记录数。默认情况下,SQL 从顶部开始给出所需的记录数,但它允许使用 OFFSET 关键字。OFFSET 允许您从自定义行开始并获得所需数量的结果行。
句法:
SELECT * FROM 表名 LIMIT 限制; SELECT * FROM tablename LIMIT 限制 OFFSET 偏移量;
示例:使用 Python 的 MySQL 中的限制子句
- 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()
|
输出:
('Nikhil', 'CSE', 98, 'A', 18) ('Nisha','CSE',99,'A',18)
更新数据
更新查询用于更改数据库中的现有值。通过使用更新,可以更正或更新特定值。它只影响数据而不影响表的结构。此命令提供的基本优点是它保持表格准确。
句法:
更新表名 SET =“新值” WHERE =“旧值”;
示例:使用 Python 更新 MySQL 表
- 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()
|
输出:
从表中删除数据
我们可以使用Delete 查询从 MySQL 中的表中删除数据。
句法:
从 TABLE_NAME 中删除 ATTRIBUTE_NAME = ATTRIBUTE_VALUE
示例:使用 Python 从 MySQL 表中删除数据
- 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()
|
输出:
删除表
删除命令影响表的结构而不是数据。它用于删除已经存在的表。对于不确定要删除的表是否存在的情况,使用 DROP TABLE IF EXISTS 命令。这两种情况都将在以下示例中处理。
句法:
DROP TABLE 表名; 如果存在表名,则删除表;
首先,让我们看看我们数据库中的表列表。
我们可以看到有两个学生表,所以让我们删除第二个表。
示例 1:使用 Python 在 MySQL 中删除表
- 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()
|
输出:
示例 2:删除表(如果存在)
- 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()
|
上面的例子,不会产生任何错误和输出,因为我们使用了 Drop Table is exists 查询。如果我们将简单地使用 Drop table Employee 那么ProgrammingError: 1051 (42S02): Unknown table 'gfg.Employee'被提出。
Python MySQL 练习
使用表格
- 如何使用 Python 将值插入 MySQL 服务器表?
- 如何使用 Python 显示 MySQL 中的所有表?
- 如何使用 Python 在 MySQL 中获取表的大小?
- 如何在 Python 中重命名 MySQL 表?
- 如何使用 Python 在 MySQL 中复制表?
- 如何使用 Python 在 MySQL 中复制表定义?
- 使用 Python 获取 INSERT 到 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 从数据库中提取数据
Python MySQL 教程相关推荐
- python mysql教程视频_第四课:MySQL环境安装-(崔庆才_Python3爬虫入门到精通课程视频 34课)总结...
输入localhost密码123456 Linux下安装mysql 命令输入Sudo su接着sudo apt-get install mysql-server mysql-client 安装设置密码 ...
- Python MySQL示例教程
Welcome to Python MySQL example tutorial. MySQL is one of the most widely used database and python p ...
- ❤️ 万字Python MySQL从入门到精通详细教程❤️ 再也不用担心学不会数据库了❤️
文章目录 前言 ⭐集合三万字基础教程⭐ 一.SQL详细教程 二.mysql入门详细教程 ⭐转python mysql⭐ 三.Python MySQL入门连接 3.1基本环境准备 3.2连接 四.Pyt ...
- python实用教程答案 郑阿奇_《》 mysql实用教程郑阿奇实验报告答案
<> mysql实用教程郑阿奇实验报告答案 python实用教程郑阿奇2020-09-28 19:50:10人已围观 SQL Server 实用教程(第3版)课后实验答案 郑阿奇主编的 邮 ...
- Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...
Python入门教程:很多人推荐学 Python 入 IT ,但是如果学完 Python 找不到工作怎么办,这也是很多人担心的问题. 很多人推荐通过学习 Python 入行 IT 一是因为 Pytho ...
- 大学python用什么教材-Python大学教程(普通高等教育十三五规划教材)
导语 内容提要 吕云翔.赵天宇.张元编著的<Python大学教程>介绍了使用Python语言进行程序设计的方法及其应用. 全书共14章,分为三部分.第一部分为基础篇(第1-5章),主要介绍 ...
- python下载教程pdf-Python教程PDF合集下载
Python教程PDF合集下载,大量Python学习资料大合辑,目录如下: BanditAlgorithms.pdf FlaskWeb开发基于Python.pdf fluentpython.pdf P ...
- python基础教程是什么意思-python基础教程都有什么?
分享一下传智播客的python基础教程 第一阶段 Python核心编程 可掌握的核心能力 1.掌握Python基础语法,具备基础的编程能力; 2.建立起编程思维以及面向对象程序设计思想.解决的现实问题 ...
- python快速编程入门黑马-新手如何快速入门Python编程?/开发python入门教程
Python从入门到实践的教程是什么? 第一阶段Python与Linux数据这是Python的入段,也是帮助零基础学员打好基础的重要阶段,让零基础学员可以具备基础的编程能力,并掌握MySQL进阶内容. ...
- python核心教程百度云_Python核心技术与实战 共44讲 中文pdf高清版
人工智能时代下,Python毫无疑问是最热的编程语言.有人夸它功能强大还上手轻松,有人说它学习曲线不那么陡峭,但是更多的人,在推开Python的大门后却发现,Python入门容易但精通却不易,Pyth ...
最新文章
- 重点:怎样正确的使用QThread类(注:包括推荐使用QThread线程的新方法QObject::moveToThread)...
- java 关于分页的实现
- java爬虫框架动态_java爬虫框架webmagic
- phpstorm知识点
- 【剑指offer 07】用迭代和递归两种方法重构二叉树(python实现)
- oracle之单行函数2
- 李飞飞之后谷歌再失华裔高管,谷歌AI中国中心总裁李佳离职创业
- 子div撑不开父div的几种解决方法
- 苹果开发者中心宕机8天终于回归
- wireshark检测iphone-ios是否感染XcodeGhost病毒
- 如何在开源世界打造自己的明星 Project?
- Environment 的使用
- 为知笔记Linux一键安装版
- Android 伪装IP 亲测可行
- SAP中记账汇率和预算汇率的应用配置分析
- mysqlclient安装失败解决方案
- Leetcode 875:爱吃香蕉的珂珂 Koko Eating Bananas
- shell脚本-----99乘法表过程解析
- 因缺失增量信息而导致recoverseg恢复失败的情况
- 【Golang实战】——XPath解析网页