2019独角兽企业重金招聘Python工程师标准>>>

浏览了一遍入门到精通,把常用的重要的又难记的内容记录稍微留了一下。基于版本为5.7,实际上5.x大部分都是通用的。

参考了许多资料,在此不一一感谢,知识在于分享,下面的内容大家也可以自由转载。

#数据库创建
CREATE DATABASE yourdbname; --原句
CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci; --一些常用选项#数据表创建
CREATE TABLE IF NOT EXISTS `tb1`(`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,`title` VARCHAR(100) NOT NULL,`author` VARCHAR(40) NOT NULL,`date` DATE DEFAULT '2017-12-25',PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;  --常用选项,指定引擎和默认字符字段编码#数据类型
DECIMAL--以近似值保存的严格小数位数,字段建立语法为DECIMAL(M,D)。
·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认值是10。
·D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。--实际存储时一共占M+2个字节,M为总数据长度,D为小数的精度。如果替换NUMERIC数据类型,会自动转为DECIMAL类型进行存储。--在插入数据时,首先会用精度函数进行小数控制转换,后实际存储为字符串,这意味着DECIMAL(3,2)可存储5字节的数字。也就是最小值为-9.99(length("-9.99")==5),最大值为99.99(length("99.99")==5)
一看便知的存储范围对比:
DECIMAL(4,1) -999.9 到 9999.9
DECIMAL(5,1) -9999.9 到 99999.9
DECIMAL(6,1) -99999.9 到 999999.9
DECIMAL(6,2) -9999.99 到 99999.99
DECIMAL(6,3) -999.999 到 9999.999#关键字
REGEXP  --使用正则表达式验证值,返回是否--示例:SELECT * FROM th1 WHERE tb1.column REGEXP('exp');#自定义函数--小例子:模拟随机日期,时间范围从1990年~2017年。
CREATE FUNCTION randomTime()
RETURNS VARCHAR(20)
RETURN CONCAT(FLOOR(1990 + (RAND() * 28)),'-',LPAD(FLOOR(1 + (RAND() * 12)),2,0),'-',LPAD(FLOOR(3 + (RAND() * 8)),2,0));--小例子:模拟随机时间,00:00:00~23:59:59
CREATE FUNCTION randomTime()
RETURNS VARCHAR(20)
RETURN CONCAT(LPAD(FLOOR(0 + (RAND() * 23)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0));--小例子:随机手机号(未严格处理真实手机号段,仅生成1开头的11位随机字符串)
CREATE FUNCTION randomPhone()
RETURNS VARCHAR(20)
RETURN UNIX_TIMESTAMP()*10+floor(rand()*4000000000);#存储过程--最佳适用范围:因为<b>性能需要</b>而进行编写,将众多操作流程统一编写在一个存储过程中完成。如果采用外部语言进行编写,可能会因为Mysql和语言之间的Socket传输而使性能损耗。--不应该把业务都封装为存储过程,不同DB之间的存储过程语法几乎全无共通性,这会加大迁移难度。--练习的小例子:用上面的函数生成任意大数据表,包含id,phone,time三个字段
DROP PROCEDURE IF EXISTS `proc_inc_id`;
DELIMITER ;;  --防止定义语句中的;符号与实际输入语句的;符号冲突
CREATE PROCEDURE `proc_inc_id`(IN start int, IN n int)
BEGINDECLARE i int;DECLARE phone VARCHAR(20);DECLARE time VARCHAR(30);SET i = start;SET phone = randomPhone();SET time =  CONCAT(randomDate(), ' ', randomTime());WHILE i <= n DOINSERT INTO `test` VALUES(i, phone, time);SET i = i + 1;SET phone = randomPhone();SET time =  CONCAT(randomDate(), ' ', randomTime());END WHILE;
END;;
DELIMITER ;  --还原语句分隔符--如何调用:call proc_inc_id(1, 100);  --第一参数是起始值--生成结果:效果还不错~
id phone time
1   17353812960 1993-12-05 21:32:00
2   16627556306 2013-01-09 14:54:42
3   18411883028 2015-02-10 09:12:44
4   15776347886 2004-02-03 03:20:21
5   18166751923 2009-02-08 03:36:36
6   16064327817 1998-10-03 19:12:26
7   17560492889 2008-07-09 04:41:51
8   16349305149 2014-05-06 01:01:52
9   16755050365 1998-05-10 07:04:18
10  16495763250 2011-10-07 12:57:17#性能优化:索引的重要性(100W数据量,上下分别为加索引之前和加索引之后)
mysql> select * from test order by phone limit 1;
+--------+-------------+---------------------+
| id     | phone       | datetime            |
+--------+-------------+---------------------+
| 796917 | 15147847086 | 2012-01-08 11:25:34 |
+--------+-------------+---------------------+
1 row in set (0.40 sec)mysql> select * from test order by phone limit 1;
+--------+-------------+---------------------+
| id     | phone       | datetime            |
+--------+-------------+---------------------+
| 796917 | 15147847086 | 2012-01-08 11:25:34 |
+--------+-------------+---------------------+
1 row in set (0.01 sec)  <-冷启动,后续就是0.00了

往后为主从、集群的配置,此处不具体实践。

627/627

转载于:https://my.oschina.net/u/2953734/blog/1594685

Mysql5.X重点难点速记相关推荐

  1. react源代码重点难点分析

    网上已经有不少react源码分析文档,但都是分析主流程和主要功能函数,没有一个是从reactDOM.render()入口开始分析源码把流程逻辑走通尤其是把重点难点走通直到把组件template编译插入 ...

  2. jQuery-ui源代码重点难点分析

    本文以jquery-ui sortable排序功能插件为例分析jquery-ui源代码重点难点. jquery-ui-sortable插件非常复杂深奥,本来是针对鼠标操作设计的,在手机运行无效,因为手 ...

  3. 【Spark重点难点】你从未深入理解的RDD和关键角色

    OK了,桑不啦pipo,today我们start更新Spark的重点难点系列了. 前言 之前我们成功完成了Flink重点难点部分的学习了.很多同学可能还没有意识到,你已经把Flink这个框架中最关键的 ...

  4. 微积分 重点难点记录

    微积分 重难点记录 见 微积分 重难点记录 本内容摘抄自 <Calculus>,均选自比较重要或者难理解的以及有用的知识,主要用于快速复习和回顾.目录是按照课本顺序的,但是整理并不一定按照 ...

  5. 【M】⽴项or申报书中的重点难点咋写?

    课题⽴项申报书中的重点和难点如何撰写 重点是什么? 重点就是研究要开展的重点工作或者是开展工作过程中要注意的重点环节,其实就是通过这项研究,要解决的那个基本问题.关键问题或者核⼼问题. 研究重点,事实 ...

  6. 微型计算机的难点,微机原理及应用重点难点.PDF

    微机原理及应用重点难点 微机原理及应用重点难点 第1章 微型计算机概述 本章重点介绍微型计算机的发展历程.微型计算机系统的组成,回顾计算机 的数据格式.难点在于对微型计算机系统结构的充分理解和数据格式 ...

  7. 等级保护测评工作重点难点_重点保护

    等级保护测评工作重点难点 在" Java的一些句子 "一文中,我写道: "受保护的方法和字段可以在同一包中的类中使用(到目前为止与私有包相同),此外,还可以从其他类中使用 ...

  8. 计算机应用教学对象分析,编辑演示文稿计算机应用基础教材分析学情分析教学目标重点难点 .ppt...

    编辑演示文稿计算机应用基础教材分析学情分析教学目标重点难点 魅力余姚期待您的光临 --编辑演示文稿 计算机应用基础 教材分析 学情分析 教学目标 重点难点 教学方法 教学设计 教学反思 教学准备 本节 ...

  9. 重点难点突破——级数与数列综合大题

    重点难点突破--级数与数列综合大题 几个月前有幸听过超哥(考研数学杨超)的课,他对于基础阶段同学的复习思路提出了自己的想法,大意就是:你们现在复习抓不住重点,总想着在基础阶段把所有考点一次性全弄懂.就 ...

最新文章

  1. GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练
  2. mysql查询枚举类型转换_zendframework获取数据库中枚举类enum的数据并将其转换成数组...
  3. 猫脸关键点检测大赛:三种方法,轻松实现猫脸识别!
  4. linux 访问不同网段
  5. page cache 与free
  6. 关于烂代码的那些事——什么是好代码
  7. pyinstaller--将py文件转化成exe
  8. android+放大缩小图片+有jar嘛,Android相册支持点击放大图片,滑动切换图片,手势放大缩小...
  9. linux统计代码注释率,统计代码注释率
  10. linux配置nginx命令行,Linux - 加上sudo后,nginx找不到命令
  11. openssl rsa密钥
  12. 机器学习集成模型学习——Boosting集成学习(四)
  13. 字符(串)输入输出函数
  14. c#通过OleDb连接sybase 15.5
  15. 【Android】【移动应用开发】基础知识
  16. 北大AI公开课第十课--人工智能在生命科学中的应用by碳云智能李英睿
  17. 关于SDN理解,老杨都放在这里了
  18. 基于加密的即时通信系统设计
  19. Python:将list写入Excel
  20. ppt纯文字设计的几种玩法(词云、文字云)

热门文章

  1. hdu_2063,二分图最大匹配的学习
  2. cmd安装linux服务器,cmdbuild安装
  3. mysql+性能优化+命令_MySQL性能优化
  4. 小白教程:Visual Studio2017配置GitHub图文教程
  5. fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux
  6. 导入图片后截取_微服务项目第36天:导入数据到索引库
  7. html中能比较两个小数吗,javascript如何判断数值是否为小数?
  8. linux tar压缩包目录,如何在Linux上使用tar命令解压和压缩文件
  9. 从民宅到独栋大厦 我们搬家啦!
  10. YoloV5的原理与实现-开源TensorFlow版