MariaDB3

–查询基本使用(条件,排序,聚合函数,分组,分页)

–创建学生表
create table students (
id int unsigned not null auto_increment primary key,
name varchar(20) default ‘’,
age tinyint unsigned default 0,
high decimal(5,2),
gender enum(‘男’, ‘女’, ‘中性’, ‘保密’) default ‘保密’,
cls_id int unsigned default 0,
is_delete bit default 0
);

–创建班级表
create table classes(
id int unsigned auto_increment primary key not null,
name varchar(20) not null
);

–查询
– 查询所有列
–select * from 表名
select * from students;

--一定条件查询(where)
select * from where id=5;


-- 查询制定列
select id,name from students;


-- 使用as给字段起别名
select id,name as '姓名', age, high, gender from students;

-- 通过表名字段查询
select students.name from students;

-- 给表起别名查询
select s.id,s.name,s.age from students as s;

--消除重复行
-- distinct
select distinct age from students;



--条件查询
    --比较运算符
    -- 查询年纪大于18岁的信息
    select * from students where age > 18;
    
    --18岁到28岁之间(and)
    select * from students where age >= 18 and age =< 28;
    select * from students where age between 18 and 28
    --在18岁以上或者身高180以上的人(or)
    select * from students where age > 18 or high > 180;

    

-- 模糊查询
    -- like
    -- % 替代1个或者多个甚至是没有
    -- 查询姓名中有‘小’的所有名字
    select * from students where name like '%小%';
    
    -- 查询两个字人的名字
    select * from students where name like '__';
    
    -- 查询至少有2个字的名字
    select * from students where name like '%__%';

    

--范围查询
    -- in (1,3,8)表示在一个非连续的范围内
    -- 查询 年纪为18和34的人
    select * from students where age in (18, 34);
 
    
    --查询 年龄在17岁到34岁之间的信息
    select * from students where age between 17 and 34;
    
    
    --查询 年纪不在18到34岁的信息
    select * from students where age not between 17 and 34;
   
-- 空判断
    -- 判断is null
    -- 查询身高为空的信息
    select * from students where high is null;
    
    -- 判断非空is not null
    select * from students where high is not null;

-- 排序    
    -- order by 字段
    -- asc从小到大排列,即升序
    -- desc从大到小排序,即降序
    
    -- 查询年纪在18到34岁之间的男性,按照年纪从小到大
    select * from students where gender=1 and age between 18 and 34 order by age;
    
    
    -- 查询年纪在18到34岁之间的女性,身高从高到矮
    select * from students where gender=2 and age between 18 and 34 order by high desc;
    
    -- order by 多字段
    -- 查询年纪在18到34岁的女性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序
        select * from students where age between 18 and 34 and gender=2 order by high desc;
    
    -- 查询年纪在18到34岁的男性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序,如果年龄也相等那么按照id从小到大排序;
        select * from students where age between 18 and 34 and gender=1 order by high desc, age, id desc;

–聚合函数
– 总数
– count
– 查询男性有多少人
select count(*) from students where gender=1;

-- 最大值
-- max
-- 查询最大的年纪
select max(age) from students;


-- 查询女性的最高 身高
select max(high) from students where gender=2;

-- 最小值
-- min
select min(high) from students;

-- 求和
-- sum
-- 计算所有人的年龄总和
select sum(age) from students;

-- 平均值
-- avg
-- 计算平均年纪
-- 计算平均年纪 sum(age)/count(*)
select sum(age)/count(*) from students;
select avg(age) from students;
-- 保留2位小数
select round(avg(age),2) from students;

– 分组
– group by
– 按照性别分组,查询所有的性别
select gender from students group by gender;

-- 计算每组性别的人数
select gender, count(*) from students group by gender;


-- 查询男性组中的姓名 group_concat
select gender,group_concat(name) from students where gender=1 group by gender; 

-- having
-- 查询每个性别平均年纪超过30岁的性别,以及姓名 having avg(age) > 30
select gender, group_concat(name) from students group by gender having avg(age) > 30;


-- 查询每种性别中的人数多于4个的组的信息
select gender,group_concat(name) from students group by gender having count(*)>4;

– 分页
– 显示5页
select * from students limit 5;

-- 分页显示,每页显示2条数据
select * from students limit 0, 2;

-- 按照身高从高到矮排序,查找出所有女性,并且分页显示,每页显示2条数据
select * from students where gender=2 order by high desc limit 0,2;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值