MySQL 是最流行的关系型数据库管理系统。

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

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

python3 -m pip install mysql-connector

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

import mysql.connector

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

创建数据库连接

import mysql.connectormydb = mysql.connector.connect(host="localhost",       # 数据库主机地址user="root",    # 数据库用户名passwd=""   # 数据库密码
)print(mydb)
<mysql.connector.connection.MySQLConnection object at 0x0000019D2E6457F0>
#创建数据库import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',
)mycursor = mydb.cursor()mycursor.execute("CREATE DATABASE test2_db")mycursor.execute("SHOW DATABASES")for x in mycursor:print(x)
('information_schema',)
('mysql',)
('performance_schema',)
('sys',)
('test1_db',)
('test2_db',)
('test_db',)
#或者我们可以直接连接数据库,如果数据库不存在,会输出错误信息import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db'
)

创建数据表

# 创建数据表import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("CREATE TABLE test(name VARCHAR(255),url VARCHAR(255))")
#显示数据表import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SHOW TABLES")for x in mycursor:print(x)
('test',)
#设置主键import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("ALTER TABLE test ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

插入数据

#插入一条记录
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "INSERT INTO test (name,url) VALUES (%s,%s)"
val = ("ECUST","Xu Huan")
mycursor.execute(sql,val)mydb.commit()print(mycursor.rowcount,'记录插入成功')
1 记录插入成功
#插入多条记录
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "INSERT INTO test (name,url) VALUES (%s,%s)"
val = [("ECUST","Xu Huan"),("MIT","Wang Yizhuo"),("JHU","Nawukere"),]
mycursor.executemany(sql,val)#使用executemany()插入多条记录mydb.commit()print(mycursor.rowcount,'记录插入成功')
3 记录插入成功
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "INSERT INTO test (name,url) VALUES (%s,%s)"
val = [("PKU","Smith"),]
mycursor.executemany(sql,val)mydb.commit()print('一条记录已插入',mycursor.lastrowid)
一条记录已插入 7

查询数据

#查询数据可以用SELECT语句import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test")myresult = mycursor.fetchall() #fetchall()获取所有记录for i in myresult:print(i)
('ECUST', 'Xu Huan', 1)
('ECUST', 'Xu Huan', 2)
('ECUST', 'Xu Huan', 3)
('MIT', 'Wang Yizhuo', 4)
('JHU', 'Nawukere', 5)
('PKU', 'Smith', 6)
('PKU', 'Smith', 7)
#也可以读取指定的字段数据import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT name,id FROM test")myresult = mycursor.fetchall()for i in myresult:print(i)
('ECUST', 1)
('ECUST', 2)
('ECUST', 3)
('MIT', 4)
('JHU', 5)
('PKU', 6)
('PKU', 7)
#如果只想读取一条数据,可以使用fetchone()方法import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test")myresult = mycursor.fetchone() print(myresult)
('ECUST', 'Xu Huan', 1)
#对读取的数据有条件限制,可以使用where语句import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test WHERE name = 'ECUST'")myresult = mycursor.fetchall() for i in myresult:print(i)
('ECUST', 'Xu Huan', 1)
('ECUST', 'Xu Huan', 2)
('ECUST', 'Xu Huan', 3)
#也可以使用通配符%import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test WHERE name LIKE '%K%'")myresult = mycursor.fetchall() for i in myresult:print(i)
('PKU', 'Smith', 6)
('PKU', 'Smith', 7)
#为了防止数据库查询发生SQL注入的攻击,可以使用%s占位符转义查询的条件import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "SELECT * FROM test WHERE name = %s"
na = ('PKU',)mycursor.execute(sql, na)myresult = mycursor.fetchall() for i in myresult:print(i)
('PKU', 'Smith', 6)
('PKU', 'Smith', 7)
#排序import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test ORDER BY url")myresult = mycursor.fetchall() for i in myresult:print(i)
('JHU', 'Nawukere', 5)
('PKU', 'Smith', 6)
('PKU', 'Smith', 7)
('MIT', 'Wang Yizhuo', 4)
('ECUST', 'Xu Huan', 1)
('ECUST', 'Xu Huan', 2)
('ECUST', 'Xu Huan', 3)
#对数据基于某属性降序排序import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test ORDER BY name DESC")myresult = mycursor.fetchall() for i in myresult:print(i)
('PKU', 'Smith', 6)
('PKU', 'Smith', 7)
('MIT', 'Wang Yizhuo', 4)
('JHU', 'Nawukere', 5)
('ECUST', 'Xu Huan', 1)
('ECUST', 'Xu Huan', 2)
('ECUST', 'Xu Huan', 3)
#读取指定数量条数据
#限制读取数据起始数据
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("SELECT * FROM test LIMIT 4 OFFSET 2")
#用LIMIT语句指定查询数据量
#用OFFSET语句限制起始位置myresult = mycursor.fetchall() for i in myresult:print(i)
('ECUST', 'Xu Huan', 3)
('MIT', 'Wang Yizhuo', 4)
('JHU', 'Nawukere', 5)
('PKU', 'Smith', 6)

删除记录

#使用DELETE FROM语句删除记录
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()mycursor.execute("DELETE FROM test WHERE name LIKE '%K%'")mydb.commit()print(mycursor.rowcount, " 条记录删除")
2  条记录删除
#为了防止数据库查询发生 SQL 注入的攻击,我们可以使用 %s 占位符来转义删除语句的条件import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "DELETE FROM test WHERE name = %s"
na = ("ECUST",)mycursor.execute(sql,na)mydb.commit()print(mycursor.rowcount, " 条记录删除")
3  条记录删除

更新表数据

import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "UPDATE test SET name = 'princeton' WHERE name = 'JHU'"mycursor.execute(sql)mydb.commit()print(mycursor.rowcount,'条记录被修改')
2 条记录被修改
#为了防止数据库查询发生 SQL 注入的攻击,我们可以使用 %s 占位符来转义更新语句的条件
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = "UPDATE test SET name = %s WHERE name = %s"
na = ('JHU','princeton')mycursor.execute(sql,na)mydb.commit()print(mycursor.rowcount,'条记录被修改')
2 条记录被修改

删除表

#使用DROP TABLE语句删除表,使用IF EXISTS关键字判断表是否尊在
import mysql.connectormydb = mysql.connector.connect(host = 'localhost',user = 'root',passwd = '',database = 'test_db',
)mycursor = mydb.cursor()sql = 'DROP TABLE IF EXISTS test'mycursor.execute(sql)

【语法14】Python-mysql-connector驱动相关推荐

  1. python从云端数据库获取数据失败_使用%s的Python MySQL Connector数据库查询失败

    使用%s的Python MySQL Connector数据库查询失败 我有一个基本程序,应该查询包含用户信息的数据库.我正在尝试为特定用户选择信息并将其打印到控制台. 这是我的代码:import my ...

  2. 8、Python MySQL - mysql-connector 驱动

    一. 在线安装 mysql-connector :  pip install mysql-connector-python 二.操作流程 1.连接数据库信息: conn =  mysql.connec ...

  3. python mysql connector update_Python(Mysql Connector)如何刷新curs上的结果

    在开始提问之前,我应该告诉你我是新手.在 我的问题是我有两个游标(在不同的sql连接上),第一个游标从sql数据库获取结果,而第二个游标对结果中的行进行更改.问题是,一旦第二个游标发生更改,我想刷新第 ...

  4. Python MySQL示例教程

    Welcome to Python MySQL example tutorial. MySQL is one of the most widely used database and python p ...

  5. python3数据库框架_Python3 MySQL 数据库连接:安装pymysql(mysql数据库驱动), sqlalchemy(ORM框架)。...

    Python3 MySQL 数据库连接 python3使用mysql作为数据库,安装pymysql作为驱动,然后安装sqlalchemy框架 PyMySQL 驱动 安装: $ python3 -m p ...

  6. MySQL Connector / Python

    MySQL Connector / Python允许Python程序使用符合Python数据库API规范v2.0(PEP 249)的API访问MySQL数据库 . MySQL Connector / ...

  7. 安装 Python MySQL 驱动(mysql-connector-python、MySQL-python)

    1. 安装 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器. 目前,有两个MySQL驱动: mysql-co ...

  8. python mysql 驱动安装

    为什么80%的码农都做不了架构师?>>>    安装组件: python 3.4 + django 1.7 + mysql connector driver 系统平台: window ...

  9. django mysql connector,MySQL Connector / Python作为Django引擎?

    即使经过数小时和数小时的谷歌搜索,也无法找到答案.搜索堆栈溢出.我向你们保证,我已经看到了所有可能被视为相关的答案,但这些答案都没有解决我所面临的问题.无需再费周折 – 目前在shell中我可以这样做 ...

  10. django mysql connector,MySQL Connector / python在Django中不起作用

    我正在学习以MySQL为后端的Django. 我安装了Oracle的mysql连接器以与mysql连接. 但是,当我运行python manage.py时,出现此错误 Traceback (most ...

最新文章

  1. java initcause_Java 异常
  2. 开发者,什么是你真正关心的问题?| AI ProCon 2019
  3. 10.NoSQL数据库第2部分
  4. hdu 3987(最小割的边数)
  5. 数据库学习笔记---connect by的简单用法
  6. struct深层解析
  7. nodejs动态加载代码
  8. Ps快捷键及基础知识
  9. 光纤传输网的发展及其新的分层结构
  10. 不要随便借出你的帐号
  11. 植物图像识别python_python实现图像识别功能
  12. 怎么用手机修改服务器的网关,网关,手把手教你手机怎么改网关和IP
  13. 批量修改DNS记录的TTL值
  14. 优化理论16----Armijo-Goldstein准则、 Armijo-Goldstein搜索方法、python实现
  15. CommMonitor监控串口数据
  16. 互联网之父:文登•瑟夫
  17. 定义Definition、公理、定理、推论、命题和引理的区别
  18. 舆情监测系统对企业有什么作用,企业如何监测网络舆情危机?
  19. linux时间同步服务z
  20. 计算机二级身0准1,计算机二级-24-1.字处理题(小郑-准考证)

热门文章

  1. Android仿QQ圆形头像
  2. 微软的100道算法面试题(终结版)
  3. 用IE浏览器打开vsd文件
  4. PowerDesigner16.7 安装与配置
  5. tcpdump抓包神器详细介绍
  6. “2022锦江行”,维也纳国际酒店、丽柏酒店惊艳同台,中高端酒店再出标杆示范
  7. 防灾科技学院GKCTF2020_misc wp
  8. CV面试,坐下直接开撸代码,当场给了offer
  9. iptv和宽带双线合一
  10. 树莓派4B+EdgeX+MQTT的填坑之旅