在SQl中、主外键主要到底 是干什么用的?
主外键是不就是插入时给数据的一个完整性约束呀。真正到查询时就没必要间关系了了?。。用内联或外联就行了、是么?在查询的时候主外键和内联或外联用什么关系?谢谢、、、、、...
主外键 是不就是插入时给数据的一个完整性约束呀 。真正到 查询时就没 必要间关系了了? 。 。 用内联 或外联 就行了、 是么?在查询的时候主外键和 内联 或外联 用什么关系? 谢谢 、 、 、 、 、
展开
5个回答
展开全部
主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。例子:create table 学生表(学号 int primary key)
外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。例子:create table 选课表(学号 int foreign key references 学生表(学号))
连接查询与内外键的关系:
连接的 连接条件:A表的主键 = B表的外键如果做连接的两表没有主外键关系,那么连接结果是笛卡尔积,没有意义。
例:学生表和选课表做连接,select *from 学生表,选课表where 学生表.学号(主键)=选课表.学号(外键)
主外键可以建级联级触发器,用来做级联删除、更新。作用原理还是因为主外键将两表联系。
外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。例子:create table 选课表(学号 int foreign key references 学生表(学号))
连接查询与内外键的关系:
连接的 连接条件:A表的主键 = B表的外键如果做连接的两表没有主外键关系,那么连接结果是笛卡尔积,没有意义。
例:学生表和选课表做连接,select *from 学生表,选课表where 学生表.学号(主键)=选课表.学号(外键)
主外键可以建级联级触发器,用来做级联删除、更新。作用原理还是因为主外键将两表联系。
更多追问追答
追问
主外键 与查询 什么关系 、、 例如 插入时我用的主外键 。而查询的时候我把主外键 关系给删了 。 。那么我用内联链接 没有意义么? 这里不大明白 、 、、 你的意思是:查询内联或外联时 。主外键还得保持关系 就是了、、对么?
追答
当然了,查询查的是表里的数据,而数据与数据有联系才把表与表联系,所以才有主外键。如果你只单表查询,就不需要外键了。所多表查询,就得用主外键联系,需要把这个联系当做连接的条件把两表关联。
展开全部
主外键就是完整性约束,查询时可以提高效率
内连接和外连接是查询时表的连接方式,主外键是表之间关系
主外键 还有 级联删除 级联更新(Oracle没有,SQL Server有)功能
http://baike.baidu.com/view/690105.html
内连接和外连接是查询时表的连接方式,主外键是表之间关系
主外键 还有 级联删除 级联更新(Oracle没有,SQL Server有)功能
http://baike.baidu.com/view/690105.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举个简单的例子
表a内有列c1
表b内有列c2
将c2的外键指向c1
那么当你向表b插入数据时,c2的内容必须为c1中的一个
还有几个约束需要你设置
如删除或者修改表a中的字段时怎么处理表b中相关联的数据
表a内有列c1
表b内有列c2
将c2的外键指向c1
那么当你向表b插入数据时,c2的内容必须为c1中的一个
还有几个约束需要你设置
如删除或者修改表a中的字段时怎么处理表b中相关联的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主键是表内查询用的唯一标识,具有不重复性特点
外键是表间连接用的,即多表查询
外键是表间连接用的,即多表查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参考下:http://zhidao.baidu.com/question/318157329.html?oldq=1
数据库表中的主键和外键。
数据库表中的主键和外键。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询