数据库 四大语言 - DDL ,DML,DCL,DQL
数据库四大语言:
- DDL (数据定义语言)
数据定义语言 - Data Definition Language,用来定义数据库的对象,如数据表、视图、索引等。
create drop alter truncate
- DML (数据操纵语言)
数据处理语言 - Data Manipulation Language,在数据库表中更新,增加和删除记录。如 update, insert, delete 不包含查询。
DML操作是可以手动控制事务的开启、提交和回滚的。DDL操作是隐性提交的,不能rollback!
insert into `表名` (字段1, 字段2, 字段3...) values('值1', '值2', '值3', ...),('值1', '值2', '值3', ...),('值1', '值2', '值3', ...),...;
update `表名` set `字段1` = '值1', `字段2` = '值2' where 条件;
delete from `表名` where 条件
- DCL (数据控制语言)
数据控制语言 – Data Control Language,指用于设置用户权限和控制事务语句。如grant,revoke,if…else,while,begin transaction。
- DQL (数据查询语言)
数据查询语言 – Data Query Language,数据表记录的查询。
聚合函数:count sum avg min max
聚合函数不允许使用在where中
having,查询后处理
- where是数据结果出来之前进行过滤,having是数据结果出来之后进行过滤(所以having中可以用字段别名,和聚合函数)
- 性能来说,having的性能要低于where性能,但having能做很多where做不了的事情
子查询构建SQL成分
构建where条件时需要看操作是 等于 这种单一值的操作 还是in这种范围值的操作,如果是单一值的操作,那子查询查询出来的数据就一定要是一个点状数据,若是范围值的话,则子查询查询出来的数据一定要是一个条状数据,不允许查询面状数据
构建字段时,子查询一定要查询出一个点状数据,不允许查询条状数据和面状数据
构建表时,子查询一定要查询出一个面状数据或者条状数据,因为查询点状数据则没有任何意义
本作品采用《CC 协议》,转载必须注明作者和本文链接