MySQL过滤查询

1.SQL的各个子句执行先后顺序:

-------------------------------------------------

1):FROM 子句: 确定了从哪一张表中去做查询.

2):WHERE子句:从表中直接筛选出符合条件数据.

3):SELECT子句:从筛选之后的结果集中显示出某些列.

4):ORDER BY子句:对查询结果做排序操作

2.过滤查询

    范围查询-BETWEEN AND:

使用BETWEEN运算符显示某一值域范围的记录,这个操作符最常见的使用在数字类型/日期类型数据的范围上,但对于字符类型数据和日期类型数据同样可用。

格式:

SELECT *  FROM table_name  WHERE 列名 BETWEEN  最小值 AND  最大值:闭区间。

需求: 选择id,货品名称,批发价在300-400之间的货品

需求: 选择id,货品名称,批发价不在300-400之间的货品

--------------------------------------------------------------------

使用IN运算符,判断列的值是否在指定的集合中

格式:SELECT *  FROM  table_name   WHERE 列名 IN (值1,值2....);

需求:选择id,货品名称,分类编号为2,4的所有货品

需求:选择id,货品名称,分类编号不为2,4的所有货品

 

空值查询-IS NULL:

NULL表示某一列没有数据,也不是空字符串.

IS NULL:判断列的值是否为空。

格式:WHERE  列名 IS NULL;

需求:查询商品名为NULL的所有商品信息。

-----------------------------------------------------------------------

模糊查询:

使用LIKE运算符执行通配查询,查询条件可包含文字字符或数字:

通配符表示匹配模式:

%通配符:可表示零或多个字符任意。

_通配符:可表示一个字符。

通配符:用来实现匹配部分值得特殊字符。'_M%'

-----------------------------------------------------

需求: 查询id,货品名称,货品名称匹配'%罗技M9_'

需求: 查询id,货品名称,分类编号,零售价大于等于200并且货品名称匹配'%罗技M1__'

排序查询:使用ORDER BY子句将查询记录进行排序,

ASC   : 升序,缺省。

DESC : 降序。

ORDER BY 子句出现在SELECT语句的最后。

格式:

SELECT <selectList>

FROM table_name

WHERE 条件

ORDER BY 列名1 [ASC/DESC],列名2 [ASC/DESC]...;

-------------------------------------------------------

按单列排序:

需求:选择id,货品名称,分类编号,零售价并且按零售价降序排序

按多列排序:

需求: 选择id,货品名称,分类编号,零售价先按分类编号排序,再按零售价排序

------------------------------------------------------

需求:查询M系列并按照批发价排序(加上别名)

需求:查询分类为2并按照批发价排序(加上别名)

注意:不能使用中文的别名排序。

--------------------------------------------------------------------------

SELECT语句执行顺序:

先执行FROM--->接着执行WHERE--->再执行SELECT--->最后执行ORDER BY

猜你喜欢

转载自www.cnblogs.com/Sly-Mi/p/9315439.html
今日推荐