第一章第一节 SQL的使用(一)检索数据并过滤
SQL基础介绍
数据库:保存有组织的数据的容器;
表:某种特定类型数据的结构化清单;
列:表中的一个字段。表由多个列组成;
数据类型:列允许的数据的类型;限制列中存储的数据;
行:表中的一个记录;
主键:表中每一行都应该有可以唯一标识自己的一(组)列,其值可以唯一标识表中的每一行;这(组)列就是主键;
检索数据
检索单个列;
1 | SELECT prod_name FROM Products; |
检索多个列;
1 | SELECT prod_id, prod_name, prod_price FROM Products; |
检索所有列;
1 | SELECT * FROM Products; |
排序检索数据
子句:在SQL语句中,一个关键字加上所提供的数据组成一个子句,SQL由多个子句组成;排序SELECT语句检索出的数据使用ORDER BY子句;
ORDER子句取一个或多个列,据此对输出进行排序;ORDER子句必须是SELECT语句的最后一条子句;ORDER BY子句中的列不一定是SELECT中的列。
1 | SELECT prod_name FROM Products ORDER BY prod_name; |
ORDER BY子句的排序默认为升序,若需要对列进行降序排列,需在列的后面加上DESC关键字。若要对多个列降序排序,则需每个列都指定DESC关键字。
过滤数据
在检索时通常只需要检索所需的数据,这可以通过在WHERE子句中指定搜索条件来实现;WHERE子句在表名之后给出。
1 | SELECT prod_name, prod_price FROM Products WHERE prod_price=3.49; |
这样数据库只返回所需的数据。
WHERE子句操作符有如下这些。
在使用BETWEEN操作符执行范围检查时,需要使用两个值,这两个值用AND连接。
WHERE [列名] IS NULL是为了查找该列为空值的行。
高级数据过滤
为了进行更强的过滤控制,SQL允许使用多个WHERE子句;这些子句通过AND或OR连接;为了保证你想要的运算次序,建议使用括号明确分组各子句。
IN操作符:可用来指定条件范围,范围中的每个条件都可以进行匹配。IN的用法为:IN (val_1, val_2, …, val_m)
IN相比OR操作符,使语法更加清楚直观。
NOT操作符:否定它之后所跟的任何条件。
用通配符进行过滤
通配符:用来匹配值的一部分的特殊字符。
搜索模式:由字面值、通配符或两者组合构成的搜索条件。
LIKE操作符后连接搜索模式以进行通配符过滤;
%通配符:任何字符出现任意次数(包括0次);
_通配符:只匹配单个的任意字符;
注:SQL通配符很有用,但是它处理的时间较长,特别是将通配符放在开头时。