SQL如果建立子表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL如果建立子表相关的知识,希望对你有一定的参考价值。

对数据库是个菜鸟。不知道SQL中有没有父表与子表的概念。我的意思是先建一张表,然后里面的每条记录又对应一个表。
道理是明白了,但具体不知道怎么操作。能不能举个例子,简单一些就行。

也就是建立主外键关系。
建立一张表。。他的外键对应另一张表的主键。。这张表就是子表。
子表外键的数据必须在主表的主键存在。
比如
学员表(学员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的这个学员。
这就是子表依赖主表,成绩表为子表
参考技术A 估计你之前是使用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 , 中国 ,天津
... , ... , ...

你所说的“然后里面的每条记录又对应一个表”,中的“表”,确切的说是另外一个表中的一组记录。
参考技术B 就是主表和明细表了,这个可以实现的,就是取决于外键,比如销售。你可以定义销售信息表和销售明细表。销售信息表:销售单号,总金额。。。;明细表:编号,销售单号。。。;他们的关系取决于销售单号。 参考技术C 子与父是你自己的定义,SQL有强大的查询功能,一般都能解决,但是最好还是学习一点基础,这样,建立的表结构会合理点. 参考技术D sql server和oracle分别有系统表就是记录用户表的结构的,他们的每条记录就是用户表的表结构;

IDEA如何在包下建立子包

idea如何在包下建立子包

第一次在包下建立子包时候出现了问题


在java > springmvc包下再new上一个package controller的时候就会出现这个样子

如何解决

在IDEA2019 中的Show Options Menu下有一个Compacket Middle Packages将它关闭即可

解决成功

以上是关于SQL如果建立子表的主要内容,如果未能解决你的问题,请参考以下文章

endnote 能建立子文件夹(子分组)吗?

如何将在Qt工程中建立子项目

SQL 表已经建立好了 如何在字段中插入GUID数据

IDEA如何在包下建立子包

magento建立子主题

Oracle 建立索引及SQL优化