SQL如果建立子表
对数据库是个菜鸟。不知道SQL中有没有父表与子表的概念。我的意思是先建一张表,然后里面的每条记录又对应一个表。道理是明白了,但具体不知道怎么操作。能不能举个例子,简单一些...
对数据库是个菜鸟。不知道SQL中有没有父表与子表的概念。我的意思是先建一张表,然后里面的每条记录又对应一个表。
道理是明白了,但具体不知道怎么操作。能不能举个例子,简单一些就行。 展开
道理是明白了,但具体不知道怎么操作。能不能举个例子,简单一些就行。 展开
5个回答
展开全部
也就是建立主外键关系。
建立一张表。。他的外键对应另一张表的主键。。这张表就是子表。
子表外键的数据必须在主表的主键存在。
比如
学员表(学员ID,学员姓名)
成绩表(学员ID,成绩)
学员表的学员ID是主键。
成绩表的学员ID对应学员表的主键。必须有个人才会有成绩。
所以学员表是主表
成绩表是子表
-----例子-----------
新建一个表 表名:stuInfo 表中有两列 stuID 和 stuName,分别保存ID和姓名
新建一个表 表名: scoreInfo 表中有两列 SstuID 和 score,分别保存ID和成绩
在stuInfo表中给stuID列设为主键
在scoreInfo表中给SstuID设定关系,对应到stuInfo表中的stuID.
在stuInfo表中插入数据
stuID,stuName
1 , 张三
2 ,李四
在scoreInfo表中插入数据时SstuID必须在stuInfo表中的stuID列中存在
比如插入如下数据
SstuID,score
3 , 89
就会插不进去。没有编号为3的这个学员。
这就是子表依赖主表,成绩表为子表
建立一张表。。他的外键对应另一张表的主键。。这张表就是子表。
子表外键的数据必须在主表的主键存在。
比如
学员表(学员ID,学员姓名)
成绩表(学员ID,成绩)
学员表的学员ID是主键。
成绩表的学员ID对应学员表的主键。必须有个人才会有成绩。
所以学员表是主表
成绩表是子表
-----例子-----------
新建一个表 表名:stuInfo 表中有两列 stuID 和 stuName,分别保存ID和姓名
新建一个表 表名: scoreInfo 表中有两列 SstuID 和 score,分别保存ID和成绩
在stuInfo表中给stuID列设为主键
在scoreInfo表中给SstuID设定关系,对应到stuInfo表中的stuID.
在stuInfo表中插入数据
stuID,stuName
1 , 张三
2 ,李四
在scoreInfo表中插入数据时SstuID必须在stuInfo表中的stuID列中存在
比如插入如下数据
SstuID,score
3 , 89
就会插不进去。没有编号为3的这个学员。
这就是子表依赖主表,成绩表为子表
展开全部
估计你之前是使用ACCESS。它可以通过外键关系,建立父子表,并直接可以在数据视图中呈现。这里的父子关系,其实就是通常数据关系理论中,实体一对多的关系。
在SQL Server中,这种关系可以通过2张表的主外键关系来确立。具体举例来说,建立2张表,一张是国家列表[tblCountry],一张是城市列表[tblCity],他们通过关键字段[国家ID],建立父子关系,也就是一个国家包含多个城市。
表1(tblCity)
国家ID,城市
------------
086 ,北京
086 ,上海
086 ,天津
... , ...
001 ,纽约
001 ,西雅图
... , ...
表2(tblCountry)
国家ID,国家
------------
086 , 中国
001 ,美国
需要查看某一个国家(如:中国086)包含的所有城市时,需要联接(JOIN)2个表
SELECT tblCountry.国家ID, tblCountry.国家,tblCity.城市
From tblCountry Inner Join tblCity On tblCountry.国家ID = tblCity.国家ID
Where tblCountry.国家ID='086'
执行结果
国家ID,国家,城市
-----------------
086 , 中国 , 北京
086 , 中国 , 上海
086 , 中国 ,天津
... , ... , ...
你所说的“然后里面的每条记录又对应一个表”,中的“表”,确切的说是另外一个表中的一组记录。
在SQL Server中,这种关系可以通过2张表的主外键关系来确立。具体举例来说,建立2张表,一张是国家列表[tblCountry],一张是城市列表[tblCity],他们通过关键字段[国家ID],建立父子关系,也就是一个国家包含多个城市。
表1(tblCity)
国家ID,城市
------------
086 ,北京
086 ,上海
086 ,天津
... , ...
001 ,纽约
001 ,西雅图
... , ...
表2(tblCountry)
国家ID,国家
------------
086 , 中国
001 ,美国
需要查看某一个国家(如:中国086)包含的所有城市时,需要联接(JOIN)2个表
SELECT tblCountry.国家ID, tblCountry.国家,tblCity.城市
From tblCountry Inner Join tblCity On tblCountry.国家ID = tblCity.国家ID
Where tblCountry.国家ID='086'
执行结果
国家ID,国家,城市
-----------------
086 , 中国 , 北京
086 , 中国 , 上海
086 , 中国 ,天津
... , ... , ...
你所说的“然后里面的每条记录又对应一个表”,中的“表”,确切的说是另外一个表中的一组记录。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是主表和明细表了,这个可以实现的,就是取决于外键,比如销售。你可以定义销售信息表和销售明细表。销售信息表:销售单号,总金额。。。;明细表:编号,销售单号。。。;他们的关系取决于销售单号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
子与父是你自己的定义,SQL有强大的查询功能,一般都能解决,但是最好还是学习一点基础,这样,建立的表结构会合理点.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql server和oracle分别有系统表就是记录用户表的结构的,他们的每条记录就是用户表的表结构;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |