储存过程
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('21513333333',@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 THENROLLBACK;
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');xxxxxxxxxxxxxxxxxxxxxxxCREATE 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";

转载于:https://www.cnblogs.com/wpbing/p/9223414.html

数据库Mysql的学习(八)-储存过程和事务和导入导出相关推荐

  1. 数据库-Mysql使用学习笔记(命令行及图形化界面)

    目录 环境及软件 安装目录 教程 启动Mysql服务 图形化 命令行 连接和断开服务器 图形化 命令行 SQL语句 介绍 分类 自带表介绍 注释 数据库的添加与删除 表的添加与删除 查询语法 基础查询 ...

  2. 数据库 MySQL (学习全过程)(B站动力节点杜老师)(DAY 1)

    数据库 MySQL (B站动力节点杜老师) Day one 删库跑路: 1.运行安装包 点击remove 2. 删除 program file 里的 mysql 3. 和 program date里的 ...

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

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

  4. 云e办学习笔记(二十五)导入导出Excel表数据功能实现

    前言 本系列博客基于B站的云e办管理系统,前端和后端我都自己敲了一遍,这里做一个学习记录.云e办的原始视频链接如下:https://www.bilibili.com/video/BV1Ai4y1P7T ...

  5. oracle新建用户sql局域,oracle 新建数据库,及创建用户,表空间,sqlplus导入导出数据库...

    oracle11G 新建数据库: 默认下一步: 默认下一步: 默认下一步: 填写数据库名下一步: 默认下一步: 完成,再按指示确定,就完成了数据库的创建. 数据库创建完后,在oracle11G Net ...

  6. Linux下oracle 数据库表空间、用户的创建,数据的导入导出操作指南

    Oracle新建用户并且将已有的数据dmp文件导入到新建的用户下的操作流程 1.切换到oracle用户下 su - oracle 2.登录sqlplus sqlplus /nolog 3.使用sysd ...

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

    <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</sp ...

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

    UPDATE readerinfo SET balance = balance-(SELECT price FROM bookinfo WHERE book_id=20150301)*0.05 WHE ...

  9. Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件

    Python 远程操作 Oracle 进行数据库备份还原 第一章:效果演示 ① 数据库恢复演示 ② 请求模拟 第二章:功能实现 ① 创建启动服务 ② 处理解析请求 ③ 处理命令 ④ 服务端数据库操作 ...

最新文章

  1. 外包公司派遣到网易,上班地点网易大厦,转正后工资8k-10k,13薪,包三餐,值得去吗?...
  2. c2000 pro 固件更新_一加7Pro系统更新新增屏幕侧滑返回手势
  3. SQL2005 属性 IsLocked 不可用于 登录[sa]
  4. 常用API-1(Object类、String类、StringBuffer类、StringBuilder类)
  5. Vue 教程第九篇—— 动画和过度效果
  6. aws sqs_AWS SQS和Spring JMS集成
  7. ThreadLocal原理解析以及是否需要调用remove方法
  8. 阅读宋立恒《AI制胜:机器学习极简入门》第2章:机器学习中的数据预处理
  9. python 列表操作详解,Python列表解析操作实例总结
  10. Testng 运行Cannot find class in classpath
  11. python安装详细步骤mac_Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
  12. 实战Python:利用python在pycharm开发终端简易计算器
  13. live2d内嵌html,博客(网页)添加 Live2D 看板娘
  14. 天猫魔盘在ubuntu16.04中的使用
  15. VB6.0视频教程78集,入门视频教程,基础够了(基础篇)
  16. android mcc mnc,SystemUI如何获得SIM卡相关的mcc/mnc值
  17. U盘无法打开的解决方法大全
  18. MySQL 替换手机号码中间4位为星号显示
  19. html编码后台转换,HTML编码转换、HTML部分实体
  20. 基于.net的大型web开源免费erp

热门文章

  1. Redis 笔记(10)— 发布订阅模式(发布订阅单个信道、订阅信道后的返回值分类、发布订阅多个信道)
  2. centos使用yum快速安装java的方法
  3. python 通过队列实现栈
  4. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题
  5. lightgbm 决策树 可视化 graphviz
  6. 奇异值分解与最小二乘问题 线性回归
  7. LeetCode简单题之三角形的最大周长
  8. ARM CPU神经网络自动调度
  9. CVPR2020:4D点云语义分割网络(SpSequenceNet)
  10. 微信架构 支付架构(上)