- MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。 以下是一些细节和具体... MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。 以下是一些细节和具体...
- 在数据库查询中,往往会需要查询多个表的数据,比如查询会员信息同时查询关于这个会员的订单信息,如果分语句查询的话,效率会很低,就需要用到join关键字来连表查询了下面是例子分析会员表:useruser_id user_name1 张三2 李四3 王老五订单表:orderorder_id user_id order_name1 3 ... 在数据库查询中,往往会需要查询多个表的数据,比如查询会员信息同时查询关于这个会员的订单信息,如果分语句查询的话,效率会很低,就需要用到join关键字来连表查询了下面是例子分析会员表:useruser_id user_name1 张三2 李四3 王老五订单表:orderorder_id user_id order_name1 3 ...
- 新增数据表和字段是很常见的,在如果表已经存在或者字段存在时就会报错,在升级程序时往往是一大堆的sql语句,而单一的sql语句是没法在新增时判断表或字段是否存在的,必须写成存储过程下面是一个存储过程的例子CREATE PROCEDURE `add_col_homework`()-- 新增一个存储过程BEGINIF not EXISTS (SELECT column_name FROM info... 新增数据表和字段是很常见的,在如果表已经存在或者字段存在时就会报错,在升级程序时往往是一大堆的sql语句,而单一的sql语句是没法在新增时判断表或字段是否存在的,必须写成存储过程下面是一个存储过程的例子CREATE PROCEDURE `add_col_homework`()-- 新增一个存储过程BEGINIF not EXISTS (SELECT column_name FROM info...
- 程序出错时,几乎占了一半是写错了sql语句,而定位出错位置和找错是非常麻烦的,这时候就可以借助mysql的日志记录打开mysql文件夹的my.ini在最底部或者最前面换行重新添加一句log="G:/mysqllog/mysql.sql" G:是盘符,然后后面是你想要放数据库日志的目录和文件名保存后重启mysql,如果在目录没发现你的文件,请自行添加目录和文件名,然后重启这样,你可以在程序出错... 程序出错时,几乎占了一半是写错了sql语句,而定位出错位置和找错是非常麻烦的,这时候就可以借助mysql的日志记录打开mysql文件夹的my.ini在最底部或者最前面换行重新添加一句log="G:/mysqllog/mysql.sql" G:是盘符,然后后面是你想要放数据库日志的目录和文件名保存后重启mysql,如果在目录没发现你的文件,请自行添加目录和文件名,然后重启这样,你可以在程序出错...
- mysql默认在语句是不能传参数的,例如 select * from a limit @a,@b;这样是会报错的,那怎么样才能传参数呢?这就需要用到prepare了,以下示例运行在存储过程PREPARE statement_name FROM preparable_SQL_statement;/*定义*/ EXECUTE statement_name [USING @var_name [, ... mysql默认在语句是不能传参数的,例如 select * from a limit @a,@b;这样是会报错的,那怎么样才能传参数呢?这就需要用到prepare了,以下示例运行在存储过程PREPARE statement_name FROM preparable_SQL_statement;/*定义*/ EXECUTE statement_name [USING @var_name [, ...
- 当处理较复杂大的逻辑时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录存到一个临时表可能更快些,然后多这些表运行查询。这就是mysql临时表的作用了一:创建临时表CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value ... 当处理较复杂大的逻辑时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录存到一个临时表可能更快些,然后多这些表运行查询。这就是mysql临时表的作用了一:创建临时表CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value ...
- -- 新建表时判断表是否存在CREATE TABLE If Not Exists `表名` (`id` int(10) NOT NULL AUTO_INCREMENT ,`plan_id` int(10) NULL ,`bet_num` varchar(255) NULL ,`vr_win_data` varchar(255) NULL COMMENT ,PRIMARY KEY... -- 新建表时判断表是否存在CREATE TABLE If Not Exists `表名` (`id` int(10) NOT NULL AUTO_INCREMENT ,`plan_id` int(10) NULL ,`bet_num` varchar(255) NULL ,`vr_win_data` varchar(255) NULL COMMENT ,PRIMARY KEY...
- MySQL 字符串截取函数有:left(), right(), substring(), substring_index()。还有 mid(), substr(); 一:left(str, length);获取字符串左边length位的字符 select left('www.php20.cn',3); 输出结果:www; 二:right(str, length)获取字符串右边length位... MySQL 字符串截取函数有:left(), right(), substring(), substring_index()。还有 mid(), substr(); 一:left(str, length);获取字符串左边length位的字符 select left('www.php20.cn',3); 输出结果:www; 二:right(str, length)获取字符串右边length位...
- ISNULL(expr)如果expr的值为null,则返回1,如果不为null,则返回0;例如,查找一个订单的状态,如果状态为null则返回1,不为空则返回0select isnull(status) from orders;查出的数据复制IFNULL(expr1,expr2)如果expr1不为NULL,则返回expr1; 否则返回expr2。IFNULL()的返回值是数字或是字符串.例如查... ISNULL(expr)如果expr的值为null,则返回1,如果不为null,则返回0;例如,查找一个订单的状态,如果状态为null则返回1,不为空则返回0select isnull(status) from orders;查出的数据复制IFNULL(expr1,expr2)如果expr1不为NULL,则返回expr1; 否则返回expr2。IFNULL()的返回值是数字或是字符串.例如查...
- 当mysql left join 或者 right join 时,有时候会发现count(*)是无法统计正确数据的主要原因是因为,left 与right join的特性问题例如我需要查询所有有提现记录的会员总数 SELECT * FROM chenrui_users u LEFT JOIN chenrui_money_log as m on m.user_id = u.id WHERE (... 当mysql left join 或者 right join 时,有时候会发现count(*)是无法统计正确数据的主要原因是因为,left 与right join的特性问题例如我需要查询所有有提现记录的会员总数 SELECT * FROM chenrui_users u LEFT JOIN chenrui_money_log as m on m.user_id = u.id WHERE (...
- 方法一:使用sql语句修改mysql数据库表前缀名步骤1:Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' )FROM information_schema.tablesWhere table_name LIKE 'tioncico_%';复制注意: like ‘tioncico_%’ 其中 tio... 方法一:使用sql语句修改mysql数据库表前缀名步骤1:Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' )FROM information_schema.tablesWhere table_name LIKE 'tioncico_%';复制注意: like ‘tioncico_%’ 其中 tio...
- mysql查询A表type字段等于1的num字段合计值和type字段等于2的num字段合计值,一:使用IF函数 IF(Condition,A,B)当condition为true时,返回A,否则返回Bsql语句:select sum(if(type=1,num,0)) as total_1,sum(if(type=2,num,0)) as total_2 from a ;复制二:使用case ... mysql查询A表type字段等于1的num字段合计值和type字段等于2的num字段合计值,一:使用IF函数 IF(Condition,A,B)当condition为true时,返回A,否则返回Bsql语句:select sum(if(type=1,num,0)) as total_1,sum(if(type=2,num,0)) as total_2 from a ;复制二:使用case ...
- 查询出所有重复记录select 字段名,字段名from 表名where 重复字段名 in (select 重复字段名 from 表名 group by 重复字段名 having count(1) >= 2) ORDER BY 重复字段名复制查询出所有重复记录并且删除多余的只保留一条delete from 表名where 重复字段名 in ( SELECT a.重复字段名from( se... 查询出所有重复记录select 字段名,字段名from 表名where 重复字段名 in (select 重复字段名 from 表名 group by 重复字段名 having count(1) >= 2) ORDER BY 重复字段名复制查询出所有重复记录并且删除多余的只保留一条delete from 表名where 重复字段名 in ( SELECT a.重复字段名from( se...
- 所有的php初学者都应该知道,mysql的分页语句写法如下:select * from a limit (page-1)*page_size,page_size复制而当这语句分页到一定程度时,例如1000页,每页20条select * from a limit 19980,20复制会发现分页之后查询的会越来越慢原因是因为limit a,b 的取数据方式是,先取出a+b条数据,再把a条筛选掉,... 所有的php初学者都应该知道,mysql的分页语句写法如下:select * from a limit (page-1)*page_size,page_size复制而当这语句分页到一定程度时,例如1000页,每页20条select * from a limit 19980,20复制会发现分页之后查询的会越来越慢原因是因为limit a,b 的取数据方式是,先取出a+b条数据,再把a条筛选掉,...
- 游标repeat循环实例:CREATE PROCEDURE `test`.`new_procedure` ()BEGIN-- 需要定义接收游标数据的变量 DECLARE a CHAR(16); -- 游标 DECLARE cur CURSOR FOR SELECT i FROM test.t; -- 遍历数据结束标志 DECLARE done INT DEFAULT 0; --... 游标repeat循环实例:CREATE PROCEDURE `test`.`new_procedure` ()BEGIN-- 需要定义接收游标数据的变量 DECLARE a CHAR(16); -- 游标 DECLARE cur CURSOR FOR SELECT i FROM test.t; -- 遍历数据结束标志 DECLARE done INT DEFAULT 0; --...
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签