上一期的SQL第二弹 ,我们给大家介绍了SQL中
Select语句的基本用法
本期,小编为大家带来Select语句的进阶用法!
话不多说,
以下部分资料来源于:W3school
链接:http://www.w3school.com.cn/sql/index.asp
如图将会是我们今天要用的database的Person表
Select- AND - OR
请敲下如下代码:
Select * from Person where FirstName='Thomas'
ANDLastName='Carter'
翻译一下上面的code: 把所有列,从Person这个表中提取出来,当FirstName为Thomas并且LastName为Carter。
Select * from Person where FirstName='Thomas'
ORLastName='Carter'
翻译一下上面的code: 把所有列,从Person这个表中提取出来,当FirstName为Thomas或者LastName为Carter。
这就是我们高中数学所学的内容啦~且与或的不同,且:两者均为真,才为真;或:两者中有一个真,就为真。
Order by
这个表是一张非常简单的表,我们叫它Orders,这个表由两列组成,一列是Company, 一列是OrderNumber。Order Number,即订单号码,代表不同的订单,接下来我们试一下按照公司名称顺序排列,和按照OrderNumber顺序排列两种情况。
Select Company, OrderNumber from Orders
order by Company
首先我们要注意,这里面from Orders order by这两个Order是完全不同的东西,前者代表上面那张表,后者代表一个命令。当然,这跟他们的大小写完全没有关系,毕竟SQL语句是大小写不敏感的~
我们可以看到公司名称按照了字母表的顺序排列,如果公司名称相同的话,则不会自动按照OrderNumber来进行排序,那如果我希望得到如下一张表,该如何实现呢?
这里我们可以分列来看,公司名称按照顺序排列,(得出一个结论过会可以用order by Company),OrderNumber呢?并没有显著的顺序,那再回过头看一下相同公司名称的时候OrderNumber是不是顺序也是从小到大的?这个时候,需要在上面的code中再加一个针对OrderNumber的排序。
Select Company, OrderNumber from Orders
order by Company, OrderNumber
辣么,要实现这个版本,我要如何做到呢?
只需要加一个DESC用来表示descend的排序(降序排列),那一般默认的ASC即为ascend(升序排列)。
Select Company, OrderNumber from Orders
order by Company DESC
那么问题又来了,要实现这一个排序功能,我要如何code呢?
不知道同学们在小编给出的code中有没有发现SQL这类编程的规律。那就是首先你要仔细地研究你想要得到的内容,它是怎样选择的,是排序的,在之后的内容中,还会涉及到多个表格之间的关联。那么去定义你想要得到的这个表格就非常重要,我需要哪些项,分别from哪些表格,他们中的哪些部分是需要的,哪些是不要的,又有哪些是共有的可以关联在一起的。在前期有一个思路是非常重要的!
这就跟求职一样,你能不能在求职前,有一个清晰的定位和规划,将成功决定你求职的难度系数。One Career第七期求职公开课盛大开讲,就在明天,我们不见不散!
重磅!求职哪有那么难?One Career第七期求职公开课盛大开讲,最强导师团队为你指点迷津
精彩
责任编辑: