主要用於数据约束.部门表:部门ID(主键),部门名称员工表:部门ID(外键),员工工号,员工姓名外键作用是:员工表的部门ID(外键)必须存在於部门表的部门ID(主键),但也可为空.内连接:select * from 员工表 inner join 部门表 on 部门ID(外键)=部门ID(主键)显示数据:1.员工所属的部门必须存在2.部门里必须有员工左外连接select * from 员工表 left join 部门表 on 部门ID(外键)=部门ID(主键)显示数据:1.所有员工都显示,部门不存在显示为空.
外键啊,昨天刚讲过,嘿嘿出来献丑了举个例子吧,a表 里面有IDuser pwdpermission b表里面有 Pidpermission permission是权限的意思 假设pid是外键 那a 表里的permission怎么查呢 ,要靠B表查那这就是外键的作用,我理解吧就是2张表里,b表里有a表里想要得到的东西,他们之间的联系要靠外键来实现 内连接是只显示满足条件的select*from a inner join b ona .permission =b.Pid(就是刚说的实现) 完了外连接select * from a full join b on a.ID = b.Pid (我这个够通俗了吧 呼呼 全大白话看不懂哥不依) 在来修改下,举个例子,你和你媳妇舌吻, 那内连接就是取交集 ,舌头纠缠在一起的地方- -!外连接就是取所有
外键就是避免外键表与主键表上的主键字段数据有差异。举个例子,你现在有一个主表tab_h,主键t_id,外键表tab_d,t_id是tab_h的t_id外键。那么你就不能先insert tab_d 或者delete tab_d,因我t_id在tab_h中没有值。这样就违反了外键约束。当然了,避免这个麻烦,就需要代码写的规范,无论如何,要先对主表做insert ,delete(update 无所谓,但不能修改t_id为tab_h中没有的值)。内连接就是两个表,通过1个字段连接起来,必须两个表里都有的值才能被连接。外连接就是把两个表全部连接,即使没有的值用null会表示出来。比如tab1
tab2 t_id t_namet_id t_name1 a1 a2 b3 e4 d4 dselect * from tab1 a join tab2 b on a.t_id=b.t_id---内连接t_id t_namet_id t_name1 a1 a4 d4 dselect * from tab1 a full join tab2 b on a.t_id=b.t_id---外连接t_id t_namet_id t_name1 a1 a2 b
3 e4 d4 d