Mysql单表查询的基本操作

这篇博客主要介绍单链表的基本查询的条件:
1、检索数据表中的字段的数据:

select * from 表名;//数据量大的时候不易使用
select 字段1,字段2.... from 表名;//检索指定字段的数据

2、比较大小:使用=、>、<、>=、<=、!=、<>检索表中指定行的数据:

select 字段名12... from 表名
where 字段名 比较运算符 常量值;//常量值如果等于字符型,如汉字,要加引号

3、确定集合:使用in关键字检索表中指定的数据内容:

select 字段名12.. from 表名 
where 字段名 in(n1,n2,n3..);//in的使用情形就像点名,在In范伟内,点到谁谁出来
//否定:not in

4、确定范围:使用between…and关键字:

select 字段名12... from 表名
where 字段名[not]between 上限制 and 下限制 ;//一个范围是开始值,另一个范围是结束值

5、字符匹配:使用like模糊匹配数据:

select 字段名12.. from 表名
where 字段名 like '字符%(_)';//%可以匹配任意长度字符,_只能匹配一个字符
eg.查询学号带0505:where stu_id like '%0505%';

6、查询空值:使用 is null:

select 字段名12.. from 表名
where 字段名 is null;//null不代表0,也不代表空值,而是代表未知的状态;
is not null //不是空值

7、去除重复结果:使用关键字:distinct:

select distinct 字段名12.. from 表名
[where 条件表达式]

8、多条件查询:使用关键字:and、or:

select 字段名12.. from 表名
where 表达式1 and(or) 表达式2;//and是且,or是或,但是and和or一起使用的时候,and的优先级高于or

9、对查询表排序:使用 order by :

select 字段名12.. from 表名
order by 字段名12... [asc[desc];//asc可以省略,默认升序,desc降序;排序的字段名可以多个

10、对查询结果分组:
计数函数:

count(*) //统计元组的个数
count(([distinct]<字段名>))//统计一列中值的个数

求和函数:

sum(([distinct]<字段名>))//计算一列中值的总和,此列必须为数值

求平均数值的函数:

AVG(([distinct]<字段名>))//计算一列值的平均值,此列必须为数值

求最大(小)值函数:

MAX(MIN)(([distinct]<字段名>))//求一列值的最大(小)值,此列为数值、字符、日期

注意:使用group by 字段名将查询的是按结果的某一列

11、对查询结果进行分组并筛选分组:

select 字段名12.. from 表名
[where 表达式1 and 表达式2]
group by 字段名 having 表达式;

注意:having 不能单独使用,必须跟在group by短语之后,having短语的功能是对分组进行筛选,如:查询某门课程数小于2的情况:group by cs_depart having count(cs_name)<2;

查询的语法格式:

select [distinct]<目标列表达式>,......
from <表名>
[where <表达式>]//[]表示可以没有该语句
[group by <列名>[having <表达式>]]
[order by <列名>[asc|desc];
发布了67 篇原创文章 · 获赞 39 · 访问量 2697

猜你喜欢

转载自blog.csdn.net/qq_44859533/article/details/105323109