#MYSQL#这是第二篇MySQL优化的教程,本篇还是着重讲解sql语句的基础,了解SQL的历史,知道他的来龙去脉。摸清楚他是如何执行,有怎么的解构,才能更好使用。今天的主要内容是SQL语言的组成,和SQL的解构,以及SQL是一那种方式去执行的。
SQL语言的组成,SQL可以创建。维护,保护数据库对象。井且可以操作对象中的数据。因此SQL被认为是一种党整的略言。依粥SQL语言的执行功能,可以将S0L分为以下儿部分。
数据定式语言DDL.D山DfrinIuappe:立要用于创建。修改成删徐数据本时SQL语言基础视团。主要是CREATALTER*和DROP
数据查询语言DOL.DeaQuryLapgeh主要用于数据的检本查的,与其相关的土要S0L关健字为SELECT.
数据操作语言DML.DataManipubtonLngpgpt主要用于添加。榜改成删除存储在数器库对象中的数据,与其相关的主要SQL关键字包括INSERT.UNPDATE和DELECT.
数据控制语言DCL.DaaCoetroilLapngerk可以检制的同数据库中特定对象,还可以控制同户对数器库的访问类型,与其相是的主要SQL关健字包括GRANTDENY和REVOKE.
其他语言要素idlimalLsguggEnetsh80L除了包括上述4种动能播言外。还包括如事务控制。程序化将古等其他语言要素.
SQL语言的结构每条SQL语句均由--个谓词开始,该谓词描述这条语句要产生的动作,如SELECT关键字。谓词后紧接着一一个或多个子句(Clause),子句中给出了被谓词作用的数据或提供谓词动作的详细信息。每一条子句由-一个关键字开始,如WHERE.
SQL的优点非过程化语言SQL是一个非过程化的语言,因为它-次处理-一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作。而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入。返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。
这种特性使用户更易集中精力于要得到的结果。所有SQL语句都使用查询优化器。它是关系数据库管理系线(RDBMS)的一部分,由它决定对指定数据最快速度存取的手段。查询优化器知道存在什么索引。在哪儿使用合适。而用户从不需要知道表是否有索引。表有什么类型的索引。.
.统一的语言SQL可用于所有用户的数据库活动模型,包括系统管理员、数据库管理员。应用程序员。决策支持系统人员及许多其他类型的终端用户。基本的SQL命令只需很少时间就能学会。最高级的命令在几天内也可掌握。
SQL为许多任务提供了以下命令。查询数据,在表中插入,修改和删除记录,建立。惨改和删除数据对象,控制对数据和数据对象的存取,保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言。面sQL将全部任务统-一在一种语言中。
是所有关系数据库的公共语言由于所有主要的关联数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。除了定文如何使用语言外,SQL:标准还详细说明了如何执行SQL语句一共用3种执行方法。
第一种,直接调用:利用这种方法。可以从前端应用程序,如SQLServer中的QuryAnalyzer(查询分析器).Onacle中的SQL*PhusWorsheet,直接与SQL服务器上的数据库进行通信。我们只要把查询输入到应用程序窗口。然后执行SQL语句。就可以获取查询结果。这种方法可以迅速检查数据。验证连接和观察数据库对象
第二种,嵌入式SQL:在这种方法中,SQL语句直接编码(嵌入)在主机编程语言中。例如。我们可以将SQL语句嵌入C应用程序代码中。在编译代码之前,预处理器将分析SQL语旬,并把这些语面从C代码中分离出来。SQL代码被转提成-种能为RDMS理解的格式,其余的C代码則按照正常的方式进行编译。
第三种,模块绑定:这种方法可以创建和主机端程语言相分离的SQL语句代码块,即模块。模块在创建后就被组合到应用程序中。CuI(调用层接口):通过把作为参数值的SQL语句传递到子倒程。Cul可以通过接口调用SQL语句。这些语司在嵌入式SQL和模块饰定中,并不进行预编译,RDMS将直接执行这些语句。
虽然直接调用不是最通用的方法,但是因为它直接将查询提交给数据库,并且可以立即生成结果。在实际应用中。嵌入式SQL也是最常用的方法。