源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

MYSQL必知必会读书笔记第十和十一章之使用函数处理数据

  • 时间:2020-02-23 00:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:MYSQL必知必会读书笔记第十和十一章之使用函数处理数据
[b] mysql简介[/b] MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 [img]http://files.jb51.net/file_images/article/201605/201655112804092.png?201645112821[/img] [b]拼接字段[/b] 存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。 计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的。 拼接 concatenate 将值联结到一起构成单个值 在MySQL的select语句中,可使用Concat()函数来拼接两个列。 如创建由两列组成的标题:生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。此报表需要单个值,而表中数据存储的两个列vend_name和vend_country中。还需要用括号将vend_country括起来。 [img]http://files.jb51.net/file_images/article/201605/2016050513504624.png[/img] 新创建的列用AS赋一个别名 [img]http://files.jb51.net/file_images/article/201605/2016050513504725.png[/img] [b]去除空白[/b] Ltrim() RTrim() Trim() [b]执行算术计算[/b] 比如物品单单表存储物品的价格和数量,但是不需要存储每个物品的总价格(用价格乘以数量即可)。 为打印发票,需要物品的总价格。即需要增加一列,根据已有的列计算出来。 [img]http://files.jb51.net/file_images/article/201605/2016050513504726.png[/img] [b]文本函数[/b] left() 串左边字符 length() 串长度 locate() 找出串的一个子串 lower() 转为小写 ltrim() 去掉左边空格 right() 返回串右边字符 rtrim() 去掉串右边空格 soundex() 返回字符串soundex值 upper() 大写 将选择的文本转换成大写 select Upper(vend_name)from vendors; [img]http://files.jb51.net/file_images/article/201605/2016050513504727.png[/img] Soundex()函数:将任何文本传转换为描述其语音表示的字母数字模式的算法。(语音匹配?对发音比较而不是对字幕比较) [img]http://files.jb51.net/file_images/article/201605/2016050513504728.png[/img] [b]日期函数[/b] 日期和时间函数 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 [img]http://files.jb51.net/file_images/article/201605/2016050513504829.png[/img] 但是这样的where order_date = '2005-09-01'不可靠。因为order_date存储的数据类型是datatime. 这种类型存储日期及时间值。比如存储的order_date值为2005-09-01 11:30:05,则where order_date = '2005-09-01'就会匹配失败。 [img]http://files.jb51.net/file_images/article/201605/2016050513504830.png[/img] 所以最安全的方法是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;
[b]聚集函数[/b] 我们经常需要[b]汇总函数[/b],而不是把它们实际检索出来。 这种类型的检索例子: 1. 确定表中行数 2. 获得表中行组的和 3. 找出表列(or 所有行某些特定的行)的最大值,最小值和平均值 聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值的和 [b]求某一列的平均值[/b]
[u]复制代码[/u] 代码如下:
select avg(prod_price) as avg_pricefrom products;
[img]http://files.jb51.net/file_images/article/201605/2016050513504831.png[/img] [b]- 计数[/b] 使用count(*)对表中行的数目进行计数(whether null or not) [img]http://files.jb51.net/file_images/article/201605/2016050513504932.png[/img] [img]http://files.jb51.net/file_images/article/201605/2016050513504933.png[/img] 使用count(column)对特定列具有值的行进行计数,忽略null [img]http://files.jb51.net/file_images/article/201605/2016050513504934.png[/img] [b]求和[/b] 使用sum()返回指定列值的和 [img]http://files.jb51.net/file_images/article/201605/2016050513504935.png[/img] 以上所述是小编给大家介绍的MYSQL必知必会读书笔记第十和十一章之使用函数处理数据的相关知识,希望对大家有所帮助!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部