在SQl中、主外键主要到底 是干什么用的?

主外键 是不就是插入时给数据的一个完整性约束呀 。真正到 查询时就没 必要间关系了了? 。 。 用内联 或外联 就行了、 是么?在查询的时候主外键和 内联 或外联 用什么关系? 谢谢 、 、 、 、 、

主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。例子:create table 学生表(学号 int primary key)
外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。例子:create table 选课表(学号 int foreign key references 学生表(学号))

连接查询与内外键的关系:

连接的 连接条件:A表的主键 = B表的外键如果做连接的两表没有主外键关系,那么连接结果是笛卡尔积,没有意义。
例:学生表和选课表做连接,select *from 学生表,选课表where 学生表.学号(主键)=选课表.学号(外键)

主外键可以建级联级触发器,用来做级联删除、更新。作用原理还是因为主外键将两表联系。追问

主外键 与查询 什么关系 、、 例如 插入时我用的主外键 。而查询的时候我把主外键 关系给删了 。 。那么我用内联链接 没有意义么? 这里不大明白 、 、、 你的意思是:查询内联或外联时 。主外键还得保持关系 就是了、、对么?

追答

当然了,查询查的是表里的数据,而数据与数据有联系才把表与表联系,所以才有主外键。如果你只单表查询,就不需要外键了。所多表查询,就得用主外键联系,需要把这个联系当做连接的条件把两表关联。

追问

可是 我先把用主外键 insert 信息 、 我又 把 主外键 的关系删除了 、 、用内联 查询 还是 一样啊?那是为什么? 怎么 他是怎么个没意义的?我就这不用 、、 这不 吧主外键删了 数据是一样的呀、、、

追答

你确定删除了主外键?
有数据的情况下,应该不能直接删除关系吧、
要么就是你主外键没定义好,
你把表结构和建主外键的代码发一下

追问

确实删除了 、 、我问别人了 他们说主外键 和 内联 外联什么 关系 也没有 、 、、 、 。 。哎呀 、 、我认为 是有 关系 的 。插入 数据时 我用的主外键 。 我查询的时候 、 我就把主外键给删去了 、 、我用的是 SQl2008、、我也不知道为什么 、、、谢谢 你了 呀 、

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-01
主外键就是完整性约束,查询时可以提高效率
内连接和外连接是查询时表的连接方式,主外键是表之间关系
主外键 还有 级联删除 级联更新(Oracle没有,SQL Server有)功能
http://baike.baidu.com/view/690105.html
第2个回答  2019-01-16
举个简单的例子
表a内有列c1
表b内有列c2
将c2的外键指向c1
那么当你向表b插入数据时,c2的内容必须为c1中的一个
还有几个约束需要你设置
如删除或者修改表a中的字段时怎么处理表b中相关联的数据
第3个回答  2012-03-01
主键是表内查询用的唯一标识,具有不重复性特点
外键是表间连接用的,即多表查询
第4个回答  2012-03-01
参考下:http://zhidao.baidu.com/question/318157329.html?oldq=1
数据库表中的主键和外键。