首页 理论教育 MySQL数据库应用与实例教程:SELECT语句概述

MySQL数据库应用与实例教程:SELECT语句概述

时间:2023-11-22 理论教育 版权反馈
【摘要】:图5.1 MySQL服务与执行原理SELECT语句可以从一个或多个表中选取特定的行和列,结果通常是生成一个临时表。USE PXSCJSELECT 姓名,专业,总学分FROM XSB;2.定义列别名当希望查询结果中的某些列或所有列显示自己选择的列标题时,可以在列名之后使用AS子句来指定查询结果的列别名。图5.2 查询重命名列名5.1.2 指定查询条件使用where子句过滤结果集。

MySQL数据库应用与实例教程:SELECT语句概述

MySQL服务与执行原理如图5.1所示。

图5.1 MySQL服务与执行原理

SELECT语句可以从一个或多个表中选取特定的行和列,结果通常是生成一个临时表。在执行过程中系统根据用户的要求从数据库中选出匹配的行和列,并将结果存放到临时的表中,SELECT语句的语法格式如下:

select语句的语法格式如下:

select 字段列表

[ALL | DISTINCT]

from 数据源表

[where条件表达式]

[group by 分组字段

[having条件表达式]

[order by 排序字段 [asc | desc]]

[LIMIT {[offset,] row_count}]

5.1.1 使用select语句指定字段列表

使用表5.1所示的几种方式指定字段列表。

表5.1 指定字段列表的方式

可以为字段列表中的字段名或表达式指定别名,中间使用as关键字分隔即可(as关键字可以省略)。

多表查询时,同名字段前必须添加表名前缀,中间使用“.”分隔。

1.选择指定的列

使用SELECT语句选择表中的某些列,各列名之间要以逗号分隔。

【例5.1】查询PXSCJ数据库的XSB表中各个同学的姓名、专业和总学分。

USE PXSCJ

SELECT 姓名,专业,总学分

FROM XSB;

2.定义列别名

当希望查询结果中的某些列或所有列显示自己选择的列标题时,可以在列名之后使用AS子句来指定查询结果的列别名。语法格式为:

SELECT column_name [AS] column_alias

【例5.2】查询XSB表中计算机系同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。

SELECT 学号 AS number,姓名 AS name,总学分 AS mark

FROM XSB

WHERE 专业= '计算机';

查询结果如图5.2所示。

图5.2 查询重命名列名

5.1.2 指定查询条件

使用where子句过滤结果集。数据库中存储着海量数据,数据库用户往往需要的是满足特定条件的记录,where子句可以实现结果集的过滤筛选。

where子句的语法格式:

where 条件表达式(www.xing528.com)

使用单一的条件过滤结果集。单一的过滤条件可以使用下面的布尔表达式表示。

表达式1 比较运算符 表达式2

说明:“表达式1”和“表达式2”可以是一个字段名、常量、变量、函数甚至是子查询。

比较运算符用于比较两个表达式的值,比较的结果是一个布尔值(true或者false)。

常用的比较运算符有=(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、<>(不等于)、!=(不等于)、!<(不小于)、!>(不大于)。

如果表达式的结果是数值,则按照数值的大小进行比较;如果表达式的结果是字符串,则需要参考字符序collation的设置进行比较。

1.比较运算

比较运算符用于比较两个表达式的值,MySQL支持的比较运算符有=(等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、<=>(相等或都等于空)、<>(不等于)、!=(不等于)。

比较运算的语法格式为:

expression 1{ = | < | <= | > | >= | <=> | <> | != } expression 2

其中expression 1,expression 2是除TEXT和BLOB类型外的表达式。

当两个表达式值均不为空值(NULL)时,除了“<=>”运算符,其他比较运算均返回逻辑值TRUE(真)或FALSE(假)。

【例5.3】查询XSB表中总学分大于50的同学的情况。

SELECT 姓名,学号,出生时间,总学分

FROM XSB

WHERE 总学分>50;

查询结果如图5.3所示:

图5.3 使用where条件查询

2.使用逻辑运算

where子句中可以包含多个查询条件,使用逻辑运算符可以将多个查询条件组合起来,完成更为复杂的过滤筛选。常用的逻辑运算符包括逻辑与(and)、逻辑或(or)以及逻辑非(!),其中逻辑非(!)为单目运算符。NOT表示对判定的结果取反。AND用于组合两个条件,两个条件都为TRUE时值才为TRUE。OR也用于组合两个条件,两个条件有一个条件为TRUE时值就为TRUE。

(1)逻辑非(!)。

逻辑非(!)为单目运算符,逻辑非(!)的使用方法较为简单,语法格式如下。

!布尔表达式

使用逻辑非(!)操作布尔表达式时,布尔表达式的值为true时,整个逻辑表达式的结果为false,反之亦然。

(2)逻辑与(and)。

使用and逻辑运算符连接两个布尔表达式时,只有两个布尔表达式的值都为true时,整个逻辑表达式的结果才为true。语法格式如下。

布尔表达式1 and 布尔表达式2

另外,MySQL还支持between…and…运算符,between…and…运算符用于判断一个表达式的值是否位于指定的取值范围内,between…and…的语法格式如下。

表达式 [not] between 起始值 and 终止值

(3)逻辑或(or)。

使用or逻辑运算符连接两个布尔表达式时,只有两个表达式的值都为false时,整个逻辑表达式的结果才为false。语法格式如下。

布尔表达式1 or 布尔表达式2

【例5.4】查询XSB表中专业为计算机,性别为女(0)的同学的情况。

SELECT 姓名,学号,性别,总学分

FROM XSB

WHERE 专业='计算机' AND 性别=0;

查询结果如图5.4所示。

图5.4 逻辑运算查询

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈