MySQL中简单的查询语句(DQL)

1、查询全部字段

select * from 某表(表名);

2、null的查询:如果查询为null的字段,采用is null,而不用 = null。

//以下代码无法查询出符合条件的数据
//select * from 某表(表名) where 某数据=null;
//null用is匹配
select * from 某表(表名) where 某数据 is null;

3、模糊查找:like。_匹配一个任意字符;%匹配任意字符。

select * from 某表(表名) where 某数据 like '_A%';//表示匹配任意第二个字符是A的数据

4、order by 排序手动升序、降序

//asc:手动升序
select * from 某表(表名) order by 某数据 asc;
//asc:手动降序
select * from 某表(表名) order by 某数据 desc;

5、分组函数
count 取得记录数
sum 求和
avg 取平均
max 取最大的数
min 取最小的数
注意:分组函数自动忽略空值,不需要手动的加where条件排除空值。不能直接使用在where关键字后面。

//错误示范
select 某数据1,某数据2 from 某表(表名) where 某数据2 > avg(某数据2);
//报此错误
//ERROR 1111 (HY000): Invalid use of group function
//由于忽略空值,进行数据统计时可用ifnull(含有空值的字段, 0)将null转为0

6、内连接、外连接:
内连接:join...on... 两张表平行关系;
外连接:left/right join...on... 两张表有主副之分;
7、使用union合并集合

select ...
union
select ...

8、limit,提取部分数据

//提取第3-5条数据
select * from 某表(表名) limit 2,3;

9、DQL执行顺序

//查找
select      5
        ...
//从某张表中查询
from        1
        ...     
//条件查询
where       2
        ... 
//分组查询(在where后,所以where前不能用分组函数)
group by    3
        ...
//对分组后的数据进行过滤,不可以单独出现
having      4
        ...
//对已查找出来的数据进行排序
order by    6
        ...
//筛选出最终数据
limit       7
        ...;

你可能感兴趣的:(MySQL中简单的查询语句(DQL))