MYSQL多表查询

定义一个外键时,需要遵循的规则:

主表必须已经存在数据库中,或者是当前正在创建的;
必须主表定义主键。
一张表中有一个非主键的字段指向了另一张表中的主键,就将该字段叫做外键。一张表中外键可以有多个,也就是不同字段指向了不同表中的主键。

create table student(
id int primary key,
age int,
dept_id varchar(20)
constraint kk foreign key(dept_id) references dept(detpno)
);

或者 : alter table student add constraint kk foreign key(dept_id)
references dept(detpno);

alter table student drop foreign key kk;

外键约束对多表查询并无影响。
笛卡尔积:(一张表的每一行和另外一张表的任意一行进行匹配)
select * from dept3,dept4;
内连接查询:
隐式连接查询: select * from A,B where a.id=b.id;
显示查询:select * from a inner join b on a.id=b.id;
左连接查询:
select * from student left (outer) join teacher on student.id=teacher.id;
满连接:

select * from student left outer join teacher on student.id=teacher.id
union
select * from student right outer join teacher on student.id=teacher.id;

select * from student where id in(‘1001’,‘1002’);
select * from student where age>all(select age from kk where id=12); age大于all中的所有值。
select * from student where age>any(select age from kk where id=12); age大于any中的任意一个值即可成立。
exists关键字
select * from student where exists (select 1);//只要exists后面有结果就为真,就符合条件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值