python 数据库驱动开发实例_吴裕雄--天生自然 PYTHON3开发学习:MySQL - mysql-connector 驱动...

Python 3教程

Python3 教程

Python3 环境搭建

Python3 基础语法

Python3 基本数据类型

Python3 解释器

Python3 注释

Python3 运算符

Python3 数字(Number)

Python3 字符串

Python3 列表

Python3 元组

Python3 字典

Python3 集合

Python3 编程第一步

Python3 条件控制

Python3 循环语句

Python3 迭代器与生成器

Python3 函数

Python3 数据结构

Python3 模块

Python3 输入和输出

Python3 File

Python3 OS

Python3 错误和异常

Python3 面向对象

Python3 标准库概览

Python3 实例

Python 测验

Python3 高级教程

Python3 正则表达式

Python3 CGI编程

Python3 MySQL(mysql-connector)

Python3 MySQL(PyMySQL)

Python3 网络编程

Python3 SMTP发送邮件

Python3 多线程

Python3 XML 解析

Python3 JSON

Python3 日期和时间

Python3 内置函数

Python MongoDB

Python uWSGI 安装配置

Python3 CGI编程 Python3 MySQL 数据库连接 – PyMySQL 驱动

Python MySQL- mysql-connector 驱动

MySQL 是最流行的关系型数据库管理系统,如果你不不熟悉 MySQL,可以阅读我们的 MySQL 教程。

本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器。

我们可以使用 pip 命令来安装 mysql-connector:

python-m pip install mysql-connector

使用以下代码测试 mysql-connector 是否安装成功:

demo_mysql_test.py:importmysql.connector

执行以上代码,如果没有产生错误,表明安装成功。

创建数据库连接

可以使用以下代码来连接数据库:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost", #数据库主机地址

user="yourusername", #数据库用户名

passwd="yourpassword" #数据库密码

)print(mydb)

创建数据库

创建数据库使用"CREATE DATABASE"语句,以下创建一个名为 runoob_db 的数据库:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456")

mycursor=mydb.cursor()

mycursor.execute("CREATE DATABASE runoob_db")

创建数据库前我们也可以使用"SHOW DATABASES"语句来查看数据库是否存在:

demo_mysql_test.py:

输出所有数据库列表:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456")

mycursor=mydb.cursor()

mycursor.execute("SHOW DATABASES")for x inmycursor:print(x)

或者我们可以直接连接数据库,如果数据库不存在,会输出错误信息:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

创建数据表

创建数据表使用"CREATE TABLE"语句,创建数据表前,需要确保数据库已存在,以下创建一个名为 sites 的数据表:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")

执行成功后,我们可以看到数据库创建的数据表 sites,字段为 name 和 url。

我们也可以使用"SHOW TABLES"语句来查看数据表是否已存在:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("SHOW TABLES")for x inmycursor:print(x)

主键设置

创建表的时候我们一般都会设置一个主键(PRIMARY KEY),我们可以使用"INT AUTO_INCREMENT PRIMARY KEY" 语句来创建一个主键,主键起始值为 1,逐步递增。

如果我们的表已经创建,我们需要使用 ALTER TABLE 来给表添加主键:

demo_mysql_test.py:

给 sites 表添加主键。importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

如果你还未创建 sites 表,可以直接使用以下代码创建。

demo_mysql_test.py:

给表创建主键。importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")

插入数据

插入数据使用"INSERT INTO"语句:

demo_mysql_test.py:

向 sites 表插入一条记录。importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "INSERT INTO sites (name, url) VALUES (%s, %s)"val= ("RUNOOB", "https://www.runoob.com")

mycursor.execute(sql, val)

mydb.commit()#数据表内容有更新,必须使用到该语句

print(mycursor.rowcount, "记录插入成功。")

执行代码,输出结果为:1记录插入成功

批量插入

批量插入使用 executemany() 方法,该方法的第二个参数是一个元组列表,包含了我们要插入的数据:

demo_mysql_test.py:

向 sites 表插入多条记录。importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "INSERT INTO sites (name, url) VALUES (%s, %s)"val=[

('Google', 'https://www.google.com'),

('Github', 'https://www.github.com'),

('Taobao', 'https://www.taobao.com'),

('stackoverflow', 'https://www.stackoverflow.com/')

]

mycursor.executemany(sql, val)

mydb.commit()#数据表内容有更新,必须使用到该语句

print(mycursor.rowcount, "记录插入成功。")

执行代码,输出结果为:4记录插入成功。

执行以上代码后,我们可以看看数据表的记录:

如果我们想在数据记录插入后,获取该记录的 ID ,可以使用以下代码:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "INSERT INTO sites (name, url) VALUES (%s, %s)"val= ("Zhihu", "https://www.zhihu.com")

mycursor.execute(sql, val)

mydb.commit()print("1 条记录已插入, ID:", mycursor.lastrowid)

执行代码,输出结果为:1 条记录已插入, ID: 6查询数据

查询数据使用 SELECT 语句:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("SELECT * FROM sites")

myresult= mycursor.fetchall() #fetchall() 获取所有记录

for x inmyresult:print(x)

执行代码,输出结果为:

(1, 'RUNOOB', 'https://www.runoob.com')

(2, 'Google', 'https://www.google.com')

(3, 'Github', 'https://www.github.com')

(4, 'Taobao', 'https://www.taobao.com')

(5, 'stackoverflow', 'https://www.stackoverflow.com/')

(6, 'Zhihu', 'https://www.zhihu.com')

也可以读取指定的字段数据:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("SELECT name, url FROM sites")

myresult=mycursor.fetchall()for x inmyresult:print(x)

执行代码,输出结果为:

('RUNOOB', 'https://www.runoob.com')

('Google', 'https://www.google.com')

('Github', 'https://www.github.com')

('Taobao', 'https://www.taobao.com')

('stackoverflow', 'https://www.stackoverflow.com/')

('Zhihu', 'https://www.zhihu.com')

如果我们只想读取一条数据,可以使用 fetchone() 方法:

demo_mysql_test.py:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("SELECT * FROM sites")

myresult=mycursor.fetchone()print(myresult)

执行代码,输出结果为:

(1, 'RUNOOB', 'https://www.runoob.com')

where 条件语句

如果我们要读取指定条件的数据,可以使用 where 语句:

demo_mysql_test.py

读取 name 字段为 RUNOOB 的记录:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "SELECT * FROM sites WHERE name ='RUNOOB'"mycursor.execute(sql)

myresult=mycursor.fetchall()for x inmyresult:print(x)

执行代码,输出结果为:

(1, 'RUNOOB', 'https://www.runoob.com')

也可以使用通配符%:

demo_mysql_test.pyimportmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "SELECT * FROM sites WHERE url LIKE '%oo%'"mycursor.execute(sql)

myresult=mycursor.fetchall()for x inmyresult:print(x)

执行代码,输出结果为:

(1, 'RUNOOB', 'https://www.runoob.com')

(2, 'Google', 'https://www.google.com')

为了防止数据库查询发生 SQL 注入的攻击,我们可以使用%s 占位符来转义查询的条件:

demo_mysql_test.pyimportmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "SELECT * FROM sites WHERE name = %s"na= ("RUNOOB", )

mycursor.execute(sql, na)

myresult=mycursor.fetchall()for x inmyresult:print(x)

排序

查询结果排序可以使用 ORDER BY 语句,默认的排序方式为升序,关键字为 ASC,如果要设置降序排序,可以设置关键字 DESC。

demo_mysql_test.py

按 name 字段字母的升序排序:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "SELECT * FROM sites ORDER BY name"mycursor.execute(sql)

myresult=mycursor.fetchall()for x inmyresult:print(x)

执行代码,输出结果为:

(3, 'Github', 'https://www.github.com')

(2, 'Google', 'https://www.google.com')

(1, 'RUNOOB', 'https://www.runoob.com')

(5, 'stackoverflow', 'https://www.stackoverflow.com/')

(4, 'Taobao', 'https://www.taobao.com')

(6, 'Zhihu', 'https://www.zhihu.com')

降序排序实例:

demo_mysql_test.py

按 name 字段字母的降序排序:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

sql= "SELECT * FROM sites ORDER BY name DESC"mycursor.execute(sql)

myresult=mycursor.fetchall()for x inmyresult:print(x)

执行代码,输出结果为:

(6, 'Zhihu', 'https://www.zhihu.com')

(4, 'Taobao', 'https://www.taobao.com')

(5, 'stackoverflow', 'https://www.stackoverflow.com/')

(1, 'RUNOOB', 'https://www.runoob.com')

(2, 'Google', 'https://www.google.com')

(3, 'Github', 'https://www.github.com')

Limit

如果我们要设置查询的数据量,可以通过"LIMIT"语句来指定

demo_mysql_test.py

读取前3条记录:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("SELECT * FROM sites LIMIT 3")

myresult=mycursor.fetchall()for x inmyresult:print(x)

执行代码,输出结果为:

(1, 'RUNOOB', 'https://www.runoob.com')

(2, 'Google', 'https://www.google.com')

(3, 'Github', 'https://www.github.com')

也可以指定起始位置,使用的关键字是 OFFSET:

demo_mysql_test.py

从第二条开始读取前3条记录:importmysql.connector

mydb=mysql.connector.connect(

host="localhost",

user="root",

passwd="123456",

database="runoob_db")

mycursor=mydb.cursor()

mycursor.execute("SELECT * FROM sites LIMIT 3 OFFSET 1") #0 为 第一条,1 为第二条,以此类推

myresult=mycursor.fetchall()for x inmyresult:print(x)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mysql-connector-python-2.0.5.tar.gz是MySQL官方提供的用于Python编程语言的MySQL连接器。该连接器可以让我们通过Python程序与MySQL数据库进行交互和通信。 MySQL是一种常用的关系型数据库管理系统,而Python是一种流行的编程语言。当我们需要在Python程序中访问和操作MySQL数据库时,使用这个连接器可以简化我们的开发工作。 MySQL Connector/Python是一个纯Python实现的MySQL驱动程序,它遵循Python数据库API v2.0规范。它提供了一组API,使得我们可以轻松地连接到MySQL数据库服务器,并且执行各种数据库操作,如查询、插入、更新和删除数据等。 通过使用这个连接器,我们可以在Python程序中创建与MySQL数据库的连接对象,通过这个对象可以发送SQL查询语句到数据库并获得结果。我们可以使用标准的SQL语句来查询、插入和更新数据库中的数据。同时,该连接器还提供了一些额外的功能,如事务管理和连接池管理。 MySQL Connector/Python支持多种操作系统和Python版本,并提供了友好的接口和文档,使得开发者能够快速上手并进行数据库操作。我们可以从MySQL官方网站上获取到这个连接器的源代码,然后进行安装和配置,就可以在我们的Python程序中使用它了。 总之,mysql-connector-python-2.0.5.tar.gz是一个用于Python编程语言的MySQL连接器,它可以方便地连接和操作MySQL数据库。使用这个连接器,我们可以轻松地在Python程序中进行数据库操作,使得我们的开发工作更加高效和便捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值