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 ...
随机推荐
- API认证方法一览
Open api authentication Amazon DigitalOcean Webchat Weibo QQ Amazon Web Services HMAC Hash Message A ...
- javascript变量:全局?还是局部?这个得注意!
做项目就是一个学习的过程! 做为一个学习C3年多,从C程序员转前端的人来说,javascript中的许多规则是没办法或者说一时半会理解不了的. 今天就遇到了一个,大致就是这么个代码. var a ; ...
- HDU5107---K-short Problem (线段树区间 合并、第k大)
题意:二维平面上 N 个高度为 Hi 建筑物,M次询问,每次询问输出 位于坐标(x ,y)左下角(也就是xi <= x && yi <= y)的建筑物中的第k高的建筑物的高 ...
- pods 这两篇就够了
http://www.cnblogs.com/gongyuhonglou/p/5801681.html http://blog.csdn.net/iunion/article/details/1701 ...
- DedeCMS安装及目录结构
一.安装DedeCMS 1.下载DedeCMS安装包,我下载的版本是DedeCMS-V5.7-UTF8-SP1.tar.gz 官方下载地址 2.解压DedeCMS-V5.7-UTF8-SP1.tar. ...
- java中jvm的工作原理
首先我们安装了jdk和jre,但是jdk是为java软件开发工程师而使用的开发工具,我们运行java项目只要含有jre文件即可.对于jvm是内存分配的一块区域,我们知道,当我们开始使用java命令时, ...
- Jmeter接口测试案例实践(一)
1.1. 接口介绍 本次测试的接口采用内网中的通讯录查询接口进行测试,接口参数如下: 1.2. 使用Jmeter进行接口测试 1.2.1. 打开Jmeter 下载好Jmeter后,双击bin目录下的j ...
- java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包。
java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包.
- Android-自定义PopupWindow
PopupWindow在应用中应该是随处可见的,很常用到,比如在旧版本的微信当中就用到下拉的PopupWindow,那是自定义的.新版微信5.2的ActionBar,有人已经模仿了它,但微信具体是使用 ...
- C++ primer 中文第三版 阅读笔记 第八章
一.寄存器对象: 函数中频繁被使用的变量可以加上register就可声明为寄存器对象.对于寄存器对象,假如能够放到寄存器中就会放到寄存器中,放不到的话就放到内存中.比如 register int a ...