MYSQL_数据查询语言DQL

数据查询语言DQL:

完整格式:

select colName1[,colName2,...]        //获取记录的某些字段数据
from tableName                        //记录来源(表/视图)
[where <条件表达式>]                   //获取满足该条件的记录
[group by<列名1>[having<条件表达式>]]   //分组[分组条件]
[order by<列名2>[ASC|DESC]];           //升序排列/降序排列

执行顺序:
先执行from子句。
再执行where子句
然后group by子句
再次having子句
之后select子句
最后order by子句

select * from tableName;
通配符*:如果是在select字句中,代替的是所有的字段。

基本查询语句: 至少包含两个子句: select 子句和from 子句

可以添加where 条件子句:起到查询关键词的作用
    多条件;集合;范围;模糊

where条件子句:

条件:关系运算符:

,>=,<,<=,=,!=,<>。

(1)null在条件中,应该使用is 或者is not
(2)范围查询:针对于某一个字段来说。
1:可以使用>,>=和<,<=来进行范围限制
2: 还可以使用[not] between and来限制。
格式:
colName [not] between val1 and val2;
注意: between val1 and val2 相当于闭区间[val1,val2]
(3)集合作为条件写法:同一个字段有多个值的情况下使用。

使用:in|not in
格式: colName [not] in (元素1,元素2,….);
注意:in 相当于 ornot in 相当于 and

集合的其他用法:
注意:mysql数据库中,集合元素的来源
只能基于一张表的查询。不能写定值。

all与any
格式:

  >all(子查询获取元素)
    :大于集合中最大的元素。

  <all(子查询获取元素)
    :小于集合中最小的元素。

  >any(子查询获取元素)
    :大于集合中最小的元素。

  <any(子查询获取元素)
    :小于集合中最大的元素。
(4)模糊查询:like关键字

格式: colName like value。
通常与通配符%连用
%:0或0个以上的字符
_:匹配一个字符。

reg:  查询员工姓名第二字母是s的信息
    ename  like  '_s%'

order by排序:

当在查询表中数据时,记录比较多,可能需要进行排序,此时,可以使用order by子句 ,位于查询语句最后面

[order by <列名1>[ASC|DESC]] [, <列名1>[ASC|DESC]]];
//升序排列/降序排列
默认为asc升序

去重distinct关键字:

有时候我们需要对重复的记录进行去重的操作
关键字:
distinct
写在select后面

group by分组查询与分组函数

有的时候,我们要查询表中的记录总数

格式:
group by<列名1>[,<列名2>,…] //分组,按优先级从左(最高)到右(最低)

用法:
聚合函数:
count(filed):统计个数
sum():求和
avg():求均值
max():求最大值
min():求最小值

PS:聚合函数都不对空值进行处理
函数:ifnull(filed,value)

若字段filed的数据为null,输出value

having子句:

在分组查询时,有的时候可能需要再次
使用条件进行过滤,这个时候不能where子句,
应该使用having子句。
having子句后可以使用聚合函数。
位置:位于group by子句后

猜你喜欢

转载自blog.csdn.net/yc_hen/article/details/82682095