【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数据库的基本操作相关推荐

  1. mysql数据库读写操作_一看就会,MySQL数据库的基本操作(二)

    上一节学习了MySQL数据库的基本操作的几个命令,1.登陆数据库:mysql -h localhost -u root -p.2.查看已有的数据库命令:show databases. 3.创建自己的数 ...

  2. mysql 四大基础操作_mysql数据库的基本操作

    mysql数据库的基本操作 首先我们要把mysql装好 mkdir chen/ mount.cifs //192.168.100.23/LNMP chen/ [root@localhost ~]# y ...

  3. mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)

    MySQL数据库概述 MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Dat ...

  4. linux mysql常用基本操作,Linux下MySQL数据库常用基本操作 一

    Linux下MySQL数据库常用基本操作 一 0.登录数据库 mysql -u root -p 1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 ...

  5. 第六天 02.mysql数据库的基本操作和密码爆破

    mysql数据库的基本操作 简介: ​ 数据库是什么 ​ 存储数据的仓库,数据是有组织的进行存储. mysql是一种关系数据库管理系统 使用工具:phpstudy mysql 默认端口 3306 一. ...

  6. MySQL 数据库的基本操作

      其实各种SQL数据库的基本操作都是基本相似的,此处主要写MySQL,在安装好MySQL以后,要创建数据库,这是使用数据MySQL各种功能的前提,主要内容包括:创建数据库.删除数据库.不同类型的数据 ...

  7. 1-1 MySQL数据库的基本操作 【增删改查】

    1-1 MySQL数据库的基本操作 [增删改查] 一.基础操作 创建数据库 查看数据库 选择数据库 删除数据库 二.建立一个基础数据库 三.基本操作 外键约束与字段自增 数据的增删改 数据查询 数据排 ...

  8. 备考全国计算机三级数据库考试+自学MySQL 第二章第三章数据库的基本操作

    第二章MySQL的安装与配置 有Windows和Linux两种版本.(个人建议:先装一个VMware虚拟机,在里面装MySQL).安装步骤自行百度,或者后期,再补发,安装文件直接下载MySQL官方文件 ...

  9. Qt实战案例(28)——利用QSQL相关类实现对MySQL数据库的基本操作及相关设置详解

    目录 一.项目介绍 二.项目基本配置 2.1 安装MySQL 2.2 创建Qt项目 2.3 移动libmysql.dll文件 三.UI界面设计 四.主程序实现 4.1 pro文件 4.2 main.c ...

最新文章

  1. 【组队学习】【29期】2. 计算机视觉
  2. php把数组组成xml,php 怎么将数组转xml的函数?
  3. Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
  4. java 返回空数组_避免在Java中检查Null语句
  5. 《Python Cookbook 3rd》笔记(3.13):计算最后一个周五的日期
  6. java list拷贝_深入了解浅拷贝与深拷贝
  7. ta leader是什么岗位_干货 丨 八卦下,应届/实习生应该跟什么样的leader?
  8. Jsp+Servlet+Mysql实现的二手物品在线商城源码
  9. java jersey get_java – Jersey GET请求可以返回一个多态实体吗​​?
  10. stc单片机c语言编程软件,stc isp官方下载-STC单片机ISP下载编程软件下载v6.85i 官方最新版-西西软件下载...
  11. matlab光学原理仿真应用衍射,光学衍射仿真实验系统
  12. 在VMware Update Manager(VUM)里添加HP的补丁源
  13. 人类一败涂地服务器不稳定,人类一败涂地崩溃怎么办 人类一败涂地游戏崩溃解决方法一览_游侠网...
  14. python梯形公式面积_梯形面积公式
  15. C语言零碎知识点之输入字符数组
  16. jenkins安装了中文插件发现界面还有英文的解决方法
  17. 在linux中使用getch()函数
  18. 家庭智能 HomeAssistant 四大组件的安装
  19. 浅谈Vue渐进式的理解
  20. java共享锁和排他锁的区别_排他锁和共享锁分别是什么?有什么不同?

热门文章

  1. c语言定义四个整型查表的数,C语言知识点速查表
  2. OrangePi_Zero2 引脚图
  3. Sublime Text 3 3114 注册码
  4. C的实用笔记1——认识程序、计算机语言
  5. mysql手动中断source命令的执行
  6. java自动部署脚本
  7. java优雅的非空判断
  8. 中望3D剖面视图使用方法介绍
  9. 网络中链路复用的优缺点及交换机作用分析
  10. IPX8防水测试设备增压方法测试