sql语句补充(二)

创建计算字段
1.计算字段
1、存储在数据库表中的数据一般不是应用程序所需要的格式。大多数情况下,数据表中的数据都需要进行二次处理。下面举几个例子。

(1)、我们需要一个字段同时显示公司名和公司地址,但这两个信息存储在不同表的列中。

(2)、省份、城市、邮政编码存储在不同的列中(大多数情况下是这样),但邮件标签打印程序需要把它们作为一个有恰当顺序、格式的字段打印出来。

(3)、列数据是大小写混合的,但报表程序需要把所有的程序按大写表示出来。

(4)、物品订单表存储物品的价格和数量,不存储每个物品的总价格,但是打印发票需要物品的总价格。上述的例子中,存储在表中的数据都不是应用程序所需要的,我们需要从数据中检索出来、并转换、计算或格式化过的数据。而不是检索出来,再到客户端进行初始化。

2.拼接字段
就是要让你查找的时候利用Concat把几个字段的内容合起来。
例如:
在这个表中,我们要将sname为李嘉欣的sname字段以及bplace字段连起来,凑成一个新的字段。sql语句补充(二)

SELECT CONCAT(‘来自’,bplace,‘的’,sname,‘是一个可爱的女孩’) AS ‘描述’
FROM students WHERE sname = ‘李嘉欣’;

sql语句补充(二)
在MySQL数据库中,字段的限定长度可能会比实际占用长度稍微要大那么一点,那么为了保证使用concat之后不会导致中间有许多空格,我们可以使用RTrim()函数来去掉右边目标数据右边多余的空格。

使用别名
在sql语句中,别名可谓起到了很大很大很大的作用,就拿上面举的那个例子来说,没有使用别名来修改他的字段,那么他那个字段的名称就会是你写的那个函数,然后辨析度和引用起来就特别麻烦。下面就是不用别名时的运行结果。是不是看着就觉得很奇怪。
sql语句补充(二)
但使用别名最主要的目的还是方便引用它。

3.执行算术计算
计算字段的另一常见用途是对检索出的数据进行算术计算。
没错,这个就和我们平常的加减乘除啥的挺像的。我直接拿书上的例子来吧。
sql语句补充(二)
这边书上是利用了SELECT语句获取了几件商品的基本信息,然后我们准备拿这些个商品的基本信息来一波汇总,也就是计算每种商品的总价值。
sql语句补充(二)
也就是它在查询商品基本信息的基础上,用操作符*给新加了一个数据列,也就是那个expanded_price。根据数据,我们可以很明显的看到expanded_price字段下的值就等于它对应的quantity字段和item_price字段的乘积。

数据处理函数
挺有用的一部分,反正写sql题的时候用得挺舒服的。

主要分为四种
文本处理函数

函 数 说 明
Left() 返回串左边的字符
Length() 返回串的长度
Locate() 找出串的一个子串
Lower() 将串转换为小写
LTrim() 去掉串左边的空格
Right() 返回串右边的字符
RTrim() 去掉串右边的空格
Soundex() 返回串的SOUNDEX值
SubString() 返回子串的字符
Upper() 将串转换为大写

乌拉乌拉,其实我也没怎么用过,主要是学习记录下来。
时间处理函数
sql语句补充(二)
嘿嘿,突然发现直接用书上的图,他不香吗。
时间类型的数据要注意的地方大概是,比较的时候,你要先把你的时间数据,例如2005-09-01这样的,先用date()函数转化一下,再去比,具体没咋个弄懂。

数值函数
也是sql语句中比较常用到的一部分,下面是常用的数值函数
sql语句补充(二)

系统函数
系统函数的话,感觉一般都用不到,水了水了,反正我也不会。

SQL聚集函数
顾名思义,就是将一部分数据给整到一块去,比如sum()就是把一部分字段的值给加起来。
sql语句补充(二)
具体的操作,还需要不断的实践,写sql语句真的挺有意思的,要是效率更高就更好了。

上一篇:P1460 健康的荷斯坦奶牛 Healthy(DFS)


下一篇:R语言返回重复的向量以重复向量的索引