数据库之DQL基本语法操作

DQL数据查询语言,并且查询不会修改数据库表记录!
基本查询

1.查询所有列:select * from 表名;
星号表示查询所有列

2 .查询指定列:select 列1,列2,… from 表名;

3.完全重复的记录只一次
当查询结果中的多行记录一模一样时,只显示一行。一般在只查询一列或几列时,出现的可能性比较大。
select distinct * from 表名;
select distinct 列1,列2,… from 表名;

4)列运算
I. 数量类型的列可以做加减乘除运算
select age*2 from ss;
II. 字符串类型可以做连续运算(即连接起来)
select concat(‘name’,‘age’) from 表名;
III. 转换null值
有时需要把null转换为其他值。例如grade+10时,如果grade列存在null值,那么null+10还是null,我们希望把他转换为0进行计算。
select ifnull(grade,0)+10 from 表名;
IV.给列起别名
当使用列运算后查询出的结果集中的列名称很不好看,可以修改。
select ifnull(grade,0)+10 as 成绩之和 from 表名;
as可以省略,但省略后不应该加逗号。
在这里插入图片描述
在这里插入图片描述

条件控制

1)条件查询
与前面的update一样,select语句也可以用where来控制。

2) 模糊查询
当想查询姓张的,并且名字里有两个字的人时,这时可以用like
select * from 表名 where name like ‘张_’ ;(下划线匹配一个字符)

当想查询姓张的,但不知道名字有几个字,使用%
select * from 表名 where name like ‘张%’ ;
其中%匹配0-n 个任意字符,所以此可以匹配到所有的姓张的。

select * from 表名 where name like ’ %小%’ ;
* 此可以搜索到名字中带有小字的名字,不管小位于名字的中间还是最后。
在这里插入图片描述
在这里插入图片描述

排序

1)升序,降序
select * from 表名 order by age asc;
* asc可以省略。
* 将asc改为desc 就为降序
2)使用多列作为排序条件
select * from 表名 order by age asc, grade desc ;
在这里插入图片描述
在这里插入图片描述
聚合函数
聚合函数用来做某列的纵向查询
1)count
select count(*) from ss where cgrade is not null;
计算ss表中所有列cgrade不为null的个数

select count(age) from ss where age>22;
计算ss表中age列,age>22的个数

2)max
select max(cgrade) from ss;
3)min
select min(cgrade) from ss;
4)sum
select sun(cgrade) from ss;
5)avg
select avg(cgrade) from ss;
在这里插入图片描述
分组查询
将记录使用某一列进行分组,然后查询组信息。
select job , max(money) from 表名 group by job;
使用job分组,查询每种工作的最高工资。

select sex,count( * ) from ss group by sex having count(*)>2;
* 查询以sex分过组后,其总数大于2的性别在这里插入图片描述
limit子句(方言)
limit用来限制查询的起始行,以及总行数。
例如:查询起始行为第五行,一共查询3行记录。
select * from 表名 limit 4,3;
4表示从第五行开始(因为0表示第一行),3表示查询三行。

例如:一页记录数10行,查询第三页。
select * from 表名 limit 20,10;
计算公式:(当前页-1)* 每页记录数

一个语句中如果出现这些词,出现顺序和执行顺序:
select
from
where
group by
having
order by

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值