一、union和union all
对两个查询结果集的行合并,union在合并时去掉重复的,union all合并不去重复的
select * from student
UNION all
select * from student
两个结果集union时,列数量一定要相同。
作用:
1.制作报表时,将一些结果集合并
select sname,amt from student
UNION all
select '合计',sum(amt) from student
2.进行列转行
-- 循环 score表中的 name
insert into score2(name,xueke,score)
(select name,'语文',yuwen from score where name = '小明')
union
(select name,'数学',shuxue from score where name = '小明')
union
(select name,'英语',yingyu from score where name = '小明')
二、truncate语句
清楚表中的数据,保留表结构,如果要删除表中的数据,用truncate效率高于delete,因为delete是行级操作,truncate属于表级操作。
truncate不能按条件删除,不能进行事务处理、回滚操作
truncate、delete和drop之间的区别
truncate写法
truncate table student2
用户的创建和权限的分配
create user ww IDENTIFIED by '000000'
grant all privileges on java2113.* to ww identified by '000000';
三、视图(view)
试图是一张虚拟的表,创建视图时定义一个查询语句,查询语句的结果就是视图的数据。也就是当检索了视图,就是执行了定义的查询语句,检索结果集。
视图的数据可以进行查询、修改、删除、增加的操作
视图的作用:
1.项目中多次使用到一些相同的复杂查询语句,复杂查询语句定义在视图中。
2.项目中对表的部分列进行权限的开放,将部分列的查询结果创建在视图中。
create or replace view v_student AS
select s.id,s.sname,c.id cid from student s inner join class c on s.classid = c.id
create or replace view v_student2 AS
select classid,avg(amt) avgamt from student group by classid
select * from v_student2
select * from v_student
update v_student set address = '中国黑龙江哈尔滨' where id = 1
四、存储过程
创建一个存储过程,存储过程中包含了一个SQL语句块,在执行这个存储过程时,就执行了那个SQL语句块,通常 可以使用存储过程封装一些业务流程。但不好维护。
五、触发器
可以为表创建一些触发器,例如创建update、insert、delete的触发器,当对表进行了update、insert、delete操作时,就会触发触发器,执行触发器中的SQL语句。
本文详细介绍了SQL中的UNION和UNION ALL操作,用于合并查询结果,以及在报表制作和数据转换中的应用。同时,讲解了TRUNCATE语句在清空表数据时的高效性及其局限性。此外,讨论了视图作为虚拟表的功能,以及如何通过视图实现权限控制和简化查询。最后,提到了存储过程和触发器在业务流程封装和表操作自动化中的角色。
174

被折叠的 条评论
为什么被折叠?



