T4-1select基本结构

语法:

  1. select <字段名1,字段名2,字段名3...>
  2. from <表名>
  3. [where<条件表达式>]
  4. [group by 字段名1,字段名2,字段名3... having<条件表达式>]
  5. [order by<字段名1,字段名2,字段吗3...>[ASC(升序,默认)]DESC(降序)]

T4-1~4-2所有例子和数据库:

数据库:bus.sql
第四章列题.png1.选择所有列
select from line
**
代表所有列
2.查询部分列
select lineNo from line
lineNo代表查询的字段名
3.列标题
select 字段名1 (空格)列标题1,字段名2 as 列标题 2
4.DISTINCT关键字过滤重复行
select distinct 字段名 from 表名
DISTINCT写在select from 之间
!注意:
(1)ceil(num)为Mysql内置的数学函数,其功能是
对数值型num进行向取整,例如ceil(12.4)=13
(2)floor(num)为Mysql内置的数学函数,其功能是
对数值型num进行向取整,例如floor(12.7)=12
(3)round(num)为Mysql内置的数学函数,其功能是
对数值型num进行向四舍五入**取整,例如round(12.7)=13

4-2Mysql运算符

运算符 含 义
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算,返回商
% 求余运算,返回余数

!注意:
除数不能为0,为0没有意义返回NULL
Mysql比较运算符

运算符 含义
= 等于
<=> 安全等于,可以比较null
<>或!= 不等于
>= 大于等于
<= 小于等于
> 大于
< 小于
is null 判断一个值是否为null
is not null 判断一个值是否不为null

Mysql逻辑运算符

运算符 含义
AND或者&& 逻辑与,含义并且,在两边都不为null的情况下,需要两边表达式同时为1(真)返回1否则返回0
OR或者|| 逻辑或,含义或者,在两边都不为null的情况下,有一边为1返回值为,如果两边都为null时返回null
NOT或者 ! 逻辑非,含义取反,只有一个表达式,当表达式为0时返回值为1,反之为0,当表达式为null时返回值则为null
XOR 逻辑异常,当任意一个操作数为null时,返回值为null。其余与or相似,01取1,00取0

4-3定制查询结果

4-3-1查询结果排序

1)单列排序:即order by子句后只有一个列名
例:select from line order by miles asc
说明:对miles字段进行升序排序,默认为升序排序可以省略 asc 降序为:desc
2)多列排序:即从左到右以此排序,当第一个字段值一样时,则比较下一个字段的值
例:select lineNo ,company,from_station,end_station,miles,number from line order by miles,number desc
*说明:先按miles字段进行升序排序,当遇到miles的值一致时,则按照number的值进行降序排序

4-3-2 使用limit限制查询结果数量

语法:select * from 表名 limit[offset,]rows

  1. 标红的参数必须为整数,offset可以省略
  2. offset 表示从第几个记录数开始,rows代表有几行

limit一般配合order by使用 用来查询第几名冠亚军

4-4模糊查询

4-4-1:LIKE运算符

!注意:只有对字符类型的数据才能使用LIKE运算符和通配符
1.%通配符可以匹配0到多个任意字符
例子:select name,phone from driver where name like ‘张%’
说明:查询姓名中性张的人的记录
2.“”通配符
*“
”通配符与“%”相似,但只能代表任意一个字符,如需匹配两个字符。则用“_
例子:select name,phone from driver where name like’林_ 一’
说明:查询名字开头为林结尾一的人的手机号

4-4-2:IN运算符

in也称“成员条件运算符”用于查询值是不是在一个指定的集合里:
例子:select lineNo,from_startion,edn_station from line where company in(‘公交一公司’,’公交三公司’)
恒等于:select lineNo,from_startion,edn_station from line where company=‘公交一公司’or company=‘公交三公司’
说明:查询公司为一公司和三公司的数据
经验:IN运算符与OR运算符相比,其优点是:当选择条件很多时,采用IN运算符运行效率更高

4-4-3:between…and运算符

在where子句中,可以采用between…and运算符选取介于两个值之间的数据,可以时数字,日期类型(范围取值包括边界值) 恒等于:>= or <=
1)比较数字类型的数据
例子:select lineNo,from_station,end_station,miles from line where miles between 20 and 50
说明:查询长度为20-25千米线路的信息
2)比较日期类型的数据
例子:select * from employee where birthday between ‘1970-01-01’ and ‘1980-01-01’
说明:查询生日在:’1970-01-01’ 到 ‘1980-01-01’之间员工的日期