广告
返回顶部
首页 > 资讯 > 数据库 >SQL 入门教程:拼接字段
  • 286
分享到

SQL 入门教程:拼接字段

SQL入门教程:拼接字段 2020-03-12 18:03:38 286人浏览 才女
摘要

目录使用别名请参阅 目录汇总:sql 入门教程:面向萌新小白的零基础入门教程 为了说明如何使用 计算字段,我们来举一个简单例子,创建由两列组成的标题。 Vendors 表包含供应商名和地址信息。假如要生成一个供应商报表,需要在格式化的名称

SQL 入门教程:拼接字段

目录
  • 使用别名
  • 请参阅

目录汇总:sql 入门教程:面向萌新小白的零基础入门教程

为了说明如何使用 计算字段,我们来举一个简单例子,创建由两列组成的标题。

Vendors 表包含供应商名和地址信息。假如要生成一个供应商报表,需要在格式化的名称(位置)中列出供应商的位置。

此报表需要一个值,而表中数据存储在两个列 vend_namevend_country 中。此外,需要用括号将 vend_country 括起来,这些东西都没有存储在数据库表中。这个返回供应商名称和地址的 SELECT 语句 很简单,但我们是如何创建这个组合值的呢?

拼接(concatenate)

将值联结到一起(将一个值附加到另一个值)构成单个值。

解决办法是把两个列拼接起来。在 SQL 中的 SELECT 语句中,可使用一个特殊的操作符来拼接两个列。根据你所使用的 DBMS,此操作符可用加号(+)或两个竖杠(||)表示。在 Mysql 和 MariaDB 中,必须使用特殊的函数。

说明:是 + 还是 ||

SQL Server 使用 + 号。DB2、oraclepostgresql 和 SQLite 使用 ||。详细请参阅具体的 DBMS 文档。

下面是使用加号的例子(多数 DBMS 使用这种语法):

输入▼

SELECT vend_name + "(" + vend_country + ")"
FROM Vendors
ORDER BY vend_name;

输出▼

-----------------------------------------------------------
Bear Emporium                                (USA        )
Bears R Us                                   (USA        )
Doll House Inc.                              (USA        )
Fun and Games                                (England    )
Furball Inc.                                 (USA        )
Jouets et ours                               (France     )

下面是相同的语句,但使用的是 || 语法:

输入▼

SELECT vend_name || "(" || vend_country || ")"
FROM Vendors
ORDER BY vend_name;

输出▼

-----------------------------------------------------------
Bear Emporium                                (USA        )
Bears R Us                                   (USA        )
Doll House Inc.                              (USA        )
Fun and Games                                (England    )
Furball Inc.                                 (USA        )
Jouets et ours                               (France     )

下面是使用 mysql 或 MariaDB 时需要使用的语句:

输入▼

SELECT Concat(vend_name, " (", vend_country, ")")
FROM Vendors
ORDER BY vend_name;

分析▼

上面两个 SELECT 语句拼接以下元素:

  • 存储在 vend_name 列中的名字;
  • 包含一个空格和一个左圆括号的字符串
  • 存储在 vend_country 列中的国家;
  • 包含一个右圆括号的字符串。

从上述输出中可以看到,SELECT 语句返回包含上述四个元素的一个列(计算字段)。

再看看上述 SELECT 语句返回的输出。结合成一个计算字段的两个列用空格填充。许多数据库(不是所有)保存填充为列宽的文本值,而实际上你要的结果不需要这些空格。为正确返回格式化的数据,必须去掉这些空格。这可以使用 SQL 的 RTRIM() 函数来完成,如下所示:

输入▼

SELECT RTRIM(vend_name) + " (" + RTRIM(vend_country) + ")"
FROM Vendors
ORDER BY vend_name;

输出▼

-----------------------------------------------------------
Bear Emporium (USA)
Bears R Us (USA)
Doll House Inc. (USA)
Fun and Games (England)
Furball Inc. (USA)
Jouets et ours (France)

下面是相同的语句,但使用的是 ||

输入▼

SELECT RTRIM(vend_name) || " (" || RTRIM(vend_country) || ")"
FROM Vendors
ORDER BY vend_name;

输出▼

-----------------------------------------------------------
Bear Emporium (USA)
Bears R Us (USA)
Doll House Inc. (USA)
Fun and Games (England)
Furball Inc. (USA)
Jouets et ours (France)

分析▼

RTRIM() 函数去掉值右边的所有空格。通过使用 RTRIM(),各个列都进行了整理。

说明:TRIM 函数

大多数 DBMS 都支持 RTRIM()(正如刚才所见,它去掉字符串右边的空格)、LTRIM()(去掉字符串左边的空格)以及 TRIM()(去掉字符串左右两边的空格)。

使用别名

从前面的输出可以看到,SELECT 语句可以很好地拼接地址字段。但是,这个新计算列的名字是什么呢?实际上它没有名字,它只是一个值。如果仅在 SQL 查询工具中查看一下结果,这样没有什么不好。但是,一个未命名的列不能用于客户端应用中,因为客户端没有办法引用它。

为了解决这个问题,SQL 支持列别名。别名(alias)是一个字段或值的替换名。别名用 AS 关键字赋予。请看下面的 SELECT 语句:

输入▼

SELECT RTRIM(vend_name) + " (" + RTRIM(vend_country) + ")"
 AS vend_title
FROM Vendors
ORDER BY vend_name;

输出▼

vend_title
-----------------------------------------------------------
Bear Emporium (USA)
Bears R Us (USA)
Doll House Inc. (USA)
Fun and Games (England)
Furball Inc. (USA)
Jouets et ours (France)

下面是相同的语句,但使用的是 || 语法:

输入▼

SELECT RTRIM(vend_name) || " (" || RTRIM(vend_country) || ")"
 AS vend_title
FROM Vendors
ORDER BY vend_name;

下面是 MySQL 和 MariaDB 中使用的语句:

输入▼

SELECT Concat(RTrim(vend_name), " (",
       RTrim(vend_country), ")") AS vend_title
FROM Vendors
ORDER BY vend_name;

分析▼

SELECT 语句本身与以前使用的相同,只不过这里的计算字段之后跟了文本 AS vend_title。它指示 SQL 创建一个包含指定计算结果的名为 vend_title 的计算字段。从输出可以看到,结果与以前的相同,但现在列名为 vend_title,任何客户端应用都可以按名称引用这个列,就像它是一个实际的表列一样。

说明:AS 通常可选

在很多 DBMS 中,AS 关键字是可选的,不过最好使用它,这被视为一条最佳实践。

提示:别名的其他用途

别名还有其他用途。常见的用途包括在实际的表列名包含不合法的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它。

注意:别名

别名的名字既可以是一个单词,也可以是一个字符串。如果是后者,字符串应该括在引号中。虽然这种做法是合法的,但不建议这么去做。多单词的名字可读性高,不过会给客户端应用带来各种问题。因此,别名最常见的使用是将多个单词的列名重命名为一个单词的名字。

说明:导出列

别名有时也称为导出列(derived column),不管怎么叫,它们所代表的是相同的东西。

请参阅

  • 计算字段
  • 拼接字段
  • 执行算术计算
  • 计算字段练习题

(完)

您可能感兴趣的文档:

--结束END--

本文标题: SQL 入门教程:拼接字段

本文链接: https://www.lsjlt.com/news/8670.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL 入门教程:拼接字段
    目录使用别名请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 为了说明如何使用 计算字段,我们来举一个简单例子,创建由两列组成的标题。 Vendors 表包含供应商名和地址信息。假如要生成一个供应商报表,需要在格式化的名称...
    99+
    2020-03-12
    SQL 入门教程:拼接字段
  • sql怎么将两个字段拼接
    在SQL中,可以使用`CONCAT`函数将两个字段拼接在一起。`CONCAT`函数接受两个或多个字符串作为参数,并返回它们的拼接结果...
    99+
    2023-10-12
    sql
  • SQL字段拼接成新字段几种常见的方法
    目录前言一、使用字符串连接操作符:二、使用字符串连接函数:三、使用字符串拼接函数:四、使用字符串加法运算符:附:sql concat()函数总结前言 在数据库查询和数据处理中,有时我们需要将表中的多个字段进行拼...
    99+
    2023-08-07
    sql字段拼接成新字段 sql字段合并到一个新字段 sql两个字段怎么拼接
  • sql 同一个字段多个信息拼接
    今天无意间用到的就记录下来 比如T_Stu_Hobby 学生兴趣表。关联学生表和兴趣表。多对多的关系Stu_ID   Hobby_ID===========...
    99+
    2022-10-18
  • sql语句两个字段合并或者两个字段拼接显示
    MySQL数据库用法 mysql 使用 concat函数 语法糖:select concat(字段a,字段b) as 别名 from 表名称; 小栗子: SELECT CO...
    99+
    2023-09-05
    数据库 oracle mysql access sql server
  • SQL 教程-入门基础篇
    文章目录 SQL 简介SQL 语法SQL SELECT 语句SQL SELECT DISTINCT 语句SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY...
    99+
    2023-08-31
    sql 数据库 mybatis mysql
  • SQL 零基础入门教程
    目录一、了解 SQL二、检索数据三、排序检索数据四、过滤数据五、高级数据过滤六、用通配符进行过滤七、创建计算字段八、使用函数处理数据九、汇总数据十、分组数据十一、使用子查询十二、联结表十三、创建高级联结十四、组合查询十五、插入数据十六、更...
    99+
    2014-09-15
    SQL 零基础入门教程
  • SQL 入门教程:SELECT 语句
    目录请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 SQL 语句是由简单的英语单词构成的。这些单词称为关键字,每个 SQL 语句都是由一个或多个关键字构成的。最经常使用的 SQL 语句大概就是 SELECT 语句了。它的...
    99+
    2019-04-11
    SQL 入门教程:SELECT 语句
  • SQL 入门教程:子查询
    目录一、利用子查询进行过滤请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 SELECT 语句 是 SQL 的查询。我们迄今为止所看到的所有 SELECT 语句都是简单查询,即从单个数据库表中检索数据的单条语句。 ...
    99+
    2017-11-30
    SQL 入门教程:子查询
  • sql注入是怎么拼接字符串的
    sql注入拼接字符串的方法:常见的字符串连接函数有concat(),concat_ws(),group_concat(),使用示例:SELECT concat(id, ‘,’, name) A...
    99+
    2022-10-03
  • SQL 入门教程:数据插入(INSERT)
    目录一、插入完整的行二、插入部分行三、插入检索出的数据请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 毫无疑问,SELECT 是最常用的 SQL 语句了,这就是前 14 部分都在讲它的原因。但是,还有其他 3 个...
    99+
    2015-09-22
    SQL 入门教程:数据插入(INSERT)
  • SQL 入门教程:创建视图
    目录一、利用视图简化复杂的联结二、用视图重新格式化检索出的数据三、用视图过滤不想要的数据四、使用视图与计算字段请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 理解了什么是 视图 以及管理它们的规则和约束后,我们来创建视图...
    99+
    2022-01-24
    SQL 入门教程:创建视图
  • SQL 入门教程:LIKE 操作符
    目录一、百分号(%)通配符二、下划线(_)通配符三、方括号([])通配符四、使用通配符的技巧请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 前面介绍的所有操作符都是针对已知值进行过滤的。不管是匹配一个值还是多个值,检验大...
    99+
    2022-02-08
    SQL 入门教程:LIKE 操作符
  • SQL 入门教程:使用函数
    目录一、文本处理函数二、日期和时间处理函数三、数值处理函数请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 大多数 SQL 实现支持以下类型的函数。 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。 ...
    99+
    2017-06-27
    SQL 入门教程:使用函数
  • SQL 入门教程:聚集函数
    目录一、AVG() 函数二、COUNT() 函数三、MAX() 函数四、MIN() 函数五、SUM() 函数请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 我们经常需要汇总数据而不用把它们实际检索出来,为此 SQL 提供...
    99+
    2020-07-09
    SQL 入门教程:聚集函数
  • python入门字符串拼接\截取\转数字理解学习
    目录1.Python字符串的拼接2.Python字符串的截取3.python字符串怎么转数字4.“*”号的运用5.Python字符串格式化1.Python字符串的拼接 拼接方式很简单...
    99+
    2022-11-12
  • SQL 入门教程:创建表(CREATE TABLE)
    目录一、表创建基础二、使用 NULL 值三、指定默认值请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 SQL 不仅用于表数据操纵,而且还用来执行数据库和表的所有操作,包括表本身的创建和处理。 一般有两种创建表的方法: ...
    99+
    2014-12-06
    SQL 入门教程:创建表(CREATE TABLE)
  • SQL 入门教程:更新(UPDATE)数据
    目录请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 更新(修改)表中的数据,可以使用 UPDATE 语句。有两种使用 UPDATE 的方式: 更新表中的特定行; 更新表中的所有行。 下面分别介绍。 注意:不要省略 ...
    99+
    2021-01-22
    SQL 入门教程:更新(UPDATE)数据
  • SQL 入门教程:数据库基础
    目录一、数据库二、表三、列和数据类型四、行五、主键请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 你正在读本 SQL 教程,这表明你需要以某种方式与数据库打交道。SQL 正是用来实现这一任务的语言,因此在学习 SQL 之...
    99+
    2017-01-19
    SQL 入门教程:数据库基础
  • SQL 入门教程:创建联结(JOIN)
    目录一、WHERE 子句的重要性二、内联结三、联结多个表请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 创建 联结 非常简单,指定要联结的所有表以及关联它们的方式即可。请看下面的例子: 输入▼ SELECT...
    99+
    2015-05-03
    SQL 入门教程:创建联结(JOIN)
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作