MySQL-软件测试

DDL-数据库操作
1.查询所有数据库

SHOW DATABASES;

2.查询当前数据库:

SELECT DATABASE();

3.创建数据库:

CREATE DATABASE [IF NOT EXISIS]数据库名

4.删除

DROP DATABASE [IF EXISTS] 数据库名

5.使用

USE 数据库名

DDL-表操作-查询
1.查询当前数据库所有表

SHOW TABLES;

2.查询表结构:

DESC 表名;

3.查询指定表的建表语句:

SHOW CREATE TABLE 表名;

注意:DOUBLE(4,1),4代表总位数,1代表小数位数
DDL-表创建
在这里插入图片描述

DDL-表操作-修改
1.追加字段

ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束]

2.修改字段

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

3.修改表名

ALTER TABLE 表名 RENAME TO 新表名;

4.删除字段

ALTER TABLE 表名 DROP 字段名;

4.DDL-表操作-删除

DROP TABLE [IF EXISTS] 表名;
TRUNCATE TABLE 表名;

注:TRUNCATE删除表并重新创建,表结构还在,只是里面的数据没了。

DML-添加数据

INSERT INTO 表名(字段名1,字段名2,...)VALUES(1,2,...);
INSERT INTO 表名VALUES(1,2,...);
INSERT INTO 表名(字段名1,字段名2,...)VALUES(1,2,...)(1,2,...)...;
INSERT INTO 表名VALUES(1,2,...)(1,2,...)...;

DML-修改数据

UPDATE 表名 SET 字段名1=1,字段名2=2... (WHERE 条件);
没有WHERE条件会修改整张表所有的数据

DML-删除数据

DELETE FROM 表名(WHERE 条件)
没有WHERE条件会删除整张表所有的数据
DELETE不能删除某一个字段的值

在这里插入图片描述

DQL-基本查询
1.查询多个字段

SELETE 字段1,字段2,字段3...FROM 表名;
SELETE * FROM 表名;

2.设置别名

SELETE 字段1 [AS 别名1],字段2 [AS 别名2]... from 表名
AS 可以省略不写

3.去除重复记录

加关键字DISITINCT
SELECT DISTINCT 字段列表FROM 表名

DQL-条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

<>或!= 不等于
BETWEEN…AND… 在某个范围之内,包含最小,最大值
IN(…) 在in之后的列表中的值,多选一
IS NULL 是空
LIKE占位符 模糊匹配(_匹配一个字符,%匹配多个字符)
在这里插入图片描述
DQL-聚合函数
将一列数据作为一个整体,进行纵向计算
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
注意NULL不参与所有聚合函数的运算

DQL-分组查询

SELETE 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后条件筛选]

HAVING是分组之后对结果进行过滤。
WHERE 不能对聚合函数判断,HAVING可以。

DQL-排序查询

SELECT 字段列表FROM 表名 ORDER BY 字段1 排序方式,字段2 排序方式;

ASC: 升序(默认可不写)
DESC:降序
注:多字段排序时,当第一个字段值相同时,才会根据第二个字段排序。

DQL-分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注:
起始索引从0开始,起始索引=(查询页面-1)*每页显示数。
如果查询的是第一页数据,起始索引可以省略不写

DQL-执行顺序
在这里插入图片描述

DCL-管理用户
在这里插入图片描述
注:主机名可以使用 % 符号通配

DCL-权限控制
在这里插入图片描述

常用权限:
在这里插入图片描述

MySQL中字符串函数:
CONCAT(s1,s2,s3…) 字符串拼接,拼成一个新字符串
LOWER(str) 将str字符串全部转为小写
UPPER(str) 将str字符串全部转为大写
LEFT(str,n) 从str字符串左边截取n个字符
RIGHT(str,n) 从str字符串右边截取n个字符
LPAD(str,n,pad) 用pad对str左填充,达到n个字符串长度
RPAD(str,n,pad) 用pad对str左填充,达到n个字符串长度
TRIM(str) 去除字符串左右两边的空格
LTRIM(str) 去除字符串左边的空格
RTRIM(str) 去除字符串右边的空格
SUBSTRING(str,start,len) 返回字符串str从start开始的len个长度的字符串。
注:MySQL中字符串索引是从1开始的。
这些内置可以用在WHERE条件后面或者SELECT显示的字段名中。

MySQL数值函数

CEIL(X) 向上取整
FLOOR(X) 向下取整
MOD(x,y) 返回x/y的值
RAND() 返回0-1内的随机数
ROUND(x,y) 求参数x的四舍五入的值,保留y位小数

注:
ORDER BY RAND() 随机排序

MySQL日期函数
在这里插入图片描述

MySQL流程函数
在这里插入图片描述
举例:
在这里插入图片描述
在这里插入图片描述

约束
作用于表中字段上的规则,用于限制存储在表中的数据。
目的是保证数据库中数据的正确,有效性和完整性
在这里插入图片描述
注:
主键自增不用插入,数据库自动维护
多个约束用空格隔开
自动增长: auto_increment
如果不指定字段,主键自增长字段的值可以用占位符 0或者NULL

decimal(5,2) 表示共存5位数,小数占2位

内连接

SELECT * from1 INNER JOIN2 on1.字段=2.字段;

重要的是找对两张表要关联的字段

隐式内连接

SELECT * FROM1,2 WHERE1.字段=2.字段;

带有WHERE条件的内连接先连接两张表再WHERE条件筛选

左连接

SELECT * from1 left JOIN2 on1.字段=2.字段;

右连接

SELECT * from1 RIGHT JOIN2 on1.字段=2.字段;

在这里插入图片描述

注:如果一条SELECT语句要用到多个表,表中有同名字段,就需要 表名.字段名 加以区分

自关联
在这里插入图片描述

子查询
在这里插入图片描述

标量子查询:子查询返回的结果只有一个值(一行一列)

select avg(score) from student;

列子查询:子查询返回的结果为一列多行。
在这里插入图片描述

表级子查询: 子查询返回的结果为多行多列
在这里插入图片描述

存储过程
创建存储过程:

CREATE PROCEDURE stu()
BEGIN
	SELECT * FROM students;
END

调用存储过程:

CALL stu();

删除存储过程,删除的时候不需要写存储名后的()

DROP PROCEDURE [IF EXISTS] stu;

视图
对SELECT 表的封装
可以理解为一张只读的表,针对视图只能用SELECT,不能用DELECT 和 UPDATE
在这里插入图片描述

事务
在这里插入图片描述
在这里插入图片描述

索引
1.创建索引

CREATE index 索引名 on(字段)
如果字段为字符串,需要写明创建表字段的时候字符串的长度

在这里插入图片描述

2.调用索引
在这里插入图片描述

3.查找索引

SHOW index FROM 表名;

对于主键,系统会自动建立索引

4.删除索引

DROP index 索引名 on 表名;

在这里插入图片描述

5.索引优缺点
在这里插入图片描述
基于命令行的MySQL
mysql -h MySQL服务器地址 -u 用户名 -p
如果是使用本机的MySQL,-h可以省略

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值