数据库Mysql的学习(八)-储存过程和事务和导入导出
储存过程 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的学习(八)-储存过程和事务和导入导出相关推荐
- 数据库-Mysql使用学习笔记(命令行及图形化界面)
目录 环境及软件 安装目录 教程 启动Mysql服务 图形化 命令行 连接和断开服务器 图形化 命令行 SQL语句 介绍 分类 自带表介绍 注释 数据库的添加与删除 表的添加与删除 查询语法 基础查询 ...
- 数据库 MySQL (学习全过程)(B站动力节点杜老师)(DAY 1)
数据库 MySQL (B站动力节点杜老师) Day one 删库跑路: 1.运行安装包 点击remove 2. 删除 program file 里的 mysql 3. 和 program date里的 ...
- 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总
本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...
- 云e办学习笔记(二十五)导入导出Excel表数据功能实现
前言 本系列博客基于B站的云e办管理系统,前端和后端我都自己敲了一遍,这里做一个学习记录.云e办的原始视频链接如下:https://www.bilibili.com/video/BV1Ai4y1P7T ...
- oracle新建用户sql局域,oracle 新建数据库,及创建用户,表空间,sqlplus导入导出数据库...
oracle11G 新建数据库: 默认下一步: 默认下一步: 默认下一步: 填写数据库名下一步: 默认下一步: 完成,再按指示确定,就完成了数据库的创建. 数据库创建完后,在oracle11G Net ...
- Linux下oracle 数据库表空间、用户的创建,数据的导入导出操作指南
Oracle新建用户并且将已有的数据dmp文件导入到新建的用户下的操作流程 1.切换到oracle用户下 su - oracle 2.登录sqlplus sqlplus /nolog 3.使用sysd ...
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
<span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</sp ...
- 数据库Mysql的学习(六)-子查询和多表操作
UPDATE readerinfo SET balance = balance-(SELECT price FROM bookinfo WHERE book_id=20150301)*0.05 WHE ...
- Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件
Python 远程操作 Oracle 进行数据库备份还原 第一章:效果演示 ① 数据库恢复演示 ② 请求模拟 第二章:功能实现 ① 创建启动服务 ② 处理解析请求 ③ 处理命令 ④ 服务端数据库操作 ...
最新文章
- 外包公司派遣到网易,上班地点网易大厦,转正后工资8k-10k,13薪,包三餐,值得去吗?...
- c2000 pro 固件更新_一加7Pro系统更新新增屏幕侧滑返回手势
- SQL2005 属性 IsLocked 不可用于 登录[sa]
- 常用API-1(Object类、String类、StringBuffer类、StringBuilder类)
- Vue 教程第九篇—— 动画和过度效果
- aws sqs_AWS SQS和Spring JMS集成
- ThreadLocal原理解析以及是否需要调用remove方法
- 阅读宋立恒《AI制胜:机器学习极简入门》第2章:机器学习中的数据预处理
- python 列表操作详解,Python列表解析操作实例总结
- Testng 运行Cannot find class in classpath
- python安装详细步骤mac_Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
- 实战Python:利用python在pycharm开发终端简易计算器
- live2d内嵌html,博客(网页)添加 Live2D 看板娘
- 天猫魔盘在ubuntu16.04中的使用
- VB6.0视频教程78集,入门视频教程,基础够了(基础篇)
- android mcc mnc,SystemUI如何获得SIM卡相关的mcc/mnc值
- U盘无法打开的解决方法大全
- MySQL 替换手机号码中间4位为星号显示
- html编码后台转换,HTML编码转换、HTML部分实体
- 基于.net的大型web开源免费erp