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 ...
随机推荐
- row cache lock
SQL> col name format a30 SQL> select * from (select SAMPLE_TIME, SESSION_ID, NAME, P1, P2, P3, ...
- 【转】VS2013中如何解决error C4996: 'fopen'问题
原文网址:http://jingyan.baidu.com/article/ce436649fd61543773afd32e.html 今天编写控制台应用程序时出现如下错误 error C4996: ...
- Java Hibernate 之 Session 状态
Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存.更新.删除和查询方法.它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新 ...
- 深入理解linux网络技术内幕读书笔记(九)--中断与网络驱动程序
Table of Contents 1 接收到帧时通知驱动程序 1.1 轮询 1.2 中断 2 中断处理程序 3 抢占功能 4 下半部函数 4.1 内核2.4版本以后的下半部函数: 引入软IRQ 5 ...
- chomp方法
chomp方法属于String类里面的: "hello".chomp #=> "hello" "hello\n".chomp #=&g ...
- Thinkphp中distinct的用法
Thinkphp中distincat的用法 TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/ma ...
- chrome devtools 实用快捷键
Ctrl + O:查找资源,非常使用 Ctrl + Shift + C:切换审查元素模式与浏览器窗口模式 Ctrl + Shift + F:在源代码中搜索 Ctrl + G:跳转到指定行
- MVC VIEW 时间格式控制
@Convert.ToDateTime(Model.CheckPatronExclusionResults.RequestTime).ToString("yyyy-MM-dd HH:mm:s ...
- 关于AppStore上传相关问题
1.电脑本地证书CertificateSigningRequest.certSigningRequest一定要一致(包括开发者证书,尤其是发布证书要一致,否则无法正常上传),此类错误Xcode一般会提 ...
- (1)QlikView概要
本文的内容,以学习的两个合伙人: I.什么是Qlikview II. QlikView 的优点和缺点 1.1什么是QlikView 1.1什么是QlikView QlikView是一个工具,一个商业智 ...