MySQL常见操作03

连表联查

union:结果集进行合并(纵向合并)

格式:

查询语句 union 查询语句

注意:

查询列数必须相同

字段为第一个sql语句的字段

union默认去重

union all不去重

left join(以左表为基准关联右表中的数据)

格式:

select * from 左表 left join 右表 on 关联条件;

注意:

左表匹配不到右表,以null不全

右表匹配不到左表,不显示

right join(以右表为基准关联左表中的数据)

格式:

select * from 右表 left join 左表 on 关联条件;

注意:

左表匹配不到右表,不显示

右表匹配不到左表,以null不全

inner join(求两张表的交集)

格式:

select * from 右表 inner join 左表 on 关联条件;

注意:

关联条件可写可不写

如果不写可以写为select * from 表1,表2 where 子句;

case:值的替换

格式:

case when 条件 then 为true的结果 [when 条件 then 为true的结果] [else 为false的结果] end

从其他表加载数据

格式1:

create table 表名 as 查询语句;

格式2:

insert into 表名 查询语句;

注意:字段属性和数据类型和其他表保持一致

视图:由查询结果得到的一张虚拟表(临时表,虚表),虚拟表和基本表有一对一和一对多的关系

创建:

create view 视图名称 as 查询语句

一对一(数据和基本表一样):增删改查

一对一(数据由基本表聚合):查        

一对多(数据由基本表聚合):查

一对多(数据由连表联查):查改

注意:虚拟表不存储任何数据,数据存储在基本表中,基本表当中数据发生改变虚拟表中的数据也能发生改变

创建视图,查询语句中不能出现子查询(不能作为一张表,可以作为结果进行筛选),把子查询作为视图之后再创建视图

查询视图结构:

desc 视图名称;

show create view/table 视图名称;

删除视图:

drop view 视图名称;

执行计划

from--where--group by--having--select--order by

from:需要从哪个数据表检索数据

where:过滤表中数据的条件

group by:如何将上面过滤出的数据分组

having:对上面已经分组的数据进行过滤的条件 

select:查看结果集中的哪个列,或列的计算结果

order by :按照什么样的顺序来查看返回的数据

索引

添加:

alter table 表名 add index 索引名称(字段);

删除:

alter table 表名 drop index 索引名称;

注意:每个字段都可以添加索引

主键默认含有索引

不要每个字段都添加索引(索引也需要消耗资源),只需要给常用字段添加索引

事务:批处理,保证多个sql语句一起执行成功或一起执行失败(回滚撤销当前操作)

开始事务:

begin;

回滚事务:

rollback;

提交事务:

commit;

结束事务:

end;

注意:没有commit或end之前,事务中的所有操作都是临时的(在缓存中的)

commit或end之后,把这些临时的(在缓存中的)数据提交到原始数据中进行修改

end默认执行commit;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值