mysql笔记--数据库查询语言 DQL

1、查询列表可以是字段、常量、表达式、函数…
2、查询结果是一个虚拟表,该表存放在内存中。(不对真实数据进行改动)

1 .查询所有:

select * from 表名称 ;

2 . 查询指定的列:

select 列1 , ... ,列n from 表名称 ;

3 .条件查询:
a. = 、 != 、<> 、< 、<= 、> 、>=
b. between … and
c. in
d. is null 、 is not null
e. and
f. or
g. not

select * from 表名称 where 条件 ;

4 .模糊查询:

select * from student where name like 通配符 ;

通配符:
_ :任意1个字符
%:任意0-n个字符
注意:只能查询字符类型的varchar char 等等。
例如:
_s : 任意一个字符 加 最后一个为s
m%:以m开头的字符串
%:任意的多个字符
%sun%:包含sun的字符串
等等

5.字段控制查询:
a.去重

select distinct * from  表名称 ;

b.生成新字段

select * ,age+id from stu;

c. ifnull :如果age中有null 则变为0:
as total 给新字段起的名字哦。

select * ,ifnull(age, 0)+ifnull(id, 0) as total from stu;

d.排序 order by (default 升序):
升序:asc
降序:desc

select * from stu order by id desc;

e.聚合 count() 、 max() 、min() 、sum() 、avg()
e1.查询一共有几条数据

select count(*) from stu ;

e2.统计不为null的数据:

select count(age) from stu ;

e3.统计带where条件:

select count(*)  from  stu where age >18 ;

e4.求和

select sum(字段名) form 表名称 ;

6 . 分组查询:group by

select *from stu group by 字段名 ;
select 字段名 from stu group by 字段名 ;

group_concat

select gender , group_concat(name)  from stu group by gender ;
select gender , group_concat(name) as fenqu  from stu group by gender ;

a. 查询gender的类别,人数

select gender , group_concat(name) , count(*) from stu group by gender;

b. group by + 聚合函数

c.group by +having (条件筛选)+聚合函数
where +group by
注:having 分组后对数据进行筛选

select gender ,group_concat(name) ,max(age) group by gender ;
select gender , group_concat(name) from stu group by gender having max(age) ;

d . limit(开始下标,要取几个数)
例如:
d1.只想查询前3个:先排序再用limit取前三个0,3
d2.想查询第三个:先排序再用limit取第三个2,1
注:切记下标从0开始

select * from stu limit 0,3 ;

重点:做分页

int curpage=1;
int pagesize=3;

select *from 表名称 limit (curpage-1)*pagesize , pagesize ; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值