原标题:Python 3 极简教程 之 MySQL
真实开发,肯定需要跟数据打交道,本部分内容包括:
1、MySQL 安装
主要针对 Mac OS;
2、MySQL 数据库连接
实现简单的增删改查。
安装 MySQL 下载 MySQL
访问 MySQL 官网:https://dev.mysql.com/downloads/mysql/
点击,下个页面会提示需不需要注册的,直接选择最下面的“No thanks, just start my download.”进行下载。
安装 MySQL
下载完成,点击安装:
一直继续:
注意:安装时会弹出一个提示框,提示框中有临时密码,必须记住,后面会用到,界面上的文字可以复制。我的临时密码为: go_W
安装完成后,Mac 系统偏好设置会有:
配置环境变量
参考之前的博客:Mac 配置 adb 环境、gradlew:command not found,MySQL 安装的路径为:/usr/local/mysql,因此在 .bash_profile 文件加入:
## MySQL
export PATH=${PATH}:/usr/local/mysql/bin
开启服务
点击系统偏好设置 - MySQL,开启服务:
连接 MySQl
命令行:
mysql -u root -p
这时候需要输入安装时的临时密码:go_W
修改 root 密码
命令行:
ALTER USER 'root'@ 'localhost'IDENTIFIED BY 'root';
提示 Query OK, 0 rows affected (0.00 sec),这里我修改新密码为“root”了,然后重新开启 MySQL 服务。
可视化工具
1、MySQL Workbench
不知道原来官方已经提供了 Mac 版工具了。
2、NaviCat Premium
卸载 MySQL
参考 stackoverflow:How do you uninstall MySQL from Mac OS X?
命令行:
sudo rm -rf /var/db/receipts/com.mysql.*
MySQL 数据库连接
Python 3.x 可以用第三方模块 PyMySQL 用于连接 MySQL。我们简单实现数据库增删改查。
安装 PyMySQL pip3 install PyMySQL
连接本地数据库
NaviCat Premium - Connection - MySQL
填下 Name 和 Password,可以点击下 Test Connection,OK,再 Save。
创建数据库
双击 WuXiaolong,Open Connect,然后右击 - New Database。
创建表
NaviCat Premium 创建,右击 Tables - 填写字段相关信息,保存填写表名。也可以代码创建。
defcreate_table:
# 建立连接
db = pymysql.connect(host= 'localhost',
user= 'root',
password= 'root',
db= 'python3learn')
# 创建名为 developer 数据库语句
sql = '''create table if not exists developer (
id int NOT NULL AUTO_INCREMENT,
name text,
job text,
site text,
PRIMARY KEY (`id`)
)'''
# 使用 cursor 方法创建一个游标对象 cursor
cursor = db.cursor
try:
# 执行 sql 语句
cursor.execute(sql)
# 提交事务
db.commit
print( 'create table success')
exceptBaseException ase: # 如果发生错误则回滚
db.rollback
print(e)
finally:
# 关闭游标连接
cursor.close
# 关闭数据库连接
db.close
插入数据 definsert_table:
# 建立连接
db = pymysql.connect(host= 'localhost',
user= 'root',
password= 'root',
db= 'python3learn')
# 插入数据
sql = 'insert into developer (name,job,site) values (%s, %s, %s)'
# 使用 cursor 方法创建一个游标对象 cursor
cursor = db.cursor
try:
value = ( 'wxl', 'Android', 'http://wuxiaolong.me/')
# 执行 sql 语句
cursor.execute(sql, value)
# 提交事务
db.commit
print( 'insert table success')
exceptBaseException ase:
# 如果发生错误则回滚
db.rollback
print(e)
finally:
# 关闭游标连接
cursor.close
# 关闭数据库连接
db.close
查询数据 defquery_table:
# 建立连接
db = pymysql.connect(host= 'localhost',
user= 'root',
password= 'root',
db= 'python3learn')
# 查询语句
sql = 'select * from developer'
# 使用 cursor 方法创建一个游标对象 cursor
cursor = db.cursor
try:
# 执行 sql 语句
cursor.execute(sql)
# 查询一条记录
result = cursor.fetchone
print( '查询一条记录:id=%s,name=%s,job=%s,site=%s'% (result[ 0], result[ 1], result[ 2], result[ 3]))
# 如果先用 fetchone,游标是从 1 开始
# 重置游标位置,偏移量:大于0向后移动;小于0向前移动,mode默认是relative
# relative:表示从当前所在的行开始移动; absolute:表示从第一行开始移动
cursor.scroll( 0, mode= 'absolute')
# 查询多条记录
results = cursor.fetchall
forrow inresults:
print( '查询多条记录:id=%s,name=%s,job=%s,site=%s'% (row[ 0], row[ 1], row[ 2], row[ 3]))
exceptBaseException ase:
# 如果发生错误则回滚
db.rollback
print(e)
finally:
# 关闭游标连接
cursor.close
# 关闭数据库连接
db.close
更新数据
更新 id 等于 1 的数据,将 name 改为 WuXiaolong。
defupdate_table:
# 建立连接
db = pymysql.connect(host= 'localhost',
user= 'root',
password= 'root',
db= 'python3learn')
# 更新数据
sql = 'update developer set name=%s where id=%s'
# 使用 cursor 方法创建一个游标对象 cursor
cursor = db.cursor
try:
value = ( 'WuXiaolong', 1)
# 执行 sql 语句
cursor.execute(sql, value)
# 提交事务
db.commit
print( 'update table success')
exceptBaseException ase:
# 如果发生错误则回滚
db.rollback
print(e)
finally:
# 关闭游标连接
cursor.close
# 关闭数据库连接
db.close
删除数据
删除 id 等于 1 的数据。
defdelete_table:
# 建立连接
db = pymysql.connect(host= 'localhost',
user= 'root',
password= 'root',
db= 'python3learn')
# 更新数据
sql = 'delete from developer where id=%s'
# 使用 cursor 方法创建一个游标对象 cursor
cursor = db.cursor
try:
# 执行sql语句
cursor.execute(sql, 1)
# 提交事务
db.commit
print( 'delete table success')
exceptBaseException ase:
# 如果发生错误则回滚
db.rollback
print(e)
finally:
# 关闭游标连接
cursor.close
# 关闭数据库连接
责任编辑: