sqlquery2014年2月28日更新

数据库就像大游泳池。如果你不知道如何游泳,那么大游泳池可能是一个令人生畏的,黑暗的地方。然而,如果你知道如何游泳,同样的游泳池可能是一个令人惊叹的地方,充满阳光灿烂的日子。同样,如果您知道这10个最基本和简单的SQL查询,巨大的数据库可能很有趣。

研究证明,这10个查询仅占可以用SQL表达的整个查询集的3%。但是这3%覆盖了90%的数据库常规操作。在我们开始讨论它们之前,最好知道这10个查询适用于市场上所有类型的SQL引擎。对于SQL的介绍,可以试试这个专为SQL查询新手开设的课程

揭秘SQL

SQL查询SQL只是一个接口,它帮助您使用查询与系统的数据库进行通信。我们转动汽车的方向盘,而不去考虑轮轴上可能发生的机械反应。我们只关心转弯。类似地,当我们使用SQL时,我们只需要触发简单的查询来从数据库中检索数据,而不需要考虑内部数据库操作。

SQL1.

有不同类型的SQL引擎可以在线免费使用。但是,对于初学者,我推荐SQLite3在这里下载

通过键入sqlite test.db,从命令行运行它

设置好之后,屏幕上应该会出现一个SQL提示符

创建一个表

通过触发以下查询来开始创建空表

创建表student (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);

这将创建一个名为“学生”的表,其中包含0行。此表将存储学生的记录。它将有学生证,学生名称和学生年龄。它的结构将是这样的:

ID(主键) 名称 年龄

在这里,列ID是一个主键。这意味着该列只能有唯一的值。它也不能留空。名称列可以有字符,年龄列将有年龄的数字。

试试这个课程更实用的SQL技能。

现在,我们将逐一处理这10个查询。

1。在表中插入记录

在表中插入数据非常容易。只需键入以下查询

INSERT INTO student (id, name, age) VALUES (' 1 ', ' alan ', 28);

在INSERT INTO语句中,按顺序在表名之后指定列名,然后在values关键字之后指定所需的值。

在触发这个查询之后,我们的表看起来像这样:

ID 名称 年龄

1

艾伦 28.

我们可以触发更多这样的查询来填充表中的记录。

Insert into student (id, name, age) values (' 2 ', 'amy', ' 26 ');Insert into student (id, name, age) values (' 3 ', 'bob', ' 27 ');Insert into student (id, name, age) values (' 4 ', 'chris', ' 28 ');Insert into student (id,name, age) values (' 5 ', 'dan', ' 26 ');

现在表格变成了。

ID 名称 年龄
1 艾伦 28.
2 艾米 26.
3. 鲍勃 27.
4. 克里斯 28.
5. 26.

2.查看表中的所有记录。

这是所有查询中最简单也是最常用的查询。只要输入

SELECT * FROM student;

此查询的结果将显示表中存在的所有行。

ID 名称 年龄
1 艾伦 28.
2 艾米 26.
3. 鲍勃 27.
4. 克里斯 28.
5. 26.

我们还可以在SELECT语句中使用ORDER BY子句,以以特定顺序排列显示的结果。例如,

选择*从学生订单到年龄;

会给你:

ID 名称 年龄
2 艾米 26.
5. 26.
3. 鲍勃 27.
1 艾伦 28.
4. 克里斯 28.

产量按年龄递增的顺序排列。如果希望按降序排列显示,可以在查询中的列名后使用DESC关键字。

3.仅从表中查看选定的记录

如果表中有大量行,我们不希望所有记录填充我们的显示屏,则SQL为我们提供了仅查看所选行的选项。

SELECT COUNT(1) FROM student; / /查询编号

这个查询的输出将是

ID 名称 年龄

1

艾伦 28.

如果我们火:

从学生中选择Count *;

它将返回我们表格的行数。我们还可以在我们的查询中使用Max和Min功能。例如,如果我们想检索具有最大年龄的学生的详细信息,我们可以发射:

从学生中选择ID,Name,Max(年龄);

我们会得到:

ID 名称 年龄
1 艾伦 28.
4. 克里斯 28.

我们还可以检查数字列的和。例如,

从学生选择总和(年龄);

输出为135。

记住,我们可以只使用数字列的MAX, MIN, SUM函数。将这些函数与文本列一起使用将抛出错误。

4。删除表中的记录

要从表中删除所选行,只需触发以下查询:

DELETE FROM student WHERE name = ' alan ';

这个查询将删除表' student '中' name '列有' alan '值的整行或多行。

在我们的情况下,此查询的结果将在下表

ID 名称 年龄
2 艾米 26.
3. 鲍勃 27.
4. 克里斯 28.
5. 26.

休息时间!

sql“一个SQL查询进入一条栏,走到两个桌子,问:”我可以加入你吗?“

我有一个很好的笑声。继续!

5。在表中更改现有记录中的数据

假设我们希望在桌上改变名为“amy”的学生的年龄。我们会发射此查询:

UPDATE student SET age = 22 WHERE name = ' amy ';

您可能已经注意到,我们在“where values are characters”中指定了name。这是必须的。

现在如果我们解雇:

SELECT * FROM student;

输出如下表:

ID 名称 年龄
2 艾米 22.
3. 鲍勃 27.
4. 克里斯 28.
5. 26.

在使用WHERE子句触发UPDATE或DELETE查询时要小心。假设在我们的表' student '中有不止一个名为' Amy '的学生。在这种情况下,所有名字为“Amy”的学生的年龄将被更新为22岁。这就是为什么在更新或删除时总是首选在WHERE子句中使用PRIMARY KEY。

在更改列中的数据时,还需要注意列中的数据类型。数字列中只能有数字,而文本列中可以有文本。这意味着如果我们试图使用UPDATE语句将age = ' Amy '放到age列中,SQL将抛出异常。您可以了解更多有关SQL中发生的错误和异常类型的信息。关于这一点,请参阅这门课上另一个常见的例子。

6.查看表格的记录,而不知道确切的细节

在现实生活中,当我们与数据库交互时,很有可能无法准确地知道任何列值。例如,如果我是学校的一名数据操作员,我可能会知道我们学校有一个学生叫丹,因为我可能听到其他老师谈论他。现在我想看看丹的全部记录,但我不知道他的名字怎么拼。不管是' Dan '还是' Den '在这种情况下,我们可以使用SQL提供的LIKE操作符。

我们将触发以下查询。

SELECT * FROM student WHERE name LIKE ' d%n ';

此查询的输出将是

ID 名称 年龄
5. 26.

7.在where子句中使用多个条件来检索记录

要了解使用此参数的要求,请首先在我们的表中插入一行。现在你应该自己尝试,我不会告诉你语法。尝试在我们的表“学生”中添加一行,ID为6,名称为“丹”和年龄为24。

我们的表现在变成了

ID 名称 年龄
2 艾米 22.
3. 鲍勃 27.
4. 克里斯 28.
5. 26.
6. 24.

现在,如果我们发现我们的查询

SELECT * FROM student WHERE name = ' dan ';

那么输出将是

ID 名称 年龄
5. 26.
6. 24.

所以现在,我们观察到我们无法使用Where子句中的名称值来获取唯一的记录。这里出现了需要将多个条件组合在其中的WHERE子句中,这些条件可以使用诸如和或。例如,如果我们火:

SELECT * FROM student WHERE name = ' dan ' AND age = 24;

我们得到以下输出

ID 名称 年龄
6. 24.

您还可以在WHERE子句中组合和&或条件,以更进一步地改进您的搜索。例如,如果我们开火

选择*来自名称='丹'或年龄> 25的学生

输出将

ID 名称 年龄
3. 鲍勃 27.
4. 克里斯 28.
5. 26.
6. 24.

您可以使用不同的条件,或者,或,<,>在组合中或单独使用,或者在where子句中获取所需的行。尝试自己这样做。

学习如何使用SQL查询和操作Oracle关系数据库中的数据的最佳实践

8.仅从表中查看所选列

如果我们触发一个查询

SELECT name FROM student WHERE年龄为25

显示如下输出

名称
鲍勃
克里斯

我们可以观察到学生的名字是印刷的。在这里,由于在Where子句中指定的条件,我们只有年龄的年龄的年龄大于25的名称。

我们还可以在SELECT语句中使用多个列名,用一个,

例如:

查询学生姓名、年龄

将此作为输出:

名称 年龄
艾米 22.
鲍勃 27.
克里斯 28.
26.
24.

您还可以更改屏幕上显示的列序列。例如:

查询学生年龄、姓名

会给出以下输出吗

年龄 名称
22. 艾米
27. 鲍勃
28. 克里斯
26.
24.

9.了解表格的结构

它发生在我相当多的时候,我在我的数据库中创建了一个表,我忘记了它有什么所有的列和哪列是主键。我感谢各种SQL引擎的设计者在设计SQL引擎时,将像我这样的人铭记于心。通过一个非常简单的查询,您可以了解所创建的表的结构的完整细节。

不同的SQL引擎对它有不同的命令。例如在sqlite3中,命令是

. schema的学生;

在PostgreSQL中呢\ d学生

MySQL使用下面的命令描述学生;

其中' student '是表名。

10.检查查询性能

这是一个高级查询。如果您需要弄清楚查询太慢的原因,则特别有用。触发查询

SELECT * FROM student; / /查询计划

您可以在SQL语句之前使用EXPLAIN来获得查询各个部分的计时拆分。这对于挖掘查询缓慢背后的原因很有用。

在PostgreSQL中,您可以在查询之前使用解释和解释分析。这PostgreSQL的初学者指南可以指导你完成这个过程。

在SQLite3中,可以在查询之前使用EXPLAIN QUERY PLAN。要学得更多,尝试SQL培训简介

并且那是前10名!有关更全面的培训,请尝试以下课程:

学习如何使用SQL查询和管理Oracle数据库中的数据。实用的、概念构建的例子和测验。

Oracle SQL基础知识

Microsoft SQL Server 2012认证培训考试70-463

SQL顶级课程

SQL和PostgreSQL:完整的开发人员指南
Stephen主梁
4.7 (1,448)
评价最高
终极MySQL训练营:从SQL初学者到专家
柯尔特·斯蒂尔,这是伊恩·斯库诺弗
4.6 (54254)
畅销书
SQL - MySQL的数据分析和商业智能
365年职业生涯
4.6 (27762)
畅销书
高级SQL: SQL专家认证准备课程
Oracle Master Training•全球80,000多名学生,Code Star Academy
4.5 (2201)
完整的SQL和数据库Bootcamp:零掌握[2021]
Andrei Neagoie, Mo Binni
4.6 (1464)
SQL for初学者:使用MySQL和数据库设计学习SQL
Tim Buchalka的学习编程学院,Jon Avis - SQL教练
4.5 (11164)
SQL & PostgreSQL初学者:成为一个SQL专家
Jon Avis - SQL教练
4.6 (3226)
畅销书
SQL编程基础知识
全球学院
4.4 (106)
SQL Server: 27小时大师班课程(1中8门课程)
O.Thuillier | SQL | Postgres | Powershell| MySQL |管理、TSQL和SQL Server性能。
4.5 (20)
Oracle SQL - Step by Step SQL
Reddy Amarnath
4.4 (2160)
学习SQL初学者到高级水平
亚历山大Shafe
4.7 (30)

多个SQL课程

SQL学生也学习

让你的团队。领导行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求一个演示