【MySQL】Python3 MySQL数据库的基本操作
【MySQL】Python3 对MySQL数据库的基本操作
安装 MySQL 驱动程序
Python 需要 MySQL 驱动程序来访问 MySQL 数据库。
在此,我选择的驱动程序 是"MySQL Connector"。
$ pip install mysql-connector
现在,您已下载并安装 MySQL 驱动程序。
测试 MySQL Connector
如需测试安装是否成功,或者您是否已安装 “MySQL Connector”,请创建一张包含以下内容的 Python 页面:
import mysql.connector
如果执行导入MySQL Connector时没有错误,则 “MySQL Connector” 已安装并待用。
创建连接
首先创建与数据库的连接。
使用 MySQL 数据库中的用户名和密码:
import mysql.connector
mydb = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword"
)
print(mydb)
执行以上代码,如果没有产生错误,表明连接成功。
注意:如果你的 MySQL 是 8.0 版本,密码插件验证方式发生了变化,早期版本为 mysql_native_password,8.0 版本为 caching_sha2_password,所以需要做些改变:
先修改 my.ini 配置:
[mysqld]
default_authentication_plugin=mysql_native_password
然后在 mysql 下执行以下命令来修改密码:
$ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
创建数据库
创建数据库使用 “CREATE DATABASE” 语句,以下创建一个名为 mydatabase 的数据库:
import mysql.connector
mydb = mysql.connector.connect(host="localhost", user="root", passwd="120120"
)
mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE mydatabase")
创建数据库前我们也可以使用 “SHOW DATABASES” 语句来查看数据库是否存在:
输出所有数据库列表:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120"
)
mycursor = mydb.cursor()
mycursor.execute("SHOW DATABASES")
for x in mycursor: print(x)
或者我们可以直接连接数据库,如果数据库不存在,会输出错误信息:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="mydatabase"
)
创建数据表
创建数据表使用 “CREATE TABLE” 语句,创建数据表前,需要确保数据库已存在,以下创建一个名为 sites 的数据表:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase" )
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")
执行成功后,我们可以看到数据库创建的数据表 sites,字段为 name 和 url。
我们也可以使用 “SHOW TABLES” 语句来查看数据表是否已存在:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SHOW TABLES")
for x in mycursor: print(x)
主键设置
创建表的时候我们一般都会设置一个主键(PRIMARY KEY),我们可以使用 “INT AUTO_INCREMENT PRIMARY KEY” 语句来创建一个主键,主键起始值为 1,逐步递增。
如果我们的表已经创建,我们需要使用 ALTER TABLE 来给表添加主键:
给 sites 表添加主键:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
如果你还未创建 sites 表,可以直接使用以下代码创建。
给表创建主键。
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")
插入数据
插入数据使用 “INSERT INTO” 语句:
向 sites 表插入一条记录。
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = ("Baidu", "www.baidu.com")
mycursor.execute(sql, val)
mydb.commit() # 数据表内容有更新,必须使用到该语句
print(mycursor.rowcount, "记录插入成功")
执行代码,输出结果为:
1 记录插入成功
批量插入
批量插入使用 executemany() 方法,该方法的第二个参数是一个元组列表,包含了我们要插入的数据:
向 sites 表插入多条记录:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
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 ,可以使用以下代码:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
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 语句:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM sites")
myresult = mycursor.fetchall() # fetchall() 获取所有记录
for x in myresult: print(x)
执行代码,输出结果为:
('Baidu', 'www.baidu.com', 1)
('Baidu', 'www.baidu.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', 7)
也可以读取指定的字段数据:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT name, url FROM sites")
myresult = mycursor.fetchall()
for x in myresult: print(x)
执行代码,输出结果为:
('Baidu', 'www.baidu.com')
('Baidu', 'www.baidu.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() 方法:
import mysql.connector
mydb = mysql.connector.connect( host="localhost", user="root", passwd="120120", database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM sites")
myresult = mycursor.fetchone()
print(myresult)
执行代码,输出结果为:
('Baidu', 'www.baidu.com', 1)
【MySQL】Python3 MySQL数据库的基本操作相关推荐
- mysql数据库读写操作_一看就会,MySQL数据库的基本操作(二)
上一节学习了MySQL数据库的基本操作的几个命令,1.登陆数据库:mysql -h localhost -u root -p.2.查看已有的数据库命令:show databases. 3.创建自己的数 ...
- mysql 四大基础操作_mysql数据库的基本操作
mysql数据库的基本操作 首先我们要把mysql装好 mkdir chen/ mount.cifs //192.168.100.23/LNMP chen/ [root@localhost ~]# y ...
- mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)
MySQL数据库概述 MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Dat ...
- linux mysql常用基本操作,Linux下MySQL数据库常用基本操作 一
Linux下MySQL数据库常用基本操作 一 0.登录数据库 mysql -u root -p 1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 ...
- 第六天 02.mysql数据库的基本操作和密码爆破
mysql数据库的基本操作 简介: 数据库是什么 存储数据的仓库,数据是有组织的进行存储. mysql是一种关系数据库管理系统 使用工具:phpstudy mysql 默认端口 3306 一. ...
- MySQL 数据库的基本操作
其实各种SQL数据库的基本操作都是基本相似的,此处主要写MySQL,在安装好MySQL以后,要创建数据库,这是使用数据MySQL各种功能的前提,主要内容包括:创建数据库.删除数据库.不同类型的数据 ...
- 1-1 MySQL数据库的基本操作 【增删改查】
1-1 MySQL数据库的基本操作 [增删改查] 一.基础操作 创建数据库 查看数据库 选择数据库 删除数据库 二.建立一个基础数据库 三.基本操作 外键约束与字段自增 数据的增删改 数据查询 数据排 ...
- 备考全国计算机三级数据库考试+自学MySQL 第二章第三章数据库的基本操作
第二章MySQL的安装与配置 有Windows和Linux两种版本.(个人建议:先装一个VMware虚拟机,在里面装MySQL).安装步骤自行百度,或者后期,再补发,安装文件直接下载MySQL官方文件 ...
- Qt实战案例(28)——利用QSQL相关类实现对MySQL数据库的基本操作及相关设置详解
目录 一.项目介绍 二.项目基本配置 2.1 安装MySQL 2.2 创建Qt项目 2.3 移动libmysql.dll文件 三.UI界面设计 四.主程序实现 4.1 pro文件 4.2 main.c ...
最新文章
- 【组队学习】【29期】2. 计算机视觉
- php把数组组成xml,php 怎么将数组转xml的函数?
- Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
- java 返回空数组_避免在Java中检查Null语句
- 《Python Cookbook 3rd》笔记(3.13):计算最后一个周五的日期
- java list拷贝_深入了解浅拷贝与深拷贝
- ta leader是什么岗位_干货 丨 八卦下,应届/实习生应该跟什么样的leader?
- Jsp+Servlet+Mysql实现的二手物品在线商城源码
- java jersey get_java – Jersey GET请求可以返回一个多态实体吗​​?
- stc单片机c语言编程软件,stc isp官方下载-STC单片机ISP下载编程软件下载v6.85i 官方最新版-西西软件下载...
- matlab光学原理仿真应用衍射,光学衍射仿真实验系统
- 在VMware Update Manager(VUM)里添加HP的补丁源
- 人类一败涂地服务器不稳定,人类一败涂地崩溃怎么办 人类一败涂地游戏崩溃解决方法一览_游侠网...
- python梯形公式面积_梯形面积公式
- C语言零碎知识点之输入字符数组
- jenkins安装了中文插件发现界面还有英文的解决方法
- 在linux中使用getch()函数
- 家庭智能 HomeAssistant 四大组件的安装
- 浅谈Vue渐进式的理解
- java共享锁和排他锁的区别_排他锁和共享锁分别是什么?有什么不同?