MySQL 日常小结

原创 2016年08月29日 16:22:04

一、Delete与TRUNCATE 区别:

1.DELETE
 ・DML语言
 ・可以回退
 ・可以有条件的删除

     DELETE FROM 表名
   WHERE 条件

2.TRUNCATE TABLE
 ・DDL语言
 ・无法回退
 ・默认所有的表内容都删除
 ・删除速度比delete快。

   TRUNCATE TABLE 表名

二、select into from跟insert into select from两种表复制语句区别

select into from和insert into select from两种表复制语句区别
select * into target_table from source_table
insert into target_table(column1,column2) select column1,5 from source_table

以上两句都是将源表source_table的记录插入到目标表target_table,但两句又有区别。 
第一句(select into from)要求目标表target_table不存在,因为在插入时会自动创建。 
第二句(insert into select from)要求目标表target_table存在,由于目标表已经存在,所以我们除了插入源表source_table的字段外,还可以插入常量,如例中的:5。

无论是select into from还是insert into select from, from后面的都是源表(source_table),Into后面的是目标表(target_table)

1、Insert into Select from 语句

      语句形式为:Insert into targer_table(field1,field2,...) select value1,value2,... from source_table     

      要求目标表 targer_table必须存在,由于目标表targer_table已经存在,所以我们除了插入源表source_table的字段外,还可以插入常量。

2、Select into from语句

      语句形式为:SELECT vale1, value2 into targer_tablefrom source_table

      要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。


三、异常捕获方法


//方法一:捕获sqlstate_value异常

//这种方法是捕获sqlstate_value值。如果遇到sqlstate_value值为"42S02",执行CONTINUE操作,并输出"NO_SUCH_TABLE"信息

DECLARE CONTINUE HANDLER FOR SQLSTATE '42S02' SET @info='NO_SUCH_TABLE';

//方法二:捕获mysql_error_code异常

//这种方法是捕获mysql_error_code值。如果遇到mysql_error_code值为1146,执行CONTINUE操作,并输出"NO_SUCH_TABLE"信息;

DECLARE CONTINUE HANDLER FOR 1146 SET @info='NO_SUCH_TABLE';

//方法三:先定义条件,然后捕获异常

DECLARE no_such_table CONDITION FOR 1146;

DECLARE CONTINUE HANDLER FOR NO_SUCH_TABLE SET @info='NO_SUCH_TABLE';

//方法四:使用SQLWARNING捕获异常

DECLARE EXIT HANDLER FOR SQLWARNING SET @info='ERROR';

//方法五:使用NOT FOUND捕获异常

DECLARE EXIT HANDLER FOR NOT FOUND SET @info='NO_SUCH_TABLE';

//方法六:使用SQLEXCEPTION捕获异常

DECLARE EXIT HANDLER FOR SQLEXCEPTION SET @info='ERROR';

四、连接字符

CONCAT(str1,str2,…) 


版权声明:本人博客,供大家分享学习,有需要的话,可以转载!

MySQL的日常管理

1 为初始MySQL账户设置口令 MySQL服务器的所有用户都存放在mysql数据库中的user表中,其中host字段表示允许访问的host地址,user字段表示用户名,password表示密码,刚安...
  • zhuxineli
  • zhuxineli
  • 2013年10月26日 22:15
  • 2906

MySQL日常操作总结

MySQL简介:Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)...
  • liaodehong
  • liaodehong
  • 2016年09月28日 17:54
  • 653

mysql日常运维

DBA运维工作 日常导数据、数据修改、表结构变更 加权限、问题处理 其它数据库选型部署、设计、监控、备份、优化等 日常运维工作导数据及注意事项 数据最终形式(csv、sql文本,还是直接导入到某个...
  • Maikilee_sys
  • Maikilee_sys
  • 2015年12月07日 17:23
  • 1138

日常 MYSQL小结

1,group   by 分组查询  select 字段名(函数) from(表名) group up字段名 having 函数;  与 函数套用 2, select  表名.字段名 from 表...
  • qq_36056567
  • qq_36056567
  • 2017年07月03日 19:54
  • 60

MySQL运维之--日常维护操作

MySQL运维之--日常维护操作
  • guoyJoe
  • guoyJoe
  • 2015年06月30日 16:55
  • 4667

MySQL巡检怎么做

导读 作者:田帅萌 知数堂MySQL DBA班第9期优秀学员,现任职知数堂助教 邮箱:tplinux@163.com,欢迎交流、拍转 马上要迎来长假,想想是不是有点小激...
  • n88Lpo
  • n88Lpo
  • 2017年09月27日 00:00
  • 991

日常小结-协议小结

HTTP 80 SMTP 25 POP3 110 FTP 23 HTTPS 443
  • u011518120
  • u011518120
  • 2016年06月27日 11:42
  • 256

日常小结

1、横竖屏切换时候activity的生命周期?  1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次   2...
  • storm1314888
  • storm1314888
  • 2015年07月21日 18:40
  • 250

MySQL常用用户管理命令

转自:http://blog.sina.com.cn/s/blog_634091e50101c8vd.html 1、添加用户 本机访问权限: mysql> GRANT...
  • shellching
  • shellching
  • 2012年10月18日 11:27
  • 1336

简单的mysql 性能和健康程度巡检

简单的mysql 性能和健康程度巡检
  • u010098331
  • u010098331
  • 2016年03月23日 12:00
  • 1949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL 日常小结
举报原因:
原因补充:

(最多只允许输入30个字)