注册 登陆
浏览模式: 标准 | 列表 分类: SQL

删除MYSQl BIN-LOG 日志

在mysql下如下查看然后删除000018之前的文件

show binary logs;

purge binary logs to 'mysql-bin.000018';

MYSQL is marked as crashed and shou...

千万不要随便挪动数据库文件 最好是关了mysql再进行迁移  然后看看数据是否OK!权限是否给足

这次就是因为没有把权限给足导致写入的数据没丢失把之前的数据给丢了:(

后来死马当活马医 用phpmyadmin修复了一下 没有起效果 然后把数据库COPY了出来在另外的服务器上导入了一份发现提示 is marked as crashed and should be repaired错误 然后baidu了一下:)原来是可以修复的

还好平时有做备份 目前最新的数据都在 待会儿重组一下然后插入数据就OK了~

修复如下在你的mysql/bin下面找到myisamchk

在命令行中输入:myisamchk -c -r d:\mysql\data\abc.MYI即可:)

联合表合并输出一个字段的内容

SELECT `login_time` FROM `enterlog_24` WHERE `year` = '2009' AND `month` = 2 AND `day` = 24 AND `user_id` ='1'
union all
SELECT `login_time` FROM `enterlog_25` WHERE `year` = '2009' AND `month` = 2 AND `day` = 25 AND `user_id` ='1'
输出上面两个表里面符合查询条件的所有login_time值

关于 FROM a,b 和 a LEFT JOIN b 的区别

例表a


aid adate


1 a1


2 a2


3 a3


表b


bid bdate


1 b1


2 b2


4 b4


两个表a,b相连接,要取出id相同的字段


select * from a ,b where a.aid = b.bid这是仅取出匹配的数据.


此时的取出的是:


1 a1 b1


2 a2 b2


那么left join 指:


select * from a left join b on a.aid = b.bid


首先取出a表中所有数据,然后再加上与a,b匹配的的数据


此时的取出的是:


1 a1 b1


2 a2 b2


3 a3 空字符


同样的也有right join


指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据


此时的取出的是:


1 a1 b1


2 a2 b2


4 空字符 b4

SQL BETWEEN

BETWEEN ... AND

操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

语法:SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2

原始的表 (在实例中使用:)

LastName FirstName Address City
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing

实例 1

如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL:

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

结果:

LastName FirstName Address City
Adams John Oxford Street London
Bush George Fifth Avenue New York

重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter" 。

所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!

 

MySQL分表优化试验

MySQL分表优化试验 有兴趣的可以看看

» 阅读全文

Mysql 替换

UPDATE `addonarticle` Set `body` = REPLACE(`body`,'啊猛',小雄')

SQL2000装不上 提示安装程序配置服务器失败

安装程序配置服务器失败。参考服务器错误日志和 C:\WINDOWS\sqlstp.log 了解更多信息。

这个问题-_-#以前碰到过 没能解决。。这次装2000又碰到了 重复安装 还是不行

但是更换了实例名就可以了。。。可是更换了实例名 TMD SP4打上就把sql2000给挂掉了

不得不又重新安装

最终的办法就是一不做二不休 把sql2000的遗留清理干净。

1.注册表的清理

里面的Microsoft SQL Server相关都干掉

2.文件清理

C:\Program Files\Microsoft SQL Server干掉

C:\Program Files\Common Files\Microsoft Shared能干掉就干掉

再装上试试就搞定了 记得清理干净 不然想装的好 那是不可能的。

 

删除 SQL 2000 实例名

微软的 一篇关于SQL2000的实例名删除操作

» 阅读全文

关系数据库性能问题

15. 减少对表的查询
在含有子查询的SQL语句中,要特别注意减少对表的查询.
  例如: 
     Slow:
          SELECT TAB_NAME
          FROM TABLES
          WHERE TAB_NAME = ( SELECT TAB_NAME 
                                FROM TAB_COLUMNS
                                WHERE VERSION = 604)
          AND DB_VER= ( SELECT DB_VER 
                           FROM TAB_COLUMNS
                           WHERE VERSION = 604)

     Fast:
          SELECT TAB_NAME
          FROM TABLES
          WHERE  (TAB_NAME,DB_VER)
               = ( SELECT TAB_NAME,DB_VER) 
                   FROM TAB_COLUMNS
                   WHERE VERSION = 604)

     Update 多个Column 例子:
     Slow
           UPDATE EMP
           SET EMP_CAT = (SELECT MAX(CATEGORY) FROM EMP_CATEGORIES),
              SAL_RANGE = (SELECT MAX(SAL_RANGE) FROM EMP_CATEGORIES)
           WHERE EMP_DEPT = 0020;

     Fast
           UPDATE EMP
           SET (EMP_CAT, SAL_RANGE)
 = (SELECT MAX(CATEGORY) , MAX(SAL_RANGE)
 FROM EMP_CATEGORIES)
           WHERE EMP_DEPT = 0020;

 

8. 使用DECODE函数来减少处理时间
使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.
例如:
   SELECT COUNT(*),SUM(SAL)
   FROM EMP
   WHERE DEPT_NO = 0020
   AND ENAME LIKE ‘SMITH%’;
   SELECT COUNT(*),SUM(SAL)
   FROM EMP
   WHERE DEPT_NO = 0030
   AND ENAME LIKE ‘SMITH%’;
你可以用DECODE函数高效地得到相同结果
SELECT COUNT(DECODE(DEPT_NO,0020,’X’,NULL)) D0020_COUNT,
        COUNT(DECODE(DEPT_NO,0030,’X’,NULL)) D0030_COUNT,
        SUM(DECODE(DEPT_NO,0020,SAL,NULL)) D0020_SAL,
        SUM(DECODE(DEPT_NO,0030,SAL,NULL)) D0030_SAL
FROM EMP WHERE ENAME LIKE ‘SMITH%’;
类似的,DECODE函数也可以运用于GROUP BY 和ORDER BY子句中.

Total:28123Next ›