书接上回
一起学习下SQL中的表连接
一般情况下咱们会使用鼠标去进行表连接操作,那针对于像我比较懒的并且眼盲的,不喜欢来回切换,咱们就用到了点T-SQL表连接语句
一般情况咱们从两个表中查出来相似的内容的时候都会是像这样
那么既然都是姓名,性别,出生日期,咱们何不给他都放到一个结果集里面
ok 实干家开始
所用的代码很简单 union 就是简单的纵连接,之前接触到的都是横连接,今天这个是纵链接,下面是代码
1 select sname,ssex,sbirthday from Student 2 union 3 select tname,tsex,tbirthday from Teacher
现在开始外键控制的表连接,这个稍微有点儿复杂,没关系,几个单词的事儿
咱们还是用这个superise数据库(前面写错了,都怪英语没学好,前面写的是sprise,反正大家知道是这个表就行,不要注意细节)当中的四个表来进行练习
仔细查看上表内容 咱们应该会很快的推断出主外键关系了,那咱们的外键约束大家也很明白了,四个表的链接只需要三行代码就可以实现(并不推荐,自愿)
alter table 外键表名 add constraint 关系名字(自己给他命名这个关系) foreign key (外键约束的名字) references (约束列名)
拿四个表来讲
alter table Course add constraint Course_Teacher_Tno foreign key (Tno) references Teacher(Tno)
上面看的不明显的话咱们假设下:如表A中的Ids是主键,要约束表B中的Aid列 那么下面咱们的语句就是
alter table B add constraint A_B_Ids foreign key(Aid) references A(Ids)
可能感觉稍微有点绕 编程语言学的就是语法 跟英语特么一个道理 所以我学起来很头疼 但是有个简单的办法 就是翻译单词
alter:改变
table:表格
add:添加
constraint:直白的翻译过来就是约束,限制,强制的意思
foreign:简单的翻译就是国外,外国
key:可以理解为关键、钥匙
foreign key:官方翻译就是外键
renferences:参考,参照,引用
ok 咱们开始按照上面的解释来翻译下这句话
1 alter table B add constraint A_B_Ids foreign key(Aid) references A(Ids)
改变表格B,添加约束 A_B_Ids 外键是 (Aid) 参照 A(Ids)
再给翻译成正常话来讲就是:要参照A(Ids)的格式来约束B表中的Aid列,约束名字命名为A_B_Ids
理解不过来的就鼠标,搞不明白的确实会很头疼