SQL语句入门
SQL是Structured Query Language(结构化查询语言)的缩写;sql语句是专门为数据库管理提供的通用操作语言;语法类似于英语口语,在使用它时,只需要发出“做什么”的命令“怎么做”是不用使用者考虑的。
sql语句分为以下几个大类:
-
DDL语句(数据定义语句)
数据定义语句主要应用于对数据表的结构操作:比如建表,删除表,修改表的结构等;
DDL语句包含以下命令:- create (新建)
- drop(删除,主要删除数据库中的结构,比如表,库等)
- alter(主要用已有表删除,新建,修改行)
- add(添加列)
- modify(修改列)
-
DML语句(数据操作语句)
数据操作语句一般用于对的语句数据库表中数据进行更新操作,比如添加,删除,修改数据等;
DML语句包含以下命令:- insert (对表新增加数据)
- update(更新表字段)
- delete(删除信息)
-
DQL语句(数据查询语句)
数据查询语句一般用于对数据库表中数据进行查询操作;
命令主要包含:- select
-
DCL语句(数据控制语句)
数据控制语句一般用于对于数据库用户的权限管理,事务管理;
DCL包含以下命令:- grant (权限设置)
- revoke(回收权限)
- commit(事务提交)
- rollback(事务回滚)
SQL查询
SQL查询在数据库中是非常重要的组成,因为未来开发场景下,大多数的功能都集中在查询上,而且查询可以简单,也可以复杂,复杂到很多表之间的联合查询。
SQL查询的语法:
select
distinct
查询列
from
表名称
连接表(inner join/left join/right join)
where
查询条件
group by
分组依据
having
分组的查询条件
order by
排序字段
limit
结果限制
查询注意事项:
-
对于任何查询,明确几个目标:
-
查询列
-
查询目标表
-
查询条件
-
查询方式:
多表查询:
等值连接
内连接
自连接
外连接(左外连接,右外连接)
子查询
单行子查询
多行子查询
多列子查询(虚拟表)
对于同一个查询需求可以使用多种手段实现,但是需要考虑效率
查询语句优化:
- 尽量避免子查询
- 避免使用“*” ,应增加查询范围的限制
- 对查询结果尽量使用limit显示
- 避免使用like
- 尽量使用not null 定义字段
- 选择合适的索引列,如果某个字段不是经常被作为查询条件进行使用时,那么该字段尽量就不要作为索引
- 尽可能使用更小的字段
- 避免频繁创建和删除临时表