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


本文摘自PHP中文网,作者coldplay.xixi,侵删。

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

文章目录

      • 表连接
        • 内连接
        • 左连接
        • 右连接
        • 子查询
      • 自关联
      • 外键
        • 外键介绍
        • 创建表时设置外键约束

表连接

  • 当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回mysql
  • 这时需要表进行连接

内连接

  • 内连接仅选出两张表中互相匹配的记录

1

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填充

1

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填充。

阅读剩余部分

相关阅读 >>

实例详解mysql5.7中 performance和sys schema中的监控参数

windows 8.1下mysql5.7 忘记root 密码如何解决

centos7安装和配置mysql5.7的方法分享

rpm包在centos6.5中安装mysql5.7初始化报错的解决方法

navicat外键怎么设置

navicat外键要怎么设置

在表中设置外键实现的是哪一类数据完整性

linux源码安装mysql5.7

子查询一般分为几种

mysql5.7 报错1055怎么办

更多相关阅读请进入《mysql5.7》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...