MySQL5.7数据库介绍表连接、子查询、外键

MySQL5.7数据库介绍表连接、子查询、外键,第1张

概述MySQL5.7数据库介绍连接、子查询、外键

免费学习推荐:mysql视频教程

文章目录表连接内连接左连接右连接子查询自关联外键外键介绍创建表时设置外键约束表连接当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回MysqL这时需要表进行连接内连接内连接仅选出两张表中互相匹配的记录
select * from 表1 inner join 表2 on 表1.列 = 表2.列-- 显示学生的所有信息,但只显示班级名称select s.*, c.name from students s inner join classes c on s.ID=c.ID;-- 将班级名称显示在第一列select c.name, s.* from students s inner join classes c on s.ID=c.ID;-- 查询 有能够对应班级的学生以及班级信息,按照班级进行排序select c.name, s.* from students s inner join classes c on s.cls_ID = c.ID order by c.name asc;-- 当同一个班级时,按照学生的ID进行从小到大排序select c.name, s.* from students s inner join classes c on s.cls_ID = c.ID order by c.name asc, s.ID asc;



在这里插入图片描述

左连接

查询的结果为两个表匹配到的数据,左表持有的数据,对于右表中不存的数据使用null填充

select * from 表1 left join 表2 on 表1.列=表2.列-- students表左连接classes表 并查看班级为null的数据select * from students s left join classes c on s.cls_ID=c.ID having s.cls_ID is null;-- 左连接 并且 查询 s.cls_ID=1 并且 s.name="small-j" 的数据select * from students s left join classes c on s.cls_ID=c.ID having s.cls_ID=1 and s.name="small-j";

右连接

查询结果为两个表匹配到的数据,右表持有的数据,对于左表中不存在的数据使用null填充。

select * from 表1 right join 表2 on 表1.列 = 表2.列;
子查询

某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候,就要使用到子查询

select * from 表 where 表(子查询语句)-- 查询出students中身高最高的男生。显示名字和身高select s.name, s.high from students s where high=(select max(high) from students) and gender="男";-- 查询出高于平均身高的学生信息select * from students where high>(select avg(high) from students);-- 查询学生班级号cls_ID能够对应的学生信息select * from students where cls_ID in (select ID from students);-- 查询最大年龄的女生的IDselect * from students where ID=(select max(ID) from students where gender="女") and  gender="女";

在这里插入图片描述

自关联

简单理解为自己与自己进行连接查询

-- 查询广东省下的所有广东市select * from citIEs c inner join provinces p on c.provinceID=p.provinceID having p.province="广东省";-- 查询广东省下的所有广东市-- 自关联select * from areas a inner join areas b on a.ID=b.pID having a.name="广东";


外键外键介绍MysqL的外键(foreing key)是表的一个特殊字段。对于两个具有关联关系的表而言,相关联字段的主键所在表就是主表(父表),外键所在的表是从表(子表)。注意: 主键不能包含空值,但允许在外键中出现空值,也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。创建表时设置外键约束当创建外键的时候,必须先删除从表才能删除主表。主表需存在时创建从表。从表的外键关联必须是主表的主键,并且主键与外键的类型必须保持一致。
[constraint 外键名] foreign key (字段名 [,字段名2, ...]) references <主表名> 主键列1 [, 主键列2, ...]
-- 创建班级表create table classes(    ID int(4) not null primary key,    name varchar(36));-- 创建学生表create table student(    sID int(4) not null primary key,    sname varchar(30),    cID int(4) not null);-- 创建直接含有外键关系的学生表create table student(  	sID int(4) not null primary key,  	sname varchar(30),  	cID int(4) not null,  	constraint pk_ID foreign key (cID) references classes(ID));-- 通过alter来添加外键关系alter table student add constraint pk_ID foreign key (cID) references classes(ID);-- 删除外键约束alter table student drop foreign key pk_ID;


相关免费学习推荐:mysql数据库(视频)

总结

以上是内存溢出为你收集整理的MySQL5.7数据库介绍表连接、子查询、外键全部内容,希望文章能够帮你解决MySQL5.7数据库介绍表连接、子查询、外键所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1150235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存