SQL语言分类
数据查询语言(DQL):是由SELECT子句,FROM子句,WHERE子句组成的查询块
数据操纵语言(DML): SELECT(查询) INSERT(插入) UPDATE(更新) DELETE(删除)
数据定义语言(DDL):CREATE(创建数据库或表或索引)ALTER(修改表或者数据库)DROP(删除表或索引)
数据控制语言(DCL):GRANT(赋予用户权限) REVOKE(收回权限) DENY(禁止权限)
事务控制语言(TCL):SAVEPOINT (设置保存点)ROLLBACK (回滚) COMMIT(提交)
删除表
- drop是完全删除表,包括表结构 eg:drop table 表名
- delete是删除表数据,保留表的结构,而且可以加where,只删除一行或者多行 eg:delete from 表名 where 列名 == “字段” 不加where会全部改变
- truncate 只能删除表数据,会保留表结构,而且不能加where truncate table 表名。
分组和升降序
1.order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。
2.group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
注意:聚合函数是—sum()、count()、avg()等都是“聚合函数”
HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
B。where在分组前过滤,having在分组后过滤,两者之间不冲突。
D。group by 限定分组条件,即用按照那一列进行分组,相同列值被分为一组。
E。参考B的解析。
F。没有聚合函数的使用也可以用having过滤。