储存过程
DELIMITER //
CREATE PROCEDURE pro1()
BEGIN
SELECT book_id,book_name,category FROM bookinfo t1
JOIN bookcategory t2
ON t1.book_category_id = t2.category_id;
END//
DELIMITER ; DELIMITER //
CREATE PROCEDURE pro2(IN cid CHAR(18),OUT num INT)
BEGIN
DELETE FROM reader_info WHERE card_id = cid;
SELECT COUNT(card_id) INTO num FROM readerinfo;
END//
DELIMITER ; CALL pro2('',@num);
SELECT @num; 储存过程交换两个数
DELIMITER //
CREATE PROCEDURE pro3(INOUT num1 INT INOUT num2 INT)
BEGIN
DECLARE t INT DEFAULT 0;
SET t=num1;
SET num1=num2;
SET num2=t;
END//
DELIMITER ; SET @n1=3,@n2=4;
CALL proc3(@n1,@n2);
SELECT @n1,@n2;
DROP PROCEDURE IF EXISTS proc1; SELECT FLOOR(RAND()*5); 随机数 事务
ROLLBACK 事务回滚 就是不上面写的都不算
COMMIT 事务提交,就是确认
SET autocommit=0 禁止自动提交 =1为开启自动提交 BEGIN
INSERT INTO mytest VALUES(4,'test01');
SAVEPOINT s1; 保存点
INSERT INTO mytest VALUES(4,'test02');
SAVEPOINT s2;
INSERT INTO mytest VALUES(4,'test03');
ROLLBACK TO s2;
COMMIT;
01 02 会保存 03不会 DELIMITER //
CREATE PROCEDURE borrowproc(cid CHAR(18),bid INT)
BEGIN
DECLARE store_num INT;
DECLARE money FLOAT(7,3);
SELECT store INTO store_num FROM bookinfo WHERE book_id=bid;
SELECT balance INTO money FROM readerinfo WHERE card_id=cid;
SET autocommit=0; 禁止自动提交 同时也是事务的开始
INSERT INTO borrowinfo VALUES(bid,cid,CURDATE()),DATE_ADD(CURDATE(),INTERVAL 1 MONTH),'否');
UPDATE bookinfo SET store=store-1 WHERE book_id=bid;
UPDATE readerinfo SET balance=balance-(SELECT price FROM bookinfo WHERE book_id=bid)*0.5 WHERE card_id =cid;
IF store_num=0 OR money<=200 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END//
DELIMITER ; 存储引擎
SHOW ENGINES;查看支持的引擎
INNODB 安全性能较强
MYISAM 不提供事务 有较高的处理效率
MEMORY 存放临时数据
设置存储引擎
1.my.ini 中 找到default-STORAGE-ENGINE=INNODB 重启mysql
2.set default_storage_engine=INNODB
3.创建表时设置
CREATE TABLE mytest(
id INT PRIMARY INT,
NAME VARCHAR(20)
)ENGINE =INNODB DEFAULT CHARSET=utf-8;
4.alter TABLE test ENGINE=xxx; 创建用户
CREATE USER 'rose'@'localhost' IDENTIFIED BY 'rosepwd' 创建了用户名是rose 主机名是localhost,密码是rosepwd
//用password的哈希值来创建
SELECT PASSWORD('roswpwd');
xxxxxxxxxxxxxxxxxxxxxxx
CREATE USER 'rose'@'localhost' IDENTIFIED BY PASSWORD ' xxxxxxxxxxxxxxxxxxxxxxx' ; 用grant创建 可以带有权限
GRANT SELECT,UPDATE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'testpwd'; select和update为允许的权限
删除用户
DROP USER 'testuser'@'localhost';
DELETE FROM mysql.user WHERE HOST='hostname'AND USER='username'; 比如
GRANT INSERT ,SELECT ON book.* TO 'rose'@'localhost'; 为book数据库下所有的表设置查找和插入权限
FLUSH privileges; 刷新权限表
GRANT ALL PRIVILEGES ON *.* TO 'rose'@'localhost';为所有东西设置所有权限 错误日志
SHOW VARIABLES ;
数据库的备份
mysqldump -uroot -pmy123 book readerinfo >c:\mysqlbackup\tset1.sql;//备份book下的readerinfo表
mysqldump -uroot -pmy123 --databases book mytese >c:\mysqlbackup\tset1.sql;//备份两个多个数据库
mysqldump -uroot -pmy123 --all-DATABASES >c:\mysqlbackup\tset1.sql;//备份所有数据库
恢复
mysql -uroot -pmy123 book<c:\mysqlbackup\tset1.sql;恢复数据库下的tset表
source c:\mysqlbackup\tset1.sql; 也可以 导入导出
位置不能随便
my.ini下 找到secure-FILE-priv='xxxxxxxxxxxxx'看这个路径试什么
你将它设置成null 这不允许导出
设置成“”则为可以导出到任何位置
SELECT * FROM book.readerinfo INTO OUTFILE 'xxxxxxxxxxxxxxxx/文件名。txt';这俩路径要一样
SELECT * FROM book.readerinfo INTO OUTFILE 'xxxxxxxxxxxxxxxx/文件名。txt'
FIELDS TERMINATED BY ',' 设置列与列的分隔符
LINES TERMINATED BY '\r\n' 设置行末尾换行符 mysql导出文件
mysql -uroot -pxxxx --execute='语句(执行并推出)' dbname>filename.txt;
mysql -uroot -pmy123 --execute="select * from readerinfo;" book>"xxxxxxxxxxxx"
将book数据库下的readerinfo表导出到xxxxxxxxx 导入命令
LOAD DATA INFILE "xxxxxxxxxxxx" INTO TABLE book.readerinfo;将xxx导入到book下的readerinfo
mysqlimport -uroot -pmy123 book "xxxxxxxxxxxxxxx";

数据库Mysql的学习(八)-储存过程和事务和导入导出的更多相关文章

  1. MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

    MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...

  2. mysql的函数与储存过程与pymysql的配合使用

    现在mysql上定义一个函数,一个储存过程 函数: delimiter \\ CREATE FUNCTION f2 ( num2 INT, num1 INT ) RETURNS INT BEGIN D ...

  3. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

  4. 数据库Mysql的学习(一)-启动和进入

    数据库:按照数据结构来组织储存和管理数据的仓库. Mysql是关系型数据库管理系统 Mysql安装好之后... mysql的启动 1:通过控制面板里的”服务“找到mysql右键启动即可 2:开始菜单搜 ...

  5. 数据库Mysql的学习(二)-数据类型和创建

    数据类型:数据列,存储过程参数,表达式和局部变量的数据特征. 整形: tinyint:一个字节,-128到127:2的7次方 smallint:两个字节,-32768到32767:2的15次方 med ...

  6. 数据库MySql的学习(1)--基本操作

    转自 博客园-hoojo-http://www.cnblogs.com/hoojo/archive/2011/06/20/2085390.html 一.数据库简单介绍 1. 按照数据库的发展时间顺序, ...

  7. 数据库Mysql的学习(六)-子查询和多表操作

    )*0.05 WHERE card_id ='20121xxxxxx'; //子查询就是一个嵌套先计算子查询 SELECT * FROM borrow WHERE book_id =(SELECT b ...

  8. 数据库Mysql的学习(五)-运算符与函数

    ,store,store,store,store FROM bookinfo;//加减乘除取余 //余额大于200 //余额不等于200 SELECT * FROM readerinfo WHERE ...

  9. 数据库Mysql的学习(三)-各种约束

    删除数据库表 drop table [if exists] 表一,表二.....; 表分区:比如图书信息表有1000万个图书信息,如何优化他,其中一种方式就是表分区.就是把一张表的数据分成多个区块,这 ...

随机推荐

  1. LeetCode18.四数之和 JavaScript

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...

  2. java中exception和error有什么区别,运行时异常和一般异常有什么区别

    1.exception和error都是继承了throwable类,在java中只有throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型 2.ex ...

  3. anyconnect connection attempt has failed

    anyconnect connection attempt has failed 在控制面板-网络与Internet-网络连接,右键AnyConnect secure连接适配器,点击属性 在连接项目中 ...

  4. C++笔记008:C++对C的扩展——命名空间 namespace基础

    原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 第一, 命名空间的意义 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突. 我认识两位叫“A”的朋友,一 ...

  5. IDEA一直提示 错误: 找不到或无法加载主类

    1.把http://repo1.maven.org/maven2...下载下来2.放到本地Manen仓库archetype 文件夹下3.设置IDEA Maven->Runner 界面的VM Op ...

  6. Flask之app实例的参数配置

    说是app实例的配置, 实际也就是flask程序的配置 Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? ...

  7. header()函数用处

    header() 函数向客户端发送原始的 HTTP 报头. 认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此 ...

  8. Fax Helper

    using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Que ...

  9. Spark在实际项目中分配更多资源

    Spark在实际项目中分配更多资源 Spark在实际项目中分配更多资源 性能调优概述 分配更多资源 性能调优问题 解决思路 为什么调节了资源以后,性能可以提升? 性能调优概述 分配更多资源 性能调优的 ...

  10. python学习之文件读写入门(文件读的几种方式比较)

    1.文件读写简单实例:(以w写的方式打开一个文件,以r读一个文件) # Author : xiajinqi # 文件读写的几种方式 # 文件读写 f = open("D://test.txt ...