MYSQL必知必会读书笔记第十和十一章之使用函数处理数据
mysql简介
mysql是一种开放源代码的关系型数据库管理系统(rdbms),mysql数据库系统使用最常用的数据库管理语言--结构化查询语言(sql)进行数据库管理。
拼接字段
存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。
计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的。
拼接 concatenate 将值联结到一起构成单个值
在mysql的select语句中,可使用concat()函数来拼接两个列。
如创建由两列组成的标题:生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。此报表需要单个值,而表中数据存储的两个列vend_name和vend_country中。还需要用括号将vend_country括起来。
新创建的列用as赋一个别名
去除空白
ltrim() rtrim() trim()
执行算术计算
比如物品单单表存储物品的价格和数量,但是不需要存储每个物品的总价格(用价格乘以数量即可)。 为打印发票,需要物品的总价格。即需要增加一列,根据已有的列计算出来。
文本函数
left() 串左边字符
length() 串长度
locate() 找出串的一个子串
lower() 转为小写
ltrim() 去掉左边空格
right() 返回串右边字符
rtrim() 去掉串右边空格
soundex() 返回字符串soundex值
upper() 大写
将选择的文本转换成大写
select upper(vend_name)from vendors;
soundex()函数:将任何文本传转换为描述其语音表示的字母数字模式的算法。(语音匹配?对发音比较而不是对字幕比较)
日期函数
日期和时间函数
adddate() 增加一个日期-天或周
addtime() 增加一个时间
curdate() 返回当前日期
curtime() 返回当前时间
date() 返回日期时间的日期部分
datediff() 计算两个日期差
date_add() 高度灵活的日期运算函数
date_format() 返回一个格式化的日期或时间串
day() 返回一个日期的天数部分
dayofweek() 对于一个日期,返回对应的星期几
hour()
minute()
month()
now() 当前日期和时间
second()
time() 当前日期时间的时间部分
year()
一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是被用来读取,统计和处理这些值。
mysql的日期格式:yyyy-mm-dd。 比如 2005-09-01
但是这样的where order_date = '2005-09-01'不可靠。因为order_date存储的数据类型是datatime. 这种类型存储日期及时间值。比如存储的order_date值为2005-09-01 11:30:05,则where order_date = '2005-09-01'就会匹配失败。
所以最安全的方法是date()函数,date(order_date)指示mysql提取列的日期部分。
select cust_id, order_num from orders where date(order_date) = '2005-09-01';
再比如想要检索出2005年9月下的所有订单。
select cust_id, order_num from orders where year(order_date) = 2005 and month(order_date) = 9;
聚集函数
我们经常需要汇总函数,而不是把它们实际检索出来。
这种类型的检索例子:
1. 确定表中行数
2. 获得表中行组的和
3. 找出表列(or 所有行某些特定的行)的最大值,最小值和平均值
聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。
avg() 返回某列的平均值
count() 返回某列的行数
max() 返回某列的最大值
min() 返回某列的最小值
sum() 返回某列值的和
求某一列的平均值
select avg(prod_price) as avg_pricefrom products;
- 计数
使用count(*)对表中行的数目进行计数(whether null or not)
使用count(column)对特定列具有值的行进行计数,忽略null
求和
使用sum()返回指定列值的和
以上所述是小编给大家介绍的mysql必知必会读书笔记第十和十一章之使用函数处理数据的相关知识,希望对大家有所帮助!