【测试基础】构造测试数据之 MySQL 篇

发布时间:2023年12月31日

构造测试数据之 MySQL 篇

作为一名测试工程师,我们经常会构造测试数据进行一些功能验证。为了暴露更多的问题,在测试数据的构造上,我们应该尽可能的构造不同类型的字段数据,且一张表的字段最好不低于 10 10 10 个。

对于 MySQL 数据库,字段类型主要是分为 数值类型时间类型字符串类型

  • 数值类型:intbigintfloatdoubledecimal、…
  • 时间类型:yearmonthdaydatetimedatetimetimestamp、…
  • 字符串类型:charvarcharenumtext、…
-- 创建学生表
create table student_info (
  id int(11) not null auto_increment,
  stu_number int(11) not null unique comment '学号',
  name char(20) not null comment '姓名',  
  age tinyint default 20 comment '年龄',
  sex enum('man', 'woman') comment '性别',
  address varchar(50) comment '家庭住址',
  score smallint comment '入学成绩',
  class_id int(11) comment '所在班级',
  birth_year year comment '出生年份',
  birthday date comment '出生日期',
  createTime datetime default current_timestamp comment '创建时间',
  updateTime timestamp default current_timestamp on update current_timestamp comment '更新时间',
  primary key (id)
);

我们创建一个学生信息表,有几点需要特别声明:

  • id 作为主键(Primary Key),同时设置为自增(auto_increment)。
  • 学号 stu_number 具有唯一约束(Unique Key)。
  • namechar 类型,addressvarchar 类型。
  • sex 为枚举(enum)类型。
  • date 类型的格式为 YYYY-MM-DD
  • datetimetimestamp 类型的格式都为 YYYY-MM-DD hh:mm:ssdatetime 支持的范围为 1000-01-01 00:00:00 - 9999-12-31 23:59:59(通常用来考勤等)。timestamp 有时间范围限制,从 1970-01-01 00:00:01 - 2038-01-19 03:14:07(常用)(通常使用在注册账号时间,交易,下订单时间)。

在这里插入图片描述

插入数据:

insert into student_info (stu_number, name, age, sex, address, score, class_id, birth_year, birthday, createTime, updateTime) 
values (100001, '张三', 25, 'man', '北京市朝阳区', 80, 104, '1998', '1998-06-16', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100002, '李四', 34, 'man', '北京市海淀区', 85, 102, '1997', '1997-03-12', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100003, '王五', 18, 'man', '上海市徐汇区', 90, 103, '1998', '1998-03-25', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100004, '赵六', 38, 'man', '上海市静安区', 70, 104, '1995', '1995-05-18', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100005, '子涵', 45, 'man', '北京市朝阳区', 82, 101, '1997', '1997-08-11', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100006, '小美', 22, 'woman', '上海市闵行区', 88, 102, '1996', '1996-10-10', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100007, '小明', 65, 'man', '西安市未央区', 89, 103, '1997', '1997-01-28', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100008, '小红', 51, 'woman', '重庆市江北区', 78, 101, '1995', '1995-12-11', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100009, '翠花', 47, 'woman', '西安市碑林区', 86, 102, '1997', '1997-05-24', '2023-12-31 01:00:00', '2023-12-31 01:00:00'),
       (100010, '无忌', 19, 'man', '北京市西城区', 93, 103, '1998', '1998-08-26', '2023-12-31 01:00:00', '2023-12-31 01:00:00');

在这里插入图片描述

查看数据:

在这里插入图片描述

我们尝试进行一个 update 操作。

update student_info
set name = '张无忌'
where stu_number = 100010;

在这里插入图片描述
可以看到对应数据的 updateTime 字段也自动更新了。

文章来源:https://blog.csdn.net/be_racle/article/details/135311708
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。