MySQL扩展
一、使用MySQL特有的函数!
1》到年底还有几天
select datediff('2014-12-31','2014-6-21');//此函数用于计算日期只差
select datediff('2014-12-31',now());//函数now为当前日期
2》年月日
select year(now());
select moth(now());
select day(now());
3》substring(str,position[,length])
从str的position开始,取length个字符
索引从1开始。
code:
select substring('http://localhost:8080/day12/mysql',29);//mysql
select substring('http://localhost:8080/day12/mysql',29,2);//my
4》format
保留小数点后2位,四舍五入
select fromat(3.141596535,2);
5》向下取整
select floor(3.14);
select floor(-3.14);
select floor(3.54);
select floor(-3.54);
6》向上取整
select ceiling(3.14);
7》取随机值
rand();返回一个随机浮点值 v ,范围在 0 到1 之间
select format(rand(),2);
取1-6之间的随机整数值:
select floor(rand()*6)+1;//6代表取值之间的数字
8》随机产生'a'-'z'之间的随机字符
1)查询'a'-'z'对应的Unicode值
select ascii('a');
select ascii('z');
2)产生97-122之间的随机整数
select floor(rand()*26)+97;
3)产生97-122之间对应的字符
select char(select floor(rand()*26)+97);
9》利用MySQL的函数,对密码'123456'进行MD5加密
code:
select md5('123456');
二、扩展知识——MySQL特有流程控制函数:
1》if(value,第一值,第二值);
value为真,取第一值,否则取第二值
类似于Java中的三目运算符
code:
将5000元(含)以上的员工标识为"高薪",否则标识为"起薪"
select if(salary>=5000,'高薪','起薪')
from user;
2》ifnull(value1,value2)
value1为NULL,用value2替代
code:
将薪水为NULL的员工标识为"无薪"
select name as 员工,ifnull(salary,'无薪') as 薪水情况
from user;
3》case when [value] then [result1] else [result2] end;
当value表达式的值为true时,取result1的值,否则取result2的值(if...else...)
将5000元(含)以上的员工标识为"高薪",否则标识为"起薪"
select
case when salary>=5000 then '高薪'
else '起薪' end
from user;
4) case [express] when [value1] then [result1] when [value2] then [result2] else [result3] end;
当express满足value1时,取result1的值,满足value2时,取result2的值,否则取result3的值(switch...case..)
将7000元的员工标识为"高薪",6000元的员工标识为"中薪",5000元则标识为"起薪",否则标识为"低薪"
select
case salary
when 7000 then '高薪'
when 6000 then '中薪'
when 5000 then '起薪'
else '低薪' end
from user;
课堂练习:
1》查询相同性别的员工总人数>2的工资综合,并按工资综合降序排列
select gender as 性别, count(*) as 员工数
from user
group by gender
having count(*)>3
order by sum(salary) desc;
2》将性别为男的员工工资-1000,性别为女的员工工资+1000,在一条SQL上完成
方法一:
select id, name, gender as 性别,case when gender='female' then salary+1000 else salary-1000 end as 工资
from user;
方法二:
select id,name,gender as 性别, if(gender='femal',salary+1000,salary-1000) as 工资 from user;
方法三:
select id,name,gender as 性别, case gender when 'female' then salary+1000 else salary-1000 end as 工资 from user;
总结:
count函数,sum函数等:
1》没有group by 进行分组的时候将整个表看为一组,进行计算、统计;
2》有group by 进行分组的时候,以分后的组为依据,进行计算和统计。
MySQL扩展的更多相关文章
- PHP基础Mysql扩展库
mysql扩展库操作步骤如下: 1.连接数据库 2.选择数据库 3.设置操作编码 4.发送指令sql,并返回结果集 ddl:数据定义语句 dml:数据操作语句 dql:数据查询 ...
- mysql扩展库-1
启用mysql扩展库 在php.ini文件中去配置mysql扩展库 extension=php_mysql.dll 可以通过 phpinfo() 查看当前php支持什么扩展库. 在sql扩展库中创建一 ...
- 您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展”处理方法
转自:http://www.xuebuyuan.com/1549022.html 这已经是一个老掉牙的问题了,部分人使用自己的服务器安装WordPress程序之后,会出现“您的 PHP 似乎没有安装运 ...
- Centos中安装PHP的PDO MySQL扩展的教程
PHP Data Objects(PDO)扩展为 PHP 访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能.注意利用 PDO 扩展自身并 ...
- PHP的MySQL扩展:MySQL数据库概述
来源:http://www.ido321.com/1023.html 一.SQL:结构化查询语言 SQL(Structured Query Language)是高级的非过程化变成语言,专门用于查询和修 ...
- php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库
1.使用php的MySQL扩展库操作MySQL数据库: php有3种方式操作MySQL数据库 (1)mysql扩展库 (2)mysqli扩展库 (3)pdo mysql扩展库与mysql数据库 ...
- mysql扩展库操作mysql数据库
环境搭建 启用mysql扩展库,在php.ini文件中去配置mysql扩展库 extension=php_mysql.dll 查询数据库 1.建库建表 //建库testcreate database ...
- 【小结】有关mysql扩展库和mysqli扩展库的crud操作封装
现阶段php如果要操作mysql数据库 php给我们提供了3套库 1.mysql扩展库 面向过程操作 2.mysqli扩展库 面向对象操作和面向过程操作并存 安全性和效率高于mysql扩展库 ...
- php使用mysql扩展库链接mysql数据库(查询)
php链接数据库可以使用mysql扩展库,mysqli,pdo这几种方式,相比java而言要麻烦一点,因为它不像java那么统一.从代码的难易程度来说php的确要简单许多.步骤大体如下 1.打开数据库 ...
- 在python3中安装mysql扩展,No module named 'ConfigParser'
在python2.7中,我们安装的是 MySqldb或这 MySQL-python,能够正却安装,但在python3中,由于 其使用的扩展 ConfigParser 已经改名为 configpars ...
随机推荐
- 优化大型复杂SQL
with aa as (select a.agmt_id, sum(c.acct_bal) as card_bal, --借记卡期末存款余额 a.card_open_org, a.OPEN_DATE, ...
- left join 关联条件位置
select e.last_name, e.department_id, d.department_name from hr.employees e left outer join hr.depart ...
- GitHub的使用详解!Windows GitHub ,Sublime Git GitGutter的使用!
Github是什么? 它是代码管理工具. 在公司写的代码,不需要U盘拷贝回家,不需要放到网盘中.只需要上传到git上,就可以回家继续拷贝下来了. 比起svn要好, svn只适合局域网工作,离开局域网, ...
- android中操作SQLite注意事项
调用rawQuery()后,需要调用Cursor的movToFirst(); public Cursor query(String sql, String[] args){ SQLiteDatabas ...
- java实现的23种设计模式 (个人推荐)
http://zz563143188.iteye.com/blog/1847029 mark下,个人用,大家会也可以看看写的不错.
- JS浏览器对象-History对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JS中事件代理与委托
在javasript中delegate这个词经常出现,看字面的意思,代理.委托.那么它究竟在什么样的情况下使用?它的原理又是什么?在各种框架中,也经常能看到delegate相关的接口.这些接口又有什么 ...
- IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站
配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? ...
- DFBle.swift
//// DFBle.swift// DFBle//// Created by LeeYaping on 15/9/2.// Copyright (c) 2015年 lisper. All r ...
- wpf 中自定义控件及其使用
主要有3个步骤: 1. 首先创建一个自定义的控件,该控件继承 TextBox namespace EzIntePark.Presentation.Common { /// <summary> ...