一、什么是 SQL?
SQL 是结构化查询语言的缩写形式,读作 SQL,有时读作 See-Quell。
这种数据库语言主要是为维护关系数据库管理系统中的数据而设计的。它是数据专业人员用于处理结构化数据(以表格形式存储的数据)的特殊工具。它还设计用于 RDSMS 中的流处理。
您可以轻松地创建和操作数据库,访问和修改表的行和列等。这种查询语言在 1986 年成为 ANSI 标准,在 1987 年成为 ISO 标准。
如果你想在数据科学领域找到一份工作,那么它是最重要的查询语言学习。Facebook、Instagram 和 LinkedIn 等大企业使用 SQL 将数据存储在后端。
二、为什么 使用 SQL?
如今,SQL 广泛用于数据科学和分析。以下是解释为什么它被广泛使用的原因:
- 对于数据专业人员和 SQL 用户,SQL 的基本用途是从关系数据库中插入、更新和删除数据。
- SQL 允许数据专业人员和用户从关系数据库管理系统中检索数据。
- 它还可以帮助他们描述结构化数据。
- 它允许 SQL 用户创建、删除和操作数据库及其表。
- 它还有助于在关系数据库中创建视图、存储过程和函数。
- 它允许您定义数据并修改关系数据库中存储的数据。
- 它还允许 SQL 用户设置表列、视图和存储过程的权限或约束。
三、SQL 的历史
《A Relational Model of Data for Large Shared Data Banks》是伟大的计算机科学家“EF Codd”于1970年发表的一篇论文。
IBM 研究人员 Raymond Boyce 和 Donald Chamberlin 在学习 EF Codd 给出的论文后最初开发了 SEQUEL(结构化英语查询语言)。他们都于 1970 年在 IBM 公司的圣何塞研究实验室开发了 SQL。
在 1970 年代末,关系软件公司使用 EF Codd、Raymond Boyce 和 Donald Chamberlin 的概念开发了他们自己的第一个 SQL。该 SQL 完全基于 RDBMS。Relational Software Inc.,即现在的 Oracle Corporation,于 1979 年 6 月推出了 Oracle V2,这是 SQL 语言的第一个实现。此 Oracle V2 版本在 VAX 计算机上运行。
四、SQL的 执行过程
当我们在任何关系数据库管理系统上执行 SQL 命令时,系统会自动找到执行我们请求的最佳例程,并且 SQL 引擎决定如何解释该特定命令。
结构化查询语言在其过程中包含以下四个组件:
- 查询调度程序
- 优化引擎
- 经典查询引擎
- SQL查询引擎等
经典查询引擎允许数据专业人员和用户维护非 SQL 查询。SQL的架构如下图所示:
五、一些常用 SQL 命令
SQL 命令有助于创建和管理数据库。最常用的 SQL 命令如下:
- CREATE 命令
- UPDATE 命令
- DELETE 命令
- SELECT 命令
- DROP 命令
- INSERT 命令
CREATE 命令
此命令有助于创建新数据库、新表、表视图和数据库的其他对象。
UPDATE 命令
此命令有助于更新或更改数据库中存储的数据。
DELETE 命令
此命令有助于从数据库表中删除或擦除已保存的记录。它从数据库的表中删除单个或多个元组。
SELECT 命令
此命令有助于从数据库的一个或多个表中访问单行或多行。我们也可以将此命令与 WHERE 子句一起使用。
DROP 命令
此命令有助于从数据库中删除整个表、表视图和其他对象。
INSERT 命令
此命令有助于将数据或记录插入数据库表中。我们可以轻松地将记录插入到表的单行和多行中。
六、SQL 与No SQL
下表描述了 SQL 和 NoSQL 之间的区别,有必要了解:
SQL | No SQL |
---|---|
1. SQL是关系型数据库管理系统。 | 1. No-SQL 是一种非关系型或分布式数据库管理系统。 |
2. 本数据库系统使用的查询语言是结构化查询语言。 | 2. No-SQL 数据库系统中使用的查询语言是一种非声明式查询语言。 |
3、SQL数据库的schema是预定义的、固定的、静态的。 | 3. No-SQL 数据库的模式是非结构化数据的动态模式。 |
4. 这些数据库是垂直可扩展的。 | 4. 这些数据库是水平可扩展的。 |
5、SQL的数据库类型是表的形式,即行和列的形式。 | 5. No-SQL的数据库类型有文档、键值和图的形式。 |
6.SQL遵循ACID模型。 | 6.No SQL遵循BASE模型。 |
7.复杂的查询在SQL数据库中很容易管理。 | 7. NoSQL 数据库无法处理复杂的查询。 |
8. 此数据库不是存储分层数据的最佳选择。 | 8. No-SQL 数据库是存储分层数据的完美选择。 |
9. 所有 SQL 数据库都需要对象关系映射。 | 9. 许多 No-SQL 数据库不需要对象关系映射。 |
10. Gauges、CircleCI、Hootsuite等是使用这种查询语言的顶级企业。 | 10. Airbnb、Uber 和 Kickstarter 是使用这种查询语言的顶级企业。 |
11. SQLite、Ms-SQL、Oracle、PostgreSQL 和 MySQL 是 SQL 数据库系统的示例。 | 11. Redis、MongoDB、Hbase、BigTable、CouchDB 和 Cassandra 是 NoSQL 数据库系统的示例。 |
七、SQL 的优点
SQL 提供了各种优势,使其在数据科学领域更受欢迎。它是一种完美的查询语言,允许数据专业人员和用户与数据库进行通信。以下是结构化查询语言的最佳优点或好处:
1.无需编程
SQL 不需要大量的代码行来管理数据库系统。我们可以使用简单的 SQL 语法规则轻松访问和维护数据库。这些简单的规则使 SQL 用户友好。
2. 高速查询处理
使用 SQL 查询可以快速有效地从数据库中访问大量数据。对数据的插入、删除和更新操作也可以在更短的时间内执行。
3.标准化语言
SQL 遵循历史悠久的 ISO 和 ANSI 标准,为全球所有用户提供了一个统一的平台。
4. 便携性
结构化查询语言可以轻松用于台式电脑、笔记本电脑、平板电脑甚至智能手机。也可根据用户要求与其他应用程序配合使用。
5.交互语言
我们可以很容易地学习和理解 SQL 语言。我们也可以使用这种语言与数据库进行通信,因为它是一种简单的查询语言。这种语言还用于在几秒钟内接收复杂查询的答案。
6.多个数据视图
SQL 语言还有助于为不同的数据库用户制作数据库结构的多个视图。
八、SQL的缺点
虽然 有 SQL 优点,它也有一些缺点,具体如下:
1.成本
部分 SQL 版本的运行成本较高。这就是为什么有些程序员不能使用结构化查询语言。
2.接口复杂
另一个很大的缺点是结构化查询语言的界面比较难,SQL用户很难使用和管理。
3.部分数据库控制
业务规则是隐藏的。因此,使用这种查询语言的数据专业人员和用户无法完全控制数据库。