mysql
HNDX2018
十年之后,你是否还在IT。
十年之后,你是否已经成家。
十年之后,你过的怎么样了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql之memory 存储引擎20180917
(1)memory是基于内存数据的存储引擎(2)一张memory表,在磁盘上有一个表定义文件(.frm),在内存中保存数据。(3)特点:基于内存,所以访问速度特别快。(4)默认使用Hash索引,也可以指定B树索引。(5)注意:mysql服务关闭,则表的数据就会丢失。(6)使用memory,要注意内存是否足够。对不用的memory表,要及时删除或truncate;(7)每个m...原创 2018-09-17 18:06:20 · 821 阅读 · 0 评论 -
MySQL的视图
(1)MySQL从5.0.1版本开始提供视图功能(2)视图是虚拟表,由实际存在的表动态生成。(3)为什么使用视图?安全,简单,数据独立。(4)注意:创建和修改视图要有相关的权限。(5)MySQL的视图功能是比较弱的,视图的可更新性在这些情况下受限:a. 包含以下关键字:聚合函数,DISTINCT ; GROUP BY ; HAVING ,UNION , 或者UNION...原创 2018-09-28 09:15:15 · 157 阅读 · 0 评论 -
MySQL的存储过程和函数
(1)MySQL从5.0版本喀什支持存储过程和函数(2)存储过程和函数的区别在于函数必须有返回值,而存储过程没有。(3)存储过程的参数可以使用IN,OUT,INOUT类型,而函数的参数只能是IN类型(4)在对存储过程或函数进行操作时,需要首先确认是否有相应的权限: 创建存储过程或者函数需要CREATE ROUTINE权限 修改或者删除存储过...原创 2018-09-28 09:58:29 · 190 阅读 · 0 评论 -
MySQL之存储过程或函数的创建,修改
(1) 存储过程创建语法:CREATE PROCEDURE sp_name ([proc_parameter]) [characteristic...] routine_body (2) 函数创建语法:CREATE FUNCTION sp_name ([func_parameter])RETURNS type[characteristic ...] rout...原创 2018-09-29 08:22:42 · 1212 阅读 · 0 评论 -
MySQL的存储过程(二)
characteristic特征值:(1)LANGUAGE SQL:说明下面过程的BODY是适用SQL语言编写,这条是系统默认的,为今后MySQL会支持的除SQL外的其他语言支持的存储过程而准备。(2) [NOT ] DETERMINISTIC:DETERMINISTIC 确定的,即每次输入一样输出也一样的程序,NOT DETERMINISTIC 非确定的,默认是非确定的。该关键词只有...原创 2018-09-29 10:00:27 · 195 阅读 · 0 评论 -
MySQL的流程控制语句
(1)IF语句IF search_condition THEN statement_list [ELSEIF search_condition THNE statement_list] [ELSE statement_list]END IF(2)CASE语句CASE case_value WHEN when_value...原创 2018-10-08 09:01:15 · 531 阅读 · 0 评论 -
MySQL之删除和查看存储过程
(1)一次只能删除一个存储过程或者函数。注意,要具有ALTER ROUTINE权限(2)删除语句:DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name示例语句:DROP PROCEDURE film_in_stock;(3)可以查看存储过程,函数的状态,定义等信息,了解相关的基本情况a. 查看存储过程或函数的状态SH...原创 2018-09-29 11:19:57 · 2497 阅读 · 0 评论 -
MySQL的事件调度器
(1)事件调度器功能是MySQL5.1后新增(2)功能: 将数据库按自定义的时间周期触发某种操作(3)示例:CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO UPDATE myschema....原创 2018-10-08 11:45:53 · 277 阅读 · 0 评论 -
MySQL的存储过程和函数之 变量
(1)声明变量的语法:DECLARE var_name[,...] type [DEFAULT value] 示例:DECLARE last_month_start DATE;(2) 变量的作用域BEGIN...END 块中(3)注意事项:a. 变量声明语句要放在复合语句的开头,并且在任何其他语句的前面b. 可以一次声明多个相同类型的变量c. 可以给...原创 2018-09-29 16:18:31 · 231 阅读 · 0 评论 -
MySQL之条件的定义和处理
(1)条件是用来定义在处理过程中遇到问题时相应的处理步骤。(2)条件定义的语法:DECLARE condition_name CONDITION FOR codition_value condition_value:SQLSTATE [VALUE] sqlstate_value| mysql_error_code (3) 条件处理的语法:DECLARE ...原创 2018-09-30 08:20:59 · 655 阅读 · 0 评论 -
MySQL的游标
(1) 游标用于对结果集进行循环处理(2)声明光标:DECLARE cursor_name CURSOR FOR select_statement(3)OPEN光标OPEN cursor_name(4)FETCH光标 (以循环结构进行获取,每次能获取一条记录,光标自己会移动)FETCH cursor_name INTO var_name,[,var_na...原创 2018-09-30 08:32:17 · 245 阅读 · 0 评论 -
MySQL的触发器
1. MySQL从5.0.2版本开始支持触发器的功能。2. 创建触发器CREATE TRIGGER trigger_name trigger_time trigger_eventON tbl_name FOR EACH ROW trigger_stmt; a. trigger_time: 触发时间 (BEFORE:检查约束前触发 , AFTER检查约束后触发 )...原创 2018-10-09 08:58:15 · 223 阅读 · 0 评论 -
MySQL的事务控制和锁定语句
1. 默认情况下 ,表锁和行锁都是自动获得的,不需要额外命令。2. 某些情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性。3. LOCK TABLES 可以锁定用于当前线程的表。如果表被其他线程锁定,则当前线程会等待,直到可以获取所有锁定为止。4. UNLOCK TABLES 可以释放当前线程获得的任何锁定。 注 a. 当前线程执行另一个LO...原创 2018-10-10 09:08:41 · 209 阅读 · 0 评论 -
MySQL的BTREE 索引 和 HASH 索引
1. BTREE索引 和 HASH 索引 各有自己的适用范围,尤其是HASH索引会有其不适用的地方。2. HASH索引 a. 范围查询 比如 > , < ,Between , like 等是不适用HASH索引,仅仅= 和 <=> ,IN是适用的。 b. 优化器不能适用HASH索引来加速ORDER BY操作 c. 只能使用整个关键字来搜索一行...原创 2018-09-27 16:23:13 · 194 阅读 · 0 评论 -
MySQL的索引设计原则
设计索引时有一些设计原则,以便于提高索引的使用效率。 2. 最适合索引的列是出现在WHERE子句中的列,或连接子句中指定的列,不一定得是搜索列。3.考虑某列中值的分布,比如存放出生日期的列,值区分度较高,适合建立索引,而存放性别的列,值区分度较低,就不适合作为索引。4.使用前缀索引,尤其是前面部分不一样,而后面相同的列。5. 不要过度建立索引。额外的索引会占据磁盘空间,而修改表...原创 2018-09-27 16:10:13 · 215 阅读 · 0 评论 -
mysql的存储引擎之ToKuDB
(1)ToKuDB是高性能高压缩的第三方存储引擎。(2)ToKuDB是一个高性能,支持事务处理的MySQL和MariaDB的存储引擎,具有高扩展性,高压缩率,高效的写入性能,支持大多数在线DDL操作。(3)ToKuDB比InnoDB具有更高效的插入性能,高10倍的压缩特性,在线的DDL操作。(4)TuKuDB适合以下场景: 日志数据(插入频繁且存储量大) ...原创 2018-09-25 08:30:34 · 651 阅读 · 0 评论 -
MySql的存储引擎选择
(1)MyISAM适合高频读写,低频更新,低频删除,对事务完整性和事务并发性要求低。 适合于Web,数据仓储(2)InnoDB具有事务处理,支持外键。能较好的支持事务完整性和数据一致性。 适合于计费系统,财务系统等对数据准确性要求比较高的系统。(3)MEMORY基于内存,提供极快的访问。但对表大小有约束,且数据库异常可能导致数据不可恢复。 适合于...原创 2018-09-25 08:40:38 · 146 阅读 · 0 评论 -
MySQL的数据类型之char和varchar的比较
(1)char和varchar都用于保存字符串,但在保存和检索的方式具有差异。(2)char是固定字长的字符类型(3)varchar是可变长度的字符类型注意:mysql在严格模式下运行和非严格模式下运行,对varchar的可变长度的影响。(4)char比varchar具有更快的处理速度,但会浪费存储空间,而且会默认对末尾空格进行处理。 适合于字段长度变化比较小,对查...原创 2018-09-25 09:02:16 · 381 阅读 · 0 评论 -
mysql的数据类型之TEXT和BLOB
(1)char和varchar是存储少量的字符串信息(2)TEXT和BLOB则用于存储较大文件,其中BLOB存储二进制文件(如照片),TEXT存储文本文件(如文章)。(3)TEXT有多种子类型:TEXT,MEDIUMTEXT,LONGTEXT(4)BLOB也有多种子类型:BLOB,MEDIUMBLOB,LONGBLOB.(5)对BLOB和TEXT值操作引起的性能问题: ...原创 2018-09-25 10:09:27 · 394 阅读 · 0 评论 -
mysql的数据类型之浮点数与定点数
浮点数和定点数的区别 (1) 存储差异: 定点数实际上是以字符串形式存放。 (2) 精度范围超出: 浮点数发生插入值超出字段的精度范围后,采取四舍五入,存入。 定点数在传统模式(TRADITIONAL)下会报错,默认模式下按照实际精度四舍五入后进行插入(3) 精度问题: float会发生精...原创 2018-09-25 10:29:56 · 413 阅读 · 0 评论 -
mysql的数据类型之日期时间类型
常用的日期时间类型:DATE ;TIME; DATETIME ;TIMESTAMP 。(1)根据实际需要选择满足应用的最小存储的日期类型(2)记录年份比较久远,最好要使用DATETIME。因为TIMESTAMP表示的日期范围要短很多。(3)如果让不同的时区保持时间一致,则使用TIMESTAMP。因为只有该数据类型可以消除时区差异。 小记: 这是参加工作的...原创 2018-09-25 10:52:27 · 411 阅读 · 0 评论 -
MySQL的字符集 (一)
(1)字符集是十分重要的。因为计算机内部实际存储都是二进制数据,而字符集通过为文字符号编码,能让计算机识别和处理文本数据。(2)字符集是什么?答:字符集是一套文字符号及其编码,比较规则的集合。(3)常用字符集:世界上已经存在了几百种字符集,不统一问题,造成本地化工作的艰难。必须知道的:ASCII ; ISO-8859-1/latin 1 (西欧字符集) ;GB 2312...原创 2018-09-25 11:46:31 · 174 阅读 · 0 评论 -
MySQL的字符集(二)
MySql允许在同一台服务器,同一个数据库甚至同一个表的不同字段指定不同的字符集,所以MySql在字符集的使用上面十分的灵活。 查看MySQL支持哪些字符集? show character set; MySQL关于字符集有两个主要组成部分:字符集(character)和校对规则(collation) 校对规则是用来决定字符串以何种方式进行比较 可以在 information_sc...原创 2018-09-26 08:45:21 · 192 阅读 · 0 评论 -
MySQL字符集(三)
1. MySQL的字符集和校对规则有4个级别的默认设置:服务器级,数据库级,表级和字段级2. 服务器级字符集和校对规则的设置:a. my.cnf [mysqld]character-set-server=gbkb.启动选项中指定mysqld --character-set-server=gbkc. 在编译安装时指定shell > cmake ....原创 2018-09-26 12:05:54 · 184 阅读 · 0 评论 -
MySQl的字符集之修改
1. 这里说的字符集修改是在已有数据的情况下怎么合理修改字符集和校对规则。2. 首先,若已有数据的情况下,不能直接修改字符集和校对规则3. 合理修改步骤:a. 导出表结构mysqldump -uroot -p --default-character-set=gbk -d databasename > createtab.sql;b. 修改表结构定义文件creat...原创 2018-09-26 12:55:56 · 192 阅读 · 0 评论 -
mysql之merge存储引擎
(1)MERGE表是一个虚表。由一组结构相同的MyISAM表组成。(2)对MERGE表的插入时,则可以指定三种插入方式:first (插在第一张MyISAM表),last(插在最后一张MyISAM表),NO或者不定义,则拒绝执行该插入操作。(3)对MERGE表的删除操作,只删除MERGE的表定义,并不实际上删除MyISAM表的数据。(4)一张MERGE表在磁盘上对应两个文件:表定义文件...原创 2018-09-21 17:27:55 · 385 阅读 · 0 评论 -
MySQL的索引
索引是数据库中用来提高性能的最常用工具。 MySQL所支持的存储引擎的最大索引数和最大索引长度是不同的,但至少支持16个索引,索引长度至少是256个字节。 MySQL常用的索引类型有:BTREE索引,前缀索引,全文本索引(FULLTEXT),HASH索引 MyISAM和InnoDB默认的索引是BTREE索引。实例:(1)创建索引CREATE INDEX index_nameUSIN...原创 2018-09-27 15:56:58 · 166 阅读 · 0 评论 -
MySQL的事务控制(二)
1. MySQL 通过 SET AUTOCOMMIT,START TRANSACTION ,COMMIT ,ROLLBACK 等语句支持本地事务。2. 语法格式:START TRANSACTION | BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [ [NO ] RELEASE ]SET AUTOCOMMIT = {0/1}3....原创 2018-10-10 15:28:30 · 294 阅读 · 0 评论
分享