本博客主要是记录一些常用的操作,讲解过程比较简陋。
目录
1.查询一个表内的所有数据
select * from gays;
查询gays这张表的所有字段的所有内容。
2.查询某张表的某个字段
select name from gays;
查询gays这张表的name字段的所有内容。
3.带条件查询
select * from gays where id = 3;
查询gays这张表的id等于3的所有字段的信息。
返回的是一条数据。
select * from gays where id in(1,2);
select * from gays where id between 1 and 3;
between and 是闭区间。
还有一些特殊的,比如说要查null,就不能等于null,而是要使用关键字is。
select * from gays where name is null;
where的写法很灵活。
4.聚合函数
先看一下表的结构
求和:求语文字段的所有分数总和。
select sum(chinese) from score;
求平均:求语文字段的所有信息的平均值。
select avg(chinese) from score;
求最大:max 求最小:min 统计有多少数据:count(*)
5.模糊查询
select * from where name like 'z%';
查询结果返回name第一个字母是z的。其中百分号代表多个不确定字符。
select * from where name like 'z_h';
查询结果返回name第一个字母是z最后一个字母是h的。其中下划线代表一个不确定字符。
6.查询时按顺序返回
按升序,降序返回
select * from gays order by tel asc;
在gays这张表里按照tel的升序排序;按照降序就是把asc改成desc。
7.分组查询
先看一下表的结构:
分别返回男,女的平均年龄。
select avg(age) as 'average age', gender as 'gender' from info group by gender;
返回结果:
group by 是说按照什么去分,按照gender区划分,gender里面只有两条数据,所以最后返回两条数据,返回的这两条数据每一条数据都有两个字段,因为select 的时候选择了2个字段。。
****如果使用的是group by 建议 第一个是聚合函数,另一个是查询的字段(按哪一个字段去查)。
也可以与聚合函数搭配使用
select group_concat(age), gender from info group by gender;
group_concat是聚合函数,经常与group by搭配使用。
上面返回的是一个临时的,实际上不存在的,虚拟的,只有age,gender两个字段的临时表;如果从这张临时表里面做二次筛查,就不能用where了,where是一条一条的遍历,歧义且不符合语法,可以用having加条件来代替。having中的条件要和as别名符合。
8.limit限制查询
select * from info limit 0, 3;
limit: 第一个参数是从第几条数据开始查询,第二个参数是查询几条数据,如果第一个参数不写,默认是从第零条数据开始查询。
limit查询返回的是一个区间段,通常与order by联合使用。
比如说我要查询年龄最大的三个人。
select * from info order by age desc limit 3;
9.distinct条件查询
先看一下表的内容:
如果我们想查询有哪些地址,如果用select address from gays,那个相同的地址都会返回,这时候可以用distinct,相同的返回一个就可以了。
select distinct address from gays;
运行结果:
通常情况下与聚合函数count联合使用。