聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 正在进行安全检测...

正在进行安全检测...

时间:2023-11-17 00:22:51    下载该word文档
10个简单步骤,完全理解SQL1SQL是一种声明式语言首先要把这个概念记在脑中:“声明”。SQL语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果。这是不是很棒?(译者注:简单地说,SQL语言声明的是结果集的属性,计算机会根据SQL声明的内容来从数据库中挑选出符合声明的数据,而不是像传统编程思维去指示计算机如何操作。)1SELECTfirst_name,last_nameFROMemployeesWHEREsalary>100000上面的例子很容易理解,我们不关心这些雇员记录从哪里来,我们所需要的只是那些高薪者的数据(译者注:salary>100000)。我们从哪儿学习到这些?如果SQL语言这么简单,那么是什么让人们“闻SQL色变”?主要的原因是:我们潜意识中的是按照命令式编程的思维方式思考问题的。就好像这样:电脑,先执行这一步,再执行那一步,但是在那之前先检查一下是否满足条件A和条B”。例如,用变量传参、使用循环语句、迭代、调用函数等等,都是这种命令式编程的思维惯式。2SQL的语法并不按照语法顺序执行SQL语句有一个让大部分人都感到困惑的特性,就是:SQL语句的执行顺序跟其语句的语法顺序并不一致。SQL语句的语法顺序是:SELECT[DISTINCT]FROMWHEREGROUPBYHAVINGUNIONORDERBY为了方便理解,上面并没有把所有的SQL语法结构都列出来,但是已经足以说SQL语句的语法顺序和其执行顺序完全不一样,就以上述语句为例,其执行顺序为:
FROMWHEREGROUPBYHAVINGSELECTDISTINCTUNIONORDERBY关于SQL语句的执行顺序,有三个值得我们注意的地方:1FROM才是SQL语句执行的第一步,并非SELECT。数据库在执行SQL句的第一步是将数据从硬盘加载到数据缓冲区中,以便对这些数据进行操作。者注:原文为“Thefirstthingthathappensisloadingdatafromthediskintomemory,inordertooperateonsuchdata.”,但是并非如此,以Oracle等常用数据库为例,数据是从硬盘中抽取到数据缓冲区中进行操作。)2SELECT是在大部分语句执行了之后才执行的,严格的说是在FROMGROUPBY之后执行的。理解这一点是非常重要的,这就是你不能在WHERE中使用在SELECT中设定别名的字段作为判断条件的原因。1SELECTA.x+A.yASz2FROMA3WHEREz=10--z在此处不可用,因为SELECT是最后执行的语句!如果你想重用别名z,你有两个选择。要么就重新写一遍z所代表的表达式:1SELECTA.x+A.yASz2FROMA3WHERE(A.x+A.y=10„或者求助于衍生表、通用数据表达式或者视图,以避免别名重用。请看下文中的例子。3无论在语法上还是在执行顺序上,UNION总是排在在ORDERBY之前。很多人认为每个UNION段都能使用ORDERBY排序,但是根据SQL语言标准和各个数据库SQL的执行差异来看,这并不是真的。尽管某些数据库允许SQL语句对子查询(subqueries)或者派生表(derivedtables)进行排序,但是这并不说明这个排序在UNION操作过后仍保持排序后的顺序。注意:并非所有的数据库对SQL语句使用相同的解析方式。如MySQLPostgreSQLSQLite中就不会按照上面第二点中所说的方式执行。我们学到了什么?

免费下载 Word文档免费下载: 正在进行安全检测...

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服