mysql 游标_Python 3 极简教程 之 MySQL

7d9dcae97880b55ed950330186de2bcc.png

真实开发,肯定需要跟数据打交道,本部分内容包括:

1、MySQL 安装

主要针对 Mac OS;

2、MySQL 数据库连接

实现简单的增删改查。

安装 MySQL

下载 MySQL

访问 MySQL 官网:https://dev.mysql.com/downloads/mysql/

537dbabc3ef8b787ef29fbe3bc1da9fe.png

点击,下个页面会提示需不需要注册的,直接选择最下面的“No thanks, just start my download.”进行下载。

6ceae35c57ffa17a07886c7eef6faffe.png

安装 MySQL

下载完成,点击安装:

41a8cae9fb2a8e0dea413577545f61e0.png

一直继续:

ed50a09f94a9f26a40cca2715e574f02.png注意:安装时会弹出一个提示框,提示框中有临时密码,必须记住,后面会用到,界面上的文字可以复制。我的临时密码为:go_W。

安装完成后,Mac 系统偏好设置会有:

2945cf5e0bd70908421daec5656e7c3c.png

配置环境变量

参考之前的博客:Mac 配置 adb 环境、gradlew:command not found,MySQL 安装的路径为:/usr/local/mysql,因此在 .bash_profile 文件加入:

## MySQL
export PATH=${PATH}:/usr/local/mysql/bin

开启服务

点击系统偏好设置 - MySQL,开启服务:

d6996201ef07280c0dfc427647713a81.png

连接 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

很熟悉的软件了,不过 Mac 版是收费的。

卸载 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 - MySQL751ab513444cd40ab403024bc009abf5.png

填下 Name 和 Password,可以点击下 Test Connection,OK,再 Save。

创建数据库

双击 WuXiaolong,Open Connect,然后右击 - New Database。

bf8d0af51ffc46bbf79598c6a39088e6.png

创建表

NaviCat Premium 创建,右击 Tables - 填写字段相关信息,保存填写表名。也可以代码创建。

def create_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')
except BaseException as e: # 如果发生错误则回滚
db.rollback()
print(e)

finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()

插入数据

def insert_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')

except BaseException as e:
# 如果发生错误则回滚
db.rollback()
print(e)

finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()

查询数据

def query_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()
for row in results:
print('查询多条记录:id=%s,name=%s,job=%s,site=%s' % (row[0], row[1], row[2], row[3]))

except BaseException as e:
# 如果发生错误则回滚
db.rollback()
print(e)

finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()

更新数据

更新 id 等于 1 的数据,将 name 改为 WuXiaolong。

def update_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')

except BaseException as e:
# 如果发生错误则回滚
db.rollback()
print(e)

finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()

删除数据

删除 id 等于 1 的数据。

def delete_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')

except BaseException as e:
# 如果发生错误则回滚
db.rollback()
print(e)

finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()


e11ce2d234cb2dae9f804e9bab471129.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值