MySQL基础

排序检索数据

1.排序数据

子句:SQL语句由字句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子有SELECT语句的FROM子句  

为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY 子句。ORDER BY 子句取一个或多个列的名字,据此对输出进行排序

SELECT prod_name

FROM products

ORDER BY  prod_name;

这条语句除了指示MySQL对prod_name 列以字母顺序排序数据的ORDER BY子句外,与前面的语句相同

(还可以通过非选择列进行排序)

2.按多个列排序

SELECT prod_id,prod_price,prod_name

FROM products

ORDER BY prod_price,prod_name;

理解在按多个列排序时,排序完全按所规定的顺序进行。

从以上的列子而言,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果

prod_price列中所有的值都是唯一的,则不会按prod_name排序

3.排序指定方向

还可以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序,必须指定DESC关键字

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;

DESC关键字只应用到直接位于其前面的列名。

(如果在多个列进行降序排序必须对每个列指定DESC关键字)

与DESC相反的关键字为ASC即升序

(如果需区分大小写例如a位于B前还是后需要对数据库进行设置)

使用ORDER BY 和LIMIT的组合,能够找出一个列中最高或最低的值

SELECT prod_price

FROM products

ORDER BY prod_price,DESC

LIMIT  1;

prod_price DESC保证是按照最贵的到最便宜进行检索的,而LIMIT  1告诉MySQL仅返回一行。

(关键字需保证顺序在使用了的情况下ORDER BY位于FROM后,而LIMIN位于ORDER BY后,这样使用的子句不会产生次序错误)

过滤数据

1.使用WHERE子句

数据库表一般包含大量的数据,很少需要检索表中所有行。通常会根据特定的操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件,搜索条件也称为过滤条件

 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出

SELECT prod_name,prod_price

FROM products

WHERE prod_price=2.50;

这条语句从products中检索出两个列,但返回不同的所有行,只需返回prod_price 值为2.50的行

(WHERE子句的位置,同时使用ORDER BY和WHERE子句时,应该让ORDER BY子句位于WHERE子句之后,否则将会产生错误)

2.WHERE子句操作符

操作符   说明   
= 等于
<> 不等于
!= 不等于
<

小于

> 大于
<= 小于等于
>= 大于等于
BETWEEN      在指定两个值之间

3.检查单个值

SELECT prod_name,prod_price

FROM products

WHERE prod_name='fuses';

检查WHERE prod_name='fuses'语句,它返回prod_name的值为Fuses的一行。MySQL在执行匹配时不区分大小写,所以fuses和Fuses都匹配。

4.不匹配检查

SELECT  vend_id, prod_name

FROM products

WHERE vend_id<>1003;

检查vend_id 列不为1003 的行

同时<>符号也可以换成    !=

5.范围值检查

SELECT prod_name,prod_price

FROM products

WHERE prod_price BETWEEN 5 AND 10;

使用BETWEEN时,必须指定两个值——所需范围的低端和高端。这两个值必须用AND关键字分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。

6.空值检查

在创建表时,表式设计人员可以指定其中的列是否可以不包含值,一个列不包含值时,称其为包含空值NULL

(空值与字段包含0空字符串或仅仅包含空格不同)

SELECT prod_name

FROM products

WHERE prod_price IS NUll;

这条语句返回价值没有值的产品

你可能感兴趣的:(mysql,数据库)