一、用法
和group by 一起使用,分组后再进行条件过滤就用到having了。
GROUP BY 分组字段名 HAVING 分组后过滤条件
二、和WHERE的区别
1where是分组之前进行过滤,不满足where条件的数据不参与分组,而having是分组之后对分组结果进行过滤。
2.where不能对聚合函数进行判断,having可以。
1.查询数据库
#查询所有数据库 SHOW DATABASES; #查询当前数据库 SELECT DATABASE();
2.创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
3.删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
4.使用数据库
USE 数据库名;
二、DDL-表操作
1.查询表
#查询当前数据库所有表 SHOW TABLES; #查询表结构 DESC 表名; #查询指定表的建表语句 SHOW CREATE TABLE 表名;
2.创建表
CREATE TABLE 表名( 字段1 类型 [COMMENT 注释], 字段2 类型 [COMMENT 注释], ... 字段N 类型 [COMMENT 注释] )[COMMENT 表注释]
3.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
4.删除表
DROP TABLE [IF EXISTS] 表名; #删除表并重新创建该表 TRUNCATE TABLE 表名;
5.修改字段
#修改数据类型 ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度); #修改字段名和字段类型 ALTER TABLE CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
6.删除字段
ALTER TABLE 表名 DROP 字段名;
三、DML-添加/修改/删除数据
1.添加数据
#单条数据 #指定字段 INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...); #全部字段 INSERT INTO 表名 VALUES(值1,值2,...); #批量 #指定字段 INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...); #全部字段 INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
2.修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件]
3.删除数据
DELETE FROM 表名 [WHERE 条件]
四、DQL-查询数据
1.语法
SELECT 字段 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序字段 LIMIT 分页参数标签:...,数据库,分组,表名,TABLE,having,字段名 From: https://www.cnblogs.com/cheng8/p/18064878