【SQL】作为前端,应该了解的SQL知识(第四弹)

news/2024/7/9 19:44:16 标签: 数据库, sql, postgresql

📑集合运算

集合运算就是对满足同一规则的记录进行的加减等四则运算。

👉 对行数进行增减。

📃UNION

取并集

集合运算符会去除重复的记录

sql">SELECT product_id, product_name
 FROM Product
**UNION**
SELECT product_id, product_name
 FROM Product2;

注意:

  1. 作为运算对象的记录的列数必须相同
  2. 作为运算对象的记录中的列类型必须一致
  3. 可以使用任何SELECT语句,但是ORDER BY子句只能在最后使用一次

🌼UNION ALL

保留重复行

📃INTERSECT

取交集

sql">SELECT product_id, product_name
 FROM Product
**INTERSECT**
SELECT product_id, product_name
 FROM Product2
ORDER BY product_id;

📃EXCEPT(MINUS)

注:ORACLE中是 MINUS

取差集

注意被减数和减数的位置。

sql">-- 从Product中减去Product2的内容
SELECT product_id, product_name
 FROM Product
**EXCEPT**
SELECT product_id, product_name
 FROM Product2
ORDER BY product_id;

📑联结

以列为单位对表进行联结,就是进行添加列的操作

 👉 对列数进行操作

📃INNER JOIN

sql">    SELECT < 表1的别名 >.< 列名1 >,< 表2的别名 >.< 列名2 >
      FROM <表1>
INNER JOIN <表2>
        ON <条件1> = <条件2>  -- ON后面的是联结键

📃LEFT JOIN

即使右表中没有匹配,也从左表返回所有的行 如果右表中没有匹配的行,则用null填补。

sql">SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.id_P = Orders.id_P
ORDER BY Persons.LastName

📃RIGHT JOIN

即使左表中没有匹配,也从右表返回所有的行

sql">SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo
FROM Persons
RIGHT JOIN Orders 
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

📃CROSS JOIN(不经常使用)

交叉联结

也就是笛卡尔积

进行交叉联结时无法使用内联结和外联结中所使用的 ON 子句, 这是因为交叉联结是对两张表中的全部记录进行交叉组合,因此结果中 的记录数通常是两张表中行数的乘积


http://www.niftyadmin.cn/n/325195.html

相关文章

Linux 安装JDK详解

安装步骤 1. 从官网下载安装包保存到 /home/download 下面 2.下载后解压到指定目录&#xff0c;例如&#xff1a;/usr/java/jdk11 3. 解压压缩包 [rootlocalhost linux-x86-64]# cd /usr/java/jdk11 [rootlocalhost jdk11]# [rootlocalhost jdk11]# [rootlocalhost jdk11]…

7.ViewPager原理分析

ViewPager原理分析 ViewPager的加载方式 预加载 在进入还没有显示的页面前,就请求这个页面的数据;默认是会进行预加载的,因为setOffscreenPageLimit(0)无效,源码如下:public void setOffscreenPageLimit(int limit) {//将离屏预加载页面数量设置成0无效,会被置为1if (limit <…

把握数据核心,A/B测试成就高效邮件营销新纪元

电子邮件营销是现代营销战略中的重要组成部分。但是收件人每天要收到大量的邮件&#xff0c;而确保你的电子邮件有效和吸引人是一件具有挑战性的事情。想要克服这个问题&#xff0c;提高电子邮件营销活动有效性是一个不错的方法。具体措施就是进行A/B测试&#xff01;在本文中&…

Java【网络编程2】详解基于 TCP 协议的 Socket API, 逐行代码解析如何服务器客户端通信(附代码)

文章目录 前言一、认识 Socket(套接字), TCP 协议和 UDP 协议1, 什么是 Socket(套接字)2, 浅谈 TCP 协议和 UDP 协议的区别和特点 二、基于 TCP 协议的 Socket API1, ServerSocket 类2, Socket 类 三、逐行代码解析网络编程1, 逐行解析客户端1.1, 核心成员方法 start() 2, 逐行…

十五、Gateway网关

目录 Zuul网关和gateway网关的区别&#xff1a; Gateway路由配置 1、新建服务网关项目&#xff0c;并在项目pom文件中引入gateway网关依赖 2、在application.yml配置gateway 3、如果不用配置的方式配置gateway路由&#xff0c;还可以通过代码的形式配置 4、启动网关服务&…

对于 Git 每一次提交的时间信息,什么是作者日期和提交者日期

文章目录 什么是作者日期和提交者日期如何查看作者日期和提交者日期方法 1方法 2方法 3 修改最近一次提交的时间 什么是作者日期和提交者日期 对于 Git 的每一次提交&#xff0c;在 TortoiseGit 和 IntelliJ IDEA 都可以看到这次提交的时间。但很多人不知道的是&#xff0c;Gi…

4月更新 | Visual Studio Code Python

我们很高兴地宣布2023年4月版 Visual Studio Code 的 Python 和 Jupyter 扩展现已推出&#xff01; 此版本包括以下改进&#xff1a; Data Wrangler 可供 Visual Studio Code Insiders 使用移动符号重构Create Environment 按钮嵌入依赖文件扩展作者的环境 APIPython 环境的内…

Logback+sl4j之logback.xml配置

标签作用&#xff1a; appender标签 控制日志输出的内容 logger标签 控制日志可进行打印的级别 root标签 是logger标签的父级&#xff0c;若logger标签中activityfalse则logger不进行继承。 难点梳理&#xff1a; 日志五个级别TRANCE<DEBUG<INFO<WARN<ERROR 1. ap…