mysql时间函数

mysql知识点回顾与梳理

只愿长相守 提交于 2019-12-01 09:06:25
一、sql语句执行顺序 from join on where group by avg,sum,count等各种函数 having select distinct order by(asc(升序),desc(降序)) LIMIT 二、如何获取表记录,或者某字段不同值个数 select count(distinct a.user_id) as cnt from table a 三、如何在sql表(假设为表a)中删除重复行 方法1: stp1:筛选出不重复的表记录 select distinct a.* from a stp2:将记录插入到临时表b中 insert into b select distinct a.* from a stp3:清空表a truncate table a stp4:将临时表数据插入表a insert into a select * from b 方法2: delete from a where (a.col_1,a.col_2) in ( select col_1,col_2 from a group by col_1,col_2 having count(*) > 1) and rowid not in (select min (rowid) a vitae group by col_1,col_2 having count(*)>1) 四、My Sql

PostgreSQL 与 MySQL 相比,优势何在?

我只是一个虾纸丫 提交于 2019-12-01 08:46:17
一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。 二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。 三、 PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下mysql就差很多,instagram就是因为PG的空间数据库扩展POSTGIS远远强于MYSQL的my spatial而采用PGSQL的。 四、PG 的“无锁定”特性非常突出,甚至包括 vacuum 这样的整理数据空间的操作,这个和PGSQL的MVCC实现有关系。 五、PG 的可以使用函数和条件索引,这使得PG数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。 六、 PG有极其强悍的 SQL 编程能力(9.x 图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,比如分析函数(ORACLE的叫法

mysql now() sysdate() 区别

允我心安 提交于 2019-12-01 07:47:53
在mysql中,now()和sysdate()两个函数都可以返回当前时间,但是两者是有区别的。下面我们先来看一下mysql的官方解释: NOW() returns a constant time that indicates the time at which the statement began to execute. This differs from the behavior for SYSDATE() , which returns the exact time at which it executes. now()函数返回语句开始执行的时间;而sysdate()返回函数执行到的时间。 下面给出四种情况来理解两个函数的不同。 mysql> select NOW(),SLEEP(5),NOW(); +---------------------+----------+---------------------+ | NOW() | SLEEP(5) | NOW() | +---------------------+----------+---------------------+ | 2015-09-24 10:19:44 | 0 | 2015-09-24 10:19:44 | +---------------------+----------+---------------

6-5 函数

巧了我就是萌 提交于 2019-12-01 06:55:35
一 函数 MySQL中提供了许多内置函数,例如: 一、数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。 二、聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值 SUM(col)返回指定列的所有值之和 GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果 三、字符串函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。 CONCAT(str1,str2,...) 字符串拼接 如有任何一个参数为NULL ,则返回值为 NULL。 CONCAT_WS(separator,str1,str2,...) 字符串拼接(自定义连接符) CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。 CONV(N,from_base,to_base) 进制转换 例如: SELECT CONV('a',16,2); 表示将 a 由16进制转换为2进制字符串表示 FORMAT(X,D) 将数字X 的格式写为'

关于MySQL的日期和时间类型

纵然是瞬间 提交于 2019-12-01 05:24:53
摘自MySQL中文文档: 11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 表示时间值的DATE和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。每个时间类型有一个有效值范围和一个“ 零 ”值,当指定不合法的MySQL不能表示的值时使用“ 零 ”值。TIMESTAMP类型有专有的自动更新特性,将在后面描述。 如果试图插入一个不合法的日期,MySQL将给出警告或错误。可以使用ALLOW_INVALID_DATES SQL模式让MySQL接受某些日期,例如'1999-11-31'。当你想要保存一个“ 可能错误的 ”用户已经在数据库中指定(例如,以web形式)用于将来处理的值时很有用。在这种模式下,MySQL只验证月范围为从0到12,日范围为从0到31。这些范围可以包括零,因为MySQL允许在DATE或DATETIME列保存日/月和日是零的日期。这在应用程序需要保存一个你不知道确切日期的生日时非常有用。在这种情况下,只需要将日期保存为'1999-00-00'或'1999-01-00'。如果保存此类日期,DATE_SUB()或DATE_ADD等需要完整日期的函数不会得到正确的结果。(如果你不想在日期中出现零,可以使用NO_ZERO_IN_DATE

MySQL Reference Manual中文版

前提是你 提交于 2019-12-01 05:01:08
<< Back to man.ChinaUnix.net MySQL Reference Manual for version 4.1.0-alpha.     译者序   列类型与函数索引 6 MySQL 语言参考 6.1 语言结构 6.1.1 文字:怎么写字符串与数字 6.1.1.1 字符串 6.1.1.2 数字 6.1.1.3 十六进制值 6.1.1.4 NULL 值 6.1.2 数据库、表、索引、列和别名 6.1.3 名字的大小写敏感性 6.1.4 用户变量 6.1.5 系统变量 6.1.6 注释句法 6.1.7 MySQL 对保留字挑剔吗? 6.2 列类型 6.2.1 数字类型 6.2.2 Date 和 Time 类型 6.2.2.1 Y2K 问题和日期类型 6.2.2.2 DATETIME、DATE 和 TIMESTAMP 类型 6.2.2.3 TIME 类型 6.2.2.4 YEAR 类型 6.2.3 字符串类型 6.2.3.1 CHAR 和 VARCHAR 类型 6.2.3.2 BLOB 和 TEXT 类型 6.2.3.3 ENUM 类型 6.2.3.4 SET 类型 6.2.4 为列选择正确的类型 6.2.5 使用来自其它的数据库引擎的列类型 6.2.6 列类型存储需求 6.2.6.1 数字类型存储需求 6.2.6.2 日期和时间类型存储需求 6.2.6.3

学习MySQL官方文档(一)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 04:44:20
前提:看这篇文档之前我已经装了一台虚拟机,并在虚拟机上装好了mysql服务,还装了Navicat并连接上虚拟机的mysql服务 1、连接到服务器和从服务器断开连接 shell> mysql - h host - u user - p Enter password: * * * * * * * * Welcome to the MySQL monitor . Commands end with ; or \g . Your MySQL connection id is 25338 to server version: 5 . 7 . 29 - standard Type 'help;' or '\h' for help . Type '\c' to clear the buffer . mysql> host是要连接的服务器的ip,如果是在运行MySQL的同一台计算机上登录,则可以省略主机,只需使用以下命令: shell> mysql - u user - p 如果在尝试登录时收到诸如ERROR 2002(HY000)之类的错误消息 :无法通过套接字’/tmp/mysql.sock’(2)连接到本地MySQL服务器,则意味着该MySQL服务器守护程序(Unix)或服务(Windows)未运行。 从服务器断开连接 mysql> QUIT Bye 2

MySQL学习大全

喜夏-厌秋 提交于 2019-12-01 04:37:51
1 登录数据库 格式: mysql -h主机地址 -u用户名 -p用户密码–P端口 –D数据库–e “SQL 内容” >mysql -uroot -p 数据库名称 2 修改密码 mysqladmin -u用户名 -p旧密码 password 新密码 Mysqladmin -uroot -password test1 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 例2:再将root的密码改为test1。 mysqladmin-uroot -ptest1 password test2 3 添加用户 格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码” 例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令: grant select,insert,update,deleteon *.* to test2@localhost identified by\"abc\"; 如果你不想test2有密码,可以再打一个命令将密码消掉。 grantselect,insert,update,delete on mydb.* to test2@localhostidentified by \"\"; 4 创建数据库

MySQL中文参考手册

半世苍凉 提交于 2019-12-01 04:12:46
转至: http://www.zhaophp.com/mysql/manual_toc.html 0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5 MySQL稳定性? 1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 2.4 在邮件列表上回答问题的指南 3 MySQL的许可证和技术支持 3.1 MySQL的许可证政策 3.2 MySQL 使用的版权 3.2.1 可能的未来版权改变 3.3 MySQL商业性分发 3.4 许可证实例 3.4.1 销售使用 MySQL的产品 3.4.2 销售MySQL相关的服务 3.4.3 ISP MySQL服务 3.4.4 运营一个使用MySQL的Web服务器 3.5 MySQL的许可证和技术支持费用 3.5.1 付款信息 3.5.2 联系信息 3.6 商业性支持的类型 3.6.1 基本的电子邮件支持 3.6.2 扩展的电子邮件支持 3.6.3 登录支持 3.6.4 扩展的登录支持 4 安装 MySQL 4.1 怎样获得MySQL 4.2