DQL
/*
语法:
select 查询列表
from 表名
特点:
1. 查询列表可以是:表中的字段,常量值,表达式,函数
2. 查询的结果是一个虚拟的表格
*/
USE myemployees
SELECT last_name FROM employees
SELECT last_name,salary,email FROM employees
SELECT * FROM employees
SELECT 100
SELECT 'mars'
SELECT 100%98
SELECT VERSION()
SELECT 100%98 AS 结果
SELECT last_name AS 姓,first_name AS 名 FROM employees
SELECT last_name 姓,first_name 名 FROM employees
SELECT salary AS 'out put' FROM employees
SELECT DISTINCT department_id FROM employees
/*
mysql中的+号仅仅只有一个功能:运算符
select 100+90
select '123'+90
如果转换失败,则将字符型数值转换为0
*/
SELECT CONCAT(last_name,' ',first_name) AS '姓名' FROM employees
/*
语法:
select 查询列表 from 表名 where 筛选条件
分类:
一,条件表达式筛选
条件运算符:
> < = != <> >= <= <=>安全等于
二,逻辑表达式筛选
逻辑运算符:
&& || !
and or not
三,模糊查询
like
特点:
1,一般和通配字符搭配使用
% 任意多个字符,包含0个字符
_任意单个字符
between and
1. 提高sql简洁度
2. 包含临界值
3. 两个临界值不可调换顺序
in
1.提高sql简洁度
is null
1. 仅仅可以判断null值
<=>:既可以判断null值又可以判断数值
*/
SELECT * FROM employees WHERE salary > 12000
SELECT * FROM employees WHERE department_id != 90
SELECT last_name,salary,commission_pct FROM employees WHERE salary >= 10000 AND salary <= 20000
SELECT last_name,salary,commission_pct FROM employees WHERE salary BETWEEN 10000 AND 20000
SELECT * FROM employees WHERE last_name LIKE '%a%'
SELECT last_name,salary FROM employees WHERE last_name LIKE '__n_l%'
SELECT last_name FROM employees WHERE last_name LIKE '_\_%'
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120
SELECT last_name,job_id FROM employees WHERE job_id IN ('IT_PROT','AD_VP','AD_PRES')
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NOT NULL
/*
select * from employees
语法:
select 查询列表
from 表
[where 筛选条件]
order by 排序列表 [asc|desc]
特点:
1. asc代表升序,desc代表降序
2. order by子句中可以支持单个字段,多个字段,表达式,函数,别名
3. order by子句一般放在最后,limit子句除外
*/
SELECT * FROM employees ORDER BY salary
SELECT *
FROM employees
WHERE department_id >= 90
ORDER BY hiredate ASC
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY salary*12*(1+IFNULL(commission_pct,0))
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY 年薪
SELECT LENGTH(last_name) AS 姓名长度,last_name,salary FROM employees ORDER BY LENGTH(last_name) DESC
SELECT * FROM employees ORDER BY salary ASC,employee_id DESC
/*
概念:类似java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:1. 隐藏了实现细节 2. 提高代码复用性
调用:select 函数名() form 表
特点:
1.叫什么(函数名)
2.干什么(函数功能)
分类:
1. 单行函数
如:concat,length,ifnull等
2. 分组函数
功能:做统计使用,又称为统计函数,聚合函数,组函数
*/
SELECT LENGTH('mars') AS 姓名长度
SELECT LENGTH('张三s')
SELECT CONCAT(last_name,'_',first_name) AS 姓名 FROM employees
SELECT UPPER('John')
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) AS 'Name' FROM employees
SELECT SUBSTR('李莫愁爱上了陆展元',7) AS output
SELECT SUBSTR('李莫愁安上了陆展元',1,3) AS output
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) AS 'Nanme' FROM employees
SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS out_put
SELECT TRIM(' 张 珊 ') AS out_put
SELECT TRIM('o' FROM 'oooo张oooo删oooo') AS out_put
SELECT LPAD('殷素素',10,'*') AS out_put
SELECT RPAD('殷素素',10,'*') AS out_put
SELECT REPLACE('张无忌爱上了周芷若','周芷若','西瓜') AS out_put
SELECT ROUND(-1.55) AS out_put
SELECT ROUND(1.427,2) AS out_put
SELECT CEIL(-1.02)
SELECT FLOOR(9.99)
SELECT TRUNCATE(1.65,1)
SELECT MOD(10,3)
SELECT MOD(-10,-3)
SELECT NOW()
SELECT CURDATE()
SELECT CURTIME()
SELECT YEAR(NOW()) AS 年
SELECT YEAR('1998-1-1') AS 年
SELECT YEAR(hiredate) FROM employees
SELECT MONTH(NOW()) AS 月
SELECT MONTHNAME(NOW()) AS 月
SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put
SELECT * FROM employees WHERE hiredate = '1992-4-3'
SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%c-%d %Y')
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put
SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %y年') AS 入职时间 FROM employees
SELECT VERSION()
SELECT DATABASE()
SELECT USER()
SELECT PASSWORD()
SELECT IF(10>5,'大','小') AS 输出
SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没有奖金','拥有奖金') AS '是否奖金' FROM employees
/*
1,
case 要判断的字段或表达式
when 常量1 then 要显示的值或语句
when 常量2 then 要显示的值或语句
................................
2,
case
when 条件1 then 要显示的值或语句
when 条件2 then 要显示的值或语句
................................
*/
SELECT salary AS 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
END AS 新的工资
FROM employees
SELECT salary,
CASE
WHEN salary>15000 THEN 'A'
WHEN salary>12000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS '工资级别'
FROM employees
/*
功能:用作统计使用,又称为聚合函数或同级函数或组函数
分类: sum(),avg(),max(),min(),
count()返回非空值的个数
特点:
1. sum,avg一般用于处理数值型
max,min,count可以处理任何类型
2. 以上函数都忽略null值
3. 可以和distinct搭配去重使用
4. conunt函数的单独介绍
一般使用count(*)来统计结果集的行数
5. 和分组函数一同查询的字段要求是group by后的字段
*/
SELECT SUM(salary) FROM employees
SELECT AVG(salary) FROM employees
SELECT MAX(salary) 最大,MIN(salary) 最小,COUNT(salary) 计数 FROM employees
SELECT SUM(DISTINCT salary),SUM(salary) FROM employees
SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees
SELECT COUNT(*) FROM employees
SELECT COUNT(1) FROM employees
SELECT AVG(salary),employee_id FROM employees
SELECT MAX(hiredate)AS 最大入职时间,MIN(hiredate) AS 最小入职时间,DATEDIFF(MAX(hiredate),MIN(hiredate)) AS 入职相差时间 FROM employees
/*
语法:
SELECT 分组函数,列(要求出现在group by后面)
from 表
[where 筛选条件]
group by 分组的列表
[order by 子句]
注意:
查询列表必须特殊,要求是分组函数和group by后出现的字段
特点:
1. 分组查询中的筛选条件分为两类
数据源: 位置 关键字
分组前筛选:原始表 group by 语句之前 where
分组后筛选:分组后的结果集 group by 语句之后 having
1,分组函数做条件肯定放在having子句中
2,能用分组前筛选的尽量使用分组前筛选
2. group by子句支持单个字段分组,多个字段分组(多个字段使用逗号隔开)
3. 添加排序放在整个分组查询之后
*/
SELECT AVG(salary),department_id FROM employees GROUP BY department_id
SELECT MAX(salary) AS 最高工资,job_id
FROM employees
GROUP BY job_id
SELECT COUNT(*),location_id
FROM departments
GROUP BY location_id
SELECT AVG(salary),department_id,email
FROM employees
WHERE email LIKE '%a%'
GROUP BY department_id
SELECT MAX(salary),manager_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY manager_id
SELECT COUNT(*),department_id FROM employees GROUP BY department_id
SELECT COUNT(*),department_id FROM employees GROUP BY department_id HAVING COUNT(*)>2
SELECT MAX(salary),job_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY job_id HAVING MAX(salary)>12000
SELECT manager_id,MIN(salary) FROM employees WHERE manager_id>102 GROUP BY manager_id HAVING MIN(salary)>5000
SELECT LENGTH(last_name),COUNT(*) FROM employees GROUP BY LENGTH(last_name) HAVING COUNT(*)>5
SELECT department_id,job_id,AVG(salary) FROM employees GROUP BY department_id,job_id
SELECT department_id,job_id,AVG(salary)
FROM employees
WHERE department_id IS NOT NULL
GROUP BY department_id,job_id
HAVING AVG(salary) > 12000
ORDER BY AVG(salary)
/*
含义:多表查询
笛卡尔乘积的错误情况:当查询多个表时,没有添加有效的连接条件,表间完成完全连接.
表1有m行,表2有n行,结果=m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
分类:
按年代分类
sql92标准:仅仅支持内连接
等值
非等值
自连接
sql99标准[推荐]:
按功能分类:
内连接:
等值连接
非等值连接
自连接
外连接:
左外连接
右外连接
全外连接
交叉连接:
*/
SELECT * FROM beauty
SELECT * FROM boys
SELECT `name`,boyname FROM beauty,boys WHERE beauty.`boyfriend_id` = boys.`id`
/*
1. 多表等值连接结果为多表交集部分
2. n表连接至少需要n-1个连接条件
3. 多表的顺序没有要求
4. 一般需要为表起别名
5. 可以搭配前面介绍的所有子句
*/
SELECT `name`,boyname
FROM beauty,boys
WHERE beauty.`boyfriend_id` = boys.`id`
SELECT last_name,department_name
FROM employees,departments
WHERE employees.`department_id` = departments.`department_id`
SELECT last_name,e.job_id,job_title
FROM employees AS e,jobs
WHERE e.`job_id` = jobs.`job_id`
SELECT last_name,department_name FROM employees AS e,departments WHERE e.`department_id` = departments.`department_id` AND e.`commission_pct` IS NOT NULL
SELECT city,department_name
FROM locations,departments
WHERE locations.`location_id` = departments.`location_id`
AND city LIKE '_o%'
SELECT city,COUNT(*) AS 个数
FROM locations,departments
WHERE locations.`location_id` = departments.`location_id`
GROUP BY city
SELECT department_name,departments.manager_id,MIN(salary) AS 最低工资
FROM departments,employees
WHERE departments.`department_id` = employees.`department_id`
AND commission_pct IS NOT NULL
GROUP BY department_name
SELECT job_title,COUNT(*) AS 员工个数
FROM jobs,employees
WHERE jobs.`job_id` = employees.`job_id`
GROUP BY job_title
ORDER BY COUNT(*) DESC
SELECT last_name,department_name,city
FROM employees,departments,locations
WHERE employees.`department_id` = departments.`department_id`
AND departments.`location_id` = locations.`location_id`
AND city LIKE 'S%'
CREATE TABLE job_grades
(grade_level VARCHAR(3),
lowest_sal INT,
highest_sal INT)
INSERT INTO job_grades
VALUES ('A',1000,2999)
INSERT INTO job_grades
VALUES ('B',3000,5999)
INSERT INTO job_grades
VALUES ('C',6000,9999)
INSERT INTO job_grades
VALUES ('D',10000,14999)
INSERT INTO job_grades
VALUES ('E',15000,24999)
INSERT INTO job_grades
VALUES ('F',25000,40000)
SELECT last_name,salary,grade_level
FROM employees AS e,job_grades AS j
WHERE salary BETWEEN j.`lowest_sal` AND j.`highest_sal`
SELECT e.employee_id,e.last_name,m.employee_id,m.last_name
FROM employees e,employees m
WHERE e.`manager_id` = m.`employee_id`
/*
语法:
select 查询列表
from 表1 别名 [连接类型]
join 表2 别名
on 连接条件
[where 筛选条件]
[group by 分组]
[having 筛选条件]
[order by 排序列表]
内连接(*):inner
外连接
左外(*):left
右外(*):right
全外:full
交叉连接:cross
*/
/*
select 查询列表
form 表1 别名
inner join 表2 别名
on 连接条件
分类:
等值
非等值
自连接
*/
SELECT last_name,department_name
FROM employees e,departments d
WHERE e.`department_id` = d.`department_id`
SELECT last_name,department_name
FROM employees e
INNER JOIN departments d
ON e.`department_id` = d.`department_id`
SELECT last_name,job_title
FROM employees e,jobs j
WHERE e.`job_id` = j.`job_id`
AND last_name LIKE '%e%'
SELECT last_name,job_title
FROM employees e
INNER JOIN jobs j
ON e.`job_id` = j.`job_id`
WHERE last_name LIKE '%e%'
SELECT city,COUNT(*) 部门个数
FROM locations l,departments d
WHERE l.`location_id` = d.`location_id`
GROUP BY city
HAVING 部门个数>3
SELECT city,COUNT(*) 部门个数
FROM locations l
INNER JOIN departments d
ON l.`location_id` = d.`location_id`
GROUP BY city
HAVING 部门个数>3
SELECT department_name,COUNT(*) 员工个数
FROM departments d,employees e
WHERE d.`department_id` = e.`department_id`
GROUP BY d.department_name
HAVING 员工个数>3
ORDER BY 员工个数 DESC
SELECT department_name,COUNT(*) 员工个数
FROM departments d
INNER JOIN employees e
ON d.`department_id` = e.`department_id`
GROUP BY department_name
HAVING 员工个数>3
ORDER BY 员工个数 DESC
SELECT last_name,department_name,job_title
FROM employees e,departments d,jobs j
WHERE e.`department_id` = d.`department_id`
AND e.`job_id` = j.`job_id`
ORDER BY department_name DESC
SELECT last_name,department_name,job_title
FROM employees e
INNER JOIN departments d ON e.`department_id` = d.`department_id`
INNER JOIN jobs j ON e.`job_id` = j.`job_id`
ORDER BY department_name DESC
SELECT last_name,salary,grade_level
FROM employees AS e
JOIN job_grades AS j
ON salary BETWEEN j.`lowest_sal` AND j.`highest_sal`
SELECT grade_level,COUNT(*) 个数
FROM employees AS e
JOIN job_grades AS j
ON salary BETWEEN j.`lowest_sal` AND j.`highest_sal`
GROUP BY grade_level
HAVING 个数>15
ORDER BY 个数 DESC
SELECT e.`last_name`,m.`last_name`
FROM employees AS e
JOIN employees AS m
ON e.`manager_id` = m.`employee_id`
/*
应用场景:查询一个表中有一个表中没有的内容(主从关系)
特点:
1. 外连接的查询结果为主表中的所有记录
如果从表中有和它匹配的,则显示匹配的值
如果从表中没有和它匹配的,则显示null
外连接查询结果=内连接结果+主表中有而从表中没有的记录
2. 左外连接,left join左边是从表
右外连接,right join右边是从表
3. 左外和右外交换两个表的顺序可以实现相同效果
4. 全外连接=内连接+表1中有但表2没有+表2中有但表1中没有
5. 交叉连接:使用99语法实现笛卡尔乘积.
*/
SELECT * FROM beauty
SELECT * FROM boys
SELECT be.name
FROM beauty be
LEFT OUTER JOIN boys bo ON be.`boyfriend_id` = bo.`id`
WHERE bo.id IS NULL
SELECT department_name
FROM departments d
LEFT OUTER JOIN employees e
ON d.`department_id`=e.`department_id`
WHERE e.`employee_id` IS NULL
SELECT b.*,boys.*
FROM beauty b
FULL OUTER JOIN boys
ON b.`boyfriend_id` = boys.`id`
SELECT b.*,bo.*
FROM beauty b
CROSS JOIN boys bo
SELECT beauty.`name`,boys.*
FROM beauty
LEFT OUTER JOIN boys
ON beauty.`boyfriend_id` = boys.`id`
WHERE beauty.`id`>3
SELECT city
FROM locations
LEFT OUTER JOIN departments
ON locations.`location_id` = departments.`department_id`
WHERE departments.`department_id` IS NULL
SELECT department_name,employees.*
FROM employees
JOIN departments
ON employees.`department_id` = departments.`department_id`
WHERE departments.`department_name` = 'SAL' OR departments.`department_name` = 'IT'
/*
定义:出现在其他语句中的select语句,成为子查询或内查询
外部的查询语句,成为主查询或外查询
分类:
按子查询出现的位置:
select 后面:
标量子查询
from 后面:
支持表子查询
where 或 having后面:☆
标量子查询(单行)
列子查询(多行)
行子查询
exists后面(相关子查询):
表子查询
按结果集的行列数不同:
标量(结果集只有一行一列)
列子查询(结果姐只有一列多行)
行子查询(结果集有多行多列)
表子查询(结果集一般多行多列)
*/
DML
# 一.插入语句
# 方式1:经典插入
# 1. 插入值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'糖糖','女','1994-1-1','11111111111',NULL,2);
SELECT * FROM beauty;
# 2. 不可以为null的列必须插入值,可以为null的值如何插入值?
# 方式一:可以为空的写null
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'糖糖','女','1994-1-1','11111111111',NULL,2);
# 方式二:可以为空的不写
INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)
VALUES(14,'方方','女','1990-2-2','11111111111',2);
# 3. 列的顺序是否可以调换
INSERT INTO beauty(NAME,sex,id,phone) VALUES('江鲜','女',16,'110');
# 方式二:
INSERT INTO beauty
SET id=17,NAME='刘诗诗',sex='女',borndate='1991-3-3',phone='1818181818',boyfriend_id=2;
# 两种方式PK
# 1. 方式一支持多行插入,方式二不支持
# 2. 方式一支持子查询,方式二不支持
# 二. 修改语句
# 1. 修改单表记录
# 案例1:修改beauty表中姓唐的电话为11111111
UPDATE beauty
SET phone='11111111'
WHERE NAME LIKE '糖%';
# 案例2:修改boys表中id号为2的名称为张飞,魔力值10
UPDATE boys SET boyname='张飞',userCP=10
WHERE id=2;
# 2. 修改多表记录
# 案例1:修改张无忌的女朋友的号码为114
UPDATE boys bo
INNER JOIN beauty be ON bo.`id`=be.`boyfriend_id`
SET phone='114'
WHERE bo.`boyName`='张无忌';
# 案例2: 修改没有男朋友的女神男朋友编号为2
UPDATE beauty be
LEFT OUTER JOIN boys bo ON be.`boyfriend_id`=bo.`id`
SET be.`boyfriend_id`=2
WHERE bo.`id` IS NULL;
# 三. 删除语句
# 方式一:delete
# 1.单表删除,删除手机号为9结尾女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
SELECT * FROM beauty;
# 2.多表删除,删除张无忌女朋友的信息
DELETE be
FROM beauty be
INNER JOIN boys bo ON be.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='张无忌';
SELECT * FROM beauty;
# 案例:删除黄晓明的信息以及他女朋友的信息
DELETE be,bo
FROM beauty be
INNER JOIN boys bo ON be.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';
# 方式二:truncate语句 == delete from table;
# 案例:将魅力值>100的男神信息删除
TRUNCATE TABLE boys;
#delete PK truncate[面试题]
# 创建的表
CREATE TABLE myEmployees(
ID INT(10),
FIRSTNAME VARCHAR(10),
LASTNAME VARCHAR(10),
USERID VARCHAR(10),
SALARY DOUBLE(10,2)
);
CREATE TABLE isMe(
id INT,
serid VARCHAR(10),
departid INT
);
INSERT INTO isMe
VALUES(1,'mars',10),(2,'mars',20),(3,'mars',30),(4,'mars',40),(5,'mars',50);
SELECT * FROM isMe;
DDL
# 一. 库的管理
CREATE DATABASE IF NOT EXISTS books;
# 2. 库的修改
RENAME DATABASE books TO 新库名;
# 更改库的字符集
ALTER DATABASE books CHARACTER SET gbk;
# 3. 库的删除
DROP DATABASE IF EXISTS books;
# 二. 表的管理
# 1. 表的创建
CREATE TABLE 表名(
列名 列的类型[(长度) 约束],
列名 列的类型[(长度) 约束],
列名 列的类型[(长度) 约束]
)
CREATE TABLE book(
id INT, # 编号
bookName VARCHAR(20), # 书名
authorid INT, # 作者
price DOUBLE # 价格
);
CREATE TABLE author(
id INT,
auName VARCHAR(20),
nation VARCHAR(20)
);
# 2. 表的修改
# 修改列名
ALTER TABLE book CHANGE COLUMN authorid atorid INT;
# 修改列的类型或者约束
ALTER TABLE book MODIFY COLUMN atorid DOUBLE;
# 添加新列
ALTER TABLE book ADD COLUMN annual DOUBLE;
# 删除旧列
ALTER TABLE book DROP COLUMN annual;
# 修改表名
ALTER TABLE author RENAME TO authorinfo;
# 3. 表的删除
DROP TABLE IF EXISTS authorinfo;
SHOW TABLES;
# 4. 表的复制
INSERT INTO authorinfo VALUES
(1,'村上','日本'),
(2,'莫言','中国'),
(3,'金庸','中国');
# 1. 仅仅复制表的结构
SELECT * FROM authorinfo;
CREATE TABLE copy1 LIKE authorinfo;
# 2. 复制表的结构+数据
CREATE TABLE copy2
SELECT * FROM authorinfo;
# 3. 仅复制部分数据
CREATE TABLE copy3
SELECT id,auName
FROM authorinfo
WHERE nation='中国';
# 4. 仅复制某些字段
CREATE TABLE copy4
SELECT id,auName
FROM authorinfo
WHERE 0;
SELECT * FROM copy4;
# 小滴课堂数据
CREATE DATABASE IF NOT EXISTS xdcls;
CREATE TABLE `case` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '编号',
`app` VARCHAR(128) DEFAULT NULL COMMENT '业务应用',
`module` VARCHAR(128) DEFAULT NULL COMMENT '模块',
`title` VARCHAR(128) DEFAULT NULL COMMENT '用例名称',
`method` VARCHAR(128) DEFAULT NULL COMMENT 'Http提交方法',
`url` VARCHAR(128) DEFAULT NULL COMMENT '接口',
`run` VARCHAR(32) DEFAULT NULL COMMENT '是否运行 yes/no',
`headers` VARCHAR(128) DEFAULT '{}' COMMENT '请求头',
`pre_case_id` INT(11) DEFAULT '-1' COMMENT '是否有前置用例id',
`pre_fields` VARCHAR(128) DEFAULT '[]' COMMENT '前置的字段, 获取请求结果的哪个字段,用于当前case的header还是body,双&name& 替代值',
`request_body` VARCHAR(128) DEFAULT '{}' COMMENT '请求内容,$XX用于替换',
`except_result` VARCHAR(1024) DEFAULT NULL COMMENT '预期结果',
`assert_type` VARCHAR(64) DEFAULT NULL COMMENT '断言类型, 判断状态码、data内容或数组长度',
`pass` VARCHAR(64) DEFAULT NULL COMMENT '是否通过,yes, no',
`msg` VARCHAR(128) DEFAULT NULL COMMENT '测试用例额外描述新',
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
`response` TEXT COMMENT '实际结果',
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;
CREATE TABLE `config` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`app` VARCHAR(128) DEFAULT NULL COMMENT '所属app',
`dict_key` VARCHAR(64) DEFAULT NULL COMMENT '字典key',
`dict_value` VARCHAR(256) DEFAULT NULL COMMENT '字典值',
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `case`;
DROP TABLE IF EXISTS `config`;
ALTER TABLE `case` CHANGE COLUMN except_result expect_result VARCHAR(1024);
UPDATE `case` SET `assert_type`='data_json';`config`