mysql - 语法复习与学习
- //本月的第一天,最后一天
- $start=date('Y-m-01', strtotime(date("Y-m-d")));
- echo date('Y-m-d', strtotime("$start +1 month -1 day"));
- //上一个月的第一天,最后一天
- $start=date("Y-m-d",strtotime("2016-11-01"."-1 month"));
- echo date('Y-m-d', strtotime("$start +1 month -1 day"));
- //下一个月的第一天,最后一天
- $start=date("Y-m-d",strtotime("2016-11-01"."+1 month"));
- echo date('Y-m-d', strtotime("$start +1 month -1 day"));
一、当天或当日插入的数据:
1、传统对比判断:SELECT * FROM `t` WHERE DATE_FORMAT(addTime,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
2、第一点的简写:SELECT * FROM `t` WHERE addTime >= date_format(NOW(),'%Y-%m-%d');
3、利用函数判断:SELECT * FROM `t` WHERE DATEDIFF(addTime,NOW()) =0;//推荐此方法
4、利用时间戳判断:SELECT * FROM `t` WHERE addTime BETWEEN (UNIX_TIMESTAMP(now()-86440)) AND now();
注:返回当天时间的mysql函数有CURDATE()、CURRENT_DATE()、CURRENT_DATE、NOW()几种;其中NOW()获取的日期格式为0000-00-00 00:00:00的时间;CURDATE()、CURRENT_DATE()、CURRENT_DATE是获取日期格式为0000-00-00的时间,所以返回的时间无时分秒;
1、时间戳转日期,方法是select from_unixtime(1336542121);
2、日期转时间戳,方法是:select unix_timestamp('2013-04-08′);
mysql分区
使用 : select * from news_main PARTITION(news_main_a)
注意:当我们使用insert语句的时候,默认会分配到最后一个分区
注意:据说只有MyISAM类型才可以分区
- #分区
- alter table news_main PARTITION by range(id)
- (
- PARTITION news_main_a values less than(4),
- PARTITION news_main_b values less than(6),
- PARTITION news_main_c values less than(MAXVALUE)
- );
- #显示Mysql的文件目录路径
- show VARIABLES like '%datadir%';
- #合并分区
- alter table 表名 reorganize partition 分区名1,分区名2 into (partition 分区名 values less than (xx));
- #取消分区(重新合并所有分区)
- Alter table news_main remove partitioning;
- #删除分区(包含分区中的数据)
- alter table 表名drop partition 分区名;(丢数据)
explain 性能检测(不会执行操作)
- ALL #(最差)全表扫描
- index # 排序查询,如order by id,id必须是索引或者主键,说明了哪怕默认是正排序,也得使用一下
- range # 范围查询,如where id > 20 、 id like '20%',id必须是索引或者主键
- const #(最优)索引查询,如where id = 1
时间类型字段通常用timestamp类型。默认公式为:CURRENT_TIMESTAMP
rand()随机获取1-50的整数
- SELECT FLOOR(1 + (RAND() * 50));
获取guid
- SELECT UUID();
@变量赋值与取值
- SELECT user_name,user_pwd INTO @user_name,@user_pwd from user_table where user_id = '';
- SELECT @user_name,@user_pwd;
SELECT + IF
- select if(bid <> '',3,type) from statements
获取当前时间
- SELECT CURDATE() //2016-06-20
获取昨天的时间
- SELECT UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL DAY)) //2016-06-19
获取当前时间戳
- SELECT UNIX_TIMESTAMP()
转换时间戳
- SELECT FROM_UNIXTIME(update_time, '%Y-%m-%d %H:%i:%S') FROM `user`
- SELECT FROM_UNIXTIME( `happen_time` ) from statements
获取当前时间
- mysql> select now();
- +---------------------+
- | now() |
- +---------------------+
- | 2008-08-08 22:20:46 |
- +---------------------+
时间相差(其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR。)
- SELECT TIMESTAMPDIFF(HOUR,'2016-05-13 20:50:54',now())
时间转化
- DATE_FORMAT('2012-12-12 11:10:02','%Y-%m-%d')
定义变量以及赋值
- SELECT @Q := question as Q FROM user WHERE openid = '' limit
mysql - 语法复习与学习的更多相关文章
- 学习mysql语法--基础篇(一)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: 一.创建用户,创建数据库,给 ...
- 学习mysql语法--基础篇(二)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成] DML ...
- mysql语法之case when then与列转行
mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...
- MySQL实战45讲学习笔记:第十五讲
一.引子 在今天这篇答疑文章更新前,MySQL 实战这个专栏已经更新了 14 篇.在这些文章中,大家在评论区留下了很多高质量的留言.现在,每篇文章的评论区都有热心的同学帮忙总结文章知识点,也有不少同学 ...
- mysql 5.0存储过程学习总结
mysql存储过程的创建,删除,调用及其他常用命令 本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.q ...
- 多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客
多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客 多IDC数据分布--MySQL多机房部署
- MYSQL 语法大全自己总结的
mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...
- 语法分析器初步学习——LISP语法分析
语法分析器初步学习——LISP语法分析 本文参考自vczh的<如何手写语法分析器>. LISP的表达式是按照前缀的形式写的,比如(1+2)*(3+4)在LISP中会写成(*(+ 1 2)( ...
- MySQL事务控制语句(学习笔记)
MySQL事务控制语句(学习笔记) MySQL事务控制语句 在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作.因此开启一个事务必须使用begi ...
随机推荐
- ORA-01843: 无效的月份,执行sql语句更改为美国语言后仍然失败的解决办法
ORA-01843: 无效的月份失败的 sql 为:XXXXXXXXXXXXXXXX 执行sql语句更改为美国语言后仍然失败, ALTER SESSION SET NLS_DATE_LANGUAGE= ...
- [Javascript] Understand Curry
The act of currying can be described as taking a multivariate function and turning it into a series ...
- 【pyhon】理想论坛爬虫1.05版,将读取和写DB分离成两个文件
下午再接再厉仿照Nodejs版的理想帖子爬虫把Python版的也改造了下,但美中不足的是完成任务的线程数量似乎停滞在100个左右,让人郁闷.原因还待查. 先把代码贴出来吧,也算个阶段性成果. 爬虫代码 ...
- Office EXCEL VBA数组如何使用
Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例() Dim x As Long, y As Long Dim ...
- ZH奶酪:通过CSS自定义HTML中hr样式-颜色-形状
修改颜色,线条形状,粗细等... CSS代码: .zh_hr{ border:3px solid rgba(255, 255, 255, 0.50); margin-bottom: 2px; marg ...
- android kernel控制台初始化过程
对于我们的android平台,控制台被定义到了串口1上,因此初始化过程就是把控制台的输出配置到串口1上 对kernel控制台初始化是在挂载文件系统之前,由于没有串口的设备文件,不能通过打开设备文件来访 ...
- mac 终端 使用 gnu coreutils 工具 ls 颜色显示
mac 终端默认 ls 命令无颜色显示: 1: 使用 ls -G 可以显示基本颜色 2:使用 gnu coreutils 工具 mac 终端 使用 gnu coreutils 工具 ls 颜色显示 以 ...
- window中findstr命令的用法
http://www.netingcn.com/window-findstr-command.html findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含(或通过参数 ...
- UDP和TCP的比較
当client须要请求数据库server上的某些数据时,它至少须要三个数据报来建立TCP连接.三个数据报礼发送和确认少量数据,三个用来关闭连接. 然而,假设使用UDP的话,只须要发出两个数据报就能达到 ...
- 《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记
一.为什么GUI是单线程化 传统的GUI应用程序通常都是单线程的. 1. 在代码的各个位置都须要调用poll方法来获得输入事件(这样的方式将给代码带来极大的混乱) 2. 通过一个"主事件循环 ...