2023 年面向初学者的完整 SQL 教程

已发表: 2023-03-22

SQL(结构化查询语言)已经存在了几十年,是一种用于管理和操作数据的强大语言。 如果您想学习 SQL 但不知道从哪里开始,那么您来对地方了! 这本 SQL 终极指南是2022 年初学者的完美SQL分步教程。您将学习SQL 基础知识、如何编写查询以及更高级的主题,例如管理数据库、创建表和通过此SQL使用视图服务器教程。 在本指南的帮助下,您将能够自信地使用 SQL 为您的项目存储和检索数据。 那么,让我们开始吧!

目录

SQL 和 NoSQL 有什么区别?

SQL(结构化查询语言)是一种用于存储和管理数据的服务器语言。 它通常与关系数据库结合使用,关系数据库将数据存储在具有列和行的表中。

SQL 是一种结构化的数据库管理语言 (DBML),这意味着它遵循一套格式和规则。 有几种不同类型的 DBML,包括 SQL、NoSQL 和 NewSQL。 NoSQL 是一种不包含 SQL 的 DBML。 它是一种更开放的语言,这意味着它可以应用于各种数据模型,这与 SQL 不同,SQL 更加结构化并且最适合关系数据模型。 另一方面,NewSQL 是更现代的 SQL 版本,其中包含一些更新,例如新数据类型。

查看 upGrad 的软件开发课程。

为您的项目设置数据库

任何SQL 教程的第一步都是学习为您的项目设置数据库。 如果您使用的是 Firebase 等云数据库服务,则无需设置自己的数据库。 但是,如果您正在处理一个需要本地数据库的项目,则需要做一些事情。

  • 首先,打开命令行并使用“cd”命令(例如,cd Desktop/myProject/)导航到项目目录。
  • 使用以下 SQL 查询创建数据库:CREATE DATABASE 'myDatabaseName'。
  • 然后您可以关闭命令行并打开您首选的 SQL 编辑器,例如 Visual Studio Code 或 SQL Server Management Studio。

设置数据库后,现在您可以了解SQL 基础知识并尝试不同的查询和命令以实时查看它们的运行情况。

如何编写 SQL 查询

现在,让我们谈谈如何编写基本的 SQL 查询。

每个 SQL 查询都包含三个基本部分:SELECT子句、 FROM子句和WHERE子句。

SELECT 子句是您指定要检索哪些数据的地方。 FROM 子句指定可以从中检索数据的表。 WHERE 子句指定数据必须满足哪些条件才能包含在结果中。

下面是一个简单的SELECT查询示例

从“客户”中选择 *;

此查询将从“客户”表中提取所有客户。 这是另一个例子:

从“客户”中选择“名字”、“姓氏”,其中“客户”。 '州' = '德克萨斯州';

此查询将从“客户”表中选择 firstName 和 lastName 字段,并且仅包括居住在德克萨斯州的客户。

您可以在这些基本查询的基础上构建并执行更复杂和相互关联的命令,具体取决于您希望实现的目标。 然而,所有这些 SQL 查询的基本结构也将与上述相同。 语法保持不变!

检查我们的美国 - 数据科学计划

数据科学和商业分析专业证书课程 数据科学理学硕士 数据科学理学硕士 数据科学高级证书课程
数据科学执行 PG 计划 Python 编程训练营 商业决策数据科学专业证书课程 数据科学高级课程

创建表、视图和索引的基础知识

现在我们已经简要了解了一些SQL 基础知识,尤其是执行查询,让我们将本SQL 教程提升到一个新的水平,并讨论表、视图和索引。 从表格开始。

在 SQL 中创建表很容易——您只需使用CREATE TABLE查询并指定表名及其列。例如:

CREATE TABLE 'customers' ( 'id' INT PRIMARY KEY, 'firstName' VARCHAR(40) NOT NULL, 'lastName' VARCHAR(40) NOT NULL, 'state' VARCHAR(40) NOT NULL, 'emailAddress' VARCHAR(40)不为空)

以下是上述查询的细分:

  • 使用查询,我们正在创建一个名为“customers”的表。
  • 该表具有以下属性(或列):

1. Id——数据类型为“int”。此属性也是一个主键,这意味着在填充表时不能将此详细信息留空,并且在从其他表引用此表时将使用此属性。

2.firstName –数据类型为“varchar”,最大长度为 40 个字符。此属性设置为 Not Null,这意味着此字段也不能留空。

3. 同样,lastName、state 和 emailAddress是另外三个与 firstName 属性具有相同属性的属性。

创建表后,您可以使用INSERT INTO查询将数据插入其中,例如

INSERT INTO 'customers' ('id', 'firstName', 'lastName', 'state', 'emailAddress') VALUES (1, 'John', 'Doe', 'Texas', '[email protected] ');

您还可以使用DROP TABLE查询删除表,如下所示: DROP TABLE 'customers';

现在,让我们谈谈看法。 视图基本上是只存在于 SQL 内存中的表。 视图很有用,因为它们可用于操作数据而无需实际修改原始数据。

假设您有一张名为“customers”的包含客户信息的表,并且您想知道所有客户的平均年龄。 为此,您可以创建一个名为“averageAge”的视图,该视图汇总所有客户的年龄并将总数除以客户数量。

同样,您也可以创建索引。 索引可以被认为是一种以更快的方式从数据库中检索数据的工具。 用户看不到索引,它们只是为了加快搜索/查询速度。 您可以使用以下语法执行此操作:

CREATE INDEX index_name ON table_name (column1, column2, …);

SQL 中的高级主题:使用事务和存储过程

事务允许您将多个 SQL 查询组合在一起,以便它们仅作为一个整体成功或失败。 如果您需要运行多个查询,这将很有用,因为如果它们没有组合在一起,它们可能会相互交互并导致问题。

您可以使用BEGIN TRANSACTION查询开始一个事务,并使用COMMIT TRANSACTION查询结束它。您还可以使用ROLLBACK TRANSACTION查询来结束事务并放弃任何更改。

如果需要将多个查询组合在一起,可以使用存储过程。 就像在其他编程语言中使用函数一样,存储过程是一段可以在 SQL 中使用的代码。 您可以使用CREATE PROCEDURE查询创建存储过程并使用DROP PROCEDURE查询结束它

如何优化 SQL 查询以获得更好的性能

现在您了解了SQL 基础知识以及如何编写查询,让我们来谈谈如何优化您的 SQL 查询以获得更好的性能。

  • 确保您的数据井井有条,并且您的表格不会太大。 大表会导致查询运行缓慢,并导致数据库出现潜在问题。
  • 确保正确创建索引。 如果您的数据是关系数据,那么索引可以帮助加快查询速度。
  • 由于数据库引擎处理 SQL 查询,因此请确保您的数据库引擎经过优化且速度很快。 通过调整其设置(例如并发连接数、线程设置和 CPU)来优化您的数据库引擎。

初学者的 SQL 资源

现在您已经读完了本 SQL 指南,您已经走上了成为 SQL 专家的道路! 如果您想继续学习,可以查看一些资源。 第一个名为“艰难地学习 SQL”。 该资源是一个完整的分步指南,可以教您有关 SQL 所需的一切知识。 它甚至包括每章末尾的练习,以帮助您练习所学知识。 另一个很好的资源是“W3Schools SQL 教程”。 该网站还有一个全面的SQL 教程,易于理解和遵循。

综上所述

我们在本文中为您提供了对 SQL 的完整而简短的概述。 目的是帮助您开始 SQL 之旅,以便您轻松处理项目。 毕竟,SQL(或一般的数据库管理)是任何软件开发工作的核心。 如果您渴望成为一名全栈开发人员,这一点尤其正确——因为那样的话,您将被期望了解并乐于从事前端和后端工作,以及执行数据库管理活动。

在 upGrad,我们了解全栈开发在当今时代的重要性,也相信全面的全栈开发人员需要在所有重要方面进行适当的培训和实践。 为此,我们启动了为期 13 个月的软件开发执行研究生课程——全栈开发 该课程将带您穿越全栈开发的世界,并由行业专家和领导者陪同。

查看课程了解更多详情,赶快报名吧!

SQL有什么用?

SQL 是一种数据库管理语言,用于管理和操作以结构化格式(即表格)存储的数据。 这种通用的数据库语言极大地有助于从数据库中输入和检索有价值的数据。

有没有SQL的替代品?

不同的工具构建在 SQL 之上,但 SQL 仍然是管理结构化数据的核心。 虽然在与关系数据库交互方面没有 SQL 的替代方案,但可以使用许多替代方案轻松地将 SQL 合并到您的应用程序中。 这些包括 HaskellDB、ScalaQL 等。

没有计算机背景的人能看懂SQL吗?

SQL 非常直观且易于学习。 通过一些有纪律的练习,您可以轻松地开始使用 SQL 并继续学习它,无论您的学术背景如何,只要您有动力并愿意这样做。