MYSQL数据库(三)
三、查询机制
select * from 表名 [连接查询] [限定查询] [分组查询] [排序查询]
1.简单查询
select * from 表名 where 条件;
查询满足条件的所有信息
select 字段,字段 from 表名 where 条件;
查询满足条件的所有指定字段信息
(1)DISTINCT
去重关键字
(2)限定查询
between...and...
在指定范围内
and
且
or
或
is NULL
字段值为空
in (...)
在括号中所包含的字段值
like
模糊查询:
包含x的字符串:%x%
以x开头的字符串:x%
以x结尾的字符串:%x
占位符(一个字符):_
order by 字段 asc/desc
按照字段升序/降序排列
2.多表查询
select 字段,字段 from 表1,表2 where 表1.关联字段=表2.关联字段;
3.连接查询
left join ... on 条件
左连接
right join ... on 条件
右连接
outer join ... on 条件
外连接
4.分组查询
分组前提:需要分组的列出现了重复数据
select * from 表名 Group by 字段
语法限制:
1、一旦出现分组,那么select后边只允许出现统计函数以及分组字段
2、统计函数可以单独使用
3、如果出现统计函数的嵌套,那么select后边只允许出现统计函数
HAVING关键字和WHERE关键字都可以用来过滤数据,且HAVING支持WHERE关键字中所有的操作符和语法,但是WHERE和HAVING关键字也存在以下几点差异:
4、一般情况下,WHERE 用于过滤数据行,而 HAVING 用于过滤分组
5、WHERE查询条件中不可以使用聚合函数,而 HAVING 查询条件中可以使用聚合函数
6、WHERE在数据分组前进行过滤,而HAVING在数据分组后进行过滤
7、WHERE针对数据库文件进行过滤,而HAVING针对查询结果进行过滤
WHERE根据数据表中的字段直接进行过滤,而HAVING是根据前面已经查询出的字段进行过滤
8、WHERE查询条件中不可以使用字段别名,而HAVING查询条件中可以使用字段别名
5.单行函数查询
在MySQL中,单行函数是一种对单个输入值执行操作的函数,它接受一个输入参数并返回一个值,可以用于处理数据,并在查询中进行数据转换、计算、日期和时间处理等操作
以下是MySQL中常见的单行函数示例:
(1)字符串函数
CONCAT
连接两个或多个字符串
SUBSTRING
返回字符串的子串
LOWER
将字符串转换为小写
UPPER
将字符串转换为大写
(2)数值函数
ABS
返回数值的绝对值
CEIL
返回大于或等于给定数值的最小整数
FLOOR
返回小于或等于给定数值的最大整数
RAND
返回一个随机数
(3)日期和时间函数
CURDATE
返回当前日期
CURTIME
返回当前时间
NOW
返回当前日期和时间
DATE_FORMAT
按照指定格式格式化日期或时间
(4)条件函数
IF
根据条件返回不同的值
CASE
根据条件执行不同的操作
(5)其他函数
MD5
计算字符串的MD5哈希值
SHA1
计算字符串的SHA1哈希值
REVERSE
反转字符串的顺序
TRIM
删除字符串开头和结尾的空格或指定字符
6.子查询
单行单列、单行多列、多行多列
7.分页查询
LIMIT 数字,数字
第一个数字表示索引开始位置
第二个数字表示每页显示的个数