数据库菜鸟:使用函数处理数据说明

图标

豆瓜

豆瓜网

豆瓜网专栏

豆瓜 图标 2021-04-08 10:44:36

/*
函数处理数据的一个问题就是每个DBMS都有特定的函数,
在不同的DBMS中,各个函数的名称和语法可能极其不同
这意味着特定SQL实现编写的代码在其他视线中可能不正常
*/

-- 在MySQL中:
/* 提取字符串的组成部分 SUBSTRING()
数据类型转换 CONVERT()
取当前日期 CURDATE()
*/
#如果使用函数,要注意注释,因为不同的SQL服务器函数含义不同

-- 大多数DBMS支持的函数
/*
1.处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数
2.用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数
3.用于处理日期和时间值并从这些之中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数
4.返回DBMS正使用的特殊信息(如返回用户登录信息)的系统函数
*/

-- 文本处理函数 (UPPER())
SELECT vend_name,UPPER(vend_name) AS vend_name_upcase
FROM Vendors
ORDER BY vend_name;

/*
常用的文本处理函数:
LEFT()(或使用子字符串函数) 返回字符串左边的字符
LENGTH()(也使用DATALENGTH()或LEN()) 返回字符串的长度
LOWER()(Access使用LCASE()) 将字符串转换为小写
LTRIM() 去掉字符串左边的空格
RIGHT()(或使用子字符串函数) 返回字符串右边的函数
RTRIM() 去掉字符串右边的空格
SOUNDEX() 返回字符串的SOUNDEX值
UPPER()(Access使用UCASE()) 将字符串转换为大写
*/
#SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法
/*考虑了累的发音字符和音节,使得能对字符串进行发音比较而不是字母比较*/
------------------------------
-- 对比
SELECT cust_name,cust_contact
FROM Customers
WHERE cust_contact = 'Michael GREEN';

#输出结果没有值原因是信息录入的时候输入错了,联系名实际上应该是Michael Green

 

SELECT cust_name,cust_contact
FROM Customers
WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');

-- 日期和时间处理函数(以特殊的格式存储,每种DBMS都有自己的特殊形式)
/* 由于应用程序一般不使用日期和时间的存储格式,所以日期和时间函数总是用来读取、统计和处理这些值。它们的可移植性最差*/
#MySQL中使用名为YEAR()的函数从日期中提取年份
SELECT order_num
FROM Orders
WHERE YEAR(order_date) = 2012;

-- 数值处理函数(仅处理数值数据,主要用于代数、三角或几何运算)
/*
常用数值处理函数:
ABS() 返回一个数的绝对值
COS() 返回一个角度的余弦
EXP() 返回一个数的指数值
PI() 返回圆周率
SIN() 返回一个角度的正弦
TAN() 返回一个角度的正切
*/


本文由豆瓜网专栏作家 豆瓜 投稿发布,并经过豆瓜网编辑审核。

转载此文章须经作者同意,并附上出处(豆瓜网)及本页链接。

若稿件文字、图片、视频等内容侵犯了您的权益,请联系本站进行 投诉处理

相关搜索

数据库菜鸟
图标 图标

豆瓜

豆瓜网

豆瓜网专栏

全部评论

豆瓜

豆瓜网

豆瓜网专栏

  • springaop编程思想分享
  • android fragment创建方式介绍
  • android spinner控件介绍
  • c# 正则表达式介绍
  • net use命令说明
  • 我来说两句