在mysql存储引擎查询函数_mysql存储引擎及常用函数 事务等

/*

* Mysql存储引擎

* MyISAM 拥有较高的插入,查询速度,但不支持事务.

* InnoDB 支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎.

* Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失

* Merge 将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时很有用

* Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差

* CSV 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .csv 文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。

* EXAMPLE 存储引擎是一个不做任何事情的存根引擎。它的目的是作为 MySQL 源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE 存储引擎不支持编索引。另外,MySQL 的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。

*

* where子句

*除非你使用 LIKE 来比较字符串,否则MySQL的WHERE子句的字符串比较是不区分大小写的。

*你可以使用 BINARY 关键字来设定WHERE子句的字符串比较是区分大小写的。

*SELECT * FROM `t_dictionary` where BINARY sName='London textile Fair';

*

*

*

*

*

* 触发器

BEGIN

DECLARE source VARCHAR(2000);//定义变量

DECLARE thirdparty INT(11);

SELECT source_text INTO source FROM decoration_pic WHERE id=NEW.id;

//LOCATE('要查询的字符','字符串'); 返回字符首次出现的位置,没有返回0.

IF LOCATE('"source":2',source)>0 || LOCATE('"source":"2"',source)>0 THEN

IF LOCATE('link',source)=0 THEN

IF LOCATE('thirdparty',source)>0 THEN

//substring_index(被截取字段,关键字,关键字出现的次数);注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(source,',',2),':',-1),'"',-2) INTO thirdparty;

IF thirdparty=3 || thirdparty=5 || thirdparty=7 || thirdparty=9 || thirdparty=11 THEN

INSERT INTO `pop136`.`overseas_space` SET `sDbName`='hometext6ile',`sTableName`='decoration_pic',`iPri_key`=NEW.`id`,`iType`=2,`iThirdparty`=thirdparty,`sFlagFolder`=NEW.`flag_text`;

END IF;

END IF;

END IF;

END IF;

END

随机取1条或者多条记录

select * from table order by RAND() limit start,length;

RAND(); 产生一个0-1的随即小数,0.46754712643782

FLOOR(); 向下取整; 12.956 = 12

CEILING(); 向上取整; 12.956 = 13

ROUND() 函数

ROUND 函数用于把数值字段舍入为指定的小数位数。

SELECT ROUND(column_name,decimals) FROM table_name

参数 描述

column_name 必需。要舍入的字段。

decimals 必需。规定要返回的小数位数。

插入更新操作:

ON DUPLICATE KEY UPDATE 可以达到以下目的:

向数据库中插入一条记录:

若该数据的主键值/ UNIQUE KEY 已经在表中存在,则执行更新操作, 即UPDATE 后面的操作。

否则插入一条新的记录。

INSERT INTO mRowUpdate(id,`value`) VALUES(3, 'SuperMan') ON DUPLICATE KEY UPDATE `value`='SuperMan';

技巧 1 :

ON DUPLICATE KEY UPDATE 特别适用于多行插入。如:

INSERT INTO `table` (`a`, `b`, `c`) VALUES (1, 2, 3), (4, 5, 6) ON DUPLICATE KEY UPDATE `c`=VALUES(`a`)+VALUES(`b`);

Tips: VALUES()函数只在INSERT…UPDATE语句中有意义,其它时候会返回NULL。

常用操作:

alter table user modify column name varchar(50) ; --修改字段长度

alter table test change column address address1 varchar(30)--修改表列名

alter table test add column name varchar(10); --添加表列

--添加CreateTime 设置默认时间 CURRENT_TIMESTAMP

ALTER TABLE `table_name` ADD COLUMN `CreateTime` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ;

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值