PS:一个实际的存储过程案例

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_article_by_id`(IN `id` int)
BEGIN
#Routine body goes here...
DECLARE temp INT;
SET @aid = id;
SELECT COUNT(*) FROM gk_reply_article WHERE a_id = @aid INTO temp;
IF(temp <> 0) THEN
DELETE FROM gk_reply_article WHERE a_id = @aid;
END IF;
SELECT COUNT(*) FROM gk_like_article WHERE a_id = @aid INTO temp;
IF(temp <> 0) THEN
DELETE FROM gk_like_article WHERE a_id = @aid;
END IF;
SELECT COUNT(*) FROM gk_article WHERE id = @aid INTO temp;
if(temp <> 0) THEN
DELETE FROM gk_article WHERE id = @aid;
END IF;
END

游标是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其其中的数据。

CREATE PROCEDURE processorders()
BEGIN
DECLARE o INT;
DECLARE ordernumbers CURSOR #定义和命名游标
FOR
SELECT order_num FROM orders;
OPEN ordernumbers; #打开游标
FETCH ordernumbers INTO o;
CLOSE ordernumbers; #关闭游标
END

隐含关闭:如果你不明确关闭游标,MySQL将会在达到END语句时自动关闭它。

触发器唯一的命名

触发器关联的表

触发器一响应的活动:UPDATE、INSERT或UPDATE

触发器何时执行

只有表才支持触发器,视图不支持

事务处理,可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行。

MySQL是用一系列的默认设置预先配置的,这些设置通常在开始的时候很好用。但是一段时间后你可能需要调整内存、缓冲区大小等。(为查看当前设置,可使用SHOW VARIABLES;和SHOW STATUS;)

如果遇到显著的性能不良,可使用SHOW PROCESSLIST显示所有活动进程,还可以用KILL命令终结某个特定的进程。

mysqldump数据备份:

1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

2.导出一个表mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.3.导出一个数据库结构mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table  

假设我们的任务是要备份一个位于192.168.1.2服务器上,名称为backup_test的数据库,并把备份文件放到D:\bak\的文件夹中。又假设我们的操作系统为windows xp,于是我们可以用以下的方法执行备份操作:我们可以使用windows自带的命令提示符(调用命令提示符的方法有多种,最常用的就是点击开始菜单,选择“运行”,输入cmd的命令就可以启动了),在命令提示符中输入以下命令:

mysqldump -u backup -p 123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql在这段命令中:mysqldump 是myqldump的程序名了;-u 是数据库的用户名,后面紧跟着用户名backup;-p 是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格;-h 是数据库的地址,如果没有此项表明是备份本地的数据库;backup_test 要备份的数据库名称;

> 表明该数据库备份到后面的文件,紧跟当然是备份文件的地址了,注意要用绝对文件路径,文件的后缀也可以用.txt。一旦执行该命令后,mysqldump立即执行备份操作。远程备份数据库要似乎网络的情况,一般远程备份需要一定的时间的。

或者使用mysqlhotcopy。

BACKUO TABLE 或 SELECT INTO OUTFILE转储所有数据到某个外部文件。

为保证所有数据都被写到磁盘,可能需要在进行备份前使用FLUSH TABLES语句。

#维护数据库,显示数据库表状态

ANALYZE TABLE gk_article

#发现和修复表问题

CHECK TABLE gk_article

#显示所有可用的字符集以及每个字符集的描述和默认校对。

SHOW CHARACTER SET

#显示所有可用校对

SHOW COLLATION

默认端口:3306

《MySQL必知必会》读书笔记_4的更多相关文章

  1. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

  2. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

  3. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  4. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  5. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  6. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  7. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

  8. 《MySQL必知必会》学习笔记整理

    简介 此笔记只包含<MySQL必知必会>中部分章节的整理笔记.这部分章节主要是一些在<SQL必知必会>中并未讲解的独属于 MySQL 数据库的一些特性,如正则表达式.全文本搜索 ...

  9. MySQL必知必会复习笔记(1)

    MySQL必知必会笔记(一) MySQL必知必会是一本很优秀的MySQL教程书,并且相当精简,在日常中甚至能当成一本工作手册来查看.本系列笔记记录的是:1.自己记得不够牢的代码:2.自己觉得很重要的代 ...

  10. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

随机推荐

  1. 01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置

     1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下 ...

  2. 【java线程系列】java线程系列之java线程池详解

    一线程池的概念及为何需要线程池: 我们知道当我们自己创建一个线程时如果该线程执行完任务后就进入死亡状态,这样如果我们需要在次使用一个线程时得重新创建一个线程,但是线程的创建是要付出一定的代价的,如果在 ...

  3. Xcode中Objc动态调用方法同时避免警告的几个办法

    我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; ...

  4. Andriod Studio科普篇——4.关于编译的常见问题

    1.android支持库未安装 编译不过,提示如下: Could not find any version that matches com.android.support:appcompat-v7: ...

  5. java 之容器

    在Java中,我们想要保存对象可以使用很多种手段.我们之前了解过的数组就是其中之一.但是数组具有固定的尺寸,而通常来说,程序总是在运行时根据条件来创建对象,我们无法预知将要创建对象的个数以及类型,所以 ...

  6. Ajax及jQuery学习

    AJAX(Asynchronous JavaScript and XML),异步的javaScript与XML AJax中一个重要的对象是XMLHttpRequest. function ajaxSu ...

  7. mixer: mysql协议分析

    综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议.这样才能通过proxy架起client到server之间的桥梁. mixer的mysql协议实现主要参考mysql ...

  8. Scipy教程 - 距离计算库scipy.spatial.distance

    http://blog.csdn.net/pipisorry/article/details/48814183 在scipy.spatial中最重要的模块应该就是距离计算模块distance了. fr ...

  9. JSP连接access数据库

    一个用jsp连接Access数据库的代码. 要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数 ...

  10. (六十一)Xcode的git版本控制

    打开终端 1.为项目添加git: 首先到达项目的根目录内部,输入git init,初始化一个空的代码仓库(隐藏文件.get). 接下来使用git add . --all .表达把当前目录及子目录中的文 ...