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

每个开发人员都需要掌握的10 个基本 SQL 命令

SQL 是一种非常常见但功能强大的工具,它可以帮助从任何数据库中提取、转换和加载数据。

数据查询的本质在于SQL。

随着公司和组织发现自己处理的数据量迅速增加,开发人员越来越需要有效地使用数据库来处理这些数据。

所以想要暗恋数据领域,SQL是必须的!要掌握这门语言,您需要知道如何使用一些命令,其中大部分命令都基于一些基本命令。

让我们一起探索最重要和最基本的 SQL 命令!

对于整篇文章,我使用的是一个包含 5 个不同年龄和眼睛颜色的不同人的自制表格。

1、SELECT and FROM

SQL 中的 SELECT 命令是最简单但也是最重要的命令之一,每个查询都以 SELECT 开头,这就是您从数据库中获取数据的方式。

我们总是需要指出从哪里获取数据,而这正是 FROM 命令发挥作用的地方,它指示我们查询的表源是什么。

可以在 SQL 中执行的最简单的命令如下:

这相当于将“Hello World”打印到 java 或 python ;)

现在您可能想知道……那个星号是什么?

如果你是这样,恭喜!这是一个重要的。它表示您希望从定义的表中选择所有列。

星号是找出表中数据的好方法,但并不总是推荐用于生产代码。

这就是为什么最好像下面这样指定要检索的每一列。

结果表将是:

2、DISTINCT

DISTINCT 用于查看列中的唯一值,该命令使用如下:

例如,假设我们想看到所有可能的眼睛颜色。在这种情况下,我们将从表中包含的 eyes_colors 列中选择所有不同的值。

结果输出是:

3、WHERE

每当您想根据特定条件过滤结果时,WHERE 命令就会派上用场。使用此 SQL 命令可以将条件应用于 SELECT 语句。

假设我们只想知道蓝眼睛的人的名字。所需的查询将是:

此查询现在仅限于蓝眼睛的人,对应的输出是:

我们可以将多个条件与 AND 或 OR 运算符结合起来。

AND 的作用与它在英语中的作用完全相同:它将另一个条件应用到语句中。

相应的输出包含所有蓝眼睛且小于 20 岁的人。

OR用作多条件测试仪,这意味着将保留满足任何条件的任何行。

在这种情况下,相应的输出包含所有蓝眼睛或绿眼睛的人。

4、ORDER BY

ORDER BY 命令用于按特定顺序对结果进行排序,您需要指定列和顺序,可以是 ASC 表示升序或 DESC 表示降序。

如果未定义 ASC 或 DESC,则排序顺序默认为升序。

在这种情况下,我们的输出将从老年人到年轻人排序。

您也可以按多列排序。

在第二种情况下,我们获得了按 eye_colors 和 age 排序的表。顺序层次结构将遵循 ORDER BY 命令后每一列出现的顺序。

5、聚合函数(Aggregate Functions)

聚合函数对一系列值执行计算并返回单个值,聚合函数的一些例子是:

COUNT() 返回总行数。通常与 DISTINCT 命令一起使用以计算唯一元素。

SUM() 返回所有值的总和

MAX() 返回最大值

MIN() 返回最小值

AVG() 返回平均值

假设我们想知道数据集中的人数。在这种情况下,我们只是计算所有人,而不使用任何 group by 命令。

现在假设我们想知道所有可能的眼睛颜色。在这种情况下,我们重复前面的查询,只计算 eyes_color 列并使用 DISTINCT 命令。

相应的输出将是以下一个。

6、GROUP BY

GROUP BY 将按相同的值对数据进行分组。它经常与聚合函数一起使用来汇总特定列或列组的属性。

现在让我们想象一下,我们想知道每种不同眼睛颜色有多少人。我们可以重复前面的逻辑查询,但将结果按 eyes_color 列分组。

正如我们可以检查的那样,相应的输出包含我们所期望的。

7、UNION

UNION 是一个很棒的命令,因为它允许您将行附加到彼此。与附加匹配列的联接不同,UNION 可以附加不相关的行,前提是它们具有相同的列数和名称。

您可以将 UNION 视为组合两个查询结果的一种方式。联合只会返回两个查询之间存在唯一行的结果。

8、AS

AS 命令用于在查询过程中重命名特定的列或特定的表。它是存在于您正在运行的查询中的昵称。

重命名列

这就像选择列并在命令 AS 后写入所需的新名称一样简单。

重命名表

在第二种情况下,命令 AS 用于在表声明后立即为其分配别名。

您可以使用任何您喜欢的有效名称,但我强烈建议使用字母表中的字母。在每个列名称之前,别名都带有前缀。您可以键入一个简单易记的字母,而不是键入一个长表名。

9、CASE WHEN、ELSE 和 THEN

如果您以前使用过任何其他编程语言,这与 if-else 语句非常相似。

实际上,用简单的英语来说,该命令听起来有点像这样:

CASE WHEN——如果满足条件。

THEN——做这个。

ELSE — 否则做其他事情。

让我们看一个例子来巩固这个想法。假设我们要创建一个新列,告诉我们这个人是青少年、年轻人还是成年人。我们可以使用 CASE WHEN 命令从头开始轻松创建此分段。

如您所见,前面的查询创建了三个不同的条件:

1、如果年龄小于 20 岁,则为 teen。

2、如果年龄在 20 到 30 之间,则为 youngster。

3、在任何其他情况下,它都是一个"adult"。

相应的输出包含每个人及其相应的类型标签。

10、JOIN

JOIN 命令是管理数据的关键命令。它允许我们从不同的源和表中获取数据并将它们合并在一起。三种最常见的连接是:

INNER JOIN— 语句仅返回那些具有匹配值的记录或行,用于检索出现在两个表中的数据。

LEFT JOIN — 按照左表的结构给出两个表之间匹配行的输出。如果左表中没有记录匹配,它会显示那些具有空值的记录。

CROSS JOIN—返回每个表中行的所有组合。请注意,此连接不需要任何条件来连接两个表。

让我们想象一下,现在我们有一个包含每个人的性别的附加表。因此,使用左连接,我们可以将两个表合并为一个由公共列连接的表,在本例中,按名称连接。

相应的输出包含合并到单个表中的所有信息。

希望您会发现今天的内容对你理解 SQL 的基础知识很有帮助。

更多精彩文章:

自学Java学习路线图(完整版)

2023版大数据学习路线图(适合自学)

2023版软件测试学习路线图(超详细自学路线)

相关文章:

每个开发人员都需要掌握的10 个基本 SQL 命令

SQL 是一种非常常见但功能强大的工具,它可以帮助从任何数据库中提取、转换和加载数据。数据查询的本质在于SQL。随着公司和组织发现自己处理的数据量迅速增加,开发人员越来越需要有效地使用数据库来处理这些数据。所以想要暗恋数据领域,SQL是…...

Vue项目预渲染

前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用。在一个单页应用中,往往只有一个 html 文件,然后根据访问的 url 来匹配对应的路由脚本,动态地渲染页面内容。单页应用…...

可别再用BeanUtils了(性能拉胯),试试这款转换神器

老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。有的人会说,我直接使用get/set方法。没错,get/set方法的确可以解决,而且也是性能较高的处理方法,但是大家有没有想过,要…...

Transformer 杂记

Transformer输入的是token,来自语言序列的启发。卷积神经网络(CNN)是如何进行物种分类的.它实际是直接对特征进行识别,也就是卷积神经网络最基本的作用:提取图像的特征。例如:卷积神经网络判断一只狗的时候&#xff0c…...

实现异步的8种方式

前言异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:「发送短信、邮件、异步更新等」,这些都是典型的可以通…...

Github隐藏功能显示自己的README,个人化你的Github主页

Github隐藏功能:显示自己的README 你可能还不知道,GitHub 悄悄上线了一个全新的个人页功能,显示一个自定义的 README.MD 在个人首页。要激活此功能,需要新建一个与自己 ID 同名的 Repository,新 Repo 里的README.MD将…...

单片机 | 51单片机原理

【金善愚】 单片机应用原理篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid51090 文章目录一、引脚分布介绍1.分类2.电源引脚3.时钟引脚(2根)4.控制引脚(4根)5.端口引脚(32根)二、存储器结构及空间分布介绍1.存储器的划…...

(只需五步)注册谷歌账号详细步骤,解决“此电话号码无法验证”问题

目录 第一步:打开google浏览器 第二步:设置语言为英语(美国) 第三步:点击重新启动,重启浏览器 第四步:开始注册 第五步,成功登录google账号! 如果出现这样的原因&…...

ChatGPT使用介绍、ChatGPT+编程、相关组件和插件记录

文章目录介绍认识ChatGPT是通过英汉互译来实现中文回答的吗同一个问题,为什么中英文回答不同ChatGPT的使用对话组OpenAI APIAI智能绘图DALLE 2ChatGPT for Google插件ChatGPT编程编写代码代码错误修正与功能解读代码评审与优化推荐技术方案编写和优化SQL语句在代码编…...

linux系统中复制粘贴和头文件问题解决方案

各位开发者大家好,好久不见,为了更好的服务大家,将平常所见所闻,以及遇到的问题和解决办法进行记录和总结。大家在学习过程中,有任何问题欢迎交流学习!!!。 第一:如何将w…...

Vue项目实战 —— 后台管理系统( pc端 ) —— Pro最终版本

前期回顾 开源项目 —— 原生JS实现斗地主游戏 ——代码极少、功能都有、直接粘贴即用_js斗地主_0.活在风浪里的博客-CSDN博客JS 实现 斗地主网页游戏https://blog.csdn.net/m0_57904695/article/details/128982118?spm1001.2014.3001.5501 通用版后台管理系统,如果…...

Springboot+vue开发的图书借阅管理系统项目源码下载-P0029

前言图书借阅管理系统项目是基于SpringBootVue技术开发而来,功能相对比较简单,分为两个角色即管理员和学生用户,核心业务功能就是图书的发布、借阅与归还,相比于一些复杂的系统,该项目具备简单易入手,便于二…...

学习 Python 之 Pygame 开发魂斗罗(十三)

学习 Python 之 Pygame 开发魂斗罗(十三)继续编写魂斗罗1. 创建敌人2类2. 编写敌人2类的draw()函数3. 编写敌人越界消失函数4. 编写敌人开火函数5. 把敌人2加入地图进行测试继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(十…...

指针进阶(中)

提示: 上集内容小复习🥰🥰 int my_strlen(const char* str) {return 1; } int main() {//指针数组char* arr[10];//数组指针int arr2[5] { 0 };int(*p)[5] &arr2; //p是一个指向数组的指针变量//函数指针int (*pf)(const char*)&m…...

C/C++获取文件名的方法(__FILE__,__builtin_FILE(),__BASE_FILE__)

目录标题C/C获取文件名的方法__FILE__宏避免__FILE__宏的错误慎用$(subst $(dir $<),,$<)\"")来重定义__BASE_FILE__宏__builtin_FILE()函数Windows API函数GetModuleFileName()getenv()使用cmake中的变量重定义__FILE__宏的CMake示例C/C获取文件名的方法 使用…...

线程池的讲解和实现

&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;大家好,今天为大家带来线程池相关知识的讲解,并且实现一个线程池 &#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;…...

linux编程──gcc和clang

实验链接 编译原理实验-GCC/Clang工具链在ARM架构上的使用 实验报告 第1关&#xff1a;理解程序的不同表示形式 ##问题1-1&#xff1a; 如果在命令行下执行 gcc -DNEG -E sample.c -o sample.i生成的sample.i 与之前的有何区别&#xff1f; 根据定义NEG,而选择了M定义为-4…...

字节跳动测试岗面试记:二面被按地上血虐,所幸Offer已到手...

在互联网做了几年之后&#xff0c;去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好&#xff0c;更重要的是&#xff0c;它是对你专业能力的背书&#xff0c;大厂工作背景多少会给你的简历增加几分竞争力。 但说实话&#xff0c;想进大厂还真没那么容易。最近面试字…...

5.多线程学习

作者&#xff1a;爱塔居 专栏&#xff1a;JavaEE 作者简介&#xff1a;大三学生&#xff0c;喜欢总结与分享~ 文章目录 目录 文章目录 章节回顾 一、wait 和notify 二、设计模式 2.1 单例模式 章节回顾 线程安全 1.一个线程不安全的案例&#xff08;两个线程各自自增5w次&…...

数据结构中的堆

一、树的重要知识点 节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff08;有几个孩子&#xff09;叶节点或终端节点:度为0的节点称为叶节点&#xff1b;如上图&#xff1a;B、C、H、I...等节点为叶节点&#xff08;0个孩子&#xff09;非终端节点或分支节点…...

Linux内核设备信息集合

本文结合设备信息集合的详细讲解来认识一下设备和驱动是如何绑定的。所谓设备信息集合&#xff0c;就是根据不同的外设寻找各自的外设信息&#xff0c;我们知道一个完整的开发板有 CPU 和各种控制器&#xff08;如 I2C 控制器、SPI 控制器、DMA 控制器等&#xff09;&#xff0…...

若依框架---权限管理设计

前言 若依权限管理包含两个部分&#xff1a;菜单权限 和 数据权限。菜单权限控制着我们可以执行哪些操作。数据权限控制着我们可以看到哪些数据。 菜单是一个概括性名称&#xff0c;可以细分为目录、菜单和按钮&#xff0c;以若依自身为例&#xff1a; 目录&#xff0c;就是页…...

Java设计模式(二)——工厂模式

当用户需要一个类的子类实例&#xff0c;且不希望与该类的子类形成耦合或者不知道该类有哪些子类可用时&#xff0c;可采用工厂模式&#xff1b;当用户需要系统提供多个对象&#xff0c;且希望和创建对象的类解耦时&#xff0c;可采用抽象工厂模式。 工厂模式一般分为简单工厂、…...

【Maven】

MavenMaven简介仓库坐标Maven项目构建依赖管理生命周期及插件插件模块拆分与开发聚合继承属性版本管理资源配置多环境开发配置跳过测试私服Maven简介 Maven的本质时一个项目管理工具&#xff0c;将项目开发和管理过程抽象成一个项目对象模型(POM) POM(Project Object Model)&a…...

[JAVA]继承

目录 1.继承的概念 2.继承的语法 3.父类成员访问 3.1子类中访问父类成员变量 3.2子类中访问父类成员方法 4.super关键字 5.子类构造方法 6.继承方式 7.final关键字和类的关系 面向对象思想中提出了继承的概念&#xff0c;专门用来进行共性抽取&#xff0c;实现代码复…...

Vue3 pinia持久化存储(组合式Api案例演示)

pinia-plugin-persist&#xff08; pinia持久化插件&#xff09; 本文采用的是 组合式Api的方式来做Pinia的持久化存储演示 如果对pinia的持久化还是不是很了解的&#x1f468;‍&#x1f393;&#xff5c;&#x1f469;‍&#x1f393;&#xff0c;可以看一下笔者的上一篇文章…...

8个你一看就觉得很棒的Vue开发技巧

1.路由参数解耦 通常在组件中使用路由参数&#xff0c;大多数人会做以下事情。 export default {methods: {getParamsId() {return this.$route.params.id}} }在组件中使用 $route 会导致与其相应路由的高度耦合&#xff0c;通过将其限制为某些 URL 来限制组件的灵活性。 正…...

vue3+ts 开发效率提升

1、vite pnpm项目初始化 pnpm&#xff1a; 比npm或yarn快10倍 pnpm与其他包管理器&#xff08;如npm和Yarn&#xff09;的不同之处在于它使用一种称为“硬链接”的独特安装方法。当你使用PNPM安装一个包时&#xff0c;它并不会将包的文件复制到每个项目的node_modules目录中&a…...

【数据结构与算法】队列和栈的相互实现以及循环队列

目录&#x1f314;一.用队列实现栈&#x1f319;1.题目描述&#x1f319;2.思路分析&#x1f319;3.代码实现⛈二.用栈实现队列☔1.题目描述☔2.思路分析☔3.代码实现&#x1f308;三.实现循环队列&#x1f314;一.用队列实现栈 &#x1f319;1.题目描述 我们先看一下题目链接…...

mysql连接不上问题解决

公司新搭内网测试环境&#xff0c;mysql远程登录问题解决 远程登录: 1 修改host, mysql> select user,host,plugin from user; ---------------------------------------------------- | user | host | plugin | ------------------------…...

网站后台模板如何使用/关键词点击排名软件

2019独角兽企业重金招聘Python工程师标准>>> var dataStr"1,2,3,4,5";//原始字符串 var dataStrArrdataStr.split(",");//分割成字符串数组 var dataIntArr[];//保存转换后的整型字符串 //方法一 dataStrArr.forEach(function(data,index,a…...

套系网站怎么做/优化标题关键词技巧

poj 1860 -- Currency Exchange&#xff08;Bellman-Ford&#xff09; 题意&#xff1a; 我们的城市有几个货币兑换点。让我们假设每一个点都只能兑换专门的两种货币。可以有几个点&#xff0c;专门从事相同货币兑换。每个点都有自己的汇率&#xff0c;外汇汇率的A到B是B的数量…...

怎么在外管局的网站做延期/西安网站排名优化培训

【手机中国】本周手机圈有两大盛事&#xff0c;一是苹果春季发布会&#xff0c;二则是华为P30系列发布会。虽然苹果在发布会上并没有带来硬件(Apple Card实体信用卡算半个吧)&#xff0c;但为了让大家的关注点集中到Apple News、Apple Arcade和Apple TV等新服务上&#xff0c;苹…...

wordpress 七牛云加速/优就业seo课程学多久

minimum spanning tree(MST) 最小生成树是连通无向带权图的一个子图&#xff0c;要求 能够连接图中的所有顶点、无环、路径的权重和为所有路径中最小的. graph-cut 对图的一个切割或者叫切断&#xff0c;会使图分离成为两个不相连的顶点集. 它基于树的两个基本属性&#xff1a…...

大岭山做网站/站外引流推广渠道

冀中能源峰峰集团关于做好2015年度河北省职称计算机应用能力考试考务工作的通知根据邯郸市人力资源和社会保障局《关于做好2015年度河北省职称计算机应用能力考试考务工作有关问题的通知》文件通知&#xff0c;现将2015年度全省职称计算机应用能力统一考试考务工作有关问题通知…...

温州学校网站建设/百度知道首页

2019独角兽企业重金招聘Python工程师标准>>> 弄了半天Arch linux 以失败告终,但还是有些收获的 学会了如何使用fdisk分区.......... arch linux不同与ubuntu Redhat 强大的可定制化是其一大特性 照着流程一遍走下来,最后在/usr分区上出问题了 注意: Archlinux的/sb…...