mysql 高级查询

  • 查询指定字段
select name,age from students;
  • 起别名
select name as 姓名,age as 年龄 from students;

select s.name s.age from students as s;
  • 去重
select name as 姓名,age as 年龄 from students;

select s.name s.age from students as s;
  • 条件查询
--比较运算符.. > < >=<==!=
查询大于18岁信息
slet* from students where age >= 18;
逻辑运算符
--and or not
查看1828岁之间的所有学生的信息
select* from students
where age>18 and age<28;
年龄小于或等于18并且是女性
select * from students where age<=18 and gender-°女:
  • 模糊查询
-like
- %替换1个或者多个
-_替换1个
一查询姓名中以小开头的名字
select * from students where name like “小%-查询有2个字的名字
select name from students where name like" .
一查询至少有2个字的名字
selet name from students where name like" _%"
-- rlike正则
-查询以周开始的姓名
seles name from students where name rlike“周.*;
一查询以周开头以伦结尾
selet name from students where name rike “^.*伦$;
  • 范围查询
--in(1,3,8)表示在一个非连续的范围内
not in (1,3,8)
 --查询年龄为18,34的姓名
select name,age from students where age in (18,34);
--between..and..表示在一个连续的范围

not between ... and ..
 --查看年龄在18到34之间的姓名,年龄
select name,age from students where age between 18 and 34;

--判空is null
判非空is not null
--查询身高为空的信息
select * from students where height is null;
  • 排序
--orderby字段
-- asc从小到大,升序 
--desc从大到小,降序
-- 默认升序

--查询年龄子啊18到34岁之间的男性,按照年龄从小到大
-- select * from表名where条件order by字段asc/
desc字段asc/desc;
select * from students where (age between 18 and 34) and gender= "男" order by age asc;
select* from students where (age between 18 and 34) and gender='男”order by age asc , height asc;
  • 聚合函数
--总数count
--查询男性有多少人,女性有多少入
 select count(*) as男性人数from students where gender= 1;
 select count(*) as女性人数from students where gender=2;

--最大值max
-- 最小值min
--查询最大的年龄
select max(age) from students;
--查询女性最高升高
select max(height) from students where gender=2;
--求和sum
-- avg平均值
-计算所有人的年龄总和
select sum(age) from students;
--计算平均年龄avg sun(agel/count()
select avg(age) from students;
- round(123.23, 1)保留1位小数
 -- 计算所有人的平均年龄,保留2位小数
 select round(avg(age),2) from students;
--计算男性的平均身高,保留2位小数
select round(avg(height,2)) from students where gender=1; 
  • 分组查询
-- group by
--按照性别分组,查询所有性别
 select gender from students group by gender; 

-- group concat0
--计算每种性别中的人数
select gender,count(*) from students group by gender;
select gender,group concat(name,age) from students group by gender; 

--计算男性人数
select gender,count(*) from students where gender=1 group by gender;
-- having
--查询平均年龄超过30岁的性别,以及姓名having avg(age)>30
select gender,group concat(name),avg(age) from students group by gender having avg(age)> 30;
--查询每种性别当中的人数大于2的信息
select gender,group concat(name) from students group by gender having count(*)> 2;
  • 分页查询
 -- limit start, count start 开始的位置,不写默认从开始,count 个数
 -- 限制查询出来的数据的个数
 selectfrom students limit 5;
-- 查询id6-10
select * from students limit 5,5
--显示第N页,每页显示5个limit (第N页-1)*5,5不能这样写
  • 多表查询
--链接查询
--内连接.inner join ... on ..
--查询有能够对应班级的学生以及班级信息
select * from students inner join classes on students.cls_ id = classes.id;
-按照要求显示姓名、班级
select students.*,classes.name from students inner join classes on students.cIs id = classes.id;
--给数据表起名
select s.*,c.name from students as s inner join classes as c on s.cls_ id = c.id; 
-左链接left join ...
--查询每位学生对应的班级
select * from students as s left join classes as C on s.cIs_ id = c.id;
-查询没有对应班级信息的学生where/having
select * from students as s left join classes as C on s.cls_ id = c.id having c.name is null; 
select * from students as s left join classes as C on s.cIs_ id = c.id where c.name is null;
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL高级 MySQL高级_思维导图.pdf 63.MySQL高级_主从复制.avi 62.MySQL高级_行锁总结.avi 61.MySQL高级_如何锁定一行.avi 60.MySQL高级_间隙锁危害.avi 59.MySQL高级_索引失效行锁变表锁.avi 58.MySQL高级_行锁演示答疑补充.avi 57.MySQL高级_行锁案例讲解.avi 56.MySQL高级_行锁理论.avi 55.MySQL高级_读锁案例讲解2.avi 54.MySQL高级_读锁案例讲解.avi 53.MySQL高级_数据库锁理论概述.avi 52.MySQL高级_全局查询日志.avi 51.MySQL高级_用Show Profile进行sql分析.avi 50.MySQL高级_批量插入数据脚本.avi 49.MySQL高级_慢查询日志.avi 48.MySQL高级_为排序使用索引OrderBy优化.avi 47.MySQL高级_in和exists.avi 46.MySQL高级_小表驱动大表.avi 45.MySQL高级_索引优化答疑补充和总结口诀.avi 44.MySQL高级_索引面试题分析.avi 43.MySQL高级_索引优化10.avi 42.MySQL高级_索引优化9.avi 41.MySQL高级_索引优化8.avi 40.MySQL高级_索引优化7.avi 39.MySQL高级_索引优化6.avi 38.MySQL高级_索引优化5.avi 37.MySQL高级_索引优化4.avi 36.MySQL高级_索引优化3.avi 35.MySQL高级_索引优化2.avi 34.MySQL高级_索引优化1.avi 33.MySQL高级_索引三表优化案例.avi 32.MySQL高级_索引两表优化案例.avi 31.MySQL高级_索引单表优化案例.avi 30.MySQL高级_explain之热身Case.avi 29.MySQL高级_explain之Extra介绍.avi 28.MySQL高级_explain之rows介绍.avi 27.MySQL高级_explain之ref介绍.avi 26.MySQL高级_explain之key_len介绍.avi 25.MySQL高级_explain之possible_keys和key介绍.avi 24.MySQL高级_explain之type介绍.avi 23.MySQL高级_explain之select_type和table介绍.avi 22.MySQL高级_explain之id介绍.avi 21.MySQL高级_explain使用简介.avi 20.MySQL高级_性能分析前提知识.avi 19.MySQL高级_哪些情况不适合建索引.avi 18.MySQL高级_哪些情况适合建索引.avi 17.MySQL高级_索引结构与检索原理.avi 16.MySQL高级_索引分类和建索引命令语句.avi 15.MySQL高级_索引优势劣势.avi 14.MySQL高级_索引是什么.avi 13.MySQL高级_七种JOIN的SQL编写.avi 12.MySQL高级_七种JOIN理论.avi 11.MySQL高级_SQL执行加载顺序.avi 10.MySQL高级_SQL性能下降原因.avi 09.MySQL高级_存储引擎简介.avi 08.MySQL高级_MySQL逻辑架构简介.avi 07.MySQL高级_MySQL配置文件.avi 06.MySQL高级_修改字符集.avi 05.MySQL高级_安装位置.avi 04.MySQL高级_ROOT密码设置和开机自启动.avi 03.MySQL高级__RPM安装.avi 02.MySQL高级_MySQL简介.avi 01.MySQL高级_课程简介.avi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值