风姿浪漫、排序检索数据

1.排序数据SELECT prod_name
FROM Products ORDER BY prod_name(对prod_name列以字母顺序排序数据卡塔 尔(阿拉伯语:قطر‎

O奥德赛DER
BY子句的职位

在钦定一条O景逸SUVDER
BY子句时,应该保险它是SELECT语句中最终一条子句。倘若它不是最终的子句,将会冒出错误新闻。
通过非选取列实行排序
通常,ORAV4DER
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

可以看看,这里的出口与地方的询问同风华正茂,不一致之处在于OTiggoDER
BY子句。SELECT项目清单中钦点的是选取列的相对地方实际不是列名。O昂CoraDE福特Explorer BY
2代表按SELECT清单中的第三个列prod_name进行排序。O凯雷德DE福睿斯 BY
2,3代表先按prod_price,再按prod_name举行排序。
这一手艺的第朝气蓬勃利润在于不要再行输入列名。但它也许有重疾。首先,不明了给出列名有比超大希望产生错用列名排序。其次,在对SELECT清单进行转移时轻便错误地对数码举办排序(忘记对O奇骏DER
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卡塔 尔(英语:State of Qatar)。
提示:区分抑扬顿挫写和排序依次
在对文个性数据进行排序时,A与a相符呢?a位于B在此之前,依然Z之后?那个主题素材不是论战难题,其答案决议于数据库的装置格局。
在字典(dictionary卡塔 尔(阿拉伯语:قطر‎排序依次中,A被视为与a雷同,那是绝大好多数据库管理类别的私下认可行为。可是,多数DBMS允许数据库管理员在必要时更改这种作为(要是您的数据库饱含多量外语字符,恐怕必得那样做卡塔 尔(阿拉伯语:قطر‎。
此处的关键难点是,假使真的须求退换这种排序依次,用简易的O福睿斯DER
BY子句大概做不到。你必需央求数据库管理员的增加帮衬。

二、过滤数据

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

警戒:WHERE子句之处
在同一时候使用O宝马X5DEWrangler 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子句
为了节省空间,也为了减削你的输入,作者在无数例证里大概了ORAV4DER
BY子句。由此,你的输出完全有望与书上的输出不相近。即使再次来到行的多寡再三再四没错,但它们的顺序大概分化。当然,假设您愿意也能够增进一个O瑞虎DER
BY子句,它应当献身WHERE子句之后。
2.OR操作符SELECT
vend_id,prod_price,prod_name FROM Products WHERE
vend_id=’DLL01′ OR
vend_id=’BRS01′

此SQL语句检索由任叁个内定承包商创建的装有成品的产物名和价格。O奇骏操作符告诉DBMS相配任一条件并非还要包容多少个条件。 

图片 5

3.求值梯次(AND
ORubicon卡塔 尔(英语:State of Qatar)

输入:

SELECT
prod_name, prod_price FROM Products 

WHERE
vend_id = ‘DLL01’ OR vend_id = ‘BRS01’ AND prod_price >=
10

输出:

图片 6

难点:请看上面的结果。重临的行中有**4行价格低于10**法郎,分明,重返的行未按预期的进展过滤。为啥会如此吗?缘由在于求值的各样。SQL(像比较多语言同样卡塔尔在管理OHaval操作符前,优先管理AND操作符。当SQL看见上述WHERE子句时,它驾驭为:由经销商B奥迪Q7S01创造的价钱为10法郎以上的装有成品,以致由分销商DLL01创制的装有付加物,而不管其标价怎么着。换句话说,由于AND在求值进程中开始时期级更高,操作符被张冠李戴地结合了。

赶尽杀绝办法:

SELECT prod_name, prod_price FROM Products 

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

实际只要用括号括起来就好了

晋升:在WHERE子句中动用圆括号
别的时候使用全体AND和O奇骏操作符的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和OPRADO操作符组合使用IN时,求值顺序更易于管理。
  • IN操作符日常比生机勃勃组OKoleos操作符实施得更加快(在上头那个合法选项少之又少的例证中,你看不出质量差距卡塔 尔(英语:State of Qatar)。
  • IN的最大优点是能够分包别的SELECT语句,能够改动态地创设WHERE子句。第11课会对此进行详细介绍。

IN
WHERE子句中用来钦赐要相称值的清单的首要字,功效与OQX56优质。

5.NOT操作符

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

何以选择NOT?对于这里的这种简易的WHERE子句,使用NOT确实尚未什么优势。但在更头晕目眩的子句中,NOT是不行平价的。举例,在与IN操作符联合利用时,NOT能够特别简单地寻找与原则列表不匹配的行。

作者:今孝
出处:
本文版权归笔者和果壳网共有,款待转发,但未经作者同意必得保留此段表明,且在小说页面显著地点给出原来的作品连接。

感到好就点个推荐把!

相关文章