横表表结构:主键、字段1、字段2 、字段3。
纵表表结构:主键、字段代码、字段值;字段代码为字段1、字段2、字段3.
纵表、横表优劣对比:
1.纵表在使用时由于行数过多,统计用户数或对用户分档时需要进行GROUP BY操作,性能低下,且操作不便,为提高性能,通常对纵表进行汇总,形成横表。
2.数据挖掘时用到的宽表一般也要求是横表结构。
3.纵表对于从数据库到内存的的映射效率有影响:纵表的初始映射较慢,变更映射要快。
4.横表一目了然,但如果给横表加一个字段,就必须要重建表结构,而纵表只需要添加一行记录就可以增加一个字段;但纵表对于数据描述不清晰,容易造成数据库的数据量过多。
5.纵表转横表:
Select student_no max (decode(fileld_name, ‘student_name’,field_value)) as student_name fromcuc_student group by student_no;
Student_no --primary key
Field_name, filed_value: -- 纵表的字段代码,字段值
Student_name -- 字段代码的字段名称,变为横表的一个字段
Cuc_student –表名