审校 | 孙淑娟
SQL可以追溯到上世纪70年代由Edgar Codd博士、Donald Chamberlin、Raymond Boyce和其他IBM研究人员构建的早期关系数据库。关系数据库中一个表中的数据可以链接到数据库数千个甚至数百万个条目中的任何一个表中的数据。因此,SQL使得搜索和检索与业务相关的问题的数据并在报告中呈现结果比以往更容易、更快捷。
SQL到底是什么?
SQL是一种用于关系数据库的查询语言(传统数据库以表格形式存储数据库)。它使用关系模型的能力来提供数据属性或属性,如货币单位、数字、日期或指定值。这是一个典型的SQL格式,它包含表、列、字段和行:
- 与电子表格类似,数据库表由行和列组成。
- 每列显示该记录中的一个字段,每行表示一条记录。
- 为保证每个字段中的数据符合数据库的标准,可以为表和表中的每一列提供属性。
以下通过一些统计数据来说明SQL的流行程度以及财富500强公司为何对其如此依赖。
- 近58.2%的数据科学家工作需要SQL技能(Indeed.com)。
- 数据科学家更喜欢SQL而不是R和Python,其中65%以上的人使用SQL(StackOverFlow 2020年调查)。
- Microsoft、NTT Data、Accenture、Dell和Cognizant是使用SQL分析数据的顶级公司之一 。
- MySQL被评为2022年第二大最受欢迎的数据库管理系统(Statista) 。
为什么SQL知识对数据科学家至关重要?
数据科学家列出了SQL的一些主要好处。这种语言:
- 易于理解和使用,取决术语和简单的结构。
- 与Python、R和其他编程语言兼容,使数据科学家能够交换和展示他们的发现,为数据科学家提供工具来检查他们的数据集,从而帮助他们更好地理解它们。
- 容纳数据分析师和科学家必须处理的大量数据。例如,关系数据库远比电子表格强大。
- 对于大多数招聘数据科学家和数据科学专业人士的招聘人员来说,对这门语言的熟练程度要高于其他编程语言。
最常见的SQL命令有哪些?
为了开发和修改数据库表、定义用户权限和进行其他活动,SQL命令用于与数据库交互。有五种基本的SQL命令:
1.数据定义语言(DDL)
数据定义语言(DDL)指令用于通过创建、删除或更改表包含的数据来更改表的结构。命令会自动保存在数据库中或“自动提交”。
(1)创建(CREATE)
该命令通过提供表名、列名、大小和属性来创建新表。
(2)更改(ALTER)
该命令主要用于向数据库模式添加新功能或更改现有功能。从表中删除当前列、更改列或减小列的大小都是可能使用的示例。
(3)删除表(DROP)
该命令用于删除表,包括其所有数据。
(4)重命名(RENAME )
该命令为现有表提供新名称。
理想的数据定义语言(DDL)应该:
- 为每个记录类型、数据项类型、数据库、文件类型和其他数据细分赋予唯一的名称。
- 区分几种数据划分,如数据项、段、记录和数据库文件。
- 说明不同的记录类别如何与不同的品牌结构相关联。
- 能够指定数据元素的长度。
2.数据操作语言(DML)
使用数据操作语言(DML)指令修改数据库。由于数据操作语言(DML)命令不像数据定义语言(DDL)那样自动提交,因此可以撤消这些操作。
(1)插入(INSERT)
通过给出表名和与新信息相关的值,例如年龄、地址和姓名,该命令用于将数据插入到表行中。同样,它可用于使用来自其他来源的数据填充表。
(2)删除(DELETE)
该命令从表中删除一行或多行。例如,简单地指定表名会删除它的所有行;但是,添加条件(例如WHERE Name="MIKE")只会消除符合要求的行。
(3)更新(UPDATE)
该命令更改表字段的值,并将其应用于所有行或仅满足条件的行,例如包含特定州代码或邮政编码的行。
数据操作语言(DML)只是暗示:
- 检索、插入、删除和修改数据库中存储的信息。
3.事务控制语言(TCL)
为了管理数据库,事务控制语言(TCL)命令与数据操作语言(DML) 命令一起使用。但是,事务控制语言(TCL)命令不能用于创建或删除表,因为它们是在数据库中自动提交的。
(1)提交(COMMIT)
该命令保存所有数据库事务,终止当前事务,并将事务期间执行的所有更改标记为不可逆。它还释放表持有的所有事务锁。
(2)回滚(ROLLBACK)
该命令通过终止事务并清除在事务期间所做的所有修改,会擦除所有尚未保存到数据库的事务。它还释放在表上获得的任何事务锁。
(3)保存点(SAVEPOINT)
使用该命令将数据库回滚到先前构建的保存点。以这种方式只能保留交易的某些方面。从上一个提交或回滚命令开始,必须给出保存点。
4.数据控制语言(DCL)
数据控制语言(DCL)命令控制谁可以访问数据库中的数据。这些说明根据用户访问权限允许或拒绝某些用户的访问。
(1)授予(GRANT)
该命令授予用户访问权限,并指定允许用户执行的任务,例如选择和更改表以及授予其他用户访问权限的能力。
(2)撤销(REVOKE)
此命令删除用户的访问权限。任何有能力向其他人提供访问权限的人都可以使用它,即使授予者不是表的创建者。
5.数据查询语言(DQL)
数据查询语言(DQL)命令从数据库中获取数据,这符合选择(SELECT)命令语法的要求。
(1)选择(SELECT)
这是唯一可用的DQL命令,适用于所有检索活动。通过定义表名,语法指示在哪里查找给定数据。WHERE语句指定目标数据必须具有哪些品质或特征才能获得,例如“WHERE age >65”。
有哪些不同的SQL数据类型?
在生成查询时,选择合适的SQL数据类型是创建结构良好的查询的第一步。可以放入表列中的值的类型由数据类型定义,其中一些是:
(1)SQL日期和时间数据类型
- DATE:以YYYY-MM-DD格式缓存的日期。
- TIME:以HH:MI:SS形式缓存的时间。
(2)SQL二进制数据类型
- BINARY:固定长度,最多8,000个字符。
- VARBINARY:可变长度,最多8,000个字符。
(3)字符和字符串的SQL
- CHAR:固定长度最多为8,000个字符的字符。
- VARCHAR:最多为8,000个可变长度字符。
- VARCHAR(max):可变长度存储使用“max”选项创建一个最大为231-1字节的列约束大小,或以1到8000的值定义字符串大小(以字节为单位)。(2GB)
精通SQL的数据科学专业人员
具有SQL技能的数据科学家和软件开发人员有更多的工作选择。SQL知识在各种专业角色中都很有用,例如:
- SQL数据库开发人员
- SQL数据库管理员
- SQL数据分析师
- 云数据库专家
- 商业智能管理员
结语
数据的使用只会增长。因此从长远来看,学习SQL将对企业大有帮助。学习SQL是数据科学家和数据库专业人员为他们的职业做准备的最佳方式。数据库系统不仅是寻找数据专家的企业中最需要的人才之一,而且还是学习其他有用IT技能的基石。SQL知识是数据研究和软件开发中许多有利可图的职位的基石。
原文Why Is SQL Knowledge Vital for Data Scientists? A Sneak Peek,作者:Anamika Singh