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

 mysql简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

拼接字段

存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。

计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在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_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;

聚集函数

我们经常需要汇总函数,而不是把它们实际检索出来。

这种类型的检索例子:

1. 确定表中行数

2. 获得表中行组的和

3. 找出表列(or 所有行某些特定的行)的最大值,最小值和平均值

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

AVG() 返回某列的平均值

COUNT() 返回某列的行数

MAX() 返回某列的最大值

MIN() 返回某列的最小值

SUM() 返回某列值的和

求某一列的平均值

代码如下:

select avg(prod_price) as avg_pricefrom products;

- 计数

使用count(*)对表中行的数目进行计数(whether null or not)

使用count(column)对特定列具有值的行进行计数,忽略null

求和

使用sum()返回指定列值的和

以上所述是小编给大家介绍的MYSQL必知必会读书笔记第十和十一章之使用函数处理数据的相关知识,希望对大家有所帮助!

(0)

相关推荐

  • MySql判断汉字、日期、数字的具体函数

    几个平常用的mysql函数,MySql判断汉字.日期.数字的具体函数分享给大家,具体内容如下 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 DROP FUNCTION IF EXISTS fc_is_hanzi; CREATE FUNCTION fc_is_hanzi( p_str VARCHAR(1024) ) RETURNS int(11) NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT '检查字符串是否为汉字' BEGIN /*检查字

  • MySQL存储过程中的基本函数和触发器的相关学习教程

    MySQL存储过程的常用函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0 LCASE (string2 ) //转换成小写 LEFT (string2 ,length ) //从string2中的左边起取length个字符 LENGTH (string ) //string长度 LOAD_FI

  • MYSQL 创建函数出错的解决方案

    在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考. 案例一: 目前在项目中,执行创建mysql的函数出错, mysql 创建函数出错信息如下: Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation 首先检查创建函数的功能是否开启,检查是否开启创建功能的SQL如下: -

  • MySQL函数一览_MySQL函数全部汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时查看. 数学函数 (1)ABS(x) 返回x的绝对值 (2)PI() 返回圆周率π,默认显示6位小数 (3)SQRT(x) 返回非负数的x的二次方根 (4)MOD(x,y) 返回x被y除后的余数 (5)CEIL(x).CEILING(x) 返回不小于x的最小整数 (6)FLOOR(x) 返回不大于x

  • 理解MySQL存储过程和函数

    一.概述  一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它.因为mysql中存储过程和函数的语法非常接近所以就放在一起,主要区别就是函数必须有返回值(return),并且函数的参数只有IN类型而存储过程有IN.OUT.INOUT这三种类型. 二.语法   创建存储过程和函数语法 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] rout

  • MySql存储过程与函数详解

    存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输. 一.存储过程 1.1.基本语法 CREATE PROCEDURE sp_name ([proc_parameter[,...]])    [characteristic ...] routine_body Sp_name:存储过程的名称

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

     mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 拼接字段 存储在数据库表中的数据一般不是应用程序所需要的格式.我们需要直接从数据库中检索出转换.计算或格式化过的数据:而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化. 计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的

  • MYSQL必知必会读书笔记第六章之过滤数据

    mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. where子句的位置,在同时使用ORDER BY 和WHERE子句时应该让ORDER BY 位于where之后,否则会产生错误. 1.不匹配检查 复制代码 代码如下: SELECT vend_id FROM products where vend_id <>1003 等同于 复制代码 代码如下: SELECT vend_id

  • MYSQL必知必会读书笔记第三章之显示数据库

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. show column from tablename: 对每一个字段返回一行,行中包含字段名,数据类型.是否允许NULL.键信息.默认值以及其他信息. describe 语句: MySQL支持使用describ作为show columns from 的一种快捷方式.describ tablename 所支持的其他的show语句: show s

  • MYSQL必知必会读书笔记第七章之数据过滤

    mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 计算次序: where 可以包含任意数目的and和or,允许两者结合以进行复杂和高级的过滤.但是SQL在操作or之前会优先的处理AND操作符.如果想优先的使用or的条件可以使用括号. in:为什么要使用in操作符?其优点具体如下. 1.在使用长的合法选项清单时,in操作符的语法更清楚直观 2.在使用IN时,计算的次序更容易管理

  • MYSQL必知必会读书笔记第二章之版本更改

    MySQL的当前版本为版本5,以下列出最近版本的主要更改: 4.---------InnoDB引擎,增加了事务处理.并.改进全文搜索等支持. 4.1--------对函数库.子查询.集成帮助等重要增加. 5.-------------增加了存储过程.触发器.游标.视图等 以上内容是小编给大家介绍MYSQL必知必会读书笔记的相关知识,希望对大家有所帮助!

  • MYSQL必知必会读书笔记第五章之排序检索数据

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 其实,检索出的数据并不是以纯随机顺序显示的.如果不排序,数据一般将以它底层表现中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响.因此,如果不明确控制的话,不能依赖该排序顺序. 在多个列上将序排列 :如果想在多个列上进行将序排列,必须每个列指定DESC关键字

  • MYSQL必知必会读书笔记第八章之使用通配符进行过滤

    mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用通配符的技巧: 1.不要过度使用通配符.如果其他操作符能达到通配符相同的效果,应该优先的使用其他操作符 2.在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处.把通配符置于搜索模式的开始处,搜索起来是最慢的. 3.仔细注意通配符的位置,如果放错了地方,可能不会返回想要的结果 注意事项: 区分大小写:

  • MYSQL必知必会读书笔记第四章之检索数据

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显示的数据会与其他的地方顺序不同.出现这种情况很正常.如果没有明确排序查询结果.则返回的数据没有特殊意义.返回数据的顺序可能是是数据被添加到表中的顺序,也可能不是.只要返回相同数目的行,就是正常. 注意:SQL语句和大小写 请注意,SQL语句不区分大小写,因此select和SELECT是相同的.同样,

  • MySQl数据库必知必会sql语句(加强版)

    这一篇属于加强版,问题和sql语句如下. 创建users表,设置id,name,gender,sal字段,其中id为主键 drop table if exists users; create table if not exists users( id int(5) primary key auto_increment, name varchar(10) unique not null, gender varchar(1) not null, sal int(5) not null ); inse

  • MySQL数据库必知必会之安全管理

    目录 权限表 1. user 表 2. db 表 3. tables_priv 表 4. columns_priv 表 账户管理 1. 新建普通用户 2. 删除普通用户 3. Root 用户修改自己的密码 4. Root 用户修改普通用户的密码 密码管理 1. 密码过期策略 2. 密码重用策略 角色 1. 创建角色并授权 2. 给用户添加角色 3. 编辑角色或权限 4. 删除角色 总结 权限表 MySQL 服务器通过权限表来控制用户对数据库的访问,由 mysql_install_db 脚本初始化

随机推荐