sql1SQL或结构化查询语言是一种特殊用途的编程语言,用于管理关系数据库系统(RDBMS)。基本的SQL语句包括从表中删除内容或记录、更新表中的记录或向表中插入新数据等操作。高级SQL侧重于更复杂的SQL策略和语句的设计。此外,它还关注连接、视图和子查询。连接和子查询是可互换的。然而,SQL使用子查询和连接视图来隐藏查询的复杂性。

学习SQL从头开始使用教程在Udemy.com

UNION和UNION ALL操作符:

对于组合SELECT命令的两个或多个语句的结果集,使用UNION和UNION ALL操作符。在每个SELECT语句中,要组合的列应该具有相同的数据类型和列顺序。

联盟:

默认情况下,UNION操作符只选择不同的值。

一般的语法:

SELECT column-name(s) FROM table1

在Udemy.com了解更多关于SQL的信息

例子:

让我们为我们的示例创建两个名为“生产者”和“接收者”的表。

生产商

接收器

S2

从生产国中选择国家

UNION SELECT Country FROM receiver ORDER BY Country;

此示例将不包括来自Producers表中列Country的重复值。

联盟:

这个操作符也将包括来自表Producers中列Country的重复值,并根据Country对它们进行排列。

一般的语法:

SELECT column-name(s) FROM table1

例子:

SELECT Country FROM Producers UNION FROM receiver ORDER BY Country; / /从生产者联盟中选择国家

这将从列国家中选择重复的值。

内联视图:

可以在SQL语句的“FROM”子句中使用子查询。内联视图允许您将子查询视为预定义的表或视图。它只存在于创建它的查询中。

一般的语法:

SELECT " column-name " FROM (inline view);

交叉算子:

INTERSECT操作符类似于UNION命令,对两个SQL语句进行操作。INTERSECT和UNION的区别在于,UNION充当OR运算符,而INTERSECT运算符充当and运算符。

一般的语法:

SQL语句1 SQL语句2;

例子:

让我们以之前的“生产者”和“接收者”表为例。

SELECT Country FROM Producers INTERSECT SELECT Country FROM receiver;

此示例将选择那些同时出现在生产者和接收者表中的国家。

输出:

国家

意大利

-命令:

MINUS命令还操作两个SQL语句。MINUS命令保留第一个语句的结果,然后从第一个语句的结果减去从第二个语句获得的结果,从而得到最终的结果。如果第二个语句包含第一个语句中没有的结果,那么该结果将被忽略。应该注意,MINUS命令只选择不同的值。

了解更多关于SQL数据库从头开始通过教程在Udemy.com

一般的语法:

SQL语句1减SQL语句t2;

例子:

让我们以“生产者”和“接收者”表为例。

SELECT Country FROM生产国减去接收国

输出:

国家

德国

解释:

第一条语句将返回一个包含Country as Italy和Germany的结果,而第二条语句将产生一个包含Country as Italy和Mexico的结果。第二个语句包含第一个语句中没有的结果,比如墨西哥,将被忽略,并从第一个语句中减去意大利。最终的结果将是“德国”。

限制命令:

在SQL中,默认情况下返回所有满足条件的结果。但有时,您不希望检索所有原始数据。因此,LIMIT命令用于检索所有记录的子集。此外,对于LIMIT命令,ORDER BY命令通常用于按特定列对列表排序。可以使用多个列对列表进行排序。

一般的语法:

SQL语句1 LIMIT [N];[N]是我们想要显示的值的数量。

例子:

让我们以创建一个名为“Producers”的表为例。

S3

SELECT ProID,ProName,ContactName,Country FROM生产者ORDER BY ProID DESC LIMIT 2;

现在,这个示例将只显示表producer中的两行,按降序排列。

子查询:

子查询为您提供了将一条SQL语句添加到另一条SQL语句中的灵活性。

一般的语法:

SELECT column-name1 FROM table-name1 WHERE column-name2 FROM table-name1 WHERE column-name2

语句" (SELECT column-name3 FROM table-name2 WHERE condition); "被认为是内部查询而语句“SELECT column-name1 FROM table-name1 WHERE column-name2[比较运算符]”被认为是外查询

例子:

S5

S6

SELECT ProName FROM生产者WHERE Country IN (SELECT Country FROM接收者WHERE ConatactName= ' Angela ');

输出:

ProName

尼科

存在:

在上面的示例中,使用In语句将内部查询与外部查询链接起来。也可以使用其他操作符,如<、>或=。类似地,EXISTS是一种特殊的操作符,用于检查内部查询是否返回一行。只有当内部查询返回任何行时,外部查询才会继续,否则将不会执行。

一般的语法:

SELECT * FROM table-name1 WHERE EXISTS (SELECT * FROM table-name2 WHERE EXISTS);

案例:

CASE用于为SQL语句提供if-then-else条件逻辑。SQL中有两种类型的CASE语句。

简单的例子:

使用simple CASE,将表达式与静态值进行比较。

语法:

SELECT CASE (column-name) WHEN value1 THEN result1 WHEN value2 THEN result2 .......ELSE result END FROM table name;

ELSE子句是可选的。

搜索的例子:

在search CASE中,表达式将与一个或多个逻辑条件进行比较。

语法:

SELECT CASE WHEN condition3 THEN result3 WHEN condition4 THEN result4 ELSE result END FROM table name;

ELSE子句是可选的,但“condition”可以包含一个或多个逻辑语句。

SQL顶级课程

SQL & PostgreSQL初学者:成为一个SQL专家
Jon Avis - SQL讲师
4.6 (3296)
畅销书
SQL和PostgreSQL:完整的开发人员指南
Stephen主梁
4.8 (1536)
评价最高
高级SQL: SQL专家认证准备课程
9万多名学员,Code Star学院
4.5 (2305)
完整的SQL训练营2021:从零到英雄
何塞Portilla
4.7 (100262)
畅销书
终极MySQL训练营:从SQL初学者到专家
柯尔特·斯蒂尔,这是伊恩·斯库诺弗
4.6 (54940)
畅销书
SQL - MySQL的数据分析和商业智能
365年职业生涯
4.6 (28282)
畅销书
Master SQL For Data Science
Imtiaz艾哈迈德
4.6 (7665)
完整的SQL和数据库训练营:零到精通[2021]
Andrei Neagoie, Mo Binni
4.6 (1542)
SQL初学者:学习SQL使用MySQL和数据库设计
Tim Buchalka的学习编程学院,Jon Avis - SQL讲师
4.5 (12034)
从头开始学习SQL +安全(笔)测试
拉胡尔谢蒂
4.5 (1629)
畅销书
SQL For Data Science With谷歌Big Query
克里斯·莱维
4.6 (1289)

多个SQL课程

SQL学生也学习

让你的团队。领导行业。

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

请求一个演示