php网站建设全程实例,开发者账号是干嘛用的,南京网络科技网站建设,经纪人做网站技巧前言
MySQL 是最流行的关系型数据库管理系统#xff0c;本章节为大家介绍使用 mysql-connector 来连接使用 MySQL#xff0c; mysql-connector 是 MySQL 官方提供的驱动器。
Python3 MySQL - mysql-connector 驱动
我们可以使用 pip 命令来安装 mysql-connector#xff1…前言
MySQL 是最流行的关系型数据库管理系统本章节为大家介绍使用 mysql-connector 来连接使用 MySQL mysql-connector 是 MySQL 官方提供的驱动器。
Python3 MySQL - mysql-connector 驱动
我们可以使用 pip 命令来安装 mysql-connector
python -m pip install mysql-connector使用以下代码测试 mysql-connector 是否安装成功
demo_mysql_test.py:
import mysql.connector执行以上代码如果没有产生错误表明安装成功。
注意如果你的 MySQL 是 8.0 版本密码插件验证方式发生了变化早期版本为 mysql_native_password8.0 版本为 caching_sha2_password所以需要做些改变 先修改 my.ini 配置
[mysqld]
default_authentication_pluginmysql_native_password然后在 mysql 下执行以下命令来修改密码
ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 新密码;创建数据库连接
可以使用以下代码来连接数据库
demo_mysql_test.py:
import mysql.connectormydb mysql.connector.connect(hostlocalhost, # 数据库主机地址useryourusername, # 数据库用户名passwdyourpassword # 数据库密码
)print(mydb)创建数据库
创建数据库使用 “CREATE DATABASE” 语句以下创建一个名为 CSDN_db 的数据库
demo_mysql_test.py:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456
)mycursor mydb.cursor()mycursor.execute(CREATE DATABASE CSDN_db)创建数据库前我们也可以使用 “SHOW DATABASES” 语句来查看数据库是否存在
demo_mysql_test.py: 输出所有数据库列表
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456
)mycursor mydb.cursor()mycursor.execute(SHOW DATABASES)for x in mycursor:print(x)或者我们可以直接连接数据库如果数据库不存在会输出错误信息
demo_mysql_test.py:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)创建数据表
创建数据表使用 “CREATE TABLE” 语句创建数据表前需要确保数据库已存在以下创建一个名为 sites 的数据表
demo_mysql_test.py:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()mycursor.execute(CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255)))执行成功后我们可以看到数据库创建的数据表 sites字段为 name 和 url。
我们也可以使用 “SHOW TABLES” 语句来查看数据表是否已存在 demo_mysql_test.py:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()mycursor.execute(SHOW TABLES)for x in mycursor:print(x)主键设置
创建表的时候我们一般都会设置一个主键PRIMARY KEY我们可以使用 “INT AUTO_INCREMENT PRIMARY KEY” 语句来创建一个主键主键起始值为 1逐步递增。
如果我们的表已经创建我们需要使用 ALTER TABLE 来给表添加主键
demo_mysql_test.py: 给 sites 表添加主键。
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()mycursor.execute(ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY)如果你还未创建 sites 表可以直接使用以下代码创建。
demo_mysql_test.py: 给表创建主键。
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_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 表插入一条记录。import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()sql INSERT INTO sites (name, url) VALUES (%s, %s)
val (CSDN, https://www.CSDN.com)
mycursor.execute(sql, val)mydb.commit() # 数据表内容有更新必须使用到该语句print(mycursor.rowcount, 记录插入成功。)执行代码输出结果为
1 记录插入成功批量插入
批量插入使用 executemany() 方法该方法的第二个参数是一个元组列表包含了我们要插入的数据
demo_mysql_test.py: 向 sites 表插入多条记录。
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_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:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_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:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()mycursor.execute(SELECT * FROM sites)myresult mycursor.fetchall() # fetchall() 获取所有记录for x in myresult:print(x)执行代码输出结果为
(1, CSDN, https://www.CSDN.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:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()mycursor.execute(SELECT name, url FROM sites)myresult mycursor.fetchall()for x in myresult:print(x)
执行代码输出结果为(CSDN, https://www.CSDN.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:
import mysql.connectormydb mysql.connector.connect(hostlocalhost,userroot,passwd123456,databaseCSDN_db
)
mycursor mydb.cursor()mycursor.execute(SELECT * FROM sites)myresult mycursor.fetchone()print(myresult)执行代码输出结果为
(1, CSDN, https://www.CSDN.com)