查询时选择列
1、基本查询语句
MySQL从数据表中查询数据的基本语句为SELECT语句。SELECT语句的基本格式是。
SELECT
{* | <字段列表>}
[
FROM<表1>,<表2>…[WHERE<表达式>]
[GROUP BY]
[HAVING[{}…]]
[ORDER BY]
[LIMIT[,]]
]
SELECT[字段1,字段2…,字段n]
FROM[表或视图]
WHERE[查询条件];
其中,各条字句的含义如下。
1、{* | <字段列表>}:包含星号通配符选择字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段不用加逗号。
2、FROM<表1>,<表2>…:表1和表2查询数据的来源,可以是单个或多个。
3、WHERE<表达式>:可选项,如果选择该项,将限定查询行必须满足的查询条件。
4、[GROUP BY<字段>]:该子句告诉MySQL如何显示查询出来的数据,并按照指定的字段分组。
5、[ORDER BY字段>]:该子句告诉MySQL该怎样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)、降序(DESC)。
6、[LIMIT[,]]:该子句告诉MySQL每次显示查询出来的数据条数数。
2、检索所有列
(1)在SELECT语句中使用星号()通配符查询所有字段。selec查询记录最简单的形式是从一个表中检索所有记录,实现的方法是使用星号()通配符指定查找所有列的名称。其语法格式为:
SELECT * FROM 表名;
(2)在select语句中指定所有字段。根据前面select语句的格式,select关键字后面的字段名为将要查找的数据,因此可以将表中所有字段的名称跟在select子句后面。有时候,由于表中的字段比较多,不一定记得所有字段的名称,因此该方法会很不方便,不建议使用,其语法格式为:
SELECT 字段1,字段2,…,字段n FROM 表名;
3、检索指定列
(1)检索单个字段。查询表中的某一个字段,语法格式为:
SELECT 字段名 FROM 表名;
(2)检索多个字段。要想从数据表中检索多个字段的数据,仍然使用相同的select语句,只需在关键字select后面指定要查找的多个字段的名称,不同字段名称之间用逗号(,)隔开,最后一个字段后面不需要加逗号,语法格式为:
SELECT 字段1,字段2,…,字段n FROM 表名;
有些情况,显示的字段名会很长,不能直观,可以指定字段别名替换字段或表达式,为字段定义别名的基本语法格式为:
字段名 [AS] 字段别名
其中字段名为表中字段定义的名称,字段别名为字段新的名称,AS关键字为可选参数。
注意,MySQL中的SQL语句时不区分大小写的,因此SELECT和select的作用是相同。
查询时选择行
1、查询指定记录
数据库中包含大量的数据,根据用户需求,可能只需要查询表中的指定数据,即对数据进行过滤,在SELECT语句中,通过WHERE子句可以对数据进行过滤,语法格式为:
SELECT 字段名1,字段名2,…,字符名n FROM 表名 WHERE 条件;
在WHERE子句中,MySQL提供了一系列的条件判断符,如下图所示。
操作符 说明
= 等于
<> , ! = 不等于
< 小于
<= 小于或等于
大于
= 大于或等于
BETWEEN 在指定的两个值之间
2、带IN关键字的查询
IN操作符用来指定条件范围,范围每一个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号的合法值,语法格式为:
SELECT 字段名1,字段名2,…,字段名n FROM 表名 WHERE 字段名 IN(值1,值2,…);
3、带BETWEEN AND的范围查询
BETWEEN AND用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结束值,若字段值满足指定的范围查询条件,则这些记录被返回,BETWEEN匹配范围中的所有值,包括开始值和结束值,语法格式为:
SELECT字段名1,字段名2,···.字段名 n FROM 表名 WHERE字段名 BETWEEN值1AND值2;
BETWEEN AND操作符前可以加关键字NOT,表示指定范围之外的值,若字段值不满足指定范围内的值,则这些记录被返回。
4、.带LIKE的字符匹配查询
前面介绍的所有操作符都是针对已知值进行过滤。不管是匹配一个值还是多个值,检验大于还是小于已知值,或者检查某个范围的值,其共同点是过滤使用的值都是已知的,如果要查找所有的姓“刘”的员工信息,该如何查找呢?简单的比较操作在这里已经行不通了,需要使用通配符进行匹配查找,通过创建查找模式对表中的数据进行比较。执行这个任务的关键字是LIKE,语法格式为:
SELECT字段名1,字段名2,···,字段名