MySQL简介,我们为什么要学习各种join
MySQL是SQL的一种,SQL意为结构化查询语言(Structure Query Language),MySQL可以应用于现实世界的各种结构化数据。
SQL(结构化查询语言),处理结构化数据的查询语言,结构化数据就是一张表,数据结构是关系,元组的结合
以下内容能看懂就看,看不懂可以自行百度
- 数据库(DB)是现代信息系统的核心组成部分,用于存储、管理和检索数据。
它具备永久存储、有组织和可共享的特点。- 数据库管理系统(DBMS)是一个软件系统,提供数据定义和数据操纵功能。
- 数据库系统(DBS)则是一个更广泛的术语,包括数据库(DB)、数据库管理系统(DBMS)、应用程序和数据库管理员(DBA)。
- 数据模型是数据库系统的核心和基础,分为概念模型(实体-联系模型)、逻辑模型和物理模型三类。
- 数据模型的组成三要素:
数据结构(最重要,按照这个分类),数据操作,完整性约束条件- 关系型数据库的数据结构是关系;数据操作包括:查询,更新(增删改);完整性约束条件包括①实体完整性(针对主属性,主属性不能为空),②参照完整性(外码,外码要么为空,要么是另一列中的值),③用户定义完整性(语义,比如性别,不能为空,比如年龄,不能是负数,比如成绩,必须在0-100之间)
- 现有的RDB(关系型数据库)无法处理相关数据处理问题,于是新的非关系数据库技术出现了,能很好的解决大数据相关的问题,叫NOSQL
- 结构化数据:可以通过固有键值获取相关数值,且数据的格式固定
- 非结构化数据:声音等信息,歧义严重,无法通过键值获取相关数值
- 半结构化数据:通过灵活键值获取相关数值,数据的格式不固定(XML,JSON等)
MySQL是关系型数据库,存储的是关系模型数据。
MySQL是一种计算机语言,只要是计算机语言,在解决现实问题的过程种,往往都对现实世界进行了抽象与映射,MySQL也不例外,一张表,往往就是对现实世界实体/映射关系的一种抽象。
join就是对各种实体之间关系的一种汇总,不管我们想要哪些结果,都可以通过join完成
Join的类型
参考文章:
SQL 连接(JOIN)
内连接,外连接,全外连接,交叉连接,自然连接
不同逻辑关系,我们能采取的最优策略(表结构设计)
表的关系,就是现实世界的实体之间的关系
1对1,1对多,多对多
不同的关系,我们有不同的策略进行处理
1对1
合法情况下,1名丈夫只能与1位女性结为夫妇
1. 表合并(最优)
普通的mysql表自带字段之间1对1的逻辑
优点:查询快,单表即可完成
没有缺点