前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >互联网十万个为什么之什么是SQL

互联网十万个为什么之什么是SQL

作者头像
linus_lin
发布2024-10-21 11:13:40
520
发布2024-10-21 11:13:40
举报
文章被收录于专栏:SRE云原生实践之路

SQL(Structured Query Language,即结构化查询语言)是一种用来操作数据库系统的编程语言,也是与数据库通信的指令,可以在数据库中对数据进行查询、插入、更新、删除等操作。

SQL可以用来做什么?

  • 从数据库中查询需要的数据
  • 创建新的数据库或在数据库中新建表
  • 更新数据库,在数据库中添加新的记录或删除某条记录
  • 设置数据库或表的访问权限

SQL与数据库有什么关系?

SQL是数据库操作的标准语言,专用于管理和操作数据库系统,执行对数据的增删改查操作,或实现更复杂的数据处理需求。通常关系型数据库(如MySQL、PostgreSQL等)都支持SQL语法,部分非关系型数据库(如Lindorm、TableStore等)也支持使用SQL作为查询和操作语言。

为什么需要使用SQL?

SQL语言还具有以下优势:

  • 高兼容性、通用性 众多开源数据库项目和商业化的数据库产品都支持SQL。无论您的企业使用哪种类型的数据库,您企业的运维人员或数据库管理人员都可以使用同一套SQL语法进行相关操作。
  • 强大的查询能力
    • 支持海量数据查询、分析和提取。
    • 支持更快的查询处理速度。仅需执行简单的SQL命令,可在海量数据中快速找到您所需要的数据,提升了查询性能。
    • 支持复杂的数据计算和处理。SQL支持JOIN、子查询及多种计算函数。
  • 简单、易用
    • SQL语言是一种高度结构化的语言,SQL中的关键词基本都是常见的英文单词(如SELECT、WHERE、ORDER BY等),且大部分关键字与该英文单词的愿意相同或接近,非常易于理解。
    • SQL是一种声明性语言,用户仅需要通过简单的语法描述希望获取的结果,简化了数据库的查询过程。
    • 此外,SQL的核心功能为数据查询、插入、更新、删除等基本操作,用户掌握了这些基础命令后就能处理数据库大部分日常的操作。

谁会需要经常使用SQL?

  • 数据库DBA:通过使用SQL对数据库系统进行日常维护、权限控制、性能优化、数据备份恢复等。
  • 数据工程师:通过使用SQL对数据库的结构进行优化等。
  • 数据分析人员:通过使用SQL统计和分析企业业务数据或运营数据,并生成可视化数据,便于进行数据分析和制作相关报告。
  • 软件开发人员:对涉及依赖数据库的应用场景时,可通过SQL读写数据或进行数据库设计。

SQL的工作原理是什么?

SQL提供了丰富且易于操作的语法和功能来查询、插入、更新数据库中的数据。SQL语言的工作机制主要是针对数据库对SQL语言的执行,主要包含以下方面:

  1. 建立连接 用户通过客户端与要查询的数据库建立连接。连接器会负责验证用户的登录凭证和权限信息。
  2. 语法解析 支持SQL的数据库首先会通过分析器对接收到的SQL语句进行解析,理解这条SQL语句的目标是什么,并验证该语句语法是否正确。
  3. 查询优化 SQL语法被验证准确无误后,数据库会通过优化器对查询语句进行优化(如通过索引优化等功能),来选择一个最优的查询路径,以提高查询性能和降低资源的消耗(如减少磁盘I/O等)。
  4. 执行SQL语句 数据库根据查询优化的结果,通过执行器来生成查询执行计划,即需要按什么样的顺序(数据访问路径)、采用什么样的数据库连接方式等来执行这条SQL指令。执行器开始读取表的数据并进行相应操作(如连接表、筛选、分组过滤等)。
  5. 返回结果 执行器将查询结果返回给客户端。

SQL分为哪几类?

根据SQL语法可实现的不同功能,SQL语法被分为以下几类:

  • DDL 即数据定义语言。用于定义和修改数据库中的对象,如数据库、表、函数等。 常见的DDL类子句有:CREATE、USE、DROP、SHOW等。
  • DCL 即数据控制语言。用来设置或修改数据库事务、操作权限等。 常见的DCL类子句有:COMMIT、GRANT、REVOKE等。
  • DML 即数据操作语言。用于对数据库表中的数据进行操作,如修改数据、删除数据、插入数据等。 常见的DML类子句有INSERT、UPDATE等。
  • DQL 即数据查询语言。用于查询数据库内的数据。 常见的DQL类子句有SELECT。

常见的SQL子句有哪些以及该如何使用?

SQL使用关键字、表名、列名等SQL语法结构组合成一条SQL语句,用来描述需要执行的指令。

以下是常见的SQL子句(不同的数据库类型语法可能会有所差异)及其用法示例:

SQL子句

功能

是否必选

常见用法示例

SELECT

查询数据。通常与FROM子句一起使用,表示从哪张表中查询数据。

SELECT * FROM <表名称>;表示从某张数据表中查询并返回全部字段。

FROM

指定查询的数据来源。

SELECT * FROM <表名称>;表示从某张数据表中查询并返回全部字段。

WHERE

设置筛选条件。用于在SELECT、UPDATE、DELETE等语句中指定筛选条件。

SELECT * FROM sheet1 WHERE age > 20;表示从名称为“sheet1”的数据表中筛选并返回“age”大于20的行。

GROUP BY

对查询结果集中的数据进行分组。GROUP BY经常与 COUNT()、SUM()、AVG()、MAX()、MIN()等子句配合使用,可以基于指定的一列或多列的值(如总数、平均值、最大值、最小值等),对表行进行分类汇总。

SELECT * FROM sheet1 GROUP BY name表示对名称为“sheet1”的数据表,按相同“name”值进行分组聚合并返回该数据。

HAVING

HAVING与GROUP BY子句结合使用,用来过滤分组后的结果。

SELECT * FROM sheet1 GROUP BY name HAVING age > 20;表示对名称为“sheet1”的数据表,按相同“name”值进行分组聚合后,筛选并返回“age”大于20的行。

ORDER BY

对查询结果进行排序。根据指定的一行或多行的值,对查询返回的数据按升序或降序排列。ORDER BY语句中可以添加ASC(升序)或DESC(降序)关键字指定排序的逻辑,如未添加,则默认为升序排序。

SELECT * FROM sheet1 ORDER BY age DESC;表示查询名称为“sheet1”的数据表,并返回所有数据,且数据按“age”一列的值降序排列。

LIMIT

用于限制查询结果返回的行数。

SELECT * FROM revenue ORDER BY age DESC; Limit 5;表示查询名称为“revenue”的数据表,按“age”一列的值降序排列,并返回前5行数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE云原生实践之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL可以用来做什么?
  • SQL与数据库有什么关系?
  • 为什么需要使用SQL?
  • 谁会需要经常使用SQL?
  • SQL的工作原理是什么?
  • SQL分为哪几类?
  • 常见的SQL子句有哪些以及该如何使用?
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档