数据库中的多表查询总结

【数据库】MySQL-基础篇-多表查询 一、多表关系 1.一对多 2.多对多 3.一对一 二、多表查询概述 1.数据准备 2.概述 3.分类 三、内连接 1.隐式内连接 2.显式内连接 3.案例 四、外连接 1.左外连接 2.右外连接 五、自连接 1.自连接查询 2.联合查询 六、子查询 1.概述 1.1概念 1.2 分类 2.标量子查询 3.列子查询 4.行子查询 5.表子查询 七、多表查询案例 阅读详情

数据库在单个表里操作其实很简答,但是涉及在多张表里寻找数据的时候,难度会大大增加,这里解释一些多表联合查询常用的操作。

一、join操作

在数据库的查询中,多表连接查询是一大难点,也是多表查询里的重点。连接主要有以下四种情况:

  • INNER JOIN(内连接):如果表中有至少一个匹配,则返回行 【在语法中可以省略INNER关键字】
  • LEFT JOIN(左连接):从左表返回所有的行,如果右表中没有匹配,对应的列返回Null
  • RIGHT JOIN(右连接):从右表返回所有的行 ,如果左表中没有匹配,对应的列返回Null
  • FULL JOIN(全连接):只要其中一个表中存在匹配,则返回行(即结合左连接和右连接的结果)

这里主要要理清两个问题:1)以哪个表为基础(从哪个表返回);2)遇到没有匹配的怎么处理。

以下是各个连接方式的关系图:
这里写图片描述

对于学生表,课程表两张表来说,分别进行四种连接方式,结果如下:
在这里插入图片描述

注:

  1. 实际中,最常用的是inner join
  2. 在有些语句里应用了“,”隔开两张表,它的作用相当于inner join

二、union操作

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

这是在展示结果的时候使用。
比如,还是上边的两张表,可以这样操作:
SELECT 学号 FROM 学生表 UNION SELECT 学号 FROM 课程表
返回结果:
100 200 300

SELECT 学号 FROM 学生表 UNION ALL SELECT 学号 FROM 课程表

这样会允许重复值,返回结果:

100 200 300 100 100 200

三、关于多表查询我的一些小技巧:

先附上一个挺全的数据库题,再以这个题为例说明一些多表查询的技巧:SQL数据库查询练习题及答案(四十五道题)。

1、顺藤摸瓜法

以23题为例:

第二十三题 查询“张旭“教师任课的学生成绩。

通过给出的数据表,我完全可以写出这样一个关系式:
因为给出的条件是张旭老师的名字,那么我就要从Teacher表中查找Tno,然后再通过Tno在Course表中找Cno,最后在通过Cno在Score表中找到条件符合的成绩。
那么,关系就是这样的。知道了这条线,就可以从后往前写出查询语句:

select Sno,Cno,Degree from Score where Cno in (select Cno from Course where Tno in (select Tno from Teacher where Tname=‘张旭’))

#### 2、合起来搞事情法
根据上边的分析,我可以看到要想完成题目要求,需要用到三个表:Score,Course,Teachet。
那么我把三个表按照对应的联系联合起来即可,格式如下。

select Degree from Score,Teacher,Course where Teacher.Tname=‘张旭’ and Teacher.Tno=Course.Tno and Course.Cno=Score.Cno

总之,多表查询最重要的是对着给定的数据库表查一遍,只要能根据已知数据倒推回去,那么就可以倒着写出其查询语句。

当然,会和一些统计语句进行结合,但是思路不变:

第二十四题 查询选修某课程的同学人数多于5人的教师姓名。

同样可以屡出这样一条线:(【】代表在箭头上边)
count(cno)>5 →【Score】→Cno→【Course】→Tno→【Teacher】→Tname。
最后可以写出查询语句:

select Tname from Teacher where Tno in (select Tno from Course where
Cno in (select Cno from Score group by Cno having COUNT(*)>5) )

附:关于统计类函数的使用:

1、group by函数

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
其实只要分组处理,一般就会求出这个组里的一些统计值,下边列出一些常用的统计函数:

  • AVG() :求平均数
  • MAX() :返回指定列的最大值。
  • MIN() :返回指定列的最小值。
  • SUM() :返回数值列的总和
  • COUNT():返回行数
  • SQL MID() :从文本字段中提取字符
  • SQL LEN() :返回文本字段的长度
  • SQL ROUND() :用于把数值字段舍入为指定的小数位数。
  • SQL NOW() :返回系统当前时间
2、having函数

这个函数其实用一句话就可以说清楚:它是聚合函数中的 where 函数。也就是说只是因为group by和where两个函数“一山不容二虎”,所以才出现的having函数进行补充。具体的使用方法和where函数没有什么区别。
例如:

第三十六题 查询至少有2名男生的班号。

select Class FROM student where Ssex=‘男’ group by Class having
COUNT(*)>1

我们意图选择count(*)>1的班级,本来可以用group by class where (数量条件)即可,只是因为where不能用在这里,所以使用having就行。

【待:补充一些全连接,左右连接的应用实例】

参考资料:

  1. SQL教程
数据库实验报告5(多表查询 复杂查询)  实验内容1、 多表查询(1)等值与非等值连接(2)自身连接(3)复合条件连接(4)外连接2、 集合查询交 并 差3、 嵌套查询(1)带有IN谓词的子查询 sno in() in 里面对应sno(2)带有比较运算符的子查询(3)带有any或all的子查询   ???(4)带有exists或not exists的子查询(连接查询 实现全称量词) 阅读详情

相关推荐

多表查询在数据库中的应用及示例代码

通过本文的介绍,相信读者已经了解了多表查询的概念、应用场景以及示例代码的使用方法。在实际的数据库开发和数据分析过程中,多表查询将会是一个非常有用的工具,帮助我们处理复杂的数据关联和分析任务。通过多表查询,我们可以根据订单编号将这些信息关联起来,方便进行订单的统计、分析和管理。在实际应用中,我们需要根据具体的需求设计合适的关联条件,并结合相关的查询语句来执行多表查询操作。通过执行上述查询语句,我们可以获取在指定日期范围内的订单信息,包括订单编号、客户名称和所购买的产品名称。

BitNetT的博客 292

数据库基础——7.多表查询

连接 n个表,至少需要n-1个连接条件。比如,连接三个表,至少需要两个连接条件。

m0_52096593的博客 6895

【图形学】Loop细分算法及半边结构实现(C++)

文章目录Loop 细分算法介绍增加新顶点更新旧顶点算法实现半边结构半边结构的表示方法半边结构的构造方法创建所有顶点创建所有面及半边半边结构的使用 Loop 细分 顾名思义,网格细分是将粗糙网格精细化的过程,如下动图。Loop细分是众多网格细分算法的一种,Loop细分仅仅对三角形网格模型有效。值得注意的是,虽然叫Loop细分,但是不能理解为“循环”细分,叫这个名字是因为作者的名字是这个而已。 下面是一个粗糙的兔子模型1000个面,进行3次细分 算法介绍 Loop细分算法主要分两步进行 增加新顶点:增加

wk_119的博客 8066

数据库多表查询总结

数据库多表查询总结

m0_58725148的博客 2692

4D 毫米波雷达:智驾普及的新路径(一)

总体而言,4D 毫米波雷达具有更佳的探测能力,更高的分辨率和精度,在人工智能技术的加持下,能够实现更加智能化的感知和跟踪,从而为自动驾驶、智能交通等领域提供更加可靠的数据支持。博世的第五代引入了俯仰维度,但其角度分辨率较差,且最大探测距离为。车载毫米波雷达的尺寸受限,我们认为通过算法的优化、天线内置等方式可以在保障性能的前提下,压缩尺寸,便于车企进行灵活的设计安装。在物理设计、天线性能设计、电连接、封装工艺和材料、散热处理、可靠性与自动化测试等方面进行持续优化,推出可大规模量产的高性能毫米波雷达解决方案。

奔袭的算法工程师 3954

GD32F103VBT6串口OTA升级保姆级教程:当硬件没留Boot0引脚时,我是如何用Keil和Ymodem搞定的

本文详细介绍了GD32F103VBT6在无Boot0引脚情况下的串口OTA升级方案,通过Keil工程改造和Ymodem协议实现可靠固件更新。文章涵盖Bootloader配置、APP工程调整、Ymodem传输优化等关键步骤,为嵌入式开发者提供了一套完整的解决方案,特别适用于封闭式设备的远程更新需求。

weixin_28744613的博客 183

MySQL中的多表查询详解

在实际的项目开发中,在进行数据表结构设计的时候,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间很多都是相关联的,所以各个表结构之间也存在着一定的关系。id INT PRIMARY KEY COMMENT '部门编号',name VARCHAR(20) UNIQUE COMMENT '部门名称'

qq_57492774的博客 6505

YOLOv5 改进点总览:轻量化、高精度的背后有哪些魔改?

YOLOv5是由Ultralytics团队开发的高效目标检测模型,其核心改进包括:主干网络采用CSPDarknet53提升梯度传播效率;特征融合使用PANet增强小目标识别;输出结构采用解耦头设计优化定位和分类任务。此外,YOLOv5通过CIoU损失函数、Mosaic数据增强和SimOTA标签分配机制进一步提升性能。模型支持多种推理格式(ONNX/TensorRT等),并具备自动锚框匹配和多尺度训练功能,使其在轻量化(yolov5s仅7MB)与高性能(最高51.2% mAP)间取得平衡,但缺乏正式论文支撑是

guoguozgw的博客 1805

主流数据库之多表连接查询中的这些连接查询你会了吗

文章目录 目录 文章目录 前言 4.3、多表查询 等值连接 内连接 外连接 左外连接和右外连接 交叉连接 合并结果集 不等连接 前言 大家好,我是ice三分颜色。个人主页:ice三分颜色的博客 本文讲了等值连接、内连接、外连接、合并结果集、不等链接。 走过路过的小伙伴们点个赞和关注再走吧,欢迎评论区交流,努力什么时候开始都不算晚,那不如就从这篇文章开始! 大家一起成长呀!笔芯 4.3、多表查询 多表查询是指在一条查询语句中,从两个或两个以上表中查.

qq_46007633的博客 1953

网络工程系统CAD图:从设计到落地的关键技能与实战指南

网络工程并不只是配置路由器和交换机,真正的核心在于将设计方案转化为可施工的物理图纸。网络工程系统CAD图正是连接逻辑设计与物理世界的桥梁,它涵盖综合布线、信息点布置、桥架路由、弱电间规划等关键内容。理解并掌握这套图纸体系,是网络工程师从基础设备调试走向项目主导者、弱电总工乃至网络架构师的重要分水岭。在园区网、数据中心、智能楼宇等真实场景中,一套规范的系统CAD图直接决定了施工质量、验收效率与后期运维的可靠性。本文从基础概念出发,拆解图纸的组成层次、绘制流程和软件工作流,并结合学习路线与就业方向,帮助初学者建

weixin_33860553的博客 390

EtherCAT总线运动控制学习笔记(RXXW_Dor)

说到总线控制,就要说到报文、对象字典、PN通信我们大部分会说报文,EtherCAT通信我们常说对象字典,叫法不一样,但是原理基本一致,下面我们简单认识下上面是对象字典。

RXXW_Dor的博客 5427

Oracle数据库中的多表关联查询

多表关联查询:在实际开发中,每个表的信息都不是独立的,而是若干个表之间存在一定的联系,如果用户查询某一个表的信息时,可能需要查询关联表的信息,这就是多表关联查询。内连接的结果集:先将表1的第一行记录拿出来,然后从关扫描表2,将符合连接条件的记录和表1的第一行记录连接,并且放到结果集,然后将表1的第二行记录拿出来,重复操作。①交叉连接:不需要任何连接条件的连接,执行结果是一个笛卡尔积,即将原表的记录数相乘,这种连接方式,将表2中的每一条记录都和表1中的每条记录连接一次。

weixin_46016766的博客 1万+

2023年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题4)-网络部分解析-附详细代码

2023年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题4)-网络部分解析-附详细代码

bfq05234214的博客 441

数据库中的多表查询

多表查询 我们先创建两个逻辑上有联系的表 #user_info表 create table user_info( id int(2) primary key, user_name varchar(12) unique, password varchar(15) not null, real_name varchar(8) not null, ...

qiangzhogshou的博客 471

无迹卡尔曼滤波 (UKF, Unscented Kalman Filter) 算法详解及案例分析

无迹卡尔曼滤波是一种用于估计非线性系统状态的递归算法。其目标是通过结合系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2625

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

mysql数据库表多了查询_MySQL数据库中的多表查询

什么是多表查询?多个表的关联查询即多表查询,而多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join)我们先创建一个表格并且插入数据然后使用单表查询来查询数据select * from user_infoselect * from address单表查询固然快捷,但如果两张表的数据有关联...

weixin_30021053的博客 174

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Oracle数据库中的多表查询

经验查询: 在日后的开发之中,很多人都肯定要接触到许多新的数据库和数据表,那么在这种时候有两种做法; 做法一:新人做法,上来就直接输入以下的命令 select * from 表名称; 如果此时数据量较大的话,以上无法浏览数据,二有可能造成系统的死机; 做法二:老人做法,先看一下有多少条记录 select count(*) from 表名称; 笛卡尔积问

博客之家 5万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MySQL数据库应用 多表查询_MySQL数据库中的多表查询

MySQL数据库中的多表查询发布时间:2020-06-22 09:47:38来源:亿速云阅读:124作者:Leah这期内容当中小编将会给大家带来有关MySQL数据库中的多表查询,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。多表查询查询结果来自于多张表,即多表查询子查询:在SQL语句嵌套着查询语句,性能较差,基于某语句的查询结果再次进行的查询联合查询:UNION交叉连接:笛卡尔...

weixin_33016355的博客 272

数据库中多表查询中的内连接查询语句(idea实现 )

多表查询中的详解

2301_76231651的博客 1287

MySQL数据库中的多表查询

什么是多表查询? 多个表的关联查询即多表查询,而多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join) 我们先创建一个表格 并且插入数据 然后使用单表查询来查询数据 select * from user_info select * from addres...

YJT180的博客 215

数据库中的多表查询问题

在实际用用中,如果程序逻辑需要的数据不在同一个数据表中或者视图中,我们就需要多表查询。 (1)内连接 使用比较运算符对各个表内的数据进行比较操作,列出符合条件的表的各列。关键字为inner join 或者 join 内连接又分为等值连接 非等值连接、自然连接。 (2)外连接 当数据表中的一些行在其他表中不存在匹配行时,内连接查询会忽略原表中满足要求的行。外连接则至少返回一个from后连接

Luyouzhen的博客 1868

从mysql数据info表中查询name_MySQL数据库中的多表查询

查询中的查询即为子查询,一般使用括号将子查询sql括起来,如下SQL语句: select * from (select * from user_info) users什么时候用子查询:当在查询过程中需要知道一个已知量的不确定数据时使用子查询例如:查询出来姓名为王晓明的所有地址思路:需要先根据王晓明(已知量)查出user_info表中的id,再根据id=user_id,在地址表中查出所有的地址信息(...

weixin_39849127的博客 750

总结数据库中的多表查询

一、前言 在我之前的博客详述数据库操作中事务的四大特性(ACID)中我提到过四类SQL语句,其中对于查询语句除了以数据为单位查询外,还有以表为单位的查询语句,在本篇中,我想简单总结一下数据库中的多表查询: 二、多表查询 多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join),数据...

Liuxiaoyang1999的博客 967

如何将数据库中的多表的查询数据导出到excel中

如何将数据库中的多表查询数据导出到excel中,今天刚刚从别人那里学来,与大家分享一下。           操作步骤:多表查询sql同时执行后,在数据显示处点击右键,如下图 :

刘海燕 廊坊师范学院信息技术提高班 第八期 5368

4、MySQL数据库中的多表查询&事务&DCL

INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('孙悟空','男',7200,'2013-02-24',1);INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('蜘蛛精','女',4500,'2011-03-14',1);INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部');

qq1092881420的博客 530
上一篇: 用python手刃leetcode(58):最后一个单词的长度【简单题】
下一篇: python太调皮之——【1】批量初始化list
东写西读李老湿
东写西读李老湿 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄13年 481粉丝 73原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值