数据库原理学习笔记

1. 键 和 超键

nnd, 书上给的数学定义太难懂了...

通俗的说,键的概念是针对于列的,而不是针对于行的.比如一个表里有10个字段,其中的5个字段联合起来可以唯一确定一条记录,这5个字段的联合叫做超键.结果仔细一看发现,其实这5个字段中只需要其中3个字段就可以唯一确定一条记录了,那么这3个字段的联合就叫做键.所以,就当这么回事吧:键就是不能再缩减列了,再缩减就不能唯一确定一条记录了.不过呢,话说回来,要是的确只能5个字段可以唯一确定一条记录.那么此时,键和超键对这个表来说是一回事了,那就是这5个字段.

 

继续...又仔细一看发现,另外还有2个字段联合起来也可以唯一确定一条记录,那么如此一来,结果就是,这个表其实拥有多个可供选择的键,,我们就把这些组合(有时不是组合,或许只有一个列)称作候选键,可使用起来毕竟我们还得指定到底用谁啊,那么指定的这个就叫做主键...


MySQL中“键”和“索引”的定义相同, 所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。这和一些封建思想比较沉重的家庭是一样的,外来的孩子(儿媳妇,倒插门女婿)一般都是不受重视的。

 

2. 外键

外键这个概念是使用者表的.

还是举个例子来说明吧,有两个表:大哥表,小弟表.小弟必须跟着大哥混,小弟表就得定义一个大哥列,用来说明它大哥是谁,并且用foreign key...

referenecs...跟大哥表的某列关联,那么小弟表中的这个列此时就被称作外键.不要被"外"字迷惑啦,其实这列内容还是小弟表的,只不过内容(大哥名)必须存在于大哥表中...否则,,你小弟想造反呢...

 

关于外键在表间起到的约束作用,参考两篇文章:

http://www.cppblog.com/wolf/articles/69089.html MYSQL外键(Foreign Key)的使用

 

http://www.xiaoxiaozi.com/2009/07/12/1158/ 浅谈MySQL外键

 

3. 触发器

触发器的概念:“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事件,如INSERT或DELETE发生时,自动激活的一段代码。

 

4. 视图

"视图",字面上真猜不出这俩字代表啥..其实,应该叫做"视图表"更好.

通俗理解吧,它自己没有内容,磁盘上根本不存在这个表,它是用人家基本表的字段凑吧凑吧组合起来的,通过这中表查数据的时候,实际上有点类似于直接用复杂的sql语句查询..当然,作用肯定不止这个...先掌握概念,用处以后再实践中学习吧.

 

可以参考http://topic.csdn.net/t/20050324/15/3878020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值