五种主流数据库:基本检索功能

SQL 使用 SELECT 语句查询数据,本文比较五种主流数据库基本数据检索功能的实现和差异,包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。

🏷️示例表和数据初始化脚本下载。

SQL功能MySQLOracleSQL ServerPostgreSQLSQLite
查询指定字段✔️✔️✔️✔️✔️
查询全部字段✔️✔️✔️✔️✔️
无表查询✔️✔️*✔️✔️✔️

备注:Oracle 23c 开始支持无表查询语句。

查询指定字段

员工表(employee)中存储了关于员工的信息。假设我们现在打算群发邮件,需要找出所有员工的姓名、性别和电子邮箱地址。这个功能可以通过一个简单的查询语句来实现:

SELECT emp_name, sex, email
FROM employee;

其中 SELECT 是 SQL 中的关键字,表示查询数据;FROM 也是关键字,表示要从哪个表中进行查询;emp_name、sex 和 email 表示需要返回的字段,多个字段使用逗号分隔;分号表示 SQL 语句的结束。查询返回的结果如下:

emp_name|sex|email 
--------|---|------------------------
刘备     ||liubei@shuguo.com 
关羽     ||guanyu@shuguo.com 
张飞     ||zhangfei@shuguo.com 
...

以上语法在五种数据库中实现相同。

⚠️注意:SQL 语句由不同的子句组成部分,SELECT、FROM 和 WHERE 等关键字都是子句。编写 SQL 语句时,关键字不分区大小写,一般使用大写形式。表名、列名等标识符一般也不区分大小写,通常使用小写形式;但是 MySQL 在 Linux 环境下的数据库名、表名、变量名等区分大小写。

查询全部字段

一个特殊的查询操作就是查询表的全部字段。SQL 为此提供了一个简单写法,就是使用星号(*)表示全部字段。例如,以下语句查询职位信息表中的全部字段:

SELECT *
FROM job;

数据库服务器在解析该语句时,会基于表的字段定义将其扩展为如下形式:

SELECT job_id, job_title, min_salary, max_salary
FROM job;

查询返回的结果如下:

job_id|job_title |min_salary|max_salary
------|----------|----------|----------1|总经理     |  24000.00| 50000.002|副总经理   |  20000.00| 30000.003|人力资源总监|  20000.00| 30000.00
...

使用星号无法指定字段出现的顺序,由数据库按照表定义时的顺序返回结果。

以上语法在五种数据库中实现相同。

⚠️注意:虽然使用星号可以快速编写查询语句,但是在实际项目中不推荐使用这种写法。因为应用程序可能并不需要全部字段,星号会返回无用的字段;另外,当表结构发生变化时,星号返回的信息也会发生改。

无表查询

通常来说查询操作的对象是表,但是为了执行简单的计算和快速信息检索,许多数据库管理系统都实现了一种不需要表的查询语句,例如:

SELECT 1+1;

以上查询语句中只有 SELECT 子句,没有 FROM 子句。这种语法并不属于 SQL 标准,而是数据库管理系统的扩展功能。查询返回了一个算术表达式的值:

1+1
---2

五种数据库都支持这种语法。其中 Oracle 23c 才开始支持,在之前的 Oracle 版本中,我们可以使用以下等价的查询语句:

SELECT 1+1 
FROM dual;

其中,dual 是 Oracle 数据库中的一个特殊的表,它只有一个字段并且只包含一行数据。另外,MySQL 也提供了 dual 表。

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

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

相关文章

Kafka生产环境问题总结与性能优化实践

Kafka可视化管理工具kafka-manager 安装及基本使用可参考: httos://wwwcnbloas.com/dadonaaa/o/8205302.html 线上环境规划 1. 消息丢失情况: 消

实战教学:零食百货商城小程序开发全程指导

随着移动设备的普及和互联网技术的发展,小程序成为越来越多人的选择,特别是在购物方面。开发一个零食百货商城小程序,可以让你在手机上随时随地购买各种零食,方便快捷。本文将为你提供全程指导,让你轻松开发一个成功的…

MySql的mvcc原理

目录 一、什么是mvcc? 二、什么是当前读,快照读? 当前读 快照读 三、mvcc实现原理 版本链 undo日志 Undo log 的用途 Read View(读视图) Read View几个属性 五、RR、RC级别下生成时机 一、什么是mvcc? mvcc全称Multi-Version Concurrency Control,即…

迪文屏开发保姆级教程5—表盘时钟和文本RTC显示

这篇文章要讲啥事呢? 本篇文章主要介绍了在DGBUS平台上使用表盘时钟和文本时钟RTC显示功能的方法。 文哥悄悄话: 官方开发指南PDF:(不方便下载的私聊我发给你) https://download.csdn.net/download/qq_21370051/8864…

Flowable-升级为7.0.0.M2-第一节

目录 升级jdk升级springboot到3.1.3升级数据库连接池druid-spring-boot-3-starter到1.2.20升级mybatis-plus到3.5.3.2升级flowable到7.0.0.M2 最近有些读者一直问flowable如何升级到7.0.0.M2,接下来我就一步步的把flowable升级到7.0.0.M2 升级jdk flowable7.x采用的…

算法导论复习(四)主方法的专题

主方法我们要记住的是什么呢?

浅谈矿山井下IT配电系统绝缘监测的应用

摘要:众所周知,能源作为经济发展的重要引擎,堪称是国民经济的命脉。采矿业一直是能源工业的重要支柱,我国的矿业生产主要来自井下开采,环境恶劣,就以煤矿为例,煤矿井下存在水、火、瓦斯、煤尘、…

C++单例模式:饿汉式、懒汉式

单例模式是什么? 单例模式是一种创建型的软件设计模式。通过单例模式的设计,使得创建的类在当前进程中只有唯一一个实例,并提供一个全局性的访问点,这样可以规避因频繁创建对象而导致的内存飙升情况。 单例模式有三个要点 私有化…

Shell三剑客:awk(awk编辑编程)二

一、IF 语句 IF 条件语句语法格式 #方式一: if (condition)action #方式二:使用花括号语法格式 if (condition) {action1;action2; ... } {if(表达式){语句1;语句2;...}} IF 语句实例 #判断数字是奇数还是偶数 [rootlocalhost ~…

11.1Linux串口应用程序开发

UART简介 UART的全称是Universal Asynchronous Receiver and Transmitter,即异步发送和接收。 串口在嵌入式中用途非常的广泛,主要的用途有: 打印调试信息;外接各种模块:GPS、蓝牙; 串口因为结构简单、稳…

css的定位

为什么需要定位? 场景: 某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子当我们滚动窗口的时候,盒子是固定屏幕某个位置的。 这二个需求,使用标准流和浮动的方式是无法实现的或者是不容易实现,所以…

电路设计时,继电器线圈、风扇电机绕组等感性负载必须有续流二极管。

续流二极管(也常被称为“自由轮流二极管”或“反向并联二极管”)在感性负载电路中的应用非常重要,尤其是在继电器线圈、风扇电机绕组等设备中。感性负载是指那些在其线圈中会产生感应电动势的负载,例如电动机、变压器和继电器等。当这些设备的电源被切断时,它们的线圈会因…

华为认证 | 有本数通HCIE在手,好就业吗?

HCIE数通也就是我们常说的路由与交换方向,作为华为认证中的基础方向,HCIE数通还是很多人想要考取的证书。 证书是职场很好的敲门砖,很多人考证也是为了能够让自己更有竞争力,因此很多人会关心就业问题,那么拿到数通方…

【C++】string

文章目录 1. 标准库中的string类1.1 string类 2 string类的常用接口说明2.1 string类对象的常见构造2.2 string类对象的容量操作2.3. string类对象的访问及遍历操作2.4 string类对象的修改操作2.5 string类非成员函数2.6 vs和g下string结构的说明 1. 标准库中的string类 1.1 s…

JG/T 413-2013 建筑用集成吊顶检测

集成吊顶是指由装饰模块、功能模块级构配件组成的,在工厂预制的、可自由组合的多功能一体化装置,根据材质的不同分为铝合金吊顶,钢板吊顶等。 JG/T 413-2013 建筑用集成吊顶板测试: 测试项目 测试标准 外观 JG/T 413 表面质量…

ELK----filebeat日志收集工具

ELK:filebeat日志收集工具和logstash相同 filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多。 filebeat可以运行在非java环境。他可以代理logstash在非java环境上收集日志 filebeat无法实现数据的过滤&…

【zookeeper特点和集群架构】

文章目录 1. Zookeeper介绍2、ZooKeeper数据结构3、Zookeeper集群架构 1. Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分 布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易…

基于JavaServelet的同学录管理系统(Java毕业设计)

点击咨询源码 大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的…

java取出list中的某几个属性组成一个新的集合的几种方式

我用了三种方式,1:forEach循环;2:for循环;3:stream方法 package org.springblade.test;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;public class Test {org.junit.jupiter.api…

锐捷配置DHCP动态分配地址

一、实验拓扑 二、实验目的 配置DHCP为四个部门动态分配IP地址 三、实验配置 第一步:配置基本IP地址并对端口进行规划 SW1 SW1(config)#vlan range 10,20,30,40,100 SW1(config-vlan-range)#exit SW1(config)#interface vlan 10 SW1(config-if-VLAN 10)#ip addres…