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

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

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

这里当然建议使用第一种,借助计算字段完成,计算字段是运行时在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();

mysql按逗号拼接起来_MySQL ----- 计算字段(Trim,Concat,as)(九)相关推荐

  1. mysql字段自动计算_《MySQL必知必会》计算字段

    <MySQL必知必会>计算字段 1.1 计算字段 字段(field)基本上与列( column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上. 客户 ...

  2. mysql 截取逗号并形成新的字段_MySQL将一个字段中以逗号分隔的取出来形成新的字段实现...

    1例如:要把如图1的字段拆分图2 select account_id, substring_index(substring_index(a.related_shop_ids,"," ...

  3. mysql 多行拼接注入_MySQL注入汇总

    Mysql注释符: 单行注释: # 在对URL使用过程中可能遇到Unicode编码问题,可常用%23代替 多行注释:/**/ 单行注释: -- 此处需要注意后面存在空格,否则报错 0.万能密码 (基于 ...

  4. mysql判断域为空_MySQL EXPLAIN 字段说明

    id 查询或关联查询的顺序. 如果没有子查询且只有一个查询,则为一个常数 1,表示第一步: 如果有子查询,则子查询为 1,父查询为 2: 相同的 id 查询顺序为自上而下: 如果有子查询,不同 id ...

  5. mysql中字符串拼接函数_MySQL字符串连接函数

    一.CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. select concat(s_id, "--", ...

  6. mysql存储过程字符串拼接字符串_mysql字符串拼接,存储过程,(来自网上看到)...

    添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` ( ...

  7. mysql相隔多长时间_Mysql 计算时间间隔函数

    mysql计算时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法,只要用一句SQL语句就可以办到了. MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法 ...

  8. mysql 查出相差年数_MySQL计算两个日期相差的天数、月数、年数

    MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...

  9. mysql bin值总是变化_MySQL|update字段为相同的值是否会记录binlog

    一 前言 前几天一个开发同事咨询我,update 更新字段为相同的值是否会记录binlog,我回复说不会. 其实 严格的说这个答案是不准确的,说要区分场景.是否记录 update 语句到binlog依 ...

最新文章

  1. 排查 Node.js 服务内存泄漏,没想到竟是它?
  2. 查看Android API文档的正确方式
  3. 英雄难过棍子关html游戏开发,《英雄难过棍子关》评测:看我变长再变长!
  4. 【算法】快速排序算法的编码和优化
  5. 老赖凭本事骗钱,你有本事不被骗吗?
  6. kmp字符串查询算法
  7. lisp正负调换_坐标提取lisp程序
  8. POJ1742 Coins(DP)
  9. gorm preload 搜索_LeetCode刷题笔记|95:不同的二叉搜索树 II
  10. libvirt Installation
  11. python numba报错_python – 使用pip升级到numba 0.16会导致错误
  12. java将url页面生成pdf_如何将PDF页面从横向改成纵向?
  13. MATLAB在声学理论基础中的应用,MATLAB在声学理论基础中的应用
  14. nas文件服务器权限安全,大势至局域网共享文件监控NAS文件权限设置的方法
  15. 「音视频直播技术」Android下H264解码
  16. 宋朝五子登科家族金榜进士涂大任后裔在松滋
  17. aws(亚马逊云服务)ssh登录提示Error establishing SSH connection to your instance. Try again later.
  18. MySql超详细分析(InnoDb存储引擎,日志文件,调优,索引,主从复制简单操作等)
  19. 紫外线消毒器的催化反应工艺指南
  20. Python对象赋值和拷贝

热门文章

  1. java arp 攻击_基于Jpcap的Java ARP断网攻击
  2. java服务器面试_如何面试筛选出动手能力强的Java服务端程序员
  3. TensorRT C++ 批量推理笔记
  4. 深度学习损失函数大全
  5. torch分布式训练学习笔记
  6. mxnet 和pytorch比较
  7. nodejs HelloWorld
  8. unet_3plus
  9. dlib win32
  10. reduce_sum() got an unexpected keyword argument 'keep_dims'