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. Python3 数字(Number)

    Python 解释器可以作为一个简单的计算器:您可以在解释器里输入一个表达式,它将输出表达式的值. 表达式的语法很直白: +, -, * 和/ 和在许多其它语言(如Pascal或C)里一样:括号可以用 ...

  2. Windows下使用Vim极简入门

    0.下载与安装 在vim官网下载 1.Vim常见的几种模式: 一般模式:主要用于浏览,不能随意删除.修改等.按Esc进入该模式. 插入模式:类似平常我们打开记事本后所在的模式.在命令模式下按i进入. ...

  3. Linux 高性能服务器编程——TCP/IP协议族

    1 TCP/IP协议族体系结构 数据链路层:     职责:实现网卡接口的网络驱动程序,一处理数据在物理媒介(如以太网.令牌环等)上的传输.     常用协议:ARP协议(地址解析协议),RARP协议 ...

  4. Android App之间通过Intent交互

    Android 最重要的功能之一是应用能够基于它要执行的"操作"向另一个应用发送用户. 例如,如果您的应用有您要在地图上显示的公司地址,您无需在显示地图的应用中构建 Activit ...

  5. 详解EBS接口开发之供应商导入(补充)--供应商银行账户更新

    CREATE OR REPLACE PACKAGE BODY update_vendor_account IS PROCEDURE main(errbuf OUT VARCHAR2, retcode ...

  6. iOS的settings bundle中开关按钮(Toggle Switch)取不到值的问题

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Xcode7.2中设置App的settings bundle ...

  7. iOS开发之音频播放AVAudioPlayer 类的介绍

    主要提供以下了几种播放音频的方法: 1. System Sound Services System Sound Services是最底层也是最简单的声音播放服务,调用 AudioServicesPla ...

  8. 5. React 组件的协同使用 组件嵌套和Mixin

            组件是React的核心,构建大型项目时多个组件之间需要进行协同使用.可以从横向和纵向两个角度来实现组件的协同使用,纵向的协同使用就是组件嵌套,横向的协同使用就是Mixin(抽取公共方法 ...

  9. (一一五)利用NSKeyedArchiver实现任意对象转为二进制

    [应用背景] 在数据库中存储数据时,如果对象过于复杂,又不必要创建复杂的表,可以直接把整个对象转化为二进制存入数据库字段,然后取出后再还原即可. [实现方法] 在PHP中,使用序列化和反序列化可以实现 ...

  10. TDD实践感悟

    每个开发者都想开发出高质量的代码,更少的Bug.更容易维护不仅让人心情愉悦,也让我们有更多时间去学习和生活. 少加一些班,多陪家人,:) 当开发任务非常简单时,比如基本的增删改查,可能使用怎样的方式开 ...