MYSQL必知必会读书笔记 第十和十一章 使用函数处理数据
来源:互联网 发布:smg淘宝店 编辑:程序博客网 时间:2024/06/05 20:26
拼接字段
存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过
的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在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_numfrom orderswhere Date(order_date) = '2005-09-01';
再比如想要检索出2005年9月下的所有订单。
select cust_id, order_numfrom orderswhere Year(order_date) = 2005 and Month(order_date) = 9;
聚集函数
我们经常需要汇总函数,而不是把它们实际检索出来。
这种类型的检索例子:
1. 确定表中行数
2. 获得表中行组的和
3. 找出表列(or 所有行某些特定的行)的最大值,最小值和平均值
聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。
注意的是distinct只能用于count(distinct 列名),不能用于计算表达式
AVG() 返回某列的平均值COUNT() 返回某列的行数MAX() 返回某列的最大值MIN() 返回某列的最小值SUM() 返回某列值的和
- 求某一列的平均值
select avg(prod_price) as avg_pricefrom products;
- 计数
使用count(*)对表中行的数目进行计数(whether null or not)
使用count(column)对特定列具有值的行进行计数,忽略null
- 求和
使用sum()返回指定列值的和
- MYSQL必知必会读书笔记 第十和十一章 使用函数处理数据
- 读书笔记--SQL必知必会08--使用函数处理数据
- mysql---使用函数处理数据
- mysql---使用函数处理数据
- mysql---使用函数处理数据
- mysql---使用函数处理数据
- MYSQL必知必会读书笔记 第十九至二十一章 数据的插入、更新、删除
- [MYSQL -11]使用函数处理数据
- MYSQL必知必会读书笔记 第九章 使用正则表达式过滤数据
- MYSQL必知必会读书笔记 第十二和十三章 分组数据
- FKJAVA读书笔记--第十章--异常处理
- SQL读书笔记(十一)更新和删除数据
- 读书笔记_C#技术内幕_第十章(处理异常和错误)
- MYSQL必知必会读书笔记 第四章 检索数据
- MYSQL必知必会读书笔记 第六章 过滤数据
- MYSQL必知必会读书笔记 第七章 数据过滤
- C和指针读书笔记(第十章)
- C++编程思想读书笔记之 第十章 引用和拷贝构造函数
- 虚拟机已死,容器才是未来?——VM + Container
- Objective-C Runtime 运行时之六:拾遗
- java.lang.ClassCastException: android.widget.*Layout$LayoutParams
- WebView,嘿嘿,懒人专用,直接复制粘贴就能用,frame可调
- openssl生成RSA公私钥对
- MYSQL必知必会读书笔记 第十和十一章 使用函数处理数据
- clion 使用技巧
- tomcat与web程序结构
- No cache or cacheManager properties have been set. Authorization cache cannot be obtained.
- Linux下Nagios的安装与配置
- Android消息传递机制----Handler
- rem使用
- pyqt4,QTableWidget 动态添加控件,添加图片,右键菜单选项
- 能走多远不取决于一个人改正多少个缺点,而在于是否最大限度发挥长处