文档章节

MySQL学习笔记(三)

ws199358
 ws199358
发布于 2016/09/08 13:31
字数 458
阅读 17
收藏 0

五、多表查询

主、从表:

如果表A的主关键字(primary key)是表B的字段,则该字段称为表B的外键。

外键:用来实现参照完整性的,不的外键约束方式将可以使两张表紧密的结合起来,特别 修改或者删除的级联操作

 外键约束

作用:保证数据完整性 (***)

添加外键:

alter table 表名 add foreign key 当前表名(dno) references 关联的表 (did);

### 表间关系(表记录与另一有记录的关系)(专门人, 建模工具ER)

1:1

设计: 一般设计一张表就可以,有时根据业务的需要拆分多张表形成一对一

案例:用户基础信息,用户详细信息

原则:主键对应,唯一外键对应

n:n|n:m|*:*

案例:学生选择的课程,课程对应多个学生

1:n|1:*

案例:部门与员工

### 外连接

1. 左外连接(把左表所有的数据查询出来)

前提:要有外键

语法: left [outer] join A表.字段 on B表.字段

select * from dept t1 left join emp t2 on t1.did = t2.dno;

2. 右外连接

前提:要有外键

语法: right [outer] join A表.字段 on B表.字段

select * from dept t1 right join emp t2 on t1.did = t2.dno;

3.完全外连接 full join 或 full outer join

前提:要有外键

SQL语句:select * from student full join course on student.ID=course.ID

#. 子查询

查询的内容要用另一个查询的结果

select * from emp where ename > (select * from emp where 条件)

先完成子查询,后进行查询

四、内连接

1.普通的内连接

前提:要有外键

关键字: inner join A表.字段 on B表.字段

2.隐式的内连接(用得最多)

 不用inner join ... on 关键字

 select * from dept d, emp e where d.did=e.dno;

© 著作权归作者所有

共有 人打赏支持
ws199358
粉丝 6
博文 21
码字总数 17855
作品 0
深圳
程序员
私信 提问
MySQL入门很简单-学习笔记 - 索引页

索引一下,方便阅读,后面有完整的PDF下载地址 MySQL入门很简单-学习笔记 - 第1 章 数据库概述 MySQL入门很简单-学习笔记 - 第 2 章 Windows平台下安装与配置MySQL MySQL入门很简单-学习笔...

晨曦之光
2012/03/09
0
0
Mybatis 学习笔记三 搭配pageHelper分页插件使用

Mybatis 学习笔记三 搭配pageHelper分页插件使用 基于《Mybatis 学习笔记二 与spring搭配》 maven依赖 配置 mybatis配置 conf.xml 注意:保持基本配置即可; spring配置 applicationContext...

晨猫
前天
0
0
《PHP和MySQL Web 开发》 第9章 创建Web数据库 (9.8-9.10)

LCL WARNING 这是我学习《PHP和MySQL Web 开发》的读书笔记,一些重要的知识点我会记录下来,当然只会写我觉得重要的。 如果有幸有人看到这个学习笔记了,你要结合着书看,不要光看这个笔记。...

十万猛虎下画山
07/26
0
0
读《PHP和MySQL Web开发》

【第一部分】PHP基础与入门 1、PHP学习笔记1:基础知识快速浏览 http://my.oschina.net/bluefly/blog/472673 2、PHP学习笔记2:文件 http://my.oschina.net/bluefly/blog/477601 3、PHP学习笔...

slyso
2015/07/14
0
0
SQL-DQL之条件查询(2)

1.条件查询: 2.筛选条件的分类 一. 按条件表达式筛选 简单条件运算符:> , <, = , >= , <= , <>(不等于), !=,<=>(安全等于)。 二. 按逻辑表达式筛选(用于连接条件表达式) 逻辑运算符:...

小白201808
08/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
29分钟前
1
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
4
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部