- 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; --...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签