达梦(DM) SQL查询及联合查询

达梦DM SQL查询及联合查询

  • 查询结果排序
  • 多表联合查询

这里继续讲解DM数据库的Sql查询操作

查询结果排序

为提高查询结果可读性,我们可以对查询结果按照一定顺序排列,或者也可以将列名替换成数字,例如 ORDER BY 1 DESC,意思是按第一列进行升序排序

SELECT * FROM PY_PERIOD_CLAZZ WHERE ROWNUM < 5 ORDER BY ID DESC;SELECT * FROM PY_PERIOD_CLAZZ WHERE ROWNUM < 5 ORDER BY 1 DESC;

执行结果如图
在这里插入图片描述
如果想要进行多列排序的话,可以在 order by 后加两列,并分别标明 ASC, DESC。其中 ASC 表示升序,DESC 表示降序

SELECT * FROM PY_PERIOD_CLAZZ WHERE ROWNUM < 5 ORDER BY 2 ASC,1 DESC;

执行结果如图
在这里插入图片描述
说明:多列排序,若前面的列有重复,后面的排序才有用。即先通过前面的列将数据分组,再按照后面的列进行排序。
如果想按照客户手机号尾号的顺序排列,缩小查询范围,可以通过如下函数实现子串排序

SELECT USER_NAME AS 姓名, SUBSTR (PHONENUMBER, -4) AS 尾号 FROM SYS_USER WHERE ROWNUM < 5 ORDER BY 2;

查询结果如图
在这里插入图片描述
TRANSLATE 可实现字符替换,语法格式:TRANSLATE(expr,from_string,to_string),from_string 与 to_string 以字符为单位,对应字符逐个替换

SELECT TRANSLATE ('ab你好bcadefg', 'abcdefg', '1234567') AS new_str FROM DUAL;

执行结果如图
在这里插入图片描述
如果 to_string 为空,则直接返回空值

SELECT TRANSLATE ('ab你好bcadefg', 'abcdefg', '') AS new_str FROM DUAL;

执行结果如图
在这里插入图片描述
如果 to_string 对应的位置没有字符,from_string 中列出的字符将会被删除

SELECT TRANSLATE('11ab你好bcadefg','1abcdefg','1') AS new_str FROM DUAL;

查询结果如图
在这里插入图片描述

多表联合查询

使用 union 或者 union all 关键字合并多个结果集时,对应的列数必须一致,列的数据类型必须匹配。当其中一个结果集的列数不满足要求时,可以使用 NULL 或者 空字符串 填充

--  使用 NULL 填充
SELECT USER_ID, USER_NAME FROM SYS_USER WHERE ROWNUM < 5
UNION ALL
SELECT 11, NULL FROM DUAL;

查询结果如图
在这里插入图片描述

-- 使用 '' 填充SELECT USER_ID, USER_NAME FROM SYS_USER WHERE ROWNUM < 5UNION ALLSELECT 11, '' FROM DUAL;

查询结果如图
在这里插入图片描述
注意:如果存在 order by 子句,必须添加到 union 和 union all 的最后。
union all 用于合并两个结果集,但是会出现重复数据,比如

SELECT * FROM SYS_USER WHERE USER_ID=1 OR USER_NAME='若依';

or查询返回一条数据,结果正确
在这里插入图片描述
使用union all 合并结果集的话

SELECT * FROM SYS_USER WHERE USER_ID=1UNION ALLSELECT * FROM SYS_USER WHERE USER_NAME='若依';

查询结果重复了
在这里插入图片描述
使用union的话就可以了

SELECT * FROM SYS_USER WHERE USER_ID=1UNION SELECT * FROM SYS_USER WHERE USER_NAME='若依';

查询结果
在这里插入图片描述
说明:使用 union all 替换 or,执行计划更高效,出现重复行时,使用 union 去重。
EXCEPT 获取第一个结果集的数据,然后排除第二个结果集的数据,类似减法运算

CREATE TABLE dept AS SELECT dept_id FROM SYS_USER;INSERT INTO dept VALUES (888),(999),(3004); COMMIT;SELECT dept_id FROM dept EXCEPT SELECT dept_id FROM SYS_USER;

查询结果如图
在这里插入图片描述
查询含有 null 值的行时,如果包含 IN、NOT IN 要注意两者的区别。IN 相当于 OR, 而 NOT IN 相当于 AND,比如

SELECT * FROM SYS_USER WHERE user_id IN (1,2,NULL);

查询出数据库的2条数据,

SELECT * FROM SYS_USER WHERE user_id not in (1,2,NULL);

并未查询出数据,因为 NOT IN 的逻辑是 1 AND 2 AND NULL。当 NOT IN 后面跟的子查询返回的列存在 NULL 值,可能得不到正确的结果。
内连接:完全满足连接条件的记录

SELECT * FROM SYS_USER t1,DEPT t2 WHERE t1.DEPT_ID=t2.DEPT_ID;SELECT * FROM SYS_USER t1 JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);

查询结果如图
在这里插入图片描述
左外连接:结果不仅包含满足条件的记录,还包含位于左表中不满足条件的记录,此时右表的记录显示为 NULL

SELECT t1.USER_NAME,t2.DEPT_ID FROM SYS_USER t1 LEFT OUTER JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);

查询结果如图
在这里插入图片描述
右外连接:结果不仅包含满足条件的记录,还包含位于右表中不满足条件的记录,对应的左表的记录显示为 NULL

SELECT t1.USER_NAME,t2.DEPT_ID FROM SYS_USER t1 RIGHT OUTER JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);

查询结果如图
在这里插入图片描述
全外连接:结果不仅包含满足条件的记录,还会包含位于两边表中所有不满足条件的记录,对应的两边表的记录显示为 NULL

SELECT t1.USER_NAME,t2.DEPT_ID FROM SYS_USER t1 FULL OUTER JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);

查询结果如图
在这里插入图片描述
自连接:表和自身进行连接,自连接查询至少要对一张表起别名,否则,服务器无法识别要处理的是哪张表。

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

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

相关文章

搭建域环境

文章目录 配置域控网络安装DNS服务安装域控新建用户新建域内机器 windows server 2008是基于windows vista开发的&#xff0c;windows server 2008 r2是基于Win 7开发的。域控为windows server 2008. 配置域控网络 在网络共享中心配置域控IP&#xff0c;这里设置域控IP为&…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第22课-烟花插件的制作

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第22课-烟花插件的制作 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…

MATLAB公式推导和导出Latex格式的方法

最近在推机械臂正逆运动学公式&#xff0c;那个旋转矩阵乘起来是真滴多&#xff0c;手算算的脑浆疼。突然想起来MATLAB还有符号计算这个功能&#xff0c;于是翻了翻手册&#xff0c; 找到了这个利用MATLAB帮助计算公式并且直接导出Latex格式的办法。 先定义符号变量&#xff0…

计算机网络-路由策略与路由控制一

到目前为止我们学习了路由与交换基础&#xff0c;路由协议有静态、RIP、OSPF、IS-IS等&#xff0c;但是根据实际组网需求&#xff0c;往往需要实施一些路由策略对路由信息进行过滤、属性设置等操作&#xff0c;通过对路由的控制&#xff0c;可以影响数据流量转发。 因此我们开始…

uniapp 开启阿里云服务并开启unipush消息推送

本篇只是为了记录初次使用unipush服务的一些步骤 一、开启uniCloud云开发环境&#xff0c;新建阿里云服务 1、项目右键选择创建uniCload云开发环境&#xff0c;选择阿里云 2、在项目里面新创建的uniCloud文件夹右键选择关联云服务空间或项目&#xff0c;并点击新建 3、在服务…

深入理解指针(2)

在上一篇深入理解指针(1)中我们已经初步了解指针地址&#xff1b;指针的解引用&#xff1b;指针变量类型作用&#xff0c;指针运算等知识&#xff0c;接下来我们将继续学习指针的相关内容&#xff0c;一起加油吧&#xff01;&#xff01;&#xff01; 1. 数组名的理解 在之前的…

【计算机网络】HTTP协议详解实战抓包分析教程

文章目录 1.HTTP简介2.HTTP报文的结构3.HTTP协议中空行的作用4.uri和url的区别5.HTTP请求5.1 HTTP请求方法5.2 HTTP请求报头 6.HTTP响应6.1 状态码 7.HTTP位于应用层(基于TCP)8.非持久和持久连接8.1 非持久连接8.2 持久连接 1.HTTP简介 HTTP&#xff08;Hypertext Transfer Pr…

pandas style添加表格边框,或是只添加下边框等自定义边框样式设置

添加表格边框 可以使用如下程序添加表格&#xff1a; import dataframe_image as dfi import pandas as pd import numpy as npdf pd.DataFrame(np.random.random(size(10, 5))) df_style df.style.set_properties(**{text-align: center,border-color: black,border-width…

cubemx配置stm32f407VET6实现USB虚拟串口

背景&#xff1a; 最近做项目需要使用USB&#xff0c;一根数据线连接“mcu的板子”和“电脑”&#xff1b; 电脑上的串口助手通过USB线和mcu的USB通信&#xff1b; 原理图&#xff1a; 1&#xff09;外围电路2&#xff09;mcu引脚 软件实现&#xff1a; 1.cubemx配置USB_devic…

流程图用什么软件做?选择这4款,让工作事半功倍

流程图用什么软件做&#xff1f;流程图是一种直观、清晰的图形表示法&#xff0c;它通过节点、箭头和符号等元素&#xff0c;精确地展示出一系列步骤、决策点以及操作过程。这种图形化的呈现方式不仅简化了复杂信息的处理&#xff0c;还使得读者能够迅速把握整体流程&#xff0…

构建第一个ArkTS应用之@LazyForEach:数据懒加载

LazyForEach从提供的数据源中按需迭代数据&#xff0c;并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach&#xff0c;框架会根据滚动容器可视区域按需创建组件&#xff0c;当组件滑出可视区域外时&#xff0c;框架会进行组件销毁回收以降低内存占用。 接口…

上海交大携手阿里巴巴成立人工智能与系统联合实验室

5 月 8 日&#xff0c;上海交通大学电子信息与电气工程学院&#xff08;简称电院&#xff09;与阿里巴巴集团宣布共同成立人工智能与系统联合实验室&#xff08;后称“联合实验室”&#xff09;&#xff0c;并在上海交大闵行校区举行了揭牌仪式。 上海交大电院副院长王贺升教授…

python实现图片模式转换成素描模式

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 素描,是一种用线条来描绘物体、场景或人物的绘画方式,它可以是简单的线条勾勒,也可以是复杂的光影渲染。这种艺术形式主要依赖线条和明暗关系来表现形态、空

PyTorch进行CIFAR-10图像分类

本节将通过一个实战案例来详细介绍如何使用PyTorch进行深度学习模型的开发。我们将使用CIFAR-10图像数据集来训练一个卷积神经网络。 神经网络训练的一般步骤如图5-3所示。 &#xff08;1&#xff09;加载数据集&#xff0c;并做预处理。 &#xff08;2&#xff09;预处理后的…

sin^2(x) 的图像

[TOC](sin^2(x) 的图像) 正文 这里记录一下 s i n 2 x sin^2{x} sin2x 的图像。 函数值以正弦的形式在 [0, 1] 区间内波动。 如果大家觉得有用&#xff0c;就点个赞让更多的人看到吧~

嵌入式文件系统

嵌入式文件系统 文件系统简介 在计算机系统中&#xff0c; 需要用到大量的程序和数据&#xff0c; 它们大部分以文件的形式存放在外部存储当中&#xff0c; 根据需要可随时调入内存使用 如果用户直接管理外存文件所面临的问题&#xff1a; 必须熟悉外存的物理特性了解各种存…

英语新概念2-回译法-lesson14

第一次回译 I had a amusing experience. I kept driving to the next town when I left a small village in the south of Franch.A teenager waved to me in the path.I stopped my car, he asked me to give him a lift.As soon as he get my car,I say good morning in Fr…

【Kubernetes】污点、容忍度、亲和性、调度和重启策略

标签、污点、容忍度、亲和性 一、标签1、定义2、给资源打标签【1】给Pod打标签【2】给Service打标签【3】给Node打标签 3、查看资源标签 二、节点选择器1、nodeName2、nodeSelector 三、污点、容忍度、亲和性1、node节点亲和性【1】硬亲和性【2】软亲和性 2、pod节点亲和性【1】…

安泰电子电压放大器应用及示例是什么样的

电压放大器是电子电路中常用的一种器件&#xff0c;用于将输入信号的电压放大至所需的输出电压。它在许多领域中有着重要的应用&#xff0c;包括通信、音频放大、仪器测量等。以下是电压放大器的一些应用及示例&#xff1a; 信号处理&#xff1a;在许多电子系统中&#xff0c;需…

Kasawaki川崎机器人故障维修

在当今的自动化工业领域&#xff0c;川崎工业机器人以其卓越的性能和可靠的工作效率赢得了广泛的赞誉。作为机器人的核心组成部分&#xff0c;伺服电机的作用至关重要。然而&#xff0c;就像所有机械设备一样&#xff0c;也可能会遭遇电机磨损或故障&#xff0c;需要适时的川崎…