欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > MYSQL教程 > MySQL必知必会2

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:505

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

MySQL必知必会2

发布时间:2021-06-20  

使用数据处理函数

函数

其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,他给数据的转换和处理提供了方便,在前一章中用来去掉尾空格的RTrim()就是一个函数的例子

文本处理函数

输入: SELECT vend_name,Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;

分析: 将列 vend_name_upcase转换为大写

示例:

mysql> SELECT NAME,UPPER(NAME) AS name_upcase FROM account ORDER BY NAME; +------+-------------+ | NAME | name_upcase | +------+-------------+ | aaa | AAA | | aest | AEST | | bbb | BBB | | ccc | CCC | | ccc | CCC | | ddd | DDD | | ddd | DDD | | t57L | T57L | | test | TEST | | tsdf | TSDF | +------+-------------+

常用的文本处理函数

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

日期和时间处理函数

日期和时间采用相应的数据类型和特殊的格式存储,以便于能快速和有效的排序或过滤,并且节省物理存储空间

常用日期和时间处理函数

函数 说明
AddDate()   增加一个日期(天、周等)  
AddTime()   增加一个时间(时、分等)  
CurDate()   返回当前日期  
CurTime()   返回当前时间  
Date()   返回日期时间的日期部分  
DateDiff()   计算两个日期之差  
Date_Add()   高度灵活的日期运算函数  
Date_Format()   返回一个格式化的日期或时间串  
Day()   返回一个日期的天数部分  
DayOfWeek()   对于一个日期、返回对应的星期几  
Hour()   返回一个时间的小时部分  
Minute()   返回一个时间的分钟部分  
Month()   返回一个日期的月份部分  
Now()   返回当前日期和时间  
Second()   返回一个时间的秒部分  
Time()   返回一个日期时间的时间部分  
Year()   返回一个日期的年份部分  

汇总数据

聚集函数 运行在行组上,计算和返回单个值的函数

AVG函数

输入: SELECT AVG(prod_price) AS avg_price FROM products;

分析: 此SELECT语句返回值avg_price,它包含products表中所有产品的平均价格

只用于单个列 AVG()只能用来确定特定数值的平均值,而且列名必须作为函数参数给出

NULL值 AVG()函数忽略列值的NULL的行

COUNT函数

输入 SELECT COUNT(*) AS num_cust FROM customers;

分析 利用COUNT对所有行计数,不管行中各列有什么值。包含NULL值

输入 SELECT COUNT(cust_email) AS num_cust FROM customers;

分析 使用COUNT对cust_email列中有值的行进行计数,不包含NULL值

聚集不同的值

输入 SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003;

分析 排除掉相同的prod_price的值

分组数据

创建分组

输入 SELECT vend_id,COUNT(*) AS num_prods FROM proucts GROUP BY vend_id;

分析 上面的SELECT语句指定了两个列,vend_id包含产品供应商的ID,num_prods为计算字段。GROUP BY 子句指示MySQL按vendid排序并分组数据。

过滤分组

输入:

SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >= 2;

分析 HAVING子句,他过滤 count(*)>=2的那些分组

HAVING和WHERE的差别:HAVING用于分组后过滤,WHERE用于分组前过滤

分组和排序

输入

SELECT order_num,SUM(quantity*item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(quantity*item_price) >=50 ORDER BY ordertotal;