当前位置: 首页 > news >正文

【数据库多表操作】sql语句基础及进阶

常用数据库:

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它是长期存储在计算机内、有组织、有结构的数据集合。数据库是信息系统的核心部分,现代软件系统中大量采用了数据库管理系统(DBMS)来管理和操作数据。

  • MySQL/MariaDB:由于其开源免费和社区支持,成为了最流行的关系型数据库之一。
  • Oracle:商业数据库,广泛用于企业级应用。
  • Microsoft SQL Server:商业数据库,主要运行在 Windows 操作系统上,广泛用于企业级应用。
  • PostgreSQL:开源免费的关系型数据库,具有高级特性,例如事务、联接和触发器。
  • IBM DB2:商业数据库,主要运行在 IBM 的操作系统上,如 AIX、IBM i 和 z/OS 等。
  • SQLite:开源免费的嵌入式数据库,可以嵌入到其他应用程序中使用。
  • MongoDB:非关系型数据库,主要用于存储非结构化数据,具有高扩展性和灵活性。

平时最常见的是MySQL数据库,是一个流行的关系型数据库管理系统,是开放源代码的。它支持各种操作系统,并提供了一组丰富的工具和库,用于处理大量的数据。MySQL 使用 SQL 语言来管理和查询数据。本文以MySQL数据库为例,讲解数据库表与表的连接操作。

简单数据库连接

在数据库中,有多种连接(Join)的方式可以使用,其中最常见的包括:内连接,左连接,右连接,外连接。

首先创建两个表t1,t2,表结构如下图所示:
在这里插入图片描述
在这里插入图片描述
sql语句如下:

use student;
create table t1(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT);create table t2(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),address VARCHAR(50));insert into t1 value(1,"张三",52);
insert into t1 value(2,"王五",25);
insert into t1 value(3,"李四",36);
insert into t2 value(1,"张三","陕西");
insert into t2 value(2,"王五","北京");
insert into t2 value(3,"李四","山东");
insert into t2 value(4,"老王t1","河南");

笛卡尔积(Join)

笛卡尔积是指将两个表中的每一行都进行组合,生成一个新的表。新表的行数等于两个原表行数的乘积。

SELECT *  FROM t1, t2;   or
select * from t1 join t2

结果如下所示:
在这里插入图片描述

内连接(Inner Join)

它只返回两个表中都有匹配的行。具体来说,它只返回左边表和右边表都满足条件的记录。

select * from t1 inner join t2 on t1.id = t2.id;

结果如下:
在这里插入图片描述

左连接(Left Join)

它返回左边表的所有记录,以及右边表中与左边表匹配的记录。如果右边表中没有匹配的记录,则以 NULL 值填充。

select * from t2 left join t1 on t1.id = t2.id

结果如下所示
在这里插入图片描述
t1表中没有老王,所以t1表中老王的属性设为NULL。
右连接(Right Join)

它返回右边表的所有记录,以及左边表中与右边表匹配的记录。如果左边表中没有匹配的记录,则以 NULL 值填充。

select * from t1 right join t2 on t1.id = t2.id

和左连接基本一样,返回t2表中所有值,t1表中老王的属性设为NULL。
外连接(union)

它包含左连接和右连接,以及一些没有匹配的记录。它分为左外连接和右外连接,左外连接返回左边表的所有记录和右边表中与左边表匹配的记录,右外连接返回右边表的所有记录和左边表中与右边表匹配的记录。

SELECT *
FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT *
FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL;

在这里插入图片描述
子表查询

子查询是指在查询语句内部使用另一个完整的 SELECT 语句,子查询一般嵌套在 WHERE 子句中,作为过滤条件。子查询常常用于获取符合某些条件的数据行。

例如,假设有一个学生表 student 和一个成绩表 score,现在要查询出所有及格的学生的信息,可以使用子查询实现,如下:

SELECT *
FROM student
WHERE id IN (SELECT id FROM score WHERE score >= 60);

在这个查询中,内部的子查询 SELECT id FROM score WHERE score >= 60 返回了所有及格的学生的 id,然后外部的查询根据这些 id 查询出对应的学生信息。

concat
数据库中的concat()函数可以用来连接两个或多个字符串,在MySQL中,它的语法如下:

concat(str1,str2,...)

用t1和t2表举个例子

select concat(id,' ',name) as fullname from t1;

这个查询会将t1表里的id和name属性拼接起来连成一个字符串,并将结果显示在名为fullname的新列中,结果如下:
在这里插入图片描述
总结
这里总结一下sql语句中常用的关键字,如果能灵活在数据库中使用会很方便。

  1. SELECT:用于查询数据库中的数据。
  2. FROM:指定数据表。
  3. WHERE:用于筛选符合条件的记录。
  4. GROUP BY:将查询结果按照指定的列进行分组。
  5. HAVING:对分组后的结果进行筛选。
  6. ORDER BY:对查询结果进行排序。
  7. JOIN:用于连接两个或多个数据表。
  8. UNION:用于合并两个或多个SELECT语句的结果集。
  9. DISTINCT:用于返回不同的值,去除重复的记录。
  10. LIKE:用于模糊匹配查询。
  11. IN:用于指定一组值。
  12. NOT:用于否定一个条件。
  13. EXISTS:用于判断一个子查询是否返回数据。
  14. CONCAT:用于将两个或多个字符串拼接起来。
  15. SUM、AVG、COUNT、MAX、MIN:用于对查询结果进行聚合计算。
  16. AS:用于给查询结果指定别名。

相关文章:

【数据库多表操作】sql语句基础及进阶

常用数据库: 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它是长期存储在计算机内、有组织、有结构的数据集合。数据库是信息系统的核心部分,现代软件系统中大量采用了数据库管理系统(DBM…...

DPDK和RDMA的区别

网络的发展好像在各方面都是滞后于计算和存储,时延方面也不例外,网络传输时延高,逐渐成为了数据中心高性能的瓶颈。因为传统两个节点间传输数据的网络路径上有大量的内存拷贝,导致网络传输效率低下,网络数据包的收发处…...

体验 Google Bard

环境 windows 10 64bitGoogle Bardpython 3.8 简介 本篇介绍一个开源的 Google 聊天机器人Bard 的 API 逆向工程,使用它,可以免费的使用 Bard 服务,项目地址:https://github.com/acheong08/Bard 安装及使用 通过 pip 来安装 pip &…...

MITA触摸屏维修WP4053米塔工控机控制屏维修

MITA-TEKNIK米塔触摸屏维修工控机工控屏控制器维修DISPLAY 2COM全系列型号 Mita-Teknik触摸屏维修常见故障:上电无显示,运行报故障,无法与电脑通讯,触摸无反应,触控板破裂,触摸玻璃,上电黑屏&a…...

Nacos简介 安装 配置

简介 什么是注册中心 注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,…...

五、MyBatis各种查询功能

MyBatis的各种查询功能 如果查询出的数据只有一条,可以通过 实体类对象接收List集合接收Map集合接收 如果查询出的数据有多条,一定不能用实体对象接收,会抛TooManyResultsException,可以通过 实体类类型的List集合接收Map类型…...

uni-app——picker组件的用法、时间、日期、地区选择器等

1、uniapp–picker组件 <template><view class"signUp"><view class"signUp_dv1"><u-form :model"form" ref"uForm" label-width"95px"><u-form-item label"日期" :required"tr…...

什么情况需要考虑 mysql 分表

最近看到公司的其中一个数据库用户表每个月都要几百万的新用户数据增加&#xff0c;目前单表已经是两千多万了。所以找了 DBA 讨论&#xff0c;发现以前学的知识&#xff0c;以及网上的一些资料其实说的并不是很正确&#xff0c;比如 mysql 单表不建议超过一千万&#xff0c;我…...

系统架构师02-架构设计 20分

1.架构基本概念 *质量属性效用树&#xff1a;是对系统质量属性进行识别和优先级排序的重要工具 。 包括&#xff1a; 性能&#xff1a;效率指标&#xff0c;处理任务所需时间或单位时间内的处理量。 可用性&#xff1a; 可靠性&#xff1a; 容错&#xff1a;出现错误后人能保…...

【python视图3】networkx图操作示例

一、说明 根据定义&#xff0c;图是节点&#xff08;顶点&#xff09;以及已识别的节点对&#xff08;称为边、链接等&#xff09;的集合。在 NetworkX 中&#xff0c;节点可以是任何可哈希对象&#xff0c;例如文本字符串、图像、XML 对象、另一个图形、自定义节点对象等。 如…...

网络地址转换应用

如图所示,企业使用一台AR 路由器作为出口设备,路由器配置NAT Outbound为私网用户提供访问Internet服务,同时配置NAT Server将私网WEB服务器发布到公网上,对外网用户提供服务。运营商仅为该单位分配了一个公网IP,此地址既作为AR出接口的IP地址,也作为NAT Outbound和NAT Se…...

强化学习-Double DQN、竞争网络结构和Rainbow(第4章)

来源书籍&#xff1a; TENSORFLOW REINFORCEMENT LEARNING QUICK START GUIDE 《TensorFlow强化学习快速入门指南-使用Python动手搭建自学习的智能体》 著者&#xff1a;[美]考希克巴拉克里希南&#xff08;Kaushik Balakrishnan&#xff09; 译者&#xff1a;赵卫东 出版…...

Unity 性能优化锦集

Unity作为一款主流的游戏开发引擎&#xff0c;不仅提供了强大的编辑器和开发工具&#xff0c;还可以让开发者轻松地实现高质量的3D游戏。但是&#xff0c;随着游戏规模的不断扩大和玩家需求的增加&#xff0c;游戏的性能问题也变得越来越重要。因此&#xff0c;在使用Unity进行…...

JS之Map的基本使用

一、Map的基本API 创建&#xff1a; const map new Map()插入&#xff1a;map.set("name", "郑建")读取&#xff1a;map.get("name")判断&#xff1a;map.has("name")删除&#xff1a;map.delete大小&#xff1a;map.size遍历&#…...

音视频八股文(6)-- ffmpeg大体介绍和内存模型

播放器框架 常用音视频术语 • 容器&#xff0f;文件&#xff08;Conainer/File&#xff09;&#xff1a;即特定格式的多媒体文件&#xff0c; 比如mp4、flv、mkv等。 • 媒体流&#xff08;Stream&#xff09;&#xff1a;表示时间轴上的一段连续数据&#xff0c;如一 段声音…...

4.25~~~~~

接着之前PE文件结构的预习 DOS 定位到NT 怎么操作的&#xff1f; 用的是e_lfanew&#xff0c;然后是相对于文件头的偏移量&#xff08;也就是raw表示方法&#xff09; 现在有个问题&#xff0c;为什么e_lfanew 这个变量不直接存储PE头 的绝对地址呢&#xff1f; 比如说&…...

Android 9.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

1.前言 在android9.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度,旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现,接下来就来分析实现…...

Python数据结构与算法-欧几里算法(p95)

一、欧几里算法原理 欧几里得公式 欧几里得算法&#xff1a;gcd(a,b) gcd(b, a mod b) &#xff1b; mod是指模&#xff0c;即a/b取余数。 运算示例&#xff1a; gcd&#xff08;60,21&#xff09; gcd(21,18) gcd(18,3)gcd(3,0) 证明略 最大公约数-欧几里得求解 &#xff08…...

【故障诊断】用于轴承故障诊断的性能增强时变形态滤波方法及用于轴承断层特征提取的增强数学形态算子研究(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …...

水羊转债,超达转债,晓鸣转债上市价格预测

水羊转债 基本信息 转债名称&#xff1a;水羊转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;6.94987亿元。 正股名称&#xff1a;水羊股份&#xff0c;今日收盘价&#xff1a;13.94元&#xff0c;转股价格&#xff1a;13.71元。 当前转股价值 转债面值 /…...

YOLOv11公共场所人群年龄目标检测数据集-280张-pedestrian-1_5

YOLOv11公共场所人群年龄目标检测数据集 &#x1f4ca; 数据集基本信息 目标类别&#xff1a; [‘adult’, ‘child’, ‘elder’]中文类别&#xff1a;[‘成人’, ‘儿童’, ‘老人’]训练集&#xff1a;196 张验证集&#xff1a;56 张测试集&#xff1a;28 张总计&#xff1a…...

YOLOv11养殖场羊群目标检测数据集-66张-sheep-1_3

YOLOv11养殖场羊群目标检测数据集 &#x1f4ca; 数据集基本信息 目标类别&#xff1a; [‘sheep-1’, ‘sheep-10’, ‘sheep-11’, ‘sheep-2’, ‘sheep-3’, ‘sheep-4’, ‘sheep-5’, ‘sheep-6’, ‘sheep-7’, ‘sheep-8’, ‘sheep-9’]中文类别&#xff1a;[‘羊-1’…...

SynthID技术解析:AI生成图像的隐形数字身份证

1. 项目概述&#xff1a;当“眼见”不再为实&#xff0c;我们靠什么守住真实&#xff1f;去年冬天&#xff0c;我帮一个做教育短视频的朋友处理一批AI生成的插画素材。他用的是主流文生图工具&#xff0c;效果确实惊艳——古风课堂场景细腻得能看清宣纸纹理&#xff0c;学生表情…...

ElevenLabs河南话合成效果翻车?5大本地化陷阱与97.3%可听度提升实测方案

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ElevenLabs河南话语音合成效果翻车现象全景扫描 近期多位河南本地开发者及方言内容创作者反馈&#xff0c;ElevenLabs官方API在调用其“multilingual v2”模型尝试生成河南话&#xff08;中原官话郑开片&…...

UVa 255 Correct Move

题目分析 这是一道关于国际象棋棋盘上王和后移动规则的模拟问题。题目描述了一个 888 \times 888 的棋盘&#xff0c;格子编号从 000 到 636363&#xff0c;编号方式为逐行排列&#xff08;第 000 行&#xff1a;0∼70 \sim 70∼7&#xff0c;第 111 行&#xff1a;8∼158 \sim…...

Django-tenants安全最佳实践:数据隔离与权限控制终极指南

Django-tenants安全最佳实践&#xff1a;数据隔离与权限控制终极指南 【免费下载链接】django-tenants Django tenants using PostgreSQL Schemas 项目地址: https://gitcode.com/gh_mirrors/dj/django-tenants 在构建SaaS应用时&#xff0c;数据隔离与权限控制是确保多…...

多语言交易所源码/币币交易+期权交易+永续合约+Defi借贷+新币申购+矿机理财/前端uniapp纯源码+后端php

简介&#xff1a; 多语言交易所源码/币币交易期权交易永续合约Defi借贷新币申购矿机理财/前端uniapp纯源码后端php 语言&#xff1a;7种&#xff0c;看图 前端是uniapp纯源码&#xff0c;只有手机端&#xff0c;后端是php框架&#xff0c;清理了后门的&#xff0c;是最开始蓝…...

【Prompt实战】零样本(Zero-shot)与少样本(Few-shot)提示在用例生成中的对比

目录 一、开篇:一个测试工程师的真实困境 二、基础概念:零样本与少样本的本质区别 三、学术界怎么说:最新实证研究深度解读...

百度网盘下载加速终极指南:3步实现高速下载的完整教程

百度网盘下载加速终极指南&#xff1a;3步实现高速下载的完整教程 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘几十KB/s的龟速下载而烦恼吗&#xff1f;作为…...

多账号流量内容运营的数据归因与ROI优化:从经验驱动到算法决策的技术转型

&#x1f4cc; 当一个团队同时运营20个以上的新媒体账号时&#xff0c;最大的问题不是"怎么发"&#xff0c;而是"发了之后怎么知道哪条有用"。本文从数据工程角度&#xff0c;拆解多账号流量内容矩阵如何通过数据归因模型实现ROI优化&#xff0c;以星链引擎…...