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. 部分数据库控制
业务规则是隐藏的。因此,使用这种查询语言的数据专业人员和用户无法完全控制数据库。