3、数据操纵语言
SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新,那么这就需要用到我们SQL中非常重要的数据操纵语言。
像我们使用最多的查询语句、插入语句、删除语句、修改语句就是属于数据操纵语言。
4、 数据控制语言
我们可以使用SQL语言来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问,那么这时我们就会用到数据控制语言。数据控制语言包括了数据控制和事务控制两类语言,像我们用到的授权控制语句、事务控制语句都是属于数据控制语言。
5、 程序化SQL语句
那么最后我们来说一下程序化SQL语句,程序化SQL语句包括了像变量的定义、动态执行SQL语句在内的一些语法,相比较前面我们说到的语言种类,这些语法我们用到的不是很多,在这我们不做重点讲解。
三、SQL语句的结构
1、 注意语法顺序
那么下面我们了解下SQL语句的结构,首先我们了解下SQL语句的语法顺序,我们就以查询语句为例来给大家作详细的讲解。
好,如果我们想要得到右边的数据结果,那么查询语句的语法顺序应该是查询,字段列表,从,表名,条件是,年龄大于10,按年龄分组,取分组后计数大于1的,最后再输出前4条。
由此我们可以总结出查询语句的语法顺序是:
第1步,先选择from后面跟的表,产生虚拟表1;
第2步,当如果有Join和ON,那么我们会再连接其它表,合并生成虚拟表2;
第3步,对虚拟表2进行条件过滤,符合条件的记录会被插入到虚拟表3中;
第4步,对虚拟表3中的记录进行分组操作,产生虚拟表4;
第5步,再对虚拟表4进行HAVING条件过滤,符合条件的记录会被重新插入到虚拟表5中;
第6步,再用Select关键字选择指定的列并插入到虚拟表6中;
第7步,如果遇到UNION,那么会再连接两个SELECT查询语句,重复步骤1~6,并将2个虚拟表合并到虚拟表7中;
第8步,再将虚拟表7中的记录进行排序,重新生成虚拟表8。
第9步,那么最后再次取出指定行的记录,返回结果集。
那么这就是整个查询语句的执行顺序。