SQL 简介:如何使用 SQL SELECT 和 SELECT DISTINCT

举报
千锋教育 发表于 2023/05/30 17:11:08 2023/05/30
【摘要】 结构化查询语言 (SQL) 是用于与关系数据库通信的标准编程语言。由于业务中的数据使用量以惊人的速度增长,因此对了解 SQL、关系数据库和数据管理的人员的需求也在上升。美国国家标准协会将 SQL 确立为关系数据库管理的标准,因此程序员和管理员只需学习一种语言,只需稍作调整即可适用于各种数据库平台、应用程序和产品。如果您希望在编程或数据库管理方面谋得一份职业,或者如果您想更好地了解您的网站或公...

企业微信截图_20230530170948.jpg

结构化查询语言 (SQL) 是用于与关系数据库通信的标准编程语言。由于业务中的数据使用量以惊人的速度增长,因此对了解 SQL、关系数据库和数据管理的人员的需求也在上升。

美国国家标准协会将 SQL 确立为关系数据库管理的标准,因此程序员和管理员只需学习一种语言,只需稍作调整即可适用于各种数据库平台、应用程序和产品。如果您希望在编程或数据库管理方面谋得一份职业,或者如果您想更好地了解您的网站或公司数据库的运作方式,那么 SQL 是一种需要学习的重要语言。

SQL 是一种具有自己语法的语言,由语句、子句和其他代码片段(例如建立用于限制查询的参数的运算符)组成。SQL 语句是一段完整的代码,它进入数据库管理系统或 DBMS,以便对数据库中包含的数据执行各种功能。您可以通过编写查询来请求数据库中的特定信息,该查询是一种从数据库中的表返回或传递所需信息的语句。SELECT 语句是 SQL 中最常见的操作,因为它指定要从数据库返回哪些数据。

SELECT 语句及其意义

SELECT 语句在 SQL 中经常称为数据查询语言 (DQL)。在关系数据库中,您以表格形式存储数据——在用户定义的列和行下——这些表格用 INSERT 语句填充。SELECT 命令与 FROM 子句一起操作,从数据库表中检索或提取信息,并以有组织和可读的方式呈现它。

查询中的 SELECT 关键字说明要将哪些行和列显示为查询的结果集。使用 SELECT 语句,您可以指定与您希望查询返回的表中的行相匹配的值。

在其最简单的形式中,SELECT 语句必须包含以下元素:一个 SELECT 子句,它指定包含与查询匹配的值的列,以及一个 FROM 子句,它指定包含 SELECT 子句中列出的列的 TABLE。

SELECT 语句也可以有许多可选的子句来优化查询并返回精确的结果。常用的条款包括:

  • 在哪里。SQL WHERE 命令指定要检索的行。
  • 通过...分组。SQL GROUP BY 命令对共享属性的行进行分组,以便将聚合函数应用于每个组。
  • 拥有。SQL HAVING 命令在 GROUP BY 子句定义的组中选择特定特征。
  • 作为。SQL AS 命令为临时重命名表或列提供了一个别名。
  • 命令。SQL ORDER 命令按给定键(例如主键)对查询结果进行排序。ORDER BY 子句对于组织结果非常有用。

SELECT 语句的基本语法如下所示:

SELECT [第 1 列,第 2 列,...] FROM source_table;

要在结果集中显示表中的所有列,请在 SELECT 之后使用符号“*”。同样,您可以设置其他标志,例如仅返回唯一行的选项(使用 ONLY UNIQUE)修饰符。

组合 SQL SELECT 和 INSERT 语句

包含嵌套 SELECT 语句的 INSERT 语句允许您使用 SELECT 命令的结果集中的一行或多行快速填充表。您可以通过这种方式插入多条记录,如下所示:

INSERT INTO table (column1, column2, … ) SELECT expression1, expression2, … FROM source_tables WHERE 条件;

该语句的语法包含几个参数:

  • “表”是您应该插入记录结果集的表。
  • “column1, column2”命名表中放置值的列。
  • “表达式 1、表达式 2”是分配给表中列的值。

这意味着“column1”将具有“expression1”的值,“column2”将具有“expression2”的值,依此类推。每个元素之后的省略号或三点表示该操作将应用于该系列中的其他列和表达式:

  • “源表”表示从另一个表插入数据时的源表。
  • “条件”是正确插入记录所必须满足的条件。


在执行插入时,您还可以使用常见的关键字,例如 auto increment(它会创建一个自动递增的键)。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。