数据库基础知识

下面讲解一下数据库基础知识


主键: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(这种情况是为了避免数据库表中存在相同的字段名
,而存在的麻烦)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗兰随风小欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值