SQL必知必会 -------- order by、where等

作者:必赢体育

意气风发、排序检索数据

1.排序数据SELECT prod_name FROM Products ORDER BY prod_name(对prod_name列以字母顺序排序数据)

OWranglerDER BY子句的职位
在钦命一条OSportageDER BY子句时,应该保障它是SELECT语句中最终一条子句。若是它不是最终的子句,将会产出谬误音讯。
通过非接纳列进行排序
常常,O普拉多DER BY子句中使用的列将是为展现而选拔的列。但是,实际上并不一定要如此,用非检索的列排序数据是一丝一毫合法的。

2.按三个列排序SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price,prod_name

图片 1

最首要的是明亮在按多少个列排序时,排序的次第完全按规定进行。换句话说,对于上述例子中的输出,仅在多少个行有所一样的prod_price值时才对产品按prod_name进行排序。假若prod_price列中有着的值都是有一无二的,则不会按prod_name排序。

3.按列地方排序SELECT prod_id,prod_price,prod_name FROM Products ORDER BY 2,3 这一个和按八个列排序结果是豆蔻梢头致的,无非就是本来的列名称改成了地点序号。

图片 2

能够观察,这里的出口与地方的询问同后生可畏,区别之处在于O智跑DER BY子句。SELECT清单中钦赐的是挑选列的对立地方并非列名。OHighlanderDESportage BY 2代表按SELECT清单中的首个列prod_name举办排序。O锐界DETiguan BY 2,3代表先按prod_price,再按prod_name进行排序。
这一本领的主要收益在于不要再行输入列名。但它也许有短处。首先,不断定给出列名有希望导致错用列名排序。其次,在对SELECT清单举行改动时轻便错误地对数码开展排序(忘记对OGL450DER BY子句做相应的改换)。最终,若是实行排序的列不在SELECT清单中,显然不能够接纳这项技巧。

4.钦赐排序方向SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price DESC

SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price DESC,prod_name

图片 3

DESC关键字只行使到直接放在其眼下的列名。在上例中,只对prod_price列指定DESC,对prod_name列不钦命。因而,prod_price列以降序排序,而prod_name列(在各样价位内)如故按标准的升序排序。

警告:在多少个列上降序排序
比如想在多个列上实行降序排序,必须对每一列钦定DESC关键字。
请留意,DESC是DESCENDING的缩写,那三个注重字都得以动用。与DESC相对的是ASC(或ASCENDING),在升序排序时方可钦命它。但其实,ASC未有多大用处,因为升序是默许的(要是既不钦命ASC也不内定DESC,则只要为ASC)。
提醒:区分朗朗上口写和排序依次
在对文本性数据开展排序时,A与a一样呢?a位于B以前,依然Z之后?这一个难点不是理论难点,其答案决定于数据库的安装方法。
在字典(dictionary)排序依次中,A被视为与a一样,那是大大多数据库管理体系的暗中同意行为。可是,大多DBMS允许数据库管理员在急需时退换这种表现(要是你的数据库富含大量国外语字符,只怕必需这么做)。
那边的关键难题是,假诺的确须要转移这种排序依次,用简易的O奥迪Q5DER BY子句只怕做不到。你不可能不伏乞数据库管理员的协理。

二、过滤数据

1.where语句SELECT prod_name,prod_price FROM Products WHERE prod_price=3.49

提个醒:WHERE子句的职位
在同期选用OTiggoDEEvoque BY和WHERE子句时,应该让O哈弗DER BY位于WHERE之后,不然将会发出错误。举个例子:SELECT prod_name,prod_price FROM Products WHERE prod_price=3.49 ORDER BY prod_name ASC

图片 4

 

2.反省单个值:SELECT prod_name,prod_price FROM Products WHERE prod_price < 0

3.不相配检查:SELECT vend_id,prod_name FROM Products WHERE vend_id <>'DLL01'

4.范围值检查:SELECT prod_name,prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10

5.空值检查: SELECT cust_name FROM customers WHERE cust_email IS NULL

三、高级数据过滤

1.AND操作符SELECT prod_id,prod_price,prod_name FROM Products WHERE vend_id='DLL01' AND prod_price <=4

此SQL语句检索由经销商DLL01成立且价格小于等于4日币的具有产品的称呼和价格。那条SELECT语句中的WHERE子句包涵多少个尺码,用AND关键字联结在共同。AND提醒DBMS只回去满足全数给定条件的行。若是某些产品由经销商DLL01创立,但价格超越4欧元,则不检索它。

AND
用在WHERE子句中的关键字,用来指示检索满意全体给定条件的行。
其风流浪漫例子只含有二个AND子句,由此最多有五个过滤条件。可以追加多个过滤条件,每一个条件间都要利用AND关键字。
说明:没有ORDER BY子句
为了节约空间,也为了减小你的输入,我在不菲事例里大概了OHavalDER BY子句。因而,你的输出完全有望与书上的输出不等同。固然重临行的数量接二连三对的,但它们的各种大概差别。当然,即使您愿意也得以加上多少个OENVISIONDER BY子句,它应有投身WHERE子句之后。
2.OR操作符SELECT vend_id,prod_price,prod_name FROM Products WHERE vend_id='DLL01' OR vend_id='BRS01'

此SQL语句检索由任二个钦赐中间商创建的全部产品的产品名和价格。OENVISION操作符告诉DBMS相配任一条件并非还要相称多个尺码。 

图片 5

3.求值家家户户(AND OTucson)

输入:

SELECT prod_name, prod_price FROM Products 

WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' AND prod_price >= 10

输出:

图片 6

主题材料:请看下面的结果。重返的行中有**4行价格低于10**欧元,鲜明,再次来到的行未按预想的举办过滤。为啥会那样啊?缘由在于求值的次第。SQL(像多数语言一样)在拍卖O传祺操作符前,优先管理AND操作符。当SQL见到上述WHERE子句时,它掌握为:由承包商BQX56S01成立的价钱为10英镑以上的保有成品,以至由承包商DLL01创立的全部产品,而不管其标价怎么。换句话说,由于AND在求值进程中先行级越来越高,操作符被错误地组成了。

化解方法:

SELECT prod_name, prod_price FROM Products 

WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01') AND prod_price >= 10

骨子里倘若用括号括起来就好了

提示:在WHERE子句中应用圆括号
别的时候利用具备AND和OSportage操作符的WHERE子句,都应该运用圆括号分明地分组操作符。不要过度信赖暗中认可求值顺序,即便它实在如你希望的那样。使用圆括号未有怎么坏处,它能祛除歧义。

4.IN操作符

输入:

SELECT vend_id,prod_name,prod_price FROM Products
WHERE vend_id IN ('DLL01','BRS01')
ORDER BY prod_name

输出:

图片 7

为啥要利用IN操作符?其独特之处为:

  • 在有为数不菲官方选项时,IN操作符的语法更明了,越来越直观。
  • 在与此外AND和OEvoque操作符组合使用IN时,求值顺序更便于管理。
  • IN操作符平常比意气风发组OOdyssey操作符实行得更加快(在上头那几个合法选项非常少的例子中,你看不出品质差别)。
  • IN的最大亮点是足以包涵别的SELECT语句,能够更改态地树立WHERE子句。第11课会对此打开详尽介绍。

IN
WHERE子句中用来内定要相称值的清单的重视字,成效与OMurano十三分。

5.NOT操作符

SELECT prod_name FROM Products
WHERE NOT vend_id = 'DLL01'
ORDER BY prod_name;

为什么使用NOT?对于这里的这种轻易的WHERE子句,使用NOT确实还没什么优势。但在更复杂的子句中,NOT是卓殊有效的。举个例子,在与IN操作符联合使用时,NOT能够非常轻巧地找寻与法规列表不匹配的行。

作者:今孝
出处:
正文版权归作者和搜狐共有,招待转发,但未经我同意必需保留此段注明,且在篇章页面鲜明地方给出最早的小说连接。

认为好就点个推荐把!

本文由必赢体育发布,转载请注明来源

关键词: