回顾

列属性:主键,自增长,唯一键。

关系:一对一,一对多,多对多

三层范式:

1NF:字段设计必须符合原子性

2NF:不存在部分依赖(没有复合主键)

3NF:不存在传递依赖(实体单独成表)

逆规范化:效率磁盘空间博弈;

高级数据操作:

新增操作:主键冲突(更新与替换),蠕虫复制

更新操作:限制更新数量:limit

删除操作:限制删除数量:limit。清空表结构:truncate

查询操作:select选项;

字段别名: 数据源(单表,多表,子查询[别名])

Where子句(条件判断:从磁盘)

Group by子句(判断结构,针对分组统计结果)

Order by子句(排序,多字段排序)

Having 子句 (判断结果,针对分组进行统计结果)

Limit子句 (限制记录数,分页)

连接查询

连接查询:将多张表(可以大于2张)进行记录的连接(按照某个指定条件进行数据拼接)

最终结果:记录数有可能变化,字段数一定会增加(至少两张表合并)

连接查询的意义:用户查看数据的时候,需要现实的数据来自多张表。

连接查询分类

Sql将连接查询分为四类:外链接,自然连接,内连接,交叉连接

连接查询:join,使用方式 左表join 右表;

左表;在join关键字左边的表;

右表:在join 关键字右边的表;

交叉连接

Cross join从一张表中循环取出每一条记录,每张记录都去另一张表进行匹配。

匹配一定保留(没有条件匹配),而连接本身字段就全增加(保留),最终会形成的结果叫做笛卡尔积

基本语法:

左表 cross join 右表;==from 左表,右表;

笛卡尔积没有意义:应该尽量避免(交叉查询没用)交叉连接的价值:保证连接结构的完整性。

例:select * from my_stu cross join my_class;

内连接:

内连接:[inner] join;

从左表中取出没一条记录去右表中所有记录进行匹配,匹配必须是某个条件,在左表中与右表中相同的最终会保留,否则不保留。

基本语法

左表 [inner] 右表 on 左表.字段=右边.字段;

On 表示连接条件;

条件字段就是代表相同的业务含义

如:内连接

Select *from my_stu a join my_class b

On a.c_id=b.id;

在php中会覆盖:

字段别名以及表别名对的使用:在查询数据的时候,不同表有同名字段,这个时候需要加上表名才能区分,而表名太长,通常使用别名。

内连接可以使用where 代替on关键字(where没有on效率高)

外链接:

外链接:outer  join ,以某张表为主,取出里面所有的记录,然后每条与另一表进行连接,不管能不能匹配上条件,最终都会保留。

能匹配,正确保留,不能匹配其他字段制空null;

外连接分为两种:以某张表为主

以左表为主: left join :左外连接

以右表为主 right join :右外连接

基本语法

左表  left/right join 右表 on 左表.字段=右表.字段;

例: select * from My_stu a left/right  join My_class  b

On a.c_id=b.id;

虽然左连接和右连接有主表差异,但是显示的结果永远是左表数据在左边,右表数据在右边,左连接和右连接可以相互转

 自然连接

Natural join :自动匹配连接条件,系统以字段名为匹配模式(同名字段作为条件,多个同名字段作为条件)

自然连接分为自然内连接。自然外连接

自然内连接 :select * from My_stu

Natural join my_class;

自然外连接 :左表 natural left/right join 右表

例:select * from my_stu natural left/right join my_class;

其实 内连接与外连接都可以模拟自然连接!!!!!!!!!

mysql学习之路_连接查询的更多相关文章

  1. mysql学习之路_联合查询与子查询

    联合查询 联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加). 语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关). Select ...

  2. mysql学习之路_外键

    回顾4 连接查询: 连接多张表到一起,不管记录数如何,字段数一定会增加. 分类:内连接,外连接.自然连接,交叉连接, 交叉连接:cross join (笛卡尔积) 内连接:inner join,左右两 ...

  3. mysql学习之路_视图

    视图 视图:view是一种有结构的但是没有结构来源的虚拟表,虚拟表的结构来源不是自己定义的而是从对应的基表中产生(来源) 创建视图 基本语法: Create view 视图名字 as select 语 ...

  4. mysql学习之路_事物_存储过程_备份

    数据备份与还原 备份:将当前已有的数据保留. 还原:将已经保留的数据恢复到对应表中 为什么要做数据备份 1,防止数据丢失,被盗,误操作 2,保护数据记录 数据备份还原方式有多种:数据表备份 单表数据备 ...

  5. mysql学习之路_高级数据操作

    关系 将实体与实体的关系,反应到最终数据表的设计上来,将关系分为三种,一对多,多对多,多对多. 所有关系都是表与表之间的关系. 一对一: 一张表的一条记录一定只对应另外一张表的一条记录,反之亦然. 例 ...

  6. mysql学习之路_基础知识

                    Mysql php阶段将数据库分为三个阶 基础阶段: mysql数据库的基本操作(增删改查),以及一些高级操作(视图,触发器,函数,存储过程等),PHP操作没有sql数 ...

  7. mysql学习之路_字段类型与属性2

    字段属性: 主键,唯一键,自增长. 主键: Primary key 主要的键,一张表只能有一个字段能使用对应的键,用来唯一约束该字段里面的数据不能重复,称之为主见. 一张表最多只有一个主键. 增加主键 ...

  8. mysql学习之路_字段类型与属性

    回顾 数据库基本知识:关系型数据库与非关系型数据库 关系型数据库:安全(磁盘) 非关系型数据库:高效(内存) 关系型数据库:建立在关系模型上的数据库, 数据结构:二维表(浪费空间) 数据库操作指令:s ...

  9. mysql学习之路_乱码问题

    中文数据问题: 中文数据问题本质就说字符集问题, 计算机只识别二进制,人类识别符号:需要友谊个二进制与字符对应关系(字符集). 报错:服务器没有识别对应的四个字节. 服务器认为的数据是utf—8,一个 ...

随机推荐

  1. 分布式大数据多维数据分析(olap)引擎kylin[转]

    Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay 开发并贡献至开源社区.它能在亚秒内查询巨大的Hiv ...

  2. SQL那些事儿(十一)--ODBC,OLE-DB,ADO.NET区别[转]

    一.ODBC   ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂 ...

  3. 【分布式架构】“spring cloud”与“dubbo”微服务的对比

      秉承站在巨人的肩膀上,同时我也不想重复制造轮子,我发现了一系列关于“分布式架构”方面,我需要,同时能够解决我的一些疑惑.问题的博客,转载过来,原文链接: http://blog.csdn.net/ ...

  4. rbac 权限分配, 基于formset实现,批量编辑

    已经完成了  批量添加的功能. 还想要一个批量修改的功能了.随之而来的第一个问题就是,  我们的formset 并不是一条记录.而是 多条记录,甚至整个表的记录.那么显而易见的问题就是,当前端页面把数 ...

  5. MBP 使用笔记

    1.svn下载指令(终端) svn checkout https://svn.openslam.org/data/svn/gmapping 参考:http://blog.csdn.net/q19910 ...

  6. django rest framework restful 规范

    内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> ...

  7. NSIS Error:Error writing temporary file. Make sure your temp folder is valid的解决办法

    我的是Win7 32位,当前登录用户已经是管理员,在安装腾讯视频电脑版时,提示以上错误,无法安装. 查了好多资料,按如下方法解决了: 在win7下,以管理员的身份打开cmd(在window\syste ...

  8. linux 压缩命令

    .zip格式压缩 zip 压缩文件名 源文件     压缩文件 zip -r 压缩文件名 源目录    #压缩目录 .zip格式解压缩 unzip 压缩文件     #解压缩 .gz格式压缩 gzip ...

  9. Site.ForProductsOfApple

    1. cultofmac http://www.cultofmac.com/ 2. imore http://www.imore.com/ 3. osxdaily http://osxdaily.co ...

  10. 洛谷4054 [JSOI2009]计数问题

    原题链接 二维树状数组模板题. 对每一种颜色开一棵二维树状数组统计即可. #include<cstdio> using namespace std; const int N = 310; ...