MySQL----数据库基本操作(DQL)

DQL:数据查询语言(Data Query Language):select(查询) from 子句 where 子句

简单查询

#查询所有列
select * from 表名;
#查询指定列
select,... from 表名;
#去除查询的重复列(表格特大的时候,如果存在相同的项目只显示一次)
select distinct,... from 表名;
给列名起别名
select1 别名1,2 别名2 from 表名;

条件查询

select * from 表名 where 查询条件
按条件查询

查询条件必须遵循条件运算符:< > >= <= = <> !=

#查询年龄大于等于20岁的
select *  from 表名 where 年龄<=20;
按逻辑查询

查询条件必须遵循逻辑运算符:and(与) ,or(或) ,not(非)

#查询有奖金的人员信息
select * form 表名 where 奖金 not null;
模糊查询
_  表示单个字符
%   表示N个字符
%XXX%   表示XXX的任意位置。
#查询姓张且名字为两个字的人员
select * from 表名 where 名字 like '张_';
#查询姓张的人员信息
select * from 表名 where 名字 like '张%';
//查询名字中含有小字的人员信息
SELECT * FROM 表名 WHERE 名字 LIKE '%小%';

排序查询

关键字:ORDER BY 默认为升序排列 ASC(升序) DESC(降序)
若有相同的项目,则可以在后面添加其他的排序条件
//以工资的升序排列
SELECT * FROM 表名 ORDER BY 工资 ASC;
//以工资的降序进行排列
SELECT * FROM 表名 ORDER BY 工资 DESC;
//当有相同的项目存在的时候,可以添加其他的排序条件
SELECT * FROM 表名 ORDER BY 工资 DESC, 员工号 ASC;

分组查询

分组语法
select 聚合函数,分组字段 from1,... where 分组前筛选  group by 分组的字段  having  分组后筛选  order by 排序字段或表达式
聚合函数
关键字
COUNT(*) 表示总共有几列
SUM(sal) 表示该列的总和
MAX(sal) 表示该列的最大值
MIN(sal) 表示该列的最小值
AVG(sal) 表示该列的平均值
//求出emp表格中的总人数,及工资的总和 最高 最低 和平均数
SELECT COUNT(*) 总人数, SUM(sal) 工资总和, MAX(sal) 最高工资, MIN(sal) 最低工资, AVG(sal) 平均工资 FROM emp;

特点:

  • sum和avg只支持数值类型,其他支持任何类型
  • 聚合函数都忽略null
  • 和聚合函数一起查询的字段必须为分组的字段
  • count(*)计算结果集的行数,效率高

分页查询

mysql特有的limit查询
LIMIT 4, 3;
4表示:从第五行开始查(下标从0开始算)
3表示:查询3行记录
(当前页-1)* 每页记录数, 每页记录数
//查询第三页每页十行记录
SELECT * FROM emp LIMIT 20,10;

子查询

在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句

主查询: 主要查询的对象,第一条 select 语句

主查询和子查询的关系

  • 子查询是嵌入到主查询中
  • 子查询是辅助主查询的,要么充当条件,要么充当数据源
  • 子查询是可以独立存在的语句,是一条完整的 select 语句

子查询分类

标量子查询: 子查询返回的结果是一个数据(一行一列)
列子查询: 返回的结果是一列(一列多行)
行子查询: 返回的结果是一行(一行多列)

标量子查询
#1.查询班级学生平均年龄 2.查询大于平均年龄的学生 3.查询班级学生的平均身高
select * from students where age > (select avg(age) from students);
列级子查询
#1.查询还有学生在班的所有班级名字 2.找出学生表中所有的班级 id 3.找出班级表中对应的名字
select name from classes where id in (select cls_id from students);
行级子查询
#需求: 查找班级年龄最大,身高最高的学生  行元素: 将多个字段合成一个行元素,在行级子查询中会使用到行元素
select * from students where (height,age) = (select max(height),max(age) from students);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值