【语法14】Python-mysql-connector驱动
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驱动相关推荐
- python从云端数据库获取数据失败_使用%s的Python MySQL Connector数据库查询失败
使用%s的Python MySQL Connector数据库查询失败 我有一个基本程序,应该查询包含用户信息的数据库.我正在尝试为特定用户选择信息并将其打印到控制台. 这是我的代码:import my ...
- 8、Python MySQL - mysql-connector 驱动
一. 在线安装 mysql-connector : pip install mysql-connector-python 二.操作流程 1.连接数据库信息: conn = mysql.connec ...
- python mysql connector update_Python(Mysql Connector)如何刷新curs上的结果
在开始提问之前,我应该告诉你我是新手.在 我的问题是我有两个游标(在不同的sql连接上),第一个游标从sql数据库获取结果,而第二个游标对结果中的行进行更改.问题是,一旦第二个游标发生更改,我想刷新第 ...
- Python MySQL示例教程
Welcome to Python MySQL example tutorial. MySQL is one of the most widely used database and python p ...
- python3数据库框架_Python3 MySQL 数据库连接:安装pymysql(mysql数据库驱动), sqlalchemy(ORM框架)。...
Python3 MySQL 数据库连接 python3使用mysql作为数据库,安装pymysql作为驱动,然后安装sqlalchemy框架 PyMySQL 驱动 安装: $ python3 -m p ...
- MySQL Connector / Python
MySQL Connector / Python允许Python程序使用符合Python数据库API规范v2.0(PEP 249)的API访问MySQL数据库 . MySQL Connector / ...
- 安装 Python MySQL 驱动(mysql-connector-python、MySQL-python)
1. 安装 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器. 目前,有两个MySQL驱动: mysql-co ...
- python mysql 驱动安装
为什么80%的码农都做不了架构师?>>> 安装组件: python 3.4 + django 1.7 + mysql connector driver 系统平台: window ...
- django mysql connector,MySQL Connector / Python作为Django引擎?
即使经过数小时和数小时的谷歌搜索,也无法找到答案.搜索堆栈溢出.我向你们保证,我已经看到了所有可能被视为相关的答案,但这些答案都没有解决我所面临的问题.无需再费周折 – 目前在shell中我可以这样做 ...
- django mysql connector,MySQL Connector / python在Django中不起作用
我正在学习以MySQL为后端的Django. 我安装了Oracle的mysql连接器以与mysql连接. 但是,当我运行python manage.py时,出现此错误 Traceback (most ...
最新文章
- java initcause_Java 异常
- 开发者,什么是你真正关心的问题?| AI ProCon 2019
- 10.NoSQL数据库第2部分
- hdu 3987(最小割的边数)
- 数据库学习笔记---connect by的简单用法
- struct深层解析
- nodejs动态加载代码
- Ps快捷键及基础知识
- 光纤传输网的发展及其新的分层结构
- 不要随便借出你的帐号
- 植物图像识别python_python实现图像识别功能
- 怎么用手机修改服务器的网关,网关,手把手教你手机怎么改网关和IP
- 批量修改DNS记录的TTL值
- 优化理论16----Armijo-Goldstein准则、 Armijo-Goldstein搜索方法、python实现
- CommMonitor监控串口数据
- 互联网之父:文登•瑟夫
- 定义Definition、公理、定理、推论、命题和引理的区别
- 舆情监测系统对企业有什么作用,企业如何监测网络舆情危机?
- linux时间同步服务z
- 计算机二级身0准1,计算机二级-24-1.字处理题(小郑-准考证)