SQL 命令示例:SQL 完整实用指南

2025-11-19 18:38:47

发现 comandos 查询、管理和安全的基本 SQL 和实际示例 数据库.

了解如何使用 SELECT、WHERE、JOIN、GROUP BY、聚合函数和视图,以及语法和实际用例。

见面 技巧 高级、权限管理和常见问题解答,以在专业环境中掌握 SQL。

结构化查询语言 SQL 就是这样一种工具,一旦掌握,它就会成为您与任何关系数据库交互的最佳助手。如果您想知道如何轻松高效地访问、修改、删除或分析大量数据,那么 SQL 就是您一直在寻找的答案。 学习正确使用 SQL 命令 标志着从普通用户到数据管理和分析的真正专家之间的区别。

在本文中,我为您带来 主要 SQL 命令的综合汇编 本书配有清晰的解释和实例,涵盖从基础知识到高级查询的所有内容。我还将向您展示一些在浅显易懂的文章中经常被忽略的技巧和细节,以便您能够充分利用数据库,无论您是刚入门还是希望提升知识水平。准备好深入 SQL 世界,探索这门语言如何改变您处理信息的方式。

什么是 SQL 以及为什么它仍然很重要?

SQL,即结构化查询语言,是一种查询语言 编程 专为管理和操作关系数据库而设计。尽管它是在 70 世纪 XNUMX 年代开发的,但它仍然是与 MySQL、PostgreSQL、SQL Server、MariaDB 和 Oracle Database 等数据库通信的标准解决方案。

它长盛不衰的原因很简单: SQL 支持从查询数据等基本任务到连接复杂表、创建结构、批量更新记录或定义权限等高级操作的所有操作。。此外,它的语法足够简单,任何人都可以快速熟悉,但功能强大,足以解决复杂的业务问题。

从开发人员、分析师、数据库管理员到数据科学家等各领域的专业人士都依赖 SQL 来处理、清理和分析其项目和组织的关键数据。

SQL 命令类别:DQL、DML、DDL 和 DCL

在我们开始讨论这些例子之前,值得记住的是 SQL 命令可以根据其功能分为不同的类别:

DQL(数据查询语言): 这些是查询数据的句子,例如 选择.

DML(数据操作语言): 他们使用如下命令来操纵记录 插入, 更新 y 删除.

DDL(数据定义语言): 它们管理数据库的结构,例如, CREATE, 改变, 下降 y 截短.

DCL(数据控制语言): 他们使用以下方式控制权限和访问 授 y 撤销.

每种类型的命令在日常数据库管理中都发挥着至关重要的作用。了解在各种情况下应该使用哪种命令,以避免数据管理中的错误甚至灾难,这一点至关重要。

主要 SQL 命令:基础知识和实际示例

掌握基本的 SQL 命令几乎可以开启任何数据管理或分析任务的大门。下面,我将讲解一些最相关的命令、它们的工作原理,并提供一些示例来帮助你学习它们。

SELECT:查询之王

命令 选择 它是 SQL 中大多数操作的基础。它允许您检索存储在一个或多个表中的数据。

一般语法:

从表名中选择列 1、列 2、...;

要获取表中的所有列,只需使用星号:

从员工中选择*;

如果要过滤特定数据,可以添加条件:

SELECT 姓名,年龄 FROM 员工 WHERE 年龄 > 30;

由于 选择 您可以检索从单个值到复杂数据集的所有内容、应用聚合函数、计算派生列以及为报告或可视化准备数据。

如何在 Windows 10 中查找大文件WHERE:精确筛选结果

该条款 在 它允许您指定条件,以仅选择符合特定条件的行。它是任何查询的基本过滤器。

基本语法:

从产品中选择*,其中价格<100;

您可以使用逻辑运算符来组合条件,例如 AND, OR y 不是以及比较运算符 (=、<、>、<=、>=、<>).

例如招聘30岁以下的销售人员:

SELECT * FROM 员工 WHERE 部门 = '销售' AND 年龄 < 30;

插入:添加新记录

连接器 插入 您可以向表中添加新行。这对于向数据库提供新信息至关重要。

一般语法:

插入产品(名称,价格)值('键盘',29.99);

如果要在单个查询中添加多个记录,也可以这样做:

插入产品(名称,价格)值('鼠标',15.50),('显示器',120.00);

请记住,如果省略列表,则必须为表中的每个字段提供一个值,并遵守它们的顺序。

更新:修改现有数据

命令 更新 允许您更改符合特定条件的记录中一个或多个字段的值。这对于更正错误或更新信息非常有用。

句法:

更新员工设置工资=工资*1.05其中部门='市场营销';

在这个例子中,所有市场部员工的工资都会增加5%。这一点至关重要。 无论何时更新,都使用 WHERE,除非您确实想修改整个表。

DELETE:删除数据

要删除记录,请使用 删除 条件旁边,从而避免意外删除表中的所有数据。

例如:

从产品中删除其中 id_producto = 10;

如果省略 WHERE 子句,表中的所有行都将被删除。注意!

ORDER BY:组织结果

该条款 ORDER BY 用于根据一个或多个列对查询结果进行排序。默认情况下,顺序将按升序排列,但您可以指定 ASC o 倒序 根据您的需要。

SELECT * FROM 员工 ORDER BY 工资 DESC;

您可以组合多个列进行排序:

SELECT * FROM 产品 ORDER BY 类别 ASC,价格 DESC;

GROUP BY 和聚合函数:SUM、AVG、MIN、MAX、COUNT

通过...分组 允许您根据一个或多个列对结果进行分组,这与以下函数结合使用非常有用: 和() (添加), AVG() (平均的), 闵 (最低限度), 最大 (最大)和 COUNT个 (计数)。

例如,要知道每个类别中有多少种产品:

SELECT 类别,COUNT(*) FROM 产品 GROUP BY 类别;

或者计算每个顾客的总账单:

SELECT customer_id, SUM(金额) FROM sales GROUP BY customer_id;

您可以使用该子句过滤结果组 HAVING:

SELECT 部门,AVG(薪水) FROM 员工 GROUP BY 部门 HAVING AVG(薪水)> 2000;

LIMIT 和 OFFSET:限制结果数量

当你的表有数千条记录时, 极限 仅显示部分结果至关重要,以提高性能和可读性。

从产品中选择*限制10;

连接器 OFFSET 您可以跳过多行,这对于分页很有用:

从产品中选择*限制10偏移20;

BETWEEN、IN 和 LIKE:高级 WHERE 条件

这些关键词扩展了过滤的可能性:

之间: 选择一定范围内的值。

SELECT * FROM 员工 其中工资介于 1000 和 3000 之间;

中: 搜索多个值。

SELECT * FROM 产品 WHERE 类别 IN ('计算机', '电子产品');

喜欢: 在文本中寻找模式。

SELECT * FROM 客户其中名称 LIKE 'A%';

也可以使用通配符,例如 % (任意数量的字符)和 _ (单个字符)使用 LIKE 进一步定制搜索。

JOIN:跨表交叉信息

SQL 的强大功能之一是能够使用以下方法组合来自不同表的数据 注册。最常见的是:

内连接: 返回两个表中匹配的行。

左连接: 返回左表中的所有行以及右表中的任何匹配项(如果没有匹配项,则用 NULL 填充)。

正确的加入: 返回右表中的所有行以及左表中的所有匹配行。

完全外连接: 返回两个表中的所有行(没有匹配的地方用 NULL 填充)。

如何创建存储路径或附件的 Access 数据库内连接示例:

从订单中选择 orders.id、customers.name INNER JOIN customer ON orders.customer_id = customer.id;

左连接:

从员工中选择员工.姓名、销售额.金额 左连接销售额 ON 员工.id = 销售额.员工_id;

ALTER、CREATE 和 DROP:修改数据库结构

除了操作数据之外,SQL 还允许您定义和修改表和其他数据库对象的结构:

创建: 创建新对象(表、视图、索引、用户……)。

创建表产品(id INT PRIMARY KEY,名称 VARCHAR(100),价格 DECIMAL(8,2));

改变: 修改现有对象的结构。

ALTER TABLE 产品 ADD 描述 VARCHAR(255);

ALTER TABLE 产品 ALTER COLUMN 价格 SET NOT NULL;

降低: 从数据库中删除对象。

删除表产品;

删除用户 example_user CASCADE;

视图(VIEW):可重复使用的查询和高级过滤

该 意见 它们是表示已保存查询的虚拟对象。它们的功能类似于表,但不存储数据;它们仅指向其他表中的信息。它们有助于简化复杂查询、集中筛选器以及方便访问特定信息。

创建视图 act​​ive_employees AS SELECT * FROM 员工 WHERE active = 1;

您可以像查询表一样查询视图:

从活跃员工中选择*;

视图非常适合管理权限并仅向特定用户显示相关数据。

列上的聚合函数和计算

SQL 允许您使用 添加的功能 和算术运算符对数据进行计算:

和(): 某一列的总和。

平均值(): 算术平均。

MIN() 和 MAX(): 最小值和最大值。

数数(): 记录数。

例如,如果您想知道每个部门的员工人数:

SELECT 部门,COUNT(*) FROM 员工 GROUP BY 部门;

或者按部门划分的最高薪资:

SELECT 部门,MAX(薪水)FROM 员工GROUP BY 部门;

您甚至可以直接在查询中创建计算列:

从员工中选择姓名、薪水*0.95 作为净薪水;

对表和列使用别名 (AS)

在查询中,您可以使用命令为列和表分配临时名称 AS这使得读取结果和编写复杂查询变得更加容易。

例如:

从员工中选择 e.name 作为员工,d.name 作为部门从员工作为 e 加入部门作为 d ON e.department_id = d.id;

这样,结果将显示具有自定义名称的列。在执行 JOIN 或列名称较长或难以描述的场景下,使用别名尤其有用。

高级 SQL 查询示例:解决实际案例

要想熟练掌握 SQL,你需要面对真正的挑战。以下是一些建议: 扩展示例 从实际案例中提取,有助于巩固知识。

查询某个部门的所有员工及其总销售额

SELECT e.id, e.name, SUM(v.amount) AS total_sales FROM employee e JOIN sales v ON e.id = v.employee_id WHERE e.department = 'Sales' GROUP BY e.id, e.name;

此示例显示如何连接表、应用聚合函数和过滤结果。

按部门计算平均工资和最高工资

SELECT 部门,AVG(薪水)AS 平均薪水,MAX(薪水)AS 最高薪水 FROM 员工 GROUP BY 部门;

这样,您就可以分析薪酬分配并找出不平等或激励更大的领域。

使用 CASE 按价格范围统计产品数量

SELECT CASE WHEN price < 50 THEN '便宜' WHEN price < 150 THEN '中等' ELSE '昂贵' END AS price_range, COUNT(*) AS amount FROM products GROUP BY price_range;

用例 允许您在查询中创建自定义类别。

查找重复记录的示例查询

从客户中选择名称、COUNT(*) 按名称分组,其中 COUNT(*) > 1;

这有助于您保持数据库清洁且无冗余数据。

确定第 n 高工资(子查询)

从员工中选择 TOP 1 薪资(从员工中选择不同的 TOP N 薪资按薪资降序排列)按薪资升序排列;

非常适合回答技术面试中的问题或制作高级报告。

Access 中格式错误和数据库损坏故障排除完整指南自动删除旧记录

删除自 日志 其中日期

非常适合需要控制表大小的生产数据库。

SQL 中的实用技巧和窍门

掌握 SQL 不仅仅意味着知道如何编写基本查询。以下是一些 充分利用语言的技巧:

在 UPDATE 和 DELETE 中始终使用 WHERE 以防止意外的大量修改或删除。

在最常被访问的列上建立索引 加快搜索和加入的速度。

优先使用显式 JOIN 而不是 WHERE 来连接表: 便于维护和可读性。

使用聚合函数和 GROUP BY 无需依赖外部电子表格即可自动报告和分析。

在测试数据库上进行测试 在做出重大改变之前。

使用 GRANT 和 REVOKE 控制权限 以确保您的数据安全。

欣赏美景(VIEW) 简化对复杂信息的访问并集中业务逻辑。

不要过度使用 SELECT *,因为您可能会引入超出必要范围的数据并降低系统速度。

对复杂查询进行评论 以方便日后的维护。

面试和实际案例中SQL命令的常见问题

掌握 SQL 是应对技术面试和解决日常问题的关键。以下是一些典型的问题和答案,可以帮助你做好准备:

什么是 INNER JOIN?

这是 SQL 中的默认连接;它返回与两个表匹配的行。例如:

从 A 内部连接 ​​B 中选择 *,A.id = B.a_id;

LEFT JOIN 用于什么?

返回左表的所有行以及右表的所有匹配项。例如:

SELECT * FROM 员工 LEFT JOIN 销售 ON 员工.id = 销售.员工_id;

DROP 和 DELETE 之间有什么区别?

删除 从表中删除行,而 下降 从数据库中完全删除对象(表、视图、用户)。

ALTER 之后可以回滚吗?

不可以,因为 ALTER 是 DDL 语句,很多系统会自动提交。所以在使用前务必确认。

什么是伪列?

它们是系统生成的虚拟列,例如 Oracle 中的 ROWID、USER 或 CURRVAL。

如何创建视图?

创建视图 view_employees AS SELECT 姓名,薪水 FROM 员工;

如何授予权限?

授予 ana, rita 对库存的选择权限;

如何删除用户及其数据?

DROP USER 用户 CASCADE;

SQL 中的正则表达式和特殊运算符

SQL 中一个鲜为人知但非常强大的功能是使用正则表达式和高级运算符搜索模式。例如:

%: 表示任意长度的任意字符串(用于 LIKE)。

_ : 代表单个字符(在 LIKE 中也是如此)。

| : 交替,寻找这个或那个东西。

*: 重复一个字符零次或多次。

高级管理:角色、权限和安全

管理数据库不仅限于查询和修改数据。使用以下命令来控制谁可以访问、修改或删除信息至关重要: 授, 撤销或高级管理 ROLES:

创建角色经理;

授予经理对员工的 SELECT、INSERT、UPDATE 权限;

授予经理胡安,玛丽亚;

这样,您就可以集中管理安全性,并在大型环境中简化权限管理。如果您想深入了解权限管理,请查看我们的文章 自动化和管理.

相关文章:Windows 中的 .ETL 文件:它们是什么、它们的用途以及如何分析它们

艾萨克对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。

    女朋友不理你不回信息?解决方法与心态调整全攻略
    始皇帝焚书坑儒

    Copyright © 2022 摩洛哥世界杯_直播世界杯决赛 - dgaida.com All Rights Reserved.