MySQL入门-8:函数

大纲

1、函数

2、文本处理函数

3、数值计算函数

4、日期处理函数

5、聚集函数

1、函数

函数好用,但是不通用:

函数大致可以分为以下类型:

  • 用于处理文本串
  • 用于处理日期和时间
  • 用于数值计算
  • 返回DBMS系统信息

如何知道函数怎么使用?

1、查看官方文档:http://dev.mysql.com/doc/refman/5.1/zh/index.html

2、mysql> help functions;

然后,根据自己的需要,查看具体的函数类别。

MySQL中使用函数时,函数名和左括号之间不能有空格。ERROR 1305 (42000)

Bug #61795  已经修复, Version> 5.1.41-3

2、文本处理函数

文本处理函数可以很方便的帮助我们进行一些处理。比如大小写转换(UPPER, LOWER),去除空格(TRIM, RTRIM, LTRIM),以及取出串的一部分或者填充等等。

SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。

mysql> SELECT cust_name 
       FROM customers
       WHERE SOUNDEX(cust_name) = SOUNDEX(‘Y. lie‘);

在前面的学习过程,我们提到:默认情况下,MySQL在进行文本比较的时候,是不区分大小写的。这取决于MySQL的设置。我们如何避免这种情况呢? 在比较的时候,同时转为大写或小写即可,保持统一。

WHERE UPPER(name) = UPPER(‘skypeGNU‘);

3、数值计算函数

数值处理函数仅处理数值数据。这些函数一般主要用于代数、三角函数或几何运算,因此没有串或日期时间处理函数的使用那么频繁。

4、日期处理函数(日期也存储为字符串格式)

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

首先需要注意的是MySQL使用的日期格式。无论你什么时候指定一个日期。不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd。虽然其他的日期格式可能也行,但这是首选的日期格式,因为它排除了多义性。应该总是使用4位数字的年份,他们更可靠,因为MySQL不必做出任何假定。

SELECT cust_id, order_num
FROM orders
WHERE order_date = ‘2005-09-01‘;

其实,在内部日期和时间也是存储为字符串。所以可以按照字符串比较的方式进行。

但是,使用WHERE order_date = ‘2005-09-01‘;可靠吗?datetime这种类型存储日期和时间值,但是我们仅给出了日期值。怎么办?

解决办法是指示MySQL仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较。

SELECT cust_id, order_num
FROM orders
WHERE DATE(order_date) = ‘2005-09-01‘;   # DATE()

最佳实践:如果要的是日期,请使用DATE()。如果只想要时间,应该使用TIME()函数。

如果想检索出2005年9月,下的所有订单,怎么办?

SELECT cust_id, order_num
FROM orders
WHERE DATE(order_date) BETWEEN ‘2005-09-01‘ AND ‘2005-09-30‘;

另外还有一种方法(一种不需要记住每个月中有多少天或不需要操心闰2月的办法)

SELECT cust_id, order_num
FROM orders
WHERE YEAR(order_date) = 2005 AND MONTH(order_date) = 9;

强烈推荐这种方法。

5、聚集函数

  • 确定表中行数
  • 获得表中行组的和
  • 找出表列的最大值、最小值、平均值

聚集函数(aggregate function) 运行在多个行组上,计算和返回单个值得函数。

对于NULL值得行,除了COUNT(*),其他聚集函数都是忽略NULL值的行。

以上5个聚集函数都可以如下使用:

  • 对所有的行执行计算,指定ALL参数或不给参数
  • 如果想只包含不同的值,指定DISTINCT参数。

ALL为默认。如果不指定DISTINCT, 则假定为ALL。

mysql> SELECT AVG(DISTINCT prod_price) avg_price

如果指定列名,则DISTINCT只能用于COUNT(column)。DISTINCT不能用于COUNT(*),否则错误。

类似的,DISTINCT必须使用列名,不能用于计算或表达式。

MySQL入门-8:函数

时间: 2024-07-28 18:38:16

MySQL入门-8:函数的相关文章

【转】MYSQL入门学习之十三:自定义函数的基本操作

转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能  www.2cto.com 函数能分返回字符串,整数或实数; 可以定义一次作用于一行的简单函数,或作用于多行的组的集合函数; 二.基本操作 1.创建自定义函数 CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL} BEGIN //函数实现的语句 END; aggre

21分钟 MySQL 入门教程 && mysql数据类型

转自:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#c1 http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html 21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录

MySQL入门(三)

写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想写有关SQL的部分的,因为这个部分其实很简单,基本上大学只要好好听听数据库概论这门课基本上都能写满足功能的SQL,但是后来想想,SQL其实是人和数据库交互的一种接口,不会SQL确实是不可以的,写的不好感觉不出数据库有多么的强大,甚至有可能会让人产生出数据库慢的坏印象. MySQL作为most popular的

MySQL 入门教程

MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: 表头(header): 每一列的名称; 列(row): 具有相同数据类型的数据的集合; 行(col): 每一行用来描述某个人/物的具体信息; 值(value): 行的具体信息, 每个值必须与该列的数据类型相同; 键(key):

21分钟 MySQL 入门教程(转载!!!)

21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root

MySQL入门知识

简单介绍下吧,MySQL应用的场景大多数互联网公司第一次卖身是卖个了sun好像是10亿,第二次是连同sun自己,以74亿美元被卖给了Orecle~后面MySQL原作者站出来说,MySQL会存在闭源风险,整了个MariaDB~我也是醉了,也不考虑下我们的痛苦!下面简要介绍下MySQL的入门知识. 一.MySQL有三种定义语言 DDL:定义语言,比如:创建一张表,定义表的属性如索引.宽位等待 DML:操作语言,增删查改 DCL:控制语言,比如限定那个账户只能通过那个IP登入,又比如那个账户能访问那些

【数据库之mysql】 mysql 入门教程(二)

目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root 用户密码 可视化管理工具 MyS

MySQL入门转载

21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据

MySQL入门资料汇总(linux系统)

今天是第一次接触MySQL,并希望通过c++连接MySQL,一天的搜索下来,获益良多. 这里只是罗列一些教程的链接,以备不时之需. 1.安装部分:sudo apt-get install mysql-server  sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev(这个安装后在/usr/include/中会多出一个mysql文件夹,包含C++调用时所需的头文件) 卸载重装(注意风险!谨慎执行文档中清