MySQL高效编程学习笔记(三)--多个表的连接

关系型数据库为了减少数据占用有限的存储空间,都会进行数据分割到几个表的规范化处理,将这几个分割管理的数据重新结合到一起就是表连接处理。

1.内连接
内连接就是表间的主键和外键相连,只取得键值一致的数据的连接方式。具体语法:

Select 列名1…from 表1 inner join 表2 on 表1.外键=表2.主键 [where /order by 语句]

Eg1:创建class 数据库和student 、goods两个表和相应字段,其中student作为主表,它的外键goodsID和goods表的主键id对应,查询语句

select s.name,s.phonenumber,g.name from student as s inner join goods as g on s.goodsID=g.ID;

(其中把表名student记为s, goods记为g方便引用)
考虑到时间问题,这里选择直接用Navicate建表(后面有时间再更新为用代码建表):
这里先建一个数据库class,再建表goods,student,然后各个表的内容以及主键外键的设置见下图。
这里写图片描述`MySQL高效编程学习笔记(三)--多个表的连接_第1张图片
MySQL高效编程学习笔记(三)--多个表的连接_第2张图片
MySQL高效编程学习笔记(三)--多个表的连接_第3张图片
MySQL高效编程学习笔记(三)--多个表的连接_第4张图片
MySQL高效编程学习笔记(三)--多个表的连接_第5张图片
结果如下:
MySQL高效编程学习笔记(三)--多个表的连接_第6张图片

2.多个表的内连接
下面通过设置外键将四个表的数据连接起来;

select s.name,s.phonenumber,s.sex,g.name,c.classname,a.address from ((student as s inner join goods as g on s.goodsID=g.ID)inner join classname as c on s.ID=c.ID)inner join address as a on c.ID=a.ID;
MySQL高效编程学习笔记(三)--多个表的连接_第7张图片
MySQL高效编程学习笔记(三)--多个表的连接_第8张图片
MySQL高效编程学习笔记(三)--多个表的连接_第9张图片
MySQL高效编程学习笔记(三)--多个表的连接_第10张图片
MySQL高效编程学习笔记(三)--多个表的连接_第11张图片

你可能感兴趣的:(MYSQL)