数据库

理解SQL在数据科学中的应用

2020-07-31 16:20:44 | 来源:中培企业IT培训网

要了解SQL,我们需要了解DBMS的工作方式。DBMS或数据库管理系统本质上是一种用于创建和管理数据库的软件。SQL是否需要成为数据科学家?我们讨论了SQL的重要性以及SQL知识如何帮助成功的数据科学事业的基础。在此让我们继续前进,并进行更详细的讨论。如果您具有SQL的一些基本知识并且正在准备面试,请阅读我们的SQL面试问题列表,这将帮助您找到工作。但是,在深入探讨这一点之前,了解SQL在数据科学领域为何如此重要的原因以及如何发挥作用将非常有用。

  什么是数据科学?

数据科学是一个使用许多科学方法和过程来收集数据并从中获得有用见解的领域。这样做会创造新的机会,设计,业务案例,甚至是革命性的创新。

人工智能的未来在于数据科学。数据科学涉及使用算法,软件程序和统计信息来整理和处理巨大的复杂数据块。数据的复杂性来自其非结构化的性质-当今的数据可以是任何形式-文本,图像,传感器和仪器的输出,而没有!

到目前为止,数据科学的好处可以在电子商务,医疗保健,制造业,银行业,金融和运输等领域中感受到。

  DBMS和关系数据库的基础

要了解SQL,我们需要了解DBMS的工作方式。DBMS或数据库管理系统本质上是一种用于创建和管理数据库的软件。借助DBMS,程序员可以创建,管理或选择数据。

数据库充当最终用户和应用程序之间的接口,以有组织且一致的方式访问数据。例如,用户登录Facebook。

根据用户注册的电子邮件地址和密码,从应用程序对数据库进行API调用,并检索用户详细信息。

在关系型DBMS或RDBMS中,SQL是用户和应用程序通过其访问数据的API。可以以表及其列的形式访问数据。

表之间的关系使得不需要重新组织数据或表。使用SQL语句,我们可以获得有关多个表及其关系的信息。

  什么是SQL?

SQL或结构化查询语言是一种“编程语言”,它通过“查询”管理关系数据库中的数据。通过使用SQL,我们可以根据各种过滤器和条件插入,更新,删除和选择数据。SQL还可以帮助自动运行某些需要定期运行的计划脚本。

借助SQL,开发人员和数据分析人员可以轻松地编写代码并运行查询。例如,从客户中选择*;是一个简单的查询,提供了客户表的详细信息。

分析师可以访问大量数据,进行处理,而无需在其他任何地方复制或存储数据。

使用SQL查询比使用Excel工作表或其他任何方法都更容易分析数据。SQL中有很多聚合函数,它们可以处理大型数据集和多个表。

  了解数据科学的生命周期

要了解SQL在数据科学中的使用方式,我们需要了解数据科学的不同阶段。

  数据科学生命周期中有2个重要阶段:

  1.数据整理和清洁

从各种来源发现数据后,必须准备和构建数据。这意味着,应删除所有冗余和重复数据,并形成整洁的结构,以便于对数据进行建模。这称为DBMS规范化,所有关系数据库都遵循此方法。

使用SQL,由于SQL具有主键和约束的概念,因此可以轻松完成数据的结构化和条件化,其中可以消除冗余和依赖性,并可以在不同数据类型之间建立适当的关系。

SQL还可以帮助清理数据,这意味着可以通过自动批处理脚本定期删除无关,不正确或损坏的记录,而无需任何手动干预。您也可以使用R进行数据清理和转换,但是将SQL与R结合使用可以减少要编写的代码量并带来更大的灵活性。

  2.数据建模和挖掘

模型规划和构建完全依赖于DBMS(数据库管理系统),尤其是结构化查询语言或SQL(如果您还不知道的话)。大数据是大量的非结构化数据,只有结构化语言才能节省我们在显示数据变量之间建立关系的时间。

一个简单的建模示例是尝试购买计划,订购和一些增值服务的后付费移动连接的客户。

这些中的每一个都可以是关系DBMS中的一个表,并且可以使用可以唯一的通用键(例如customer_id,phone_number或subscription_id)建立它们之间的关系。因此,我们正在创建实体(表),属性(列),关系(链接到subscription_id或phone_number等的customer_id等)和完整性(customer_id应该是唯一的,phone_number和subscription_id可以是一个组合键,等等)。

我们还可以创建触发器,例如,每当客户更改任何增值服务时,触发器都可以在执行必要的资格检查后自动激活该服务。

数据挖掘是一个过程,其中检查大量数据的模式和趋势以评估数据以解决业务目的。当组织和构造大型数据集时,该过程变得更加容易。

继续,让我们说我们想确定大多数用户感兴趣的增值服务是什么。由于当今每个人至少拥有一部手机,并且可以添加的服务数量是无限的,所以这将是大量数据进行合并,分类和检查。

SQL通过根据特定的用户查询提供特定的记录使事情变得更容易。例如,如果我们想知道在通话过程中激活了“铃声”服务的用户,我们可以将查询写为-

select customer_id from value_added_service table where service = ‘ringtone’ and is_service_enabled = ‘Y’ and service_end_date > NOW();

对于复杂的查询,可以进行索引以更快地获取结果。

我们还可以使用内置的SQL函数根据service_end_date升序列出数据,并按特定顺序分组等等。

  SQL数据分析基础

您可能想说具有大量数据的excel工作表也可以获取结果并执行一些过滤操作。的确如此,但与SQL存储数据的规模没有可比性。但是多少SQL足以让您成为数据科学家?

没有确定的答案,但是我们尝试了很多信息,这些信息将帮助您掌握基本概念。如果您已经了解SQL,那么您将熟悉其中的大多数内容;如果您不熟悉,请不用担心,此博客将为您提供有关基础知识的深刻见解。

大多数情况下,数据库和架构已经存在,并且建立了所有关系。作为数据科学家,您将需要了解架构,关系以及如何查询数据库以从业务角度获得最佳结果。

让我们创建一些数据,然后使用下面将要学习的不同技术来获取数据。

以下是您每天将要使用的最重要的语句和命令。

  选择行和列

从表中获取所有数据的基本查询是–

select * from table_name;

让我们从学生表中获取一些记录。

select * from student;

将获取我们表格中存在的所有行和列。

如果我们只想要名字和生日该怎么办?然后,我们应该在查询中指定列名称。

select first_name, date_of_birth from student;

名date_of_birth

-------------------------------------------

玛丽亚17-11 -1984

戈帕尔1983年4月2日

凯沙夫14-12-1983

亚伦1984年5月3日

纳曼1984年6月6日

我们还可以使用一些表达式以特定方式显示数据。例如,

select first_name + ‘ ‘ + last_name as full_name from student;

您会得到类似–

全名

------------

玛丽亚·托马斯·

戈帕尔(Maria Thomas Gopal)钱德拉·

克沙夫(Chandra Keshav)夏尔马

·亚伦(Shara Aaron V)

  根据条件过滤行

大多数时候,我们只需要特定的趋势和模式。这些模式可以作为我们的过滤器,基于这些过滤器,我们将仅从数据库中获取那些相关且满足我们条件的记录。例如,

如果我们只想让老师Brunda的学生参加,可以使用where子句。

select first_name, date_of_birth from student where teacher_name = ‘Brunda’;

使用分组和排序功能也很简单有效。首先,如果我们要基于deptt对记录进行分组,则可以添加group by子句。

select first_name, date_of_birth from student where adm_year = 2001 group by deptt;

“具有”是另一个过滤器,类似于可应用于组函数的where子句。例如,我们要获得所有ECE部门的记录以及2001年之后的入学日期,我们可以将查询写为–

select first_name, deptt, date_of_birth from student group by deptt having adm_year > 2001;

这将获取类似:

first_name deptt date_of_birth

Maria ECE 17-11-1984

Naman ECE 06-06-1984

Keshav CSE 14-12-1983

可能会发生类似的记录,而我们只想获得其中之一。例如,deptt列。如果要列出数据库中存在的所有部门,则可以使用关键字distinct。这将在列中提供所有唯一值。

同样,我们可以根据特定条件获取学生人数,求和,平均,找到具有特定出生日期的记录以及更多其他信息。

  使用内置功能汇总结果

聚合函数与group by,having子句一起使用,可从select语句中获取标量值。最常见的功能是: SUM,AVG,COUNT,MAX,MIN。除计数功能外,其他所有功能均忽略NULL值。在上面的示例中,如果我们想获得ECE部门的学生人数,我们可以将查询形成为:

select count(*) from student where deptt = ‘ECE’;

同样,如果我们想获得各个年级的CSE学生所获得的平均百分比,则可以使用AVG函数等等。

  加入

众所周知,一个关系数据库有多个可以相互映射的小表。为了在单个结果中从多个表中获取数据,我们将这些表联接起来并显示所需的列。有不同类型的联接:

· 左联接

· 正确加入

· 外加入

· 内部联接

· 自加入

· 交叉联接

如果您想详细了解上述各项中的任何一项,则此交互式课程将满足您成为数据科学家所需的所有SQL以及我们上面已经讨论的所有内容。

  SQL分析服务

Microsoft提供了一个很好的工具,许多组织都使用它来分析分布在多个数据库中的巨大数据。此在线分析处理和数据挖掘工具简称为SSAS,包括许多服务,例如建模,集成,报告和分析。有关更多信息,请从此处查看 Microsoft官方页面上的信息。

数据科学中有许多子领域,但是无论如何,SQL仍然是数据科学领域的重要组成部分。没有SQL的本质,您在此字段中的输入将是不完整的。学习和实施SQL将在帮助您思考更多创造性想法并将数据转换为有用的业务用例或见解方面大有帮助。想了解更多关于数据库的信息,请继续关注中培伟业。

标签: SQL 数据科学