创建计算字段
1.计算字段
1、存储在数据库表中的数据一般不是应用程序所需要的格式。大多数情况下,数据表中的数据都需要进行二次处理。下面举几个例子。
(1)、我们需要一个字段同时显示公司名和公司地址,但这两个信息存储在不同表的列中。
(2)、省份、城市、邮政编码存储在不同的列中(大多数情况下是这样),但邮件标签打印程序需要把它们作为一个有恰当顺序、格式的字段打印出来。
(3)、列数据是大小写混合的,但报表程序需要把所有的程序按大写表示出来。
(4)、物品订单表存储物品的价格和数量,不存储每个物品的总价格,但是打印发票需要物品的总价格。上述的例子中,存储在表中的数据都不是应用程序所需要的,我们需要从数据中检索出来、并转换、计算或格式化过的数据。而不是检索出来,再到客户端进行初始化。
2.拼接字段
就是要让你查找的时候利用Concat把几个字段的内容合起来。
例如:
在这个表中,我们要将sname为李嘉欣的sname字段以及bplace字段连起来,凑成一个新的字段。
SELECT CONCAT(‘来自’,bplace,‘的’,sname,‘是一个可爱的女孩’) AS ‘描述’
FROM students WHERE sname = ‘李嘉欣’;
在MySQL数据库中,字段的限定长度可能会比实际占用长度稍微要大那么一点,那么为了保证使用concat之后不会导致中间有许多空格,我们可以使用RTrim()函数来去掉右边目标数据右边多余的空格。
使用别名
在sql语句中,别名可谓起到了很大很大很大的作用,就拿上面举的那个例子来说,没有使用别名来修改他的字段,那么他那个字段的名称就会是你写的那个函数,然后辨析度和引用起来就特别麻烦。下面就是不用别名时的运行结果。是不是看着就觉得很奇怪。
但使用别名最主要的目的还是方便引用它。
3.执行算术计算
计算字段的另一常见用途是对检索出的数据进行算术计算。
没错,这个就和我们平常的加减乘除啥的挺像的。我直接拿书上的例子来吧。
这边书上是利用了SELECT语句获取了几件商品的基本信息,然后我们准备拿这些个商品的基本信息来一波汇总,也就是计算每种商品的总价值。
也就是它在查询商品基本信息的基础上,用操作符*给新加了一个数据列,也就是那个expanded_price。根据数据,我们可以很明显的看到expanded_price字段下的值就等于它对应的quantity字段和item_price字段的乘积。
数据处理函数
挺有用的一部分,反正写sql题的时候用得挺舒服的。
主要分为四种
文本处理函数
函 数 | 说 明 |
---|---|
Left() | 返回串左边的字符 |
Length() | 返回串的长度 |
Locate() | 找出串的一个子串 |
Lower() | 将串转换为小写 |
LTrim() | 去掉串左边的空格 |
Right() | 返回串右边的字符 |
RTrim() | 去掉串右边的空格 |
Soundex() | 返回串的SOUNDEX值 |
SubString() | 返回子串的字符 |
Upper() | 将串转换为大写 |
乌拉乌拉,其实我也没怎么用过,主要是学习记录下来。
时间处理函数
嘿嘿,突然发现直接用书上的图,他不香吗。
时间类型的数据要注意的地方大概是,比较的时候,你要先把你的时间数据,例如2005-09-01这样的,先用date()函数转化一下,再去比,具体没咋个弄懂。
数值函数
也是sql语句中比较常用到的一部分,下面是常用的数值函数
系统函数
系统函数的话,感觉一般都用不到,水了水了,反正我也不会。
SQL聚集函数
顾名思义,就是将一部分数据给整到一块去,比如sum()就是把一部分字段的值给加起来。
具体的操作,还需要不断的实践,写sql语句真的挺有意思的,要是效率更高就更好了。