MySQL高级操作(下)

五、MySQL预处理语句

1、设置预处理stmt,传递一个数据作为where的判断条件

prepare stmt from “select * from table_name where id > ?”;

2、设置一个变量

set @i = 1;

3、执行预处理语句

execute stmt using @i;

4、删除预处理指令

drop prepare stmt;

六、MySQL事务处理

【注意】MyISAM存储引擎对事务并不支持,应该使用InnoDB存储引擎

1、set autocommit = 0;              #关闭自动提交
2、delete from t1 where id > 4;
3、savepoint p1;                        #设置还原点
4、delete from t1;
5、rollback to p1;                       #回滚到p1还原点
6、rollback;                                #回滚到最原始的还原点
7、commit ;                                #提交数据到服务器
8、set autocommit = 1;                #开启自动提交,关闭事务处理

七、MySQL存储

1、创建一个存储p1()

mysql>\d //                             #修改定界符为//
mysql>create procedure p1()
        ->begin
        ->set @i = 0;
        ->while @i < 100 do
        ->insert into t2(name) values(concat("user",@i));
        ->set @i = @i + 1;
       ->end while;
       ->end;//
mysql>\d ;

2、执行p1()

callp1();

3、查看procedure的status信息

showprocedure status \G

4、查看procedurep1的具体信息

show create procedure p1 \G

八、MySQL触发器

1、创建触发器

#创建一个名为t1的触发器,当向t1表中插入数据时,就引发动作:向t2表中插入数

mysql>\d //
mysql>create trigger t1 before inserton t1 for each row
        ->begin
        ->insert into t2(name) values(new.name);
        ->end//
mysql>\d ;

#创建触发器t2,如果表t1删除数据,则引发触发器,表t2中的数据也相应删除

mysql>\d //
mysql>create trigger t2 before delete on t1 for each row
       ->begin
      ->delete from t2 where id =old.id;
      ->end//
mysql>\d ;

#创建触发器t3,如果修改表t1则t2中的记录也相应修改

mysql>\d //
mysql>create trigger t3 before update on t1 for each row
        ->begin
        ->update t2 set id =new.id where id = old.id;
        ->end//
mysql>\d ;

2、删除触发器

drop trigger trigger_name;

【附】删除表中所有数据:truncatetable_name; #速度更快,同时也可以清空auto_increment列表

九、重排auto_increment值

MySQL中自动增长的ID如何恢复?

1、清空表的时候,不要用delete from
table_name;

而是:truncate [table] table_name;

或者

2、清空内容之后直接使用alter命令修改表

alter table table_name auto_increment = 1;

MySQL学习笔记_10_MySQL高级操作(下)的更多相关文章

  1. MySQL学习笔记_9_MySQL高级操作(上)

    MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 ...

  2. MySQL学习笔记(cmd模式下的操作)

    1.登入MySQL 1.1 登入MySQL 1.1.1命令如下: C:\Users\zjw>mysql -hlocalhost -uroot -p Enter password: ****** ...

  3. 【PHP+MySQL学习笔记】php操作MySQL数据库中语句

    1.连接 MYSQL 服务器的函数 mysql_connect();<?php $con = mysql_connect("localhost","root&quo ...

  4. mysql学习笔记02 CRUD操作

    添加数据insert into 表名(字段列表) values(对应字段的列表值) 查询数据 select *from 表名 where 条件select *from 表名 where 1条件 1表示 ...

  5. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  6. MySQL学习笔记-锁相关话题

    在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因.   Mysql常用存储引擎的锁 ...

  7. mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记

    mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...

  8. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  9. Hadoop学习笔记(7) ——高级编程

    Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...

随机推荐

  1. 终止Docker容器

    可以使用 docker stop 来终止一个运行中的容器. 此外,当Docker容器中指定的应用终结时,容器也自动终止. 例如对于上一章节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl ...

  2. Nginx之(三)Nginx配置

    一个简单的配置文件如下: #定义Nginx运行的用户及用户组 user userName userGroupName; #工作进程数目,根据硬件调整,通常等于CPU数量或者2倍于CPU worker_ ...

  3. R语言:安装及使用

    http://blog.csdn.net/pipisorry/article/details/53640638 ubuntu下安装 sudo apt-get install -y r-base源码安装 ...

  4. J2EE进阶(十八)基于留言板分析SSH工作流程

    J2EE进阶(十八)基于留言板分析SSH工作流程   留言板采用SSH(Struts1.2 + Spring3.0 + Hibernate3.0)架构.   工作流程(以用户登录为例):   首先是用 ...

  5. Swift下多个Storyboard的项目结构

    我是个比较喜欢用storyboard和xib的人.我个人的习惯就是,能用storyboard的一定不用代码手工撸.当然自己业余个人写的项目,基本上一个storyboard就搞定了.但涉及到多人合作下时 ...

  6. Android开发艺术探索——第二章:IPC机制(中)

    Android开发艺术探索--第二章:IPC机制(中) 好的,我们继续来了解IPC机制,在上篇我们可能就是把理论的知识写完了,然后现在基本上是可以实战了. 一.Android中的IPC方式 本节我们开 ...

  7. EBS开发附件上传和下载功能

    上传 Oracle ERP二次开发中使用的方式有两种,一是通过标准功能,在系统管理员中定义即可,不用写代码,就可以使几乎任何Form具有附件功能,具体参考系统管理员文档:二是通过PL/SQL Gate ...

  8. 阻塞IO服务器模型之单线程服务器模型

    单线程服务器模型是最简单的一个服务器模型,几乎我们所有程序员在刚开始接触网络编程(不管是B/S结构还是C/S结构)都是从这个简单的模型开始.这种模型只提供同时一个客户端访问,多个客户端访问必须要等到前 ...

  9. Ant简介

    Ant,apache开源项目,基于Java的构建工具,是一个小程序.它通过自动完成所有的编译代码,运行测试以及 打包重新部署等繁琐费力的任务来帮助软件团队开发大程序: Ant的目标是自动完成所有的构建 ...

  10. 【移动开发】 Android隐藏输入法软键盘的一些说明

    刚刚在写一个仿微信的Android聊天软件,在编写的过程中,发现一个严重的BUG---当用户点击输入框用软键盘输入文本的时候点击了"返回好友列表"的按钮,返回到好友列表时软键盘无法 ...