【软件测试必备技能之MySQL】(三)MySQL数据增删改操作

说白了,MySQL的增删改查操作就像修理自行车一样。
添加零件、拆卸零件、修理零件,但不要将零件扭转到错误的位置。

扩展一下,我们先来说说最重要的数据添加。
去年我们跑电商项目,用INSERT INTO向用户表添加数据时,发现字段顺序可以随便改,但是值和字段名必须一一对应,尤其是用户ID等外键必须来自用户表,这对很多人来说是一个陷阱。
还有一点是,如果只填写非空字段,MySQL会自动填写其他默认值。
但是,当表之间存在外键关系时,引用的表如果没有相应的数据则无法插入。
比如商品表依赖于分类表,直接插入未分类的商品就会报错。

还有另一个关键细节。
比如我去年测试INSERT INTO products(name,price)VALUES('手机',3 9 9 9 )时,忘记添加product_id主键,直接将3 000级别的数据插入到整个表中。
主键冲突直接卡住了。
用行话来说,这称为雪崩效应。
事实上,前面的一个小延迟就让一切都落后了。

一开始我以为删除数据就是DELETE FROM table,后来发现是错误的。
例如,当游戏删除一个角色时,它实际上会在角色表中添加一个 is_deleted 标记,而不是真正删除它。
否则,玩家刚刚删除的角色会突然回来。
说实话,还是挺尴尬的。
还必须注意引用表的删除限制。
例如,如果从用户表中删除了张三,但张三的订单仍在订单表中,则外键约束直接阻止删除。

修改数据时,使用UPDATE更改整列数据是非常高效的,比如UPDATE products SET Price = 2 9 9 9 ,但是修改多列时,SET Price = 2 9 9 9 ,stock = 1 00的顺序不能错,尤其是改了price和stock之后还没有改变。
SET价格=价格1 .1 等算术运算也非常实用。

结束提醒:测试时不要直接删除整个表。
首先检查数据在哪里。
修改时,请确保原始数据没有被随意修改。
顺序必须是“先检查、再检查、修改后检查、删除后检查、最后检查”。
很多人不注意这一点。

MySQL数据库常见命令汇总

立即开始。

安装:对于服务器,请使用 sudo apt install mysql-server。
在客户端,使用 sudo apt install mysql-client。

服务管理:使用 sudo service mysql status 查看状态。
sudo 服务 mysql 停止。
使用 sudo service mysql start 启动。
使用 sudo service mysql 重新启动。

客户端操作:使用 mysql -u root -p 进行连接。
现在选择();对于时间 使用出口退出。

数据库操作:请参阅显示数据库。
对于整个数据库。
创建新库 CREATE DATABASE 数据库名称 CHARACTER SET utf8 ;使用 使用库的 USE 数据库名称。
删除数据库;使用 DROP DATABASE 数据库名称。

表函数:参见 SHOW TABLES;对于整个表。
要创建表,请使用 CREATE TABLE table_name (type field_name... ); 要更改类型,请使用 ALTER TABLE 表名 MODIFY 列名类型。
删除表;使用 DROP TABLE 表名。
使用DESC表名查看结构。

数据功能:添加数据;表名 VALUES(...);使用 INSERT INTO INSERT。
使用 SELECT FROM tablename 查询数据。
删除数据; DELETE FROM 表名 WHERE 条件;
备份与恢复:使用mysqldump -u 用户名 -p 数据库名 > data.sql 进行提取。
import using mysql -u 用户名 -p 数据库名 使用 conn = pymysql.connect(parameter) 连接到库。
cursor.execute("SQL") 检查数据使用 使用cursor.fetchall()获取结果。

给自己计时。