SQL构造查询的方式详细概述

电子说

1.3w人已加入

描述

介绍

所以您想学习SQL? 太好了,你应该!

您是否知道,这是数据分析师和数据工程师最需要的第一技能,而数据科学家则是第三要的技能?

在本文中,我将向您解释如何以最简单的方式使用SQL查询。 但首先,让我定义几个术语……

定义

行,也称为记录,是代表单个实体的属性(变量)的集合。 例如,一行可能代表一名医院患者,并且可能具有属性/变量,例如年龄,体重,身高等。

数据库

表是具有相同属性(具有相同变量)的行的集合。 最能帮助我的是将表格视为Excel表格。

数据库

example of a table

查询是从数据库表或表组合中获取数据的请求。 如果要查找所有23岁以上的患者,请使用上表进行查询。

如何编写SQL

由于这是面向初学者的教程,因此,我将向您展示如何从一个表中提取数据时如何编写查询。

基本查询包含五个组件:

· SELECT(必填)

· FROM(强制性)

· 在哪里(可选)

· GROUP BY(可选)

· ORDER BY(可选)

结构如下:

SELECT [column_name_1], [column_name_2], [column_name_n]FROM [table_name]WHERE [condition 1]GROUP BY [column_name] ORDER BY [column_name]

让我们带回我的示例作为参考:

数据库

1.SELECT(必填)

SELECT确定要从给定表中提取哪些列。 例如,如果我想提取名称,那么我的代码将如下所示:

SELECT Name

一个巧妙的技巧是,如果要提取所有列,可以使用星号-参见下文:

SELECT *

2.FROM(必填)

数据库

FROM确定要从中提取信息的表。 例如,如果您要提取患者的姓名,则需要从名为Patient_info的表中提取数据(请参见上文)。 代码看起来像这样:

SELECT NameFROM patient_info

这是您的第一个功能查询! 让我们完成另外3个可选步骤。

3. WHERE(可选)

如果要选择23岁以上患者的姓名怎么办? 这是WHERE传入的时间。WHERE是用于过滤表的语句,与在Excel中使用过滤工具的方式相同!

左侧是获取23岁以上患者姓名的代码。 右侧显示了一个直观的表示形式:

数据库

如果希望满足两个子句的患者姓名,可以使用AND。 例如。 查找年龄超过23磅且体重超过130磅的患者的姓名。

SELECT NameFROM patient_infoWHERE Age 》 23 AND Weight_lbs 》 130

如果要满足两个子句之一的患者姓名,可以使用OR。 例如。 查找22岁以下或23岁以上的患者的姓名。

SELECT NameFROM patient_infoWHERE Age 《 22 OR Age 》 23

4. GROUP BY(可选)

GROUP BY会执行它所说的—将具有相同值的行分组为摘要行。 它通常与诸如COUNT,MIN,MAX,SUM,AVG之类的聚合函数一起使用。

让我们使用下面的示例:

数据库

如果我们想获取每位患者的医院就诊次数,则可以使用下面的代码并获得以下结果:

数据库

5. ORDER BY(可选)

ORDER BY使您可以基于特定属性或多个属性以升序或降序对结果进行排序。 让我们举个例子。

数据库

SELECT *FROM patient_infoORDER BY Age asc

“ ORDER BY Age asc”表示您的结果集将按年龄按升序对行进行排序(请参见上图中的左表)。 如果要按降序排列(上图中的右表),则将desc替换为asc。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分