定义一个外键时,需要遵循的规则:
主表必须已经存在数据库中,或者是当前正在创建的;
必须主表定义主键。
一张表中有一个非主键的字段指向了另一张表中的主键,就将该字段叫做外键。一张表中外键可以有多个,也就是不同字段指向了不同表中的主键。
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后面有结果就为真,就符合条件。