MySQL使用:视图,设计范式

视图view

使用
  • 创建视图对象
    语法:create view 视图名 as select 视图内容;
  • 删除视图
    语法:drop view 视图名;
  • 注意
    只有DQL语句才能以view的形式创建
    但是view创建完成之后可以进行增删改查(CRUD)等操作
作用
  • 面向视图对象进行操作,可以简化SQL语句
    对视图对象的增删改查(CRUD)会导致原表被操作(可以理解为一种引用)
    将一条复杂且需要在多个位置反复使用的SQL语句以视图对象的形式新建,简化书写过程且利于后期维护

数据库设计范式

范式一

要求任何一张表必须设置主键,每一个字段原子性不可再分

范式二

在范式一的基础上,要求所有非主键字段完全依赖主键,不要产生部分依赖

这张表描述了学生和老师的多对多关系
  学生编号   教师编号	  学生姓名    教师姓名
	----------------------------------------------------
	1001	 001			张三        王老师
	1002	 002			李四		赵老师
	1003	 001			王五		王老师
	1001	 002			张三		赵老师
	1.修改使其满足满足第一范式
	   方法:学生编号 教师编号,两个字段联合做主键,复合主键
	   缺点:“张三”依赖1001,“王老师”依赖001,显然==产生了部分依赖==(导致数据重复而冗余,空间浪费)。不满足第二范式
	2.修改使其满足满足第二范式
	   方法:使用三张表来表示多对多的关系
		学生表(学生编号做主键)
		学生编号		学生名字
		------------------------------------
		1001			张三
		1002			李四
		1003			王五
		
		教师表(教师编号做主键)
		教师编号		教师姓名
		--------------------------------------
		001			王老师
		002			赵老师

		学生教师关系表(id做主键)
		id		学生编号		教师编号
		------------------------------------------------------
		1		1001			001
		2		1002			002
		3		1003			001
		4		1001            002
		
		技巧:多对多,三张表,关系表添加两个外键
范式三

在范式二的基础上,要求所有非主键字段直接依赖主键,不要产生传递依赖

这张表描述了班级和学生的1对多关系
   学生编号   学生姓名   班级编号    班级名称
	---------------------------------------------------------
	1001		张三		01		一年一班
	1002		李四		02		一年二班
	1003		王五		03		一年三班
	1004		赵六		03		一年三班
	1.满足第一范式和第二范式
	   但是一年一班依赖01,01依赖1001,==产生了传递依赖==。
	   不符合第三范式的要求。产生了数据的冗余。
	2.修改使其满足满足第三范式
    	班级表:一
		班级编号				班级名称
		----------------------------------------
		01					一年一班
		02					一年二班
		03					一年三班

		学生表:多
		学生编号    学生姓名 班级编号
		-------------------------------------------
		1001		张三		01			
		1002		李四		02			
		1003		王五		03			
		1004		赵六		03
		
		技巧:一对多的表,多的表加外键
	

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值