如何建立sqlserver数据库两表之间的关系

2 02 2 年,我在某个城市,负责一个项目,需要建立两个表的关联。
我首先得定义主键,就像Admin_FCOutDt表,我设置了ID作为主键,而crm_contract表,我选择了contractID。
然后,我就在Admin_FCOutDt表里添加了一个contractID_FK字段,这就是外键,它指向crm_contract表的contractID。

创建外键约束,我用了SQLServerManagementStudio,也试过TSQL语句,确保数据引用的完整性。
当时操作的时候,我还挺懵的,不过后来慢慢就上手了。

接下来,我要通过JOIN操作来查询关联数据。
我试了内连接,比如SELECT FROM Admin_FCOutDt INNER JOIN crm_contract ON Admin_FCOutDt.ContractName = crm_contract.contractTopic,这样就能得到两个表都有的记录。

我还用了左连接,比如要更新Admin_FCOutDt表的数据,我就用左连接来确保左表的数据都能被处理,即使右表没有匹配的记录。

右连接和全连接,我也尝试过,全连接返回的是两个表中所有记录,包括不满足连接条件的记录,这在某些情况下挺有用的。

子查询和CTE,我也用过,子查询嵌套查询,CTE提供临时结果集,这些方法让复杂查询变得简单。

最后,合并查询,我用UNION和UNIONALL,UNION去重,UNIONALL不,这样就能把两个表的数据合并在一起。

整个过程,我特别小心,确保数据的完整性和一致性,对于大型数据集,我还特别注意了查询和索引的优化。
当时操作的时候,我可能偏激了一些,但最终结果还是满意的。

sql中有关联的两个表,怎么查出一个表中没有对应到另一个表的数据?

直接说重点:建表时主外键数据类型必须一致。

上周刚处理一个。
外键表字段类型,得和主键表完全一样。

比如学号用CHAR(1 0),两边都用。

拖动是可视化操作,SQL更灵活。

你看SdeptCHAR(1 0)这里,两边都得这么写。

先这样。