SQL教程
SQL教程提供SQL的基本和高级概念。我们的SQL教程旨在面向初学者和专业人士。
SQL(Structured Query Language)用于对存储在数据库中的记录执行操作,例如更新记录、插入记录、删除记录、创建和修改数据库表、视图等等。
SQL不是数据库系统,但它是一种查询语言。
假设您想对数据库中存储的数据执行SQL语言的查询。您需要在系统中安装任何数据库管理系统,例如 Oracle , MySQL , MongoDB , PostgreSQL , SQL Server , DB2 ,等等。
什么是SQL
SQL是结构化查询语言的缩写,发音为S-Q-L或有时为See-Quell。
这个数据库语言主要用于维护关系数据库管理系统中的数据。它是数据专业人员处理结构化数据(以表格形式存储的数据)的特殊工具。它还设计用于RDSMS中的流处理。
您可以轻松创建和操作数据库,访问和修改表格行和列等等。这个查询语言在1986年成为ANSI的标准,在1987年成为ISO的标准。
如果您想在数据科学领域找工作,学习SQL是最重要的查询语言。像Facebook,Instagram和LinkedIn等大型企业使用SQL来存储后端的数据。
为什么使用SQL
如今,SQL在数据科学和分析中被广泛使用。以下是解释它被广泛使用的原因:
- 数据专业人员和SQL用户的基本用途是从关系数据库中插入、更新和删除数据。
- SQL允许数据专业人员和用户从关系数据库管理系统中检索数据。
- 它还帮助他们描述结构化数据。
- 它允许SQL用户创建、删除和操作数据库及其表格。
- 它还帮助在关系数据库中创建视图、存储过程和函数。
- 它允许您定义数据并修改关系数据库中存储的数据。
- 它还允许SQL用户在表格列、视图和存储过程上设置权限或约束。
SQL的历史
“大型共享数据库的关系模型”是由伟大的计算机科学家E.F.科德(E.F. Codd)在1970年发布的一篇论文。
IBM的研究人员Raymond Boyce和Donald Chamberlin在从E.F. Codd获得的论文中学到后,最初开发了SEQUEL(Structured English Query Language)。他们俩在IBM公司的圣何塞研究实验室于1970年开发了SQL。
在1970年代末,关系软件公司(现在已更名为Oracle Corporation)根据E.F.科德、Raymond Boyce和Donald Chamberlin的概念开发了自己的第一个SQL。这个SQL完全基于RDBMS。关系软件公司于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 vs No-SQL
以下表格描述了SQL和NoSQL之间的差异,这些差异是必须了解的:
SQL | No-SQL |
---|---|
1. SQL是关系型数据库管理系统。 | 1. No-SQL是非关系型或分布式数据库管理系统。 |
2. 此数据库系统中使用的查询语言是结构化查询语言。 | 2. No-SQL数据库系统使用的查询语言是非声明性查询语言。 |
3. SQL数据库的模式是预定义的,固定的和静态的。 | 3. No-SQL数据库的模式是用于非结构化数据的动态模式。 |
4. 这些数据库是垂直可扩展的。 | 4. 这些数据库是水平可扩展的。 |
5. SQL的数据库类型是以表的形式,即以行和列的形式。 | 5. No-SQL的数据库类型是以文档,键值和图形的形式。 |
6. 它遵循ACID模型。 | 6. 它遵循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. 部分数据库控制
业务规则是隐藏的。因此,使用这种查询语言的数据专业人员和用户无法完全控制数据库。