内容简介:如何查询SQL数据库:确保您有一个数据库管理应用程序(例如MySQL Workbench,Sequel Pro)。如果没有,请下载数据库管理应用程序并与贵公司合作以连接数据库。
如何查询 SQL 数据库:
确保您有一个数据库管理应用程序(例如MySQL Workbench,Sequel Pro)。
如果没有,请下载数据库管理应用程序并与贵公司合作以连接数据库。
了解您的数据库及其hierarhcy。
找出表格中的哪些字段。
开始编写SQL查询以获取所需数据。
有没有听说过称为SQL的计算机语言?您可能已经在数据分析的背景下听说过它,但从未真正认为它适用于您作为营销人员。或者,您可能已经想过,“那是真正先进的数据用户。我永远不会那样做。”
好吧,你不能错!最成功的营销人员是数据驱动的,数据驱动的最重要部分之一是能够快速从数据库收集数据。 SQL恰好是最好和最受欢迎的 工具 之一。
为营销人员下载9个免费的Excel模板
SQL代表结构化查询语言,当公司拥有大量他们希望以简单快捷的方式操作的数据时,它就会被使用。如果您的公司已将数据存储在数据库中,您可能需要学习SQL来访问数据。但不要担心 – 你是在正确的地方开始!
在开始之前,请确保您有一个数据库管理应用程序,允许您从数据库中提取数据。一些选项包括MySQL Workbench或Sequel Pro。首先下载其中一个选项,然后与您的公司讨论如何连接到您的数据库。您选择的选项取决于产品的后端,因此请与您的产品团队联系,确保选择正确的后端。
让我们跳进去。
为什么使用SQL?
SQL的优点在于,在关系数据库中存储数据的公司工作的任何人都可以使用它。 (很有可能,你的确如此。)
如果您为一家软件公司工作并希望提取客户的使用数据,则可以使用SQL来实现。如果您在拥有有关客户购买数据的电子商务公司工作,您可以使用SQL查找哪些客户正在购买哪些产品。当然,这些只是许多例子中的一小部分。
想一想:您是否曾在Excel中打开过非常大的数据集,只能让您的计算机冻结甚至关闭? SQL允许您一次只访问数据的某些部分,因此您不必将数据下载到CSV中,对其进行操作,并可能使Excel过载。换句话说,SQL负责您可能习惯在Excel中执行的数据分析。 (如果你想深入研究SQL的这个方面,这里有一篇博文,可以帮助你入门。)
如何编写简单的SQL查询
了解数据库的层次结构
在开始之前,习惯于数据库及其层次结构非常重要。如果您有多个数据数据库,则需要将您想要使用的数据的位置归零。
例如,让我们假装我们正在处理有关美国人的多个数据库。键入查询“SHOW DATABASES;”。我们的结果可能表明您有不同位置的几个数据库,包括一个新英格兰的数据库。
在数据库中,您将拥有包含要使用的数据的不同表。使用上面的相同示例,假设我们想要找出其中一个数据库中包含哪些信息。如果我们使用查询“NewEngland中的SHOW TABLES;”,我们会发现新英格兰的每个州都有表格:people_connecticut,people_maine,people_massachusetts,people_newhampshire,people_rhodeisland和people_vermont。
最后,您需要找出表中的哪些字段。字段是您可以从数据库中提取的特定数据。例如,如果你想拉某人的地址,那么字段名称可能不仅仅是“地址” – 它可以分为address_city,address_state,address_zip。为了解决这个问题,请使用查询“Describe people_massachusetts;”。这将提供您可以使用SQL提取的所有数据的列表。
让我们使用New England示例快速查看层次结构:
我们的数据库是:NewEngland。
我们在该数据库中的表格是:people_connecticut,people_maine,people_massachusetts,people_newhampshire,people_rhodeisland和people_vermont。
people_massachusetts表中的字段包括:address_city,address_state,address_zip,hair_color,first_name和last_name。
现在,要学习如何编写简单的SQL查询,让我们使用以下示例:
谁是马萨诸塞州红头发的人,2003年出生的人按字母顺序排列?
选择
SELECT选择要在图表中显示的字段。这是您要从数据库中提取的特定信息。在上面的示例中,我们希望找到符合其余条件的人员。
这是我们的SQL查询:
选择
名字,
姓
从
FROM精确定位要从中提取数据的表。在前面的部分中,我们发现新英格兰的六个州分别有六个表:people_connecticut,people_maine,people_massachusetts,people_newhampshire,people_rhodeisland和people_vermont。因为我们专门在马萨诸塞州寻找人,所以我们将从该特定表中提取数据。
这是我们的SQL查询:
选择
名字,
姓
从
people_massachusetts
哪里
WHERE允许您过滤查询以使其更具体。在我们的例子中,我们想要过滤我们的查询,只包括2003年出生的红头发人。让我们从红发过滤器开始。
这是我们的SQL查询:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
如果您想要查看马萨诸塞州的所有人以及他们的特定头发颜色,hair_color可能已成为您的初始SELECT语句的一部分。但是,如果要过滤以仅查看红头发的人,可以在WHERE语句中执行此操作。
和
AND允许您向WHERE语句添加其他条件。请记住,除了2003年出生的人之外,我们还希望对那些红头发的人进行过滤。由于我们的WHERE声明采用红发标准,我们如何按特定的出生年份过滤?
这就是AND语句的用武之地。在这种情况下,AND语句是一个日期属性 – 但它不是必须的。 (注意:请检查产品团队的日期格式,以确保其格式正确。)
这是我们的SQL查询:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
订购
创建SQL查询时,不必将数据导出到Excel。计算和组织应在查询中完成。这就是“ORDER BY”和“GROUP BY”函数的用武之地。首先,我们将分别使用ORDER BY和GROUP BY函数查看我们的SQL查询。然后,我们将简要介绍两者之间的区别。
您的ORDER BY子句将允许您按SELECT语句中指定的任何字段进行排序。在这种情况下,让我们按姓氏排序。
这是我们的SQL查询:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
订购
姓
;
通过…分组
“GROUP BY”类似于“ORDER BY”,但它将汇总具有相似性的数据。例如,如果您的数据中有任何重复项,则可以使用“GROUP BY”计算字段中重复项的数量。
这是您的SQL查询:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
通过…分组
姓
;
订购VS.通过…分组
为了清楚地向您展示“ORDER BY”语句和“GROUP BY”语句之间的区别,让我们简单地走出马萨诸塞州的例子,看看一个非常简单的数据集。以下是四名员工的身份证号码和姓名列表。
按组排序
如果我们在此列表中使用ORDER BY语句,则员工的姓名将按字母顺序排序。结果如下:
订购
如果我们使用GROUP BY语句,员工将根据它们出现在初始表中的次数计算。请注意,彼得在初始表中出现了两次。结果如下:
通过…分组
和我一起到目前为止?好的。让我们回到我们一直在创建的关于2003年出生的马萨诸塞州红发人士的SQL查询。
限制
根据数据库中的数据量,运行查询可能需要很长时间。如果你发现自己要等很长时间来运行一个你并不想真正开始的查询,那会很令人沮丧。如果你想测试我们的查询,LIMIT函数是一个很好的使用,因为它允许你限制你得到的结果数量。
例如,如果我们怀疑在马萨诸塞州有数百万人拥有红头发,我们可能希望在完全运行之前使用LIMIT测试我们的查询,以确保我们获得所需的信息。比方说,我们只想看到前100个人。
这是我们的SQL查询:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
订购
姓
限制
100
;
这就是基础知识!
感觉不错?以下是将SQL查询提升一个档次的其他几种方法。
额外奖励:高级SQL技巧
既然您已经掌握了如何创建SQL查询,那么让我们来看一些其他技巧,您可以使用这些技巧从星号开始。
*
当您向其中一个添加星号时
你的SQL查询,它告诉查询你想要在结果中包含所有数据列。在我们一直使用的示例中,我们只有两个列名:first_name和last_name。但是,假设我们希望在结果中看到15列的数据 – 在SELECT语句中输入所有15个列名称会很麻烦。相反,如果用星号替换这些列的名称,查询将知道将所有列拉到结果中。
这是SQL查询的样子:
选择
*
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
订购
姓
限制
100
;
最后30天
一旦我开始经常使用SQL,我发现我的一个首选查询涉及尝试查找哪些人在过去30天内采取了行动或满足了一系列标准。由于这种类型的查询对我来说非常有用,我想与您分享该功能。
让我们假设今天是2014年12月1日。您可以通过在2014年11月1日到2014年11月30日之间生成birth_date来创建这些参数。该SQL查询将如下所示:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date BETWEEN’2014-11-01’AND’2014-11-30′
订购
姓
限制
100
;
但这需要考虑过去30天的哪些日期,这意味着您必须不断更新此查询。相反,要使日期自动跨越过去30天,无论它是哪一天,您都可以在AND下输入:birth_date> =(DATE_SUB(CURDATE(),INTERVAL 30)。
(注意:您需要对产品团队仔细检查此语法,因为它可能会因您用于提取SQL查询的软件而有所不同。)
因此,您的SQL查询将如下所示:
选择
名字,
姓
从
people_massachusetts
哪里
hair_color =“红色”
和
birth_date> =(DATE_SUB(CURDATE(),INTERVAL 30))
订购
姓
限制
100
;
计数
在某些情况下,您可能希望计算字段标准出现的次数。例如,假设您想要计算出来自马萨诸塞州的人的不同头发颜色的出现次数。在这种情况下,COUNT将派上用场,因此您不必手动添加具有不同头发颜色的人数或将该信息导出到Excel。
这是SQL查询的样子:
选择
发色,
COUNT(hair_color)
从
people_massachusetts
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
通过…分组
发色
;
加入
您可能需要在一个SQL查询中访问两个不同表中的信息。在SQL中,您可以使用JOIN子句来执行此操作。 (对于那些熟悉Excel公式的人来说,这与在Excel中需要组合来自两个不同工作表的信息时使用VLOOKUP公式的方式类似。)
例如,假设我们有一个表格,其中包含所有马萨诸塞州居民的用户ID及其出生日期的数据。假设我们还有一个完全独立的表格,其中包含所有马萨诸塞州居民的用户ID和头发颜色的数据。如果我们想弄清楚2003年出生的马萨诸塞州居民的头发颜色,我们需要从两个表格中获取信息并将它们组合起来。这是有效的,因为两个表共享一个匹配的列:马萨诸塞州居民的用户ID。
因为我们从两个不同的表中调用字段,所以我们的SELECT语句也会略有改变。我们不需要列出我们想要包含在结果中的字段,而是需要指定它们来自哪个表。 (注意:星号功能可能会派上用场,因此您的查询会在结果中包含两个表格。)
要指定特定表中的字段,我们所要做的就是将表的名称与字段的名称组合在一起。例如,我们的SELECT语句会说“table.field” – 使用句点分隔表名和字段名。
让我们来看看这在行动中的样子。
在这种情况下,我们假设了一些事情:
Massachusetts birthdate表包括以下字段:first_name,last_name,user_id,birthdate
马萨诸塞发色表包括以下字段:user_id,hair_color
因此,您的SQL查询将如下所示:
选择
birthdate_massachusetts.first_name,
birthdate_massachusetts.last_name
从
birthdate_massachusetts JOIN haircolor_massachusetts USING(user_id)
哪里
hair_color =“红色”
和
birth_date BETWEEN’2003-01-01’和’2003-12-31′
订购
姓
;
此查询将使用出现在birthdate_massachusetts表和haircolor_massachusetts表中的字段“user_id”来连接这两个表。然后,您将能够看到2003年出生的红色人员表
头发。
恭喜:您已准备好开始使用自己的SQL查询! 虽然您可以使用SQL做更多的事情,但我希望您发现这些基础知识概述很有帮助,这样您就可以轻松搞定。 凭借基础知识的强大基础,您将能够更好地导航SQL并努力实现一些更复杂的示例。
您兴奋地使用SQL获取哪些数据?
本文来自投稿,不代表穷思笔记立场,如若转载,请注明出处:http://www.chons.cn/11070.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Hadoop大数据分析平台的介绍性讨论
- 基于顺丰同城接口编写sdk,java三方sdk编写思路
- 使用 Clojure 编写 OpenWhisk 操作,第 1 部分: 使用 Lisp 方言为 OpenWhisk 编写简明的代码
- 编写一个Locust文件
- 编写现代 JavaScript 代码
- 性能测试报告编写技巧
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
面向模式的软件体系结构(卷1) (平装)
Frank Buschmann、Regine meunier、Hans Rohnert、Peter Sommerlad、Michael Stal / 贲可荣、郭福亮 / 机械工业出版社 / 2003-1 / 45.0
一起来看看 《面向模式的软件体系结构(卷1) (平装)》 这本书的介绍吧!