您的位置:首页 > 数据库

数据库基础知识

2017-07-22 10:21 274 查看
下面讲解一下数据库基础知识

主键:Primary Key ,在表中唯一确定该条记录的字段

外键:Foreign Key ,引用(参照)另外一个表中的主键字段

图书表

id     图书名称           类别     价格

1      Java编程思想       1        50

2      Hibernate入门      1        60

3      成功有方法         2        30

id是主键,类别是外键,

主表(在关联关系中,包含主键字段的表叫主表),从表(在关联关系中,包含外键字段的表叫从表)

在这里的关联关系指的是:图书表的类别和图书类别表和id对应,这个关联关系中可以看到图书表的类别不是主键,而图书类别表的id是主键

所以:

图书表是从表(因为它包含类别的外键)

图书类别表是主表(因为它包含了类别的主键)

图书类别表

id  名称

1   计算机

2   励志

3   地理

4   历史

表设计不合理,会产生的问题

1.重复问题:就是如果图书表上面的类别写计算机,那么如果相同的类别的话就要写很多的计算机,这样和简单的数字来比复杂了很多!

2.删除问题:假如在图书摆的类别上写计算机之类的,如果删除了计算机的类别,那么久不存在计算机类别了,而下面的就算删除1,图书类别

表中也有计算机的类别 

3.修改的问题:如果在图书表中的类别上修改计算机类别之类的,存在很多的相同类别的数据的时候,这样修改就很麻烦了,而图书类别表就可以

很好的解决此类问题!(只要在名称上修改一下即可)

我们设计数据库的时候都要满足三范式,具体三范式可以查看这篇文档:
http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
下面介绍多表关联查询(为了让用户用起来方便)

select 图书名称,名称,价格 from 图书表,图书类别表 where 图书表.类别=图书类别表.id

select a.图书名称,b.名称 as 图书类别,a.价格 from 图书表 a,图书类别表 b where a.类别=b.id(这种情况是为了避免数据库表中存在相同的字段名

,而存在的麻烦)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: