Mysql基础(查)

基础查询

#格式 select 字段 from 表名;
#例:
select id,`name`,age,dept from person;

条件查询

#格式 select 字段 from 表名 where条件;
#例:
select id,`name`,age,dept from person where age>20;

模糊查询

#格式 select 字段 from 表名 where 查询字段 like '%/_';
#例:
#模糊查询小开头的人名
select id,`name`,age,dept from person where `name` like '小%';
#模糊查询七结尾的人名
select id,`name`,age,dept from person where `name` like '%七';
#模糊查询包含七的人名
select id,`name`,age,dept from person where `name` like '%七%';
#模糊查询第二个字为七的人名,一个_表示一个字
select id,`name`,age,dept from person where `name` like '_七';

select id,`name`,age,dept from person where `name` like '_七_';

分页查询

#格式 select 字段 from 表名 limit 起始索引,个数;
#起始索引:分页查询第n页 每页展示m条数据 (n-1)*m
#例:
select id,`name`,age,dept from person limit 0,8;
select id,`name`,age,dept from person limit 8,8;

排序

排序(order by)默认为升序(asc升序,desc降序)

#格式 select 字段 from 表名 order by asc/desc;
#例:
select id,`name`,age,dept from person order by age;
select id,`name`,age,dept from person order by age desc;

聚合函数

除了count其他的只能计算数字

#count() 查询有多少条数据 ()中可以写0/*意思一样也可以加where条件
select COUNT(0) from person;
#sum() 总数
select sum(age) from person;
#avg() 平均数 可以通过cast(avg(age)as decimal(10,0))将小数变成整数
select avg(age) from person;
select CAST(avg(age) as decimal(10,0)) from person;
#max() 最大值 
select max(age) from person;
#min() 最小值
select min(age) from person;

分组查询

#格式 select 字段 from 表名 group by 分组字段;
#例:select id,`name`,age,dept from person group by dept;
#查不出来可以使用以下代码后在试试
show variables like '%sql_mode%'
set global sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
set session sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
#在5.5mysql版本前只可以用以下方式查询 select后面只可以跟分组字段与聚合函数
select dept,count(0) from person group by dept;

having条件查询

where是分组前,having是分组后的条件

#格式 select 字段 from 表名 group by 分组字段 having条件;
select dept,count(0) from person GROUP BY dept having avg(age)>20;
select dept,count(0) from person where age>8 group by dept;

子查询

通过一个查询语句的结果来查询

#格式 select 字段 from 表名 where 与通过查询的结果相关的字段 in(select查询语句);
#例:
select id,`name`,age,dept from person where dept in(select id from dept where name='财务部');

内连接

#显式内连接 inner可以省略
#格式:select 字段 from 表1 inner join 表2 on 表1字段=表2字段;
#例:
select p.id,p.`name`,p.age,d.`name` '部门' from person p inner join dept d on p.dept=d.id;
#隐式内连接(通过where连接)
#格式:select 字段 from 表1,表2 where 表1字段=表2字段;
select p.id,p.`name`,p.age,d.`name` from person p,dept d where p.dept=d.id;

外连接

#左外连接(left outer join)左外是以左边的表为主表,查询的结果只关注左表,不在乎右边
#格式:select 字段 from 表1 left outer join 表2 on 表1字段=表2字段;
select p.id,p.`name`,p.age,d.`name` from person p left outer join dept d on p.dept=d.id;
#右外连接(right outer join)右外与左外一致一样的,查询结果只关注右表不在乎左表
#格式:select 字段 from 表1 right outer join 表2 on 表1字段=表2字段;
select p.id,p.`name`,p.age,d.`name` from person p right outer join dept d on p.dept=d.id;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值