MySQL数据库 详谈表的内连和外连

【MySQL基础】数据库与表的基本操作:从创建到管理 学习MySQL的基本操作,就像是搭建一个井然有序的图书馆。我们需要先建立存放数据的“库”,这就是数据库的创建和管理,通过来新建一个库,并用查看已经存在的库,必要时还能用清理不再需要的库。接下来,在数据库中创建存放具体数据的“架子”,也就是表的创建与管理。用新建表结构,比如定义表里有哪些“格子”(字段)来放数据,DROP TABLE用于删除表,则可以灵活调整表的结构,让数据更符合需求。为了把每个“格子”设计得恰到好处,我们要了解MySQL支持的数据类型。 阅读详情

目录

1. 内连接

2. 外连接

左外连接

右外连接

3. OJ题目分享


表的连接分为内连和外连

1. 内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。

语法:

select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

备注:前面学习的都是内连接

案例:显示SMITH的名字和部门名称

-- 用前面的写法
select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno and
ename='SMITH';
-- 用标准的内连接写法
select ename, dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and
ename='SMITH';

2. 外连接

外连接分为左外连接和右外连接

左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接。

语法:

select 字段名 from 表名1 left join 表名2 on 连接条件

案例:

-- 建两张表
create table stu (id int, name varchar(30)); -- 学生表
insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');
create table exam (id int, grade int); -- 成绩表
insert into exam values(1, 56),(2,76),(11, 8);

查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来

-- 当左边表和右边表没有匹配时,也会显示左边表的数据
select * from stu left join exam on stu.id=exam.id;

右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接。

语法:

select 字段 from 表名1 right join 表名2 on 连接条件;

案例:

对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来

select * from stu right join exam on stu.id=exam.id;

练习:

列出部门名称和这些部门的员工信息,同时列出没有员工的部门

方法一:
select d.dname, e.* from dept d left join emp e on d.deptno=e.deptno;
方法二:
select d.dname, e.* from emp e right join dept d on d.deptno=e.deptno;

3. OJ题目分享

MySQL数据库6——详谈数据表中主键,外键,唯一键的约束 该篇主要介绍数据表在使用时的约束。空属性,默认值,列描述,zerofill,主键,自增长,唯一键,外键。 其中详细介绍主键,自增长,唯一键,外键的使用方法。 阅读详情

相关推荐

【Mysql】数据库设计三范式,主键表,外键

一、数据库设计三范式 1NF:要求一张表只描述一件事。比如学生表只能保存学生信息,和学生无关的信息不得保存; 2NF:要求保证表中每一行数据的原子性。即表中不得存在完全相同的数据行,存在完全相同的数据行叫数据冗余(或叫数据副本),这是一种错误,要尽量的减少和避免,无法完全完全消除。解决方案主键或标识,一般的是主键配合标识去用的。 3NF:(外键)表中其他的(外)键要依赖于主(键表)(主键)键

Albert 5010

Mysql获取数据库的所有 表、字段、索引、外键

本文参照: https://blog.youkuaiyun.com/CZDonald/article/details/85091161 【Mysql获取数据库的所有表,以及表所有字段信息】 https://www.cnblogs.com/kcxg/p/11065807.html 【mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除】 查询指定 数据...

qq_33207223的博客 6213

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3705

MySQL 8 创建表和外键的完整示例002

要素说明最佳实践字段类型必须完全匹配使用相同的数据类型和长度引用字段必须是主键或唯一键使用主键作为引用字段存储引擎必须是InnoDB显式指定ENGINE=InnoDB字符集必须一致统一使用utf8mb4约束名命名规范使用fk_<子表>_<父表>格式索引自动创建但建议显式创建索引。

老韩的Linux云计算架构师进阶之路 1277

一文读懂AI大模型时代的RAG技术

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合检索技术与生成模型的技术架构,旨在通过动态引入外部知识库增强大语言模型(LLM)的生成能力。其核心思想是通过检索系统从外部数据源(如企业知识库、实时文档等)获取相关信息,并将检索结果作为上下文输入生成模型,以提高生成答案的准确性、时效性和专业性

awei0916的专栏 2118

实例讲解CANoe报文解析使用方法

在日常工作中,经常需要分析车辆产生故障的原因,在电动汽车中,分布式控制器及线束在其中某一个地方出现问题,就有可能造成车辆故障,但是由于电气零件无法直观的观察到哪个部位发生了故障,所以要借助工具测量电气变量或者采集报文信息通过分析,解析出故障原因,从而为车辆的开发,测试,维修提供支持。其中汽车行业最通用的通讯方式就是CAN通讯,本文针对使用CANoe对CAN报文离线分析的使用方法做详细介绍。

qq_43011586的博客 1万+

查询MySQL中所有存在外键的表

一、查询系统中所有数据库下,所有存在外键的表 select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where REFERENCED_TABLE_NAME != "" 二、查询系统中某一个数据库下所有存在外键的表 select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_SCHEMA = "test" AND REFERENCED_TABLE_NAME != "" ..

pocher的博客 6987

移动机器人底盘-四轮差速模型(四轮独立)

对于底盘的前轮和后轮来说,其速度是同步的,那么在理想条件下,可以将底盘运动视为以ICR为圆心做圆周运动,对于四个轮子来说,圆周运动的角速度是一致的,圆周运动圆心ICR始终位于底盘几何中心COG的y轴延长线上,ICR与COG之间的距离。有关,整个底盘的速度位于速度瞬心COM处,用。四轮差速底盘设定左轮、右轮得速度分别为。圆周运动的角速度公式如式1所示。受约束,约束与圆周运动的角速度。合成,设四个轮子的速度分别为。,设左轮和右轮之间的轴距为。为圆周运动角速度,线速度为。,其均由预设目标速度。

Moresweet 猫甜 1万+

MySQL 创建数据库和表全攻略

而表则是数据库中的基本存储单位,它由行和列组成,每行代表一条记录,每列表示记录的某个属性。例如,一个电商数据库中,可以有用户表、商品表、订单表等,分别存储不同类型的数据。例如,在用户表中,将用户 ID 设置为主键,可以唯一标识每个用户,避免重复数据的出现。总之,MySQL 中创建数据库和表是数据存储和管理的基础,对于保证数据的安全性、完整性和高效性起着关键作用。总之,使用命令行和图形界面工具都可以创建 MySQL 数据库,用户可以根据自己的需求和习惯选择合适的方法。属性,这意味着它将自动递增并且不能为空。

qq_22232065的博客 2290

Linux----Ubuntu系统官网下载iso镜像文件

Linux----Ubuntu系统官网下载iso镜像文件

MQ0522的博客 5万+

【项目实战】主流车载操作系统,QNX实时操作系统入门介绍

QNX是一种实时操作系统,自1980年代初期由Quantum Software Systems成立以来,已被广泛应用于各种行业和领域。QNX具有实时响应、高可靠性和分布式等特点,为各种设备提供了强大的底层操作系统平台。随着科技的不断发展和进步,QNX系统的应用范围和潜力也在不断扩大。本文将全面介绍QNX系统,包括其引言、背景、系统特性、应用领域和生态系统等方面。QNX作为一种实时操作系统,具有高效的实时性能、高可靠性、分布式、可剪裁性和可扩展性等特点。它在各个领域都有广泛的应用,并拥有一个庞大的生态系统。

奶爸的编程之路,也就一周冷个三天 3067

数据库与表的诞生:MySQL中CREATE DATABASE和CREATE TABLE语句详解

在MySQL中,表是存储数据的核心单元,而语句则是构建这些数据容器的基础工具。通过该语句,我们可以定义表的结构,包括列名、数据类型、约束条件以及存储引擎等关键组成部分。掌握语句的语法和设计原则,是进行高效数据管理的第一步。列定义是表结构的核心,每一列都需要明确指定数据类型,以确保数据的准确存储和高效查询。数值类型:如INT用于整数,DECIMAL用于精确小数。字符串类型:如VARCHAR(n)用于可变长度字符串(n为最大字符数),TEXT用于长文本。日期时间类型:如DATETIME存储日期和时间,

zuiyuelong的博客 1461

2024年数字IC秋招-海康威视-数字逻辑设计工程师-笔试题

笔试题型:单选 + 多选笔试平台:百一测试(电脑监控)笔试时间:1h30minA. AW通道B. D通道C. B通道D. AR通道return x++;x = 5;y = Foo(x);

qq_42135020的博客 3199

MYSQL数据库主键和外键,内连接和外连接,关联子查询

①外键是表格中的特殊字段但不是主键,外键用来建立主表与从表的关联关系,添加了外键的表我们称为从表,被引用主键的表我们称为主表。默认情况下主表和从表是相互约束的关系。②外键约束的作用:避免多表中垃圾数据的产生,约束两个表中数据的一致性和完整性。图片来自:http://cd.itheima.com/news/20220810/170702.html③一个表可以有一个或多个外键,必须为主表定义主键,主表中的主键不能包含空值,但是外键可以是空值,如果不是空值,则每个外键的值必须等于主表中主键的某个值。

baomingshu的博客 3030

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 386

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mysql创建数据库和表

在MySQL中创建数据库和表是数据库管理的基础步骤。通过合理设计表的结构,选择合适的数据类型和约束,可以确保数据的完整性和效率。在实际应用中,还需要根据业务逻辑的需求,考虑表的索引、优化查询性能、管理数据库事务等方面的问题。希望本文的介绍能够帮助你更好地理解和应用MySQL的数据库和表创建功能。

jun778895的博客 2707

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

mysql建表 外键_mysql建表外键怎么设

mysql建表外键怎么设mysql建表时设置外键的方法:在“CREATE TABLE”语句中,通过“[CONSTRAINT ] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES 主键列1 [,主键列2,…]”语句设置。MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父...

weixin_39977886的博客 8046

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Mysql创建数据库和表

创建MySQL数据库和表的详细教程如下:安装MySQL 首先,确保你已经安装了MySQL。如果没有安装,可以从官方网站下载并安装:https://www.mysql.com/downloads/登录MySQL 打开命令行或终端,输入以下命令以登录到MySQL服务器(使用你的用户名和密码):输入密码后,你将进入MySQL命令行界面。

2301_81634185的博客 2973

db文件怎么修改_详解MySQL数据库的db.opt文件含义及作用

概述MySQL数据库存放数据目录里的db.opt文件是MySQL建库过程中自动生成的。细心的朋友可能会发现有时候在MySQL数据库的某些库目录下有个db.opt文件,那这个文件是干什么用的呢?如果你用记事本等编辑器打开看的话,内容很简单,是用来记录该库的默认字符集编码和字符集排序规则用的。db.optMySQL的每个数据库目录中有一个文件db.opt,该文件主要 用来存储当前数据库的默认字符集和字...

weixin_39856607的博客 2466

mysql建表外键_mysql建表外键怎么设?

mysql建表时设置外键的方法:在“CREATE TABLE”语句中,通过“[CONSTRAINT ] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES 主键列1 [,主键列2,…]”语句设置。MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从...

weixin_28769141的博客 3206

MySQL数据库(外键|表关系|多表连表查询)

3.右连接 right join(以右表为基准,查询右表中所有的数据,左表没有的数据使用NULL填充)2.左连接 left join(以左表为基准,查询左表中所有的数据,右表没有的数据使用NULL填充)在实际工作中外键也可能不会使用,因为外键会消耗额外的资源,并且会增加表的复杂度。每个emp表都匹配了所有的dep表的数据,这是因为中间产生了笛卡尔积现象。表很多的情况下,我们也可以通过SQL语句的形式建立逻辑意义上的表关系。会将几个表里面的数据全部匹配一遍,匹配多少遍取决于表里面的内容。

Mchen的博客 1709

mysql设计表的外键_MySQL: 4、多表、外键、数据库设计

一、多表1、主键:用来唯一标识一条记录,不能有重复的,不允许为空,用来保证数据的完整性,并且主键只能有一个2、外键:表的外键是另一个表的主键,外键可以重复,可以为空,但是为空数据就跟与之相关联的表没关系了外键主要使用来和其他表建立联系用的,其他表就叫做主表。一个表可以多有个外键3、 从表:外键所在的表就叫做从表,也就是被约束的表4、 主表:主键id所在的表就叫做主表,也就是约束别的表5、外键约...

weixin_35459464的博客 1473

mysql数据库如何外键关联查询_MySQL数据库的多表查询以及外键约束

原标题:MySQL数据库的多表查询以及外键约束来源:Java联盟https://mp.weixin.qq.com/s/QmbWy1OO2UDrRDnz7G9mZQ程序员共读整理发布,转载请联系作者获得授权看到好多伙伴留言~想要了解MySQL的多表查询~那么我们今天就来聊聊MySQL的多表查询在开始之前先来补充一个知识点外键约束之前我们分享的约束关系是属于单表约束,外检约束则属于多表之间的约束关系~...

weixin_32446485的博客 2953
上一篇: MySQL数据库 详谈复合查询
下一篇: MySQL数据库 详谈索引(一)
万我.
博客等级 码龄1年 460粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值