`
javaliujie
  • 浏览: 58338 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql笔记

阅读更多

1.replace()函数
Sql代码 
SELECT REPLACE('www.mysql.com', 'w', 'Ww'); 

  结果将显示'WwWwWw.mysql.com'
Sql代码 
update user set createtime=replace(createtime,'20080903','20080911');  
 
 此语句可将user表中的createtime字段为20080903改成20080911


2.format()函数
FORMAT(X,D)
将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。
Sql代码 
 mysql> SELECT FORMAT(12332.123456, 4);  
     -> '12,332.1235' 
 mysql> SELECT FORMAT(12332.1,4);  
     -> '12,332.1000' 
 mysql> SELECT FORMAT(12332.2,0);  
     -> '12,332' 

 

3.复制表结构、复制表数据

将 production 数据库中的 oldTable 表快速复制为newTable,2个命令如下:

CREATE TABLE newTable LIKE oldTable;

INSERT newTable SELECT * FROM oldTable;

第一个命令是创建新的数据表newTable  ,并复制oldTable的数据表结构。

第二个命令是将数据表oldTable中的数据复制到新表newTable。

 

另外:在mysql数据库中复制数据为:

select * into desTable from sourceTable在mssql中支持,在mysql中不支持

insert into desTable select * from sourceTable

 

4.清空表数据

      Truncate table 表名 速度快,而且效率高,因为:
  TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
  DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
  TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
  对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
  TRUNCATE TABLE 不能用于参与了索引视图的表。

 5.修改数据库表名

       Alter  TABLE table_name RENAME TO new_table_name

 

6.substring_index函数

       select substring_index("zhongguo-guangdong-guangzhou-yuexiu",'-',3);

   结果:

        zhongguo-guangdong-guangzhou

 

7.判断表名是否存在

       show tables like 'tablename';

       show tables like 'tablenameprefix%';

    

8.表数据导出文件和文件导入到表

    a.表数据导出文件

      select * from tablename into outfile '/home/rrrrrrrrrr.txt';

    b.文件导入表数据

       load data infile '/home/rrrrrrrrrr.txt' into table tablename;

 

9.导出数据库内容为sql

对某表的导入导出
1.select * from log into outfile '/usr/local/mysql/data/cactilog';
2.LOAD DATA INFILE 'D:\\Projects\\log.txt' INTO TABLE log;

对某数据库的导入导出
mysqldump -u root -p --opt  aaa>  back_aaa
mysql -u root -p  < back_aaa

或:mysqldump -u root -p --add-drop-table robotdb> a.txt

 

10.表间导数据的另一种方法

此方法区别于本文第3条中的方法。第3条方法必须是所有字段都一致才可复制;

insert into aTable(colunm1,colunm2,colunm3) (select colunm1,colunm2,colunm3 from bTable);

 

11.复制表

create table tablename2 type=MyISAM select * from tablename;

 

12.通过日志查看mysql正在执行的SQL语句

首先你需要创建一个日志文件log.txt ,比如我直接保存在mysql目录下的data目录中间,然后只需要在 mysql的配置文件 my.ini 中最后添加
log=d:/mysql/data/log.txt  
这样可以记录所有的mysql执行的sql语句!

13.mysqldump -uroot -p databasename tablename>filename.sql

 mysql databasename<filename.sql

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics