CREATE FUNCTION [f_WorkDayADD]( @date datetime, --基础日期 @workday int --要增加的工作日数 )RETURNS datetime AS BEGIN DECLARE @bz int --增加整周的天数 SELECT @bz=CASE WHEN @workday<0 THEN -1 ELSE 1 END ,@date=DATEADD(Week,@workday/5,@date) ,@workday=@workday%5 --增加不是整周
索引分为聚集索引和非聚集索引,mysql中不同的存储引擎对索引的底层实现可能会不同,这里只关注mysql的默认存储引擎InnoDB. 利用下面的命令可以查看默认的存储引擎 show variables like '%storage_engine%'; 聚集索引: 索引中键值的逻辑顺序决定了表中相应行的物理顺序(索引中的数据物理存放地址和索引的顺序是一致的),可以这么理解:只要是索引是连续的,那么数据在存储介质上的存储位置也是连续的. 比方说:想要到字典上查找一个字,我们可以根据字典前面的拼音找到
本来是想找mysql数据库文件中的sql脚本文件的,结果发现运行了sql脚本文件后,你删除了,就没有sql语句了,那么我们分析一下在数据库路径下面找到的文件又是什么呢? 1.先找mysql中data的路径,输入 mysql> show global variables like "%datadir%"; 看到了路径,点开后 一个文件夹是一个数据库,可是点开其中并没有sql文件 以一个news表为例: 有.frm与.ibd,到底是什么东西呢? 2.解释文件 1.MySQL(serv
查看 max_binlog_stmt_cache_size 参数解释时,有这么一句话 If nontransactional statements within a transaction require more than this many bytes of memory, the server generates an error. 那么,什么是 nontransactional statements ?在 http://dev.mysql.com/ 查找 nontransactional
SELECT a.TABLE_SCHEMA,a.TABLE_NAME,a.index_name,GROUP_CONCAT(column_name ORDER BY seq_in_index) AS `Columns`FROM information_schema.statistics a GROUP BY a.TABLE_SCHEMA,a.TABLE_NAME,a.index_name --查找每个列对应的索引: select a.TABLE_SCHEMA,a.TABLE_NAME,a.colu
select (floor(days/7)*5+days%7 -case when 6 between wd and wd+days%7-1 then 1 else 0 end -case when 7 between wd and wd+days%7-1 then 1 else 0 end ) INTO str from (select datediff(e,s) as days,weekday(s)+1 as wd) as a; ELSE select (