SQL高级语句2

news2024/11/15 17:35:06

SQL高级语句2

  • SQL高级语句
    • 17.---- 连接查询 ----
    • 18.自我连接,算排名:
    • 19.---- CREATE VIEW ----视图,可以被当作是虚拟表或存储查询。
    • 20.---- UNION ----联集,将两个SQL语句的结果合并起来,两个SQL语句所产生的字段需要是同样的数据记录种类
      • UNION :生成结果的数据记录值将没有重复,且按照字段的顺序进行排序
      • UNION ALL :将生成结果的数据记录值都列出来,无论有无重复
    • 21.---- 交集值 ----取两个SQL语句结果的交集
      • 取两个SQL语句结果的交集,且没有重复
    • 22.---- 无交集值 ----显示第一个SQL语句的结果,且与第二个SQL语句没有交集的结果,且没有重复
    • 23.---- CASE ----是 SQL 用来做为 IF-THEN-ELSE 之类逻辑的关键字
    • 24.---- 空值(NULL) 和 无值('') 的区别 ----
    • 25.---- 正则表达式 用REGEXP引导 ----

SQL高级语句

17.---- 连接查询 ----

inner join(内连接):只返回两个表中联结字段相等的行
left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录

左右表之分,简单点就直接看表在join的哪一边,左边就是左表,右边就是右表

SELECT * FROM location A RIGHT JOIN store_info B on A.Store_Name = B.Store_Name ;

SELECT * FROM location A LEFT JOIN store_info B on A.Store_Name = B.Store_Name ;

在这里插入图片描述

内连接方法一:

SELECT * FROM location A INNER JOIN store_info B on A.Store_Name = B.Store_Name ;

在这里插入图片描述

内连接方法二:

SELECT * FROM location A, store_info B WHERE A.Store_Name = B.Store_Name;

在这里插入图片描述

SELECT A.Region REGION, SUM(B.Sales) SALES FROM location A, store_info B 
WHERE A.Store_Name = B.Store_Name GROUP BY REGION;

在这里插入图片描述

18.自我连接,算排名:

创建2个新表

在这里插入图片描述
在这里插入图片描述

分组汇总后统计 score 字段的值是比自己本身的值小的以及 score 字段 和 name 字段都相同的数量

SELECT A.name, A.score, count(B.score) rank FROM t2 A, t3 B WHERE A.score < B.score OR (A.score = B.score AND A.Name = B.Name)  GROUP BY A.name, A.score ORDER BY rank;

在这里插入图片描述

19.---- CREATE VIEW ----视图,可以被当作是虚拟表或存储查询。

  • 视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。
    临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。
  • 视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便。

语法:CREATE VIEW “视图表名” AS “SELECT 语句”;

CREATE VIEW V_REGION_SALES AS SELECT A.Region REGION,SUM(B.Sales) SALES FROM location A INNER JOIN store_info B ON A.Store_Name = B.Store_Name GROUP BY REGION;


SELECT * FROM V_REGION_SALES;

在这里插入图片描述

DROP VIEW V_REGION_SALES;

在这里插入图片描述

视图模式能不能修改内容要看情况,即as后面的select语句中所的出来的字段不能被修改过,就可以更改数据,但要是被修改过(例如:聚合函数处理,group by 汇总聚合)就不能修改数据。

源字段没有改变的情况
在这里插入图片描述

在这里插入图片描述
源字段改变的情况
在这里插入图片描述

20.---- UNION ----联集,将两个SQL语句的结果合并起来,两个SQL语句所产生的字段需要是同样的数据记录种类

UNION :生成结果的数据记录值将没有重复,且按照字段的顺序进行排序

语法:[SELECT 语句 1] UNION [SELECT 语句 2];

SELECT Store_Name FROM location UNION SELECT Store_Name FROM store_info;

在这里插入图片描述

UNION ALL :将生成结果的数据记录值都列出来,无论有无重复

语法:[SELECT 语句 1] UNION ALL [SELECT 语句 2];

SELECT Store_Name FROM location UNION ALL SELECT Store_Name FROM store_info;

在这里插入图片描述

21.---- 交集值 ----取两个SQL语句结果的交集

SELECT A.Store_Name FROM location A INNER JOIN store_info B ON A.Store_Name = B.Store_Name;

SELECT A.Store_Name FROM location A INNER JOIN store_info B USING(Store_Name);

在这里插入图片描述

取两个SQL语句结果的交集,且没有重复

SELECT DISTINCT A.Store_Name FROM location A INNER JOIN store_info B USING(Store_Name);

在这里插入图片描述

where语句

SELECT DISTINCT Store_Name FROM location WHERE (Store_Name) IN (SELECT Store_Name FROM store_info);

在这里插入图片描述

左连接

SELECT DISTINCT A.Store_Name FROM location A LEFT JOIN store_info B USING(Store_Name) WHERE B.Store_Name IS NOT NULL;

在这里插入图片描述

内连接+别名

SELECT A.Store_Name FROM (SELECT B.Store_Name FROM location B INNER JOIN store_info C ON B.Store_Name = C.Store_Name) A GROUP BY A.Store_Name;

在这里插入图片描述

联集

SELECT A.Store_Name FROM (SELECT DISTINCT Store_Name FROM location UNION ALL SELECT DISTINCT Store_Name FROM store_info) A GROUP BY A.Store_Name HAVING COUNT(*) > 1;

在这里插入图片描述

22.---- 无交集值 ----显示第一个SQL语句的结果,且与第二个SQL语句没有交集的结果,且没有重复

select语句来求无交集

SELECT DISTINCT Store_Name FROM location WHERE (Store_Name) NOT IN (SELECT Store_Name FROM store_info);

在这里插入图片描述
LEFT JOIN语句

SELECT DISTINCT A.Store_Name FROM location A LEFT JOIN store_info B USING(Store_Name) WHERE B.Store_Name IS NULL;

在这里插入图片描述

联集

SELECT A.Store_Name FROM (SELECT DISTINCT Store_Name FROM location UNION ALL SELECT DISTINCT Store_Name FROM store_info) A GROUP BY A.Store_Name HAVING COUNT(*) = 1;

在这里插入图片描述

23.---- CASE ----是 SQL 用来做为 IF-THEN-ELSE 之类逻辑的关键字

语法:
SELECT CASE (“字段名”)
WHEN “条件1” THEN “结果1”
WHEN “条件2” THEN “结果2”

[ELSE “结果N”]
END
FROM “表名”;

#“条件” 可以是一个数值或是公式。 ELSE 子句则并不是必须的。

SELECT Store_Name, CASE Store_Name WHEN 'Los Angeles' THEN Sales * 2 WHEN 'Boston' THEN 2000 ELSE Sales END "New Sales",Date FROM store_info;

#“New Sales” 是用于 CASE 那个字段的字段名。

在这里插入图片描述

24.---- 空值(NULL) 和 无值(‘’) 的区别 ----

1.无值的长度为 0,不占用空间的;而 NULL 值的长度是 NULL,是占用空间的。
2.IS NULL 或者 IS NOT NULL,是用来判断字段是不是为 NULL 或者不是 NULL,不能查出是不是无值的。
3.无值的判断使用='‘或者<>’'来处理。<> 代表不等于。
4.在通过 count()指定字段统计有多少行数时,如果遇到 NULL 值会自动忽略掉,遇到无值会加入到记录中进行计算。

t1 表格
在这里插入图片描述

SELECT length(NULL), length(''), length('1');
#统计这几个字段长度

在这里插入图片描述


SELECT * FROM t1 WHERE name IS NULL;
SELECT * FROM t1 WHERE name IS NOT NULL;


在这里插入图片描述

SELECT * FROM t1 WHERE name = '';
SELECT * FROM t1 WHERE name <> '';#<>代表不等于

在这里插入图片描述

SELECT COUNT(*) FROM t1;#统计包括null的行的个数
SELECT COUNT(name) FROM t1;#统计不包括null的行的个数

在这里插入图片描述

25.---- 正则表达式 用REGEXP引导 ----

匹配模式描述实例
^匹配文本的开始字符‘^bd’ 匹配以 bd 开头的字符串
$匹配文本的结束字符‘qn$’ 匹配以 qn 结尾的字符串
.匹配任何单个字符‘s.t’ 匹配任何 s 和 t 之间有一个字符的字符串
*匹配零个或多个在它前面的字符‘fo*t’ 匹配 t 前面有任意个 o
+匹配前面的字符 1 次或多次‘hom+’ 匹配以 ho 开头,后面至少一个m 的字符串
字符串匹配包含指定的字符串‘clo’ 匹配含有 clo 的字符串
p1|p2匹配 p1 或 p2‘bg|fg’ 匹配 bg 或者 fg
[...]匹配字符集合中的任意一个字符‘[abc]’ 匹配 a 或者 b 或者 c
[^...]匹配不在括号中的任何字符‘[^ab]’ 匹配不包含 a 或者 b 的字符串
{n}匹配前面的字符串 n 次‘g{2}’ 匹配含有 2 个 g 的字符串
{n,m}匹配前面的字符串至少 n 次,至多m 次‘f{1,3}’ 匹配 f 最少 1 次,最多 3 次

语法:SELECT “字段” FROM “表名” WHERE “字段” REGEXP {模式};
字段内不区分大小写,和shell的正则有所不同

SELECT * FROM store_info WHERE Store_Name REGEXP 'os';
SELECT * FROM store_info WHERE Store_Name REGEXP '^[A-G]';
SELECT * FROM store_info WHERE Store_Name REGEXP 'Ho|Bo';

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重新定义DevOps:容器化的变革力量

在快速发展的数字时代&#xff0c;DevOps 已成为重塑软件开发格局的重要范例。DevOps 是一个源自“开发”和“运营”的术语&#xff0c;它将这两个历史上孤立的功能集成到一个统一的方法中&#xff0c;专注于缩短软件开发生命周期。因此&#xff0c;DevOps 实践促进了更快、更可…

【产品应用】一体化电机在拉伸吹瓶机的应用

随着塑料瓶的广泛应用&#xff0c;拉伸吹瓶机作为生产塑料瓶的关键设备之一&#xff0c;受到了越来越多企业的关注。而在拉伸吹瓶机中&#xff0c;一体化电机的应用正逐渐成为行业的新趋势。 01.设备简介 吹瓶机是一种用于制造塑料瓶的机械设备。它通过将预先加热的塑料颗粒或…

当 MQTT 遇上 ChatGPT:探索可自然交互的物联网智能应用

前言 随着物联网技术的迅猛发展&#xff0c;人与设备、设备与设备之间的互动已变得不再困难&#xff0c;而如何更加自然、高效、智能地实现交互则成为物联网领域新的挑战。 近期&#xff0c;由 OpenAI 发布的 ChatGPT、GPT-3.5 和 GPT-4 等先进大语言模型&#xff08;LLM&…

python 基础知识:使用jieba库对文本进行分词

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 一、jieba库是什么&#xff1f; Python的jieba库是一个中文分词工具&#xff0c;它可以将一段中文文本分割成一个一个的词语&#xff0c;方便后续的自然语言处理任务&#xff0c;如文本分类、情感分析等。 jieba库使用…

Riddztecia 作品集 |Beast Wear 出品

Beast & Wear&#xff1a;一个以彩色部落和可训练野兽庆祝多样性的收藏品。通过 NFT 野兽和装备提升你的 Riddzee 人物化身&#xff0c;增强视觉效果&#xff0c;提升你在迷人的 Riddztecia 世界中的游戏体验。去游戏、去成长、去探索。 Riddztecia NFT 空投包括训练怪兽和…

leetcode216. 组合总和 III(回溯算法-java)

组合总和 III leetcode216. 组合总和 III题目描述解题思路代码演示 回溯算法专题 leetcode216. 组合总和 III 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/combination-sum-iii 题目描述 找出所有相加之和为 n 的 k 个…

JMeter 批量接口测试

一、背景 最近在进行某中台的接口测试准备&#xff0c;发现接口数量非常多&#xff0c;有6、70个&#xff0c;而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值。想了几种方案后&#xff0c;决定尝试使用JMeter的csv读取来实现批量的接口…

Linux修改权限chown和chmod指令

一、 chmod指令修改文件权限 -rw-rw-r-- 1 zcb zcb 1135 Jun 9 14:56 test.c drwx------ 2 root root 4096 Apr 7 16:50 testemmc/ 上面两个文件&#xff0c;第一个字符-和d&#xff0c;分别表示二进制文件&#xff0c;目录&#xff0c;后面9个分别表示 u&#xff1a;拥有者…

【CV 向】了解 OpenCV 中的算术与位运算

文章目录 引言1. 利用 NumPy 创建图像2. 算术运算2.1 加法与减法2.2 乘法与除法 3. 位运算3.1 与运算3.2 或运算3.3 异或运算3.4 非运算 结论 引言 Python OpenCV 是一个功能强大的计算机视觉库&#xff0c;用于图像处理和计算机视觉任务。在 OpenCV 中&#xff0c;我们可以使…

【Python脚本】Python自动大麦网抢票,准点原价秒杀演唱会门票,拒绝黄牛交易!从我做起!!!1

文章目录 前言一、分析购票过程二、Selenium 模拟浏览器操作三、逆向工程&#xff1a;抢票接口总结 前言 你是否错过了周杰伦的票&#xff0c;最近又没抢到五月天的票&#xff0c;不要太难过&#xff0c;今晚有张学友的票&#xff0c;后天还有张杰的票&#xff0c;加油哦&…

openvpn搭建访问路由器摄像头

openvpn搭建 技术博客 http://idea.coderyj.com/ 1.环境 华为云服务器 操作系统 centos7 2.安装部署 1.安装 openvpn 和 easy-rsa&#xff08;该包用来制作 ca 证书&#xff09; # 安装 epel 源 yum install epel-release -y# 安装 yum install openvpn easy-rsa2、配置 /e…

如何全面评价一个低代码平台?

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

Goby 漏洞发布|WordPress Extensive VC Addons 插件 options[template] 文件包含漏洞

漏洞名称&#xff1a;WordPress Extensive VC Addons 插件 options[template] 文件包含漏洞 English Name&#xff1a;WordPress Plugin Extensive VC Addons File Inclusion Vulnerability CVSS core: 9.8 影响资产数&#xff1a;2583 漏洞描述&#xff1a; Extensive VC…

Netty核心技术七--Google Protobuf

1.编码和解码的基本介绍 编写网络应用程序时&#xff0c;因为数据在网络中传输的都是二进制字节码数据&#xff0c;在发送数据时就需要编码&#xff0c;接收数据时就需要解码 codec(编解码器) 的组成部分有两个&#xff1a;decoder(解码器)和encoder(编码器)。encoder 负责把…

【干货】Android系统定制基础篇:第十六部分(双屏异触、定时开关机与看门狗)

一、Android双屏异触-指定触摸为副屏触摸 在双屏异显产品中&#xff0c;有时候主副屏都带有触摸屏&#xff0c;并且要求主副屏触摸各自操作互不干扰。 Android 现有框架中已经支持副输入设备的逻辑&#xff0c;只是默认将所有的外部热插拔设备统一指定为副输入设备&#xff0…

XILINX 7系列FPGA封装之芯片常见封装技术详解

&#x1f3e1;《Xilinx FPGA开发指南》 目录 1&#xff0c;概述2&#xff0c;常用封装技术2.1&#xff0c;Wire-bond chip-scale2.2&#xff0c;Wire-bond fine-pitch2.3&#xff0c;Flip-chip lidless2.4&#xff0c;Ruggedized flip-chip2.5&#xff0c; Flip-chip fine-pitc…

【算法设计与分析】期末复习

文章目录 复习大纲第一章算法概述1.1算法与程序1.2 算法复杂性分析 第二章递归与分治策略分治法的基本思想递归与分治的关系&#xff1a;用分治法解决的问题的几个特征&#xff1a;例题&#xff1a; 第三章动态规划动态规划的基本思想&#xff1a;分治与动态规划算法的异同&…

mine vpn

client remote ‘whvpn.deepin.com’ 1194 auth-user-pass dev tun proto tcp nobind auth-nocache script-security 2 persist-key persist-tun user nm-openvpn group nm-openvpn -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIUUTvTCz6BndUDTIVTBxpKL19mEMkwDQYJKoZIhvcN…

JAVA开发(spring RestFull风格Feign使用总结)

现在大多数的springboot都是使用RestFull风格的接口&#xff0c;是Feign进行远程调用。 一、Feign介绍&#xff1a; Feign是Spring Cloud Netflix组件中的一个轻量级RESTFULL的http服务客户端&#xff0c;实现了负载均衡和Rest调用的开源框架&#xff0c;封装了Ribbon和RestTe…

使用谷歌 Chrome 浏览器禁用网页 JavaScript

使用谷歌 Chrome 浏览器禁用网页 JavaScript 文章目录 使用谷歌 Chrome 浏览器禁用网页 JavaScriptI - 概述1.1 - JavaScript 的功能1.2 - 为何要禁用 JavaScript II - 禁用 JavaScript 的方式2.1 - Chrome 调试工具2.2 - Chrome 黑名单 I - 概述 1.1 - JavaScript 的功能 Web…