ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL ----- 计算字段(trim(),now(),Concat(),as) (九)

2020-05-25 23:08:12  阅读:350  来源: 互联网

标签:trim name vend Concat 计算 now select


存储在数据库表中的数据一般不是应用程序所需要的格式:

  一种是从数据库中检索出转换、计算或格式化过的数据

  另一种是将检索出数据在客户机应用程序或报告程序中重新格式化

这里当然建议使用第一种,借助计算字段完成,计算字段是运行时在select 语句内创建的。

字段(field) : 基本与列(colum)的意思相同,不过在术语中字段通常用在计算字段的连接上,经常会互换使用,列指的是数据库的列

注意:

  1、只有数据库知道select 语句中哪些列是实际的表列,那些列是计算字段

  2、从客户机(如应用程序)的角度看,计算字段的数据是以与其他列的数据,以相同的方式返回的。

  3、SQL 语句内完成的许多转换和格式化的工作在客户机应用程序内也可以完成,但是数据库服务器比用程序要快,因为设计的DBMS 可以快速有效的完成这些处理

 

1、去除空格   (trim,rtrim,ltrim)

Trim () 函数:去掉字符串左右两边的空格

   RTrim () 函数:去掉字符串右边的空格

   LTrim () 函数:去掉字符串左边的空格

 

 

2、拼接字段

拼接(concatenate): 将值联结到一起构成单个值。

注意:多数的DBMS 使用 + 或 || 来实现拼接,Mysql 使用Concat() 函数实现。

借助Concat() 拼接串,将多个串连接起来形成一个较长的串,

用到的表

 

 

 

--  将供应商表中的名字和所处城市按照  名字(国家) 的形式放在一块,共有四个元素,名字,左边括号,国家,右边括号
select Concat (vend_name,'(',vend_country,')') from vendors order by vend_name;

 

 

 注意:

  1、Concat () 拼接串需要一个或多个指定的串,各个串之间用逗号分隔。

 

-- 与trim 组合使用
select Concat (vend_name,'(',trim(vend_country),')')  from vendors order by vend_name;

 

 

3、别名 ( as)  :  一个字段或值的替换名,关键字 AS (有时也称为导出列)

刚才拼接的字符串的列名,实际上他没有名字只是一个值,

  不知道表示什么意思,要是只是查看一下无所谓,但是一个未命名的列不能用于客户机的应用中(不能被程序i引用)

-- 将计算的字段起个名叫   vend_title
select Concat (vend_name,'(',trim(vend_country),')') AS vend_title from vendors order by vend_name;

 

注意: 别名的其他用途 如在实际的表列名包含不符合规定的字符(如空格)时重新命名它,在原来的名字含混容易误解时扩充它。

 导出列:别名有时也称为导出列(derived column),不管称为什么他们都代表着相同的东西

 

4、执行算术计算

 

 来个小例子:
用到的表

 

 

-- 将订单号为 20005 的商品查出来
select prod_id,quantity,item_price from orderitems where order_num = 20005;

 

 我们可以看到,单价和订购数量,但是总价没有,下面借助mysql 的算数操作符实现

--  计算商品总价
select prod_id,quantity,item_price,quantity*item_price as total_Price from orderitems where order_num = 20005;

 

 测试计算;使用select, 虽然Select 通常用来从表中检索数据,但也可以省略FROM 子句简单的访问和处理表达式。

--  获取系统当前时间
 select NOW();

 

标签:trim,name,vend,Concat,计算,now,select
来源: https://www.cnblogs.com/obge/p/12956443.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有