[置顶] 纵表和横表的概念及其相互转换
2017-04-10 14:55
176 查看
纵表和横表的概念及其相互转换
如有疑问可参考原博横表就是普通的建表方式,如:主键、属性1、属性2、属性3…等很多属性的铺陈, 如果变成纵表后,则表结构为: 主键、属性。例如:
横表:
纵表:
横表
优点:一行表示了一个实体记录,清晰可见,一目了然。
缺点:如果现在要给这个表加一个字段,那么就必须重建表结构。
纵表
优点:如果现在要给这个表加一个字段,只需要添加一些记录。
缺点:数据描述不是很清晰,而且会造成数据库数据很多。另如果需要分组统计,要先group by,较繁琐。
结论
应该把不容易改动表结构的设计成横表,把容易经常改动不确定的表结构设计成纵表。
纵表转横表
有如下纵表:
将其转为横表:
select s.student_name, sum(case s.subject when '语文' then s.score end) as 语文, sum(case s.subject when '数学' then s.score end) as 数学, sum(case s.subject when '英语' then s.score end) as 英语 from score_vertical s group by s.student_name
结果:
横表转纵表
有如下横表:
将其转为纵表:
select s.student_name, '语文' as 科目, s.语文 as 成绩 from score_horizontal s union all select s.student_name, '数学' as 科目, s.数学 as 成绩 from score_horizontal s union all select s.student_name, '英语' as 科目, s.英语 as 成绩 from score_horizontal s order by student_name, 科目
结果:
相关文章推荐
- 纵表和横表的概念及其相互转换
- 纵表和横表的概念及其相互转换
- 纵表和横表的概念及其相互转换
- 纵表和横表的概念及其相互转换
- RGB/YUV的来历及其相互转换
- PO等-对这些缩写详细介绍:PO BO VO DTO POJO DAO概念及其作用(附转换图)
- [转]RGB,YUV的来历及其相互转换
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- 处理对象的多种状态及其相互转换——状态模式(二)
- unicode、utf-8、ansi的故事及其相互转换
- RGB,YUV的来历及其相互转换
- 处理对象的多种状态及其相互转换——状态模式(四)
- JAVA 中 PO BO VO DTO POJO DAO概念及其作用(附转换图) (转载)
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- 逐行视频与隔行视频 及其相互转换思想
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- RGB,YUV的来历及其相互转换
- RGB,YUV的来历及其相互转换