标签归档:mysql技巧

Linux下退出MySQL编辑器的两种方法分享


摘要:
下文讲述Linux下退出MySQL编辑器的方法分享,如下所示:


方法1:输入exit命令行退出MySQL

 mysql>exit;


方法2:输入quit命令行退出MySQL

 mysql>quit;


注意事项:
输入命令后,再后面输入分号,然后点击回车,则会运行相应的命令

mysql_编辑模式退出命令行方法分享

mysql_编辑模式退出命令行方法分享

MySQL 避免数据重复插入、更新sql脚本的方法分享


摘要:
下文讲述MySQL数据库中,避免数据重复插入的关键字(ignore,Replace,ON DUPLICATE KEY UPDATE)分享,如下所示:


ignore关键字

ignore关键字用于插入数据时,如果存在主键重复或唯一索引约束,则会自动忽略此脚本的运行,并返回影响的行数

 
INSERT IGNORE INTO `table_name` (`field1`, `field2`, `field3`) VALUES ('a', 'b', 'c');
---当出现主键或唯一索引的重复时,就自动忽略此脚本,并返回影响行数字0 
 
INSERT IGNORE INTO `table_name` (`field`) SELECT `field` FROM `table_name2`;
---采用表复制,如果存在主键重复或唯一索引重复时,则自动忽略插入记录


使用replace关键字插入数据

Replace into 语法

REPLACE INTO `table_name`(`field_name`, ...) VALUES (...);
REPLACE INTO `table_name` (`field_name`, ...) SELECT ...;
REPLACE INTO `table_name` SET `field_name`='value',

replace into功能:
替代插入,此关键字的功能同insert ignore into关键字非常的想象,
当如果(主键或唯一索引值重复时),先删除原行数据,再将新数据插入到数据表中
replace into返回值:
replace into返回此次操作所影响的行数,此值为
删除行和被插入行数之和

  例:keyId为主键  table_name数据表为空表
REPLACE INTO `table_name` (`keyId`, `info`) VALUES (1, 'maomao365.com');
---影响行数为1
---当第二次运行以上脚本时,则影响的行数为2
REPLACE INTO `table_name` (`keyId`, `info`) VALUES (1, 'maomao365.com');
 
ON DUPLICATE KEY UPDATE关键字说明

ON DUPLICATE KEY UPDATE关键字 常结合insert into 关键字一起使用,所起到的功能为:(“有则更新,无则插入”)
   当主键或唯一索引值重复时,执行update操作
   
 
  ---例:keyId 为主键 
  INSERT INTO `table_name` (`keyId`, `info`) VALUES (1,88) ON DUPLICATE KEY UPDATE `info`=`info`+1; 
  ---当 table_name表中存在keyId=1的记录时,以上脚本等效于以下
  UPDATE `table_name` SET `info`=`info`+1 WHERE `keyId`=1;
  
   ---当 table_name表中不存在keyId=1的记录时,以上脚本等效于以下
    INSERT INTO `table_name` (`keyId`, `info`) VALUES (1,88)

MySQL 数据库查询数据时 按照汉字的拼音首字母排序的方法分享


摘要:
下文讲述MySQL数据库中,数据表中数据按照汉字拼音首字母进行排序的方法分享,如下所示:

按照汉语首字母排序及是按照 A-Z的方式排序。

如果汉字按照GBK字符集进行存储,因为GBK字符集是按照汉字的拼音排序进行定义的,那么只需直接使用
order by info asc


如果数据列存储采用utf-8字符集进行存储,那么此时我们如果需按照拼音进行排序时,那么需要将列值转换为相应的字符集,
然后再进行排序
order by convert(info using gbk) asc;