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