以 mac 为例:
一、MySQL 、 Navicat Premium、pymysql安装:
Navicat Premium 自己找链接下载安装吧,这里不赘述了.
1. 选择适合自己电脑的版本下载并安装:
安装的时候一定要记得设置的密码,之后 root 开启mysql需要使用。

安装完毕:


2. mysql环境配置:
打开终端:已有.bash_profile.
打开.bash_profile:open .bash_profile
在.bash_profile 添加下面这句:
# mysql
export PATH=$PATH:/usr/local/mysql/bin
export PATH
Command+S保存.bash_profile
使.bash_profile生效:source .bash_profile
3. 验证 mysql 是否安装成功:
终端输入:mysql --version
4. pymysql安装:
终端命令行输入:pip install PyMySQL
或 pip3 install PyMySQL
也可以在 pycharm 项目使用时候安装。
二、mysql 开启:
1. 方法一:打开 MySQL客户端:
打开系统偏好设置,找到最下方安装好的 MySQL,点击打开,开启即可。


2. 方法二:终端命令行输入:
开启 MySQL:sudo /usr/local/mysql/support-files/mysql.server start
关闭 MySQL:sudo /usr/local/mysql/support-files/mysql.server stop
如果不加 sudo 即可,可以不加,不加权限不够,就加上。
拓展:
修改密码:
开启 mysql 才可以修改密码:
修改密码1:mysqladmin -u root -p password "new_password"
系统会提示你输入当前root用户的密码。输入后,该用户的密码将被更改为new_password
或者修改密码2:mysqladmin -u root -p旧密码 password 新密码
第二种会暴露自己的旧密码。
三、连接mysql:先开启 MySQL,再连接
1. 方法一:Navicat Premium连接 mysql:
root 登录,密码就是之前安装时设置的密码,填写完毕,点击左下角测试连接试试能否成功连接 mysql。如果不能,要么密码错了,要么 mysql 没开启。



如果没有连接成功没有出现这个,就右键刷新,或点击左下角的仅显示活跃对象按钮,双击刚创建的 database2,就可看到下面的表了。
2. 方法二:终端命令连接 mysql:
终端命令:mysql -u root -p
然后输入 root 密码即可。mysql>后面是让输入 sql 语句的,记得每条语句后面都用分号,然后回车键即可执行语句。

四、mysql 常用功能:使用客户端Navicat Premium
1. 创建数据库:
创建一个名为 “test”的数据库,之后操作都用 test 数据库:
右键点击 dabase2,选择“新建数据库”,输入“test”命名即可。



2. 新建一个名为“table1”的表:




点击表 table1右键,看到“设计表”,写入表的字段。
点击表 table1右键或双击表可看到“打开表”,可以填写表格内容。
3. sql查询(以查询table1 表为例):
点击 “test” 数据库,右键选择“新建查询”,在右边输入sql语句:select * from table1

4. 命令列sql查询:
点击 “test” 数据库,右键选择“命令列界面”,在弹出的命令列界面输入sql语句:select * from table1;,记得一定后面加上分号;,然后按回车键即可。

5. 终端命令行sql查询:
终端先执行:mysql -u root -p,终端显示的是 mysql>才可以输入 sql 语句。
sql语句后面一定要加上分号才可以按回车键执行。
-
显示数据库:
show databases;
查询数据库 “test” 中的表 “table1”的内容:
-
方法一:查询表内容1:
select * from test.table1; -
方法二:查询表内容2:
先进入数据库 test:use test
再查询数据库下的 table1:select * from table1;
注意:终端不能直接使用select * from table1;,因为无法确定哪个数据库。
删除、修改等功能就不演示了,很简单。
五、mysql 的创建、增、删、改、查等python代码实现:
sql 语句不分大小写
1. 建表
在 test 数据库中创建名为 TEST_DATA 数据表。
# 第 16 章 数据驱动测试应用----16.4---数据库方式数据管理模块的实现--16.4.2-- 基础数据表及数据的初始化
# 1.建表
# 第 16 章/ test_create.py
import pymysql
# 使用 connect 建立数据库连接对象
# 用户名:root
# 密码:ning
# 数据库:test
db = pymysql.connect(host="localhost", user="root", passwd="ning", db="test")
# 创建数据库游标
cursor = db.cursor()
# 若已有同名表存在,删除同名表
# 调试代码会出现多次执行建表的情况
cursor.execute("DROP TABLE IF EXISTS TEST_DATA")
# 建表语句
sql = """CREATE TABLE TEST_DATA (
ID INT NOT NULL,
EXPECT CHAR(20),
ACTUAL CHAR(20)
)"""
# 执行 sql 语句
cursor.execute(sql)
# 释放数据库连接对象
db.close()
执行结束后在 test 数据表中输入 show tables 命令进行查看。



2. 新增
向新建数据表中插入测试数据。
# 第 16 章 数据驱动测试应用----16.4---数据库方式数据管理模块的实现--16.4.2-- 基础数据表及数据的初始化
# 2.新增
# 第 16 章/ test_insert.py
import pymysql
# 使用 connect 建立数据库连接对象
# 用户名:root
# 密码:ning
# 数据库:test
db = pymysql.connect(host="localhost", user="root", passwd="ning", db="test")
# 创建数据库游标
cursor = db.cursor()
# 插入测试数据
sql = """INSERT INTO TEST_DATA (ID,EXPECT,ACTUAL)
VALUES(1,'thinkerbang','pass'),
(2,'Selenium','pass')"""
try:
# 执行 sql 语句
cursor.execute(sql)
# 提交数据库
db.commit()
except:
# 若插入数据失败,则回滚
db.rollback()
# 释放数据库连接对象
db.close()
执行结束后在 test 数据库中输入 select * from test_data命令进行查看。

3. 修改
按给定条件修改插入数据。
# 第 16 章 数据驱动测试应用----16.4---数据库方式数据管理模块的实现--16.4.2-- 基础数据表及数据的初始化
# 3.修改
# 第 16 章/ test_update.py
import pymysql
# 使用 connect 建立数据库连接对象
# 用户名:root
# 密码:ning
# 数据库:test
db = pymysql.connect(host="localhost", user="root", passwd="ning", db="test")
# 创建数据库游标
cursor = db.cursor()
# 修改测试数据
sql = "UPDATE TEST_DATA SET ACTUAL = '%s' WHERE EXPECT = '%s'" % ('fail','Selenium')
try:
# 执行 sql 语句
cursor.execute(sql)
# 提交数据库
db.commit()
except:
# 若插入数据失败,则回滚
db.rollback()
# 释放数据库连接对象
db.close()
执行结束后在 test 数据库中输入 select * from test_data命令进行查看。

4. 删除
按条件删除表中已有数据。
# 第 16 章 数据驱动测试应用----16.4---数据库方式数据管理模块的实现--16.4.2-- 基础数据表及数据的初始化
# 4.删表
# 第 16 章/ test_delete.py
import pymysql
# 使用 connect 建立数据库连接对象
# 用户名:root
# 密码:ning
# 数据库:test
db = pymysql.connect(host="localhost", user="root", passwd="ning", db="test")
# 创建数据库游标
cursor = db.cursor()
# 删除测试数据
sql = "DELETE FROM TEST_DATA WHERE ACTUAL = '%s'" % ('pass')
try:
# 执行 sql 语句
cursor.execute(sql)
# 提交数据库
db.commit()
except:
# 若插入数据失败,则回滚
db.rollback()
# 释放数据库连接对象
db.close()
执行结束后再 test 数据库中输入 select * from test_data命令进行查看。

5. 查询
按给定条件查询表中数据。
# 第 16 章 数据驱动测试应用----16.4---数据库方式数据管理模块的实现--16.4.2-- 基础数据表及数据的初始化
# 5.查询
# 第 16 章/ test_select.py
import pymysql
# 使用 connect 建立数据库连接对象
# 用户名:root
# 密码:ning
# 数据库:test
db = pymysql.connect(host="localhost", user="root", passwd="ning", db="test")
# 创建数据库游标
cursor = db.cursor()
# 查询所有执行结果为 fail 状态的数据
sql = " SELECT * FROM TEST_DATA WHERE ACTUAL = '%s'" % ('fail')
try:
# 执行 sql 语句
cursor.execute(sql)
# 获取执行结果
results = cursor.fetchall()
for result in results:
id = result[0]
expect = result[1]
actual = result[2]
print("编号:%s,预期结果:%s,执行结果:%s" % (id, expect, actual))
except:
print("Error:unable to fetch data")
# 释放数据库连接对象
db.close()
执行结束后再 test 数据库中输入 select * from test_data命令进行查看。

