Python:MySQL 安装与使用

以 mac 为例:

一、MySQL 、 Navicat Premium、pymysql安装:

MySQL官网下载链接:

Navicat Premium 自己找链接下载安装吧,这里不赘述了.

1. 选择适合自己电脑的版本下载并安装:

安装的时候一定要记得设置的密码,之后 root 开启mysql需要使用。

图片.png

安装完毕:

MySQL.png

Navicat Premium.png

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,点击打开,开启即可。


图片.png

图片.png

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 没开启。


图片.png

图片.png

连接成功.png

如果没有连接成功没有出现这个,就右键刷新,或点击左下角的仅显示活跃对象按钮,双击刚创建的 database2,就可看到下面的表了。

2. 方法二:终端命令连接 mysql:

终端命令:mysql -u root -p
然后输入 root 密码即可。mysql>后面是让输入 sql 语句的,记得每条语句后面都用分号,然后回车键即可执行语句。

图片.png

四、mysql 常用功能:使用客户端Navicat Premium

1. 创建数据库:

创建一个名为 “test”的数据库,之后操作都用 test 数据库
右键点击 dabase2,选择“新建数据库”,输入“test”命名即可。

图片.png

图片.png

创建成功 test数据库.png

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

创建表.png

编辑表.png

设计表的字段.png
打开表填写表内容.png

点击表 table1右键,看到“设计表”,写入表的字段。
点击表 table1右键或双击表可看到“打开表”,可以填写表格内容。

3. sql查询(以查询table1 表为例):

点击 “test” 数据库,右键选择“新建查询”,在右边输入sql语句:select * from table1

查询.png

4. 命令列sql查询:

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

命令列界面.png

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 命令进行查看。

方法一:新建查询.png

方法二:命令列界面.png

方法三:终端查询.png

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命令进行查看。

新增.png

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命令进行查看。

修改.png

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命令进行查看。

删除.png

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命令进行查看。

python 代码运行结果.png

查询.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容