关于MySQL 事务,视图,索引,数据库备份,恢复
- /*创建数据库*/
CREATE DATABASE `mybank`;
/*创建表*/
USE mybank;
CREATE TABLE `bank`(
`customerName` CHAR(10), #用户名
`currentMoney` DECIMAL(10,2) #当前余额
);
/*插入数据*/
INSERT INTO `bank` (`customerName`,`currentMoney`) VALUES ('张三',1000);
INSERT INTO `bank` (`customerName`,`currentMoney`) VALUES ('李四',1);
2. --转账测试:张三希望通过转账,直接汇钱给李四500元
UPDATE `bank` SET `currentMoney` =`currentMoney`-500
WHERE `customerName` = '张三';
UPDATE `bank` SET `currentMoney` =`currentMoney`+500
WHERE `customerName` = '李四';
3. 执行事务 并提交事务
USE mybank;
/*设置结果集以gbk编码格式显示*/
SET NAMES gbk;
/*开始事务*/
BEGIN;
UPDATE `bank` SET `currentMoney` =`currentMoney`-500
WHERE `customerName` = '张三';
UPDATE `bank` SET `currentMoney` =`currentMoney`+500
WHERE `customerName` = '李四';
COMMIT; #提交事务,写入硬盘
4. 开始事务 回滚事务
BEGIN;
UPDATE `bank` SET `currentMoney` = `currentMoney` -1000 WHERE `customerName` = '张三';
/*回滚*/
ROLLBACK;
5.设置自动提交关闭或开启
/*关闭事务自动提交*/
SET autocommit = 0;
/*转账*/
UPDATE `bank` SET `currentMoney` =`currentMoney`-500
WHERE `customerName` = '张三';
UPDATE `bank` SET `currentMoney` =`currentMoney`+500
WHERE `customerName` = '李四';
/*提交*/
COMMIT;
UPDATE `bank` SET `currentMoney` = `currentMoney` -1000 WHERE `customerName` = '张三';
/*回滚事务*/
ROLLBACK;
6. 创建视图
/*当前数据库*/
USE myschool;
DROP VIEW IF EXISTS `view_student_result`;
/*创建视图*/
CREATE VIEW `view_student_result`
AS
/*需要创建视图的数据*/
SELECT `studentName` AS 姓名,student.`studentNo` 学号,`studentResult` AS 成绩,`subjectName` AS 课程名称.`examDate` AS 考试日期
FROM `student`
INNER JOIN `result` ON `student`.`studentNo` = `result`.`studentNo`
INNER JOIN `subject` ON `result`.`subjectNo` = `subject`.`studentNo`
WHERE `subject`.`subjectNo`=(
SELECT `subjectNo` FROM `subject` WHERE `subjectName` = 'Logic Java'
)AND `examDate` =(
SELECT MAX(`examDate`) FROM `result`.`subject` WHERE `result`.`subjectNo` = `subject`.`subjectNo`
AND `subjectName` = 'Logic Java'
);
7. 创建索引
USE myschool;
/*创建索引*/
CREATE INDEX `index_student_studentName`
ON `student`(`studentName`);
8. 使用DOS命令备份数据库
mysqldump -u username -h -ppassword
dbname[tbname1 [,tbname2]........] > filename.sql
例:
mysqldump -u root -p myschool student > d:\backup\myschool.sql
EnterPassword:
9. 使用后DOS命令恢复数据库
1) .恢复数据库前先在MySQL服务器中创建新的数据库.
2). 执行 mysql -u username -p [dbname] <filename.sql
例:
mysql -u root -p schoolDB < d:\backup\myschool.sql
10. 使用source命令恢复数据库
语法: source filename;
例:
/*创建数据库*/
CREATE DATABASE myschoolDB2;
USE myschoolDB2;
/*恢复数据库*/
source 'd:\backup\myschool.sql';
11. 将表数据导出到文本文件
语法: select 列名 from 表名 [where 条件,条件2......]
into outfile 'filename' ;
例:
SELECT * FROM `result` WHERE `subjectNo` =
(SELECT `subjectNo` FROM `subject` WHERE `subjectName` = 'Logic Java')
INTO OUTFILE 'd: /backup/result.txt';
12. 将文本文件导入到数据表
语法: LOAD DATA INFILE 'filename' INTO TABLE 'tablename ';
1) . 先创建导入数据的表结构
USE myschoolDB2;
/*创建result表结构*/
CREATE TABLE `result`
(
`studentNo` INT(4) NOT NULL COMMENT '学号',
`subjectNo` INT(4) NOT NULL COMMENT '课程编号',
`examDate` DATETIME NOT NULL COMMENT '考试日期',
`studentResult` INT(4) NOT NULL COMMENT '考试成绩',
PRIMARY KEY (`studentNo`,`subjectNo`,`examDate`)
)ENGINE = INNODB DEFAULT CHARSET utf8;
2).导入数据
LOAD DATA INFILE '路径.txt' INTO TABLE result;
/*查看result表数据*/
SELECT * FROM result;
关于MySQL 事务,视图,索引,数据库备份,恢复的更多相关文章
- 第五章 MySQL事务,视图,索引,备份和恢复
第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- MySQL用户管理、常用sql语句、MySQL数据库备份恢复
1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...
- mysql 从陌生到熟练之----数据库备份恢复的实现方法
mysql 从陌生到熟练之----数据库备份恢复的实现方法 MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:roo ...
- Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...
- postgresql 和 mysql 数据库备份恢复以及时区问题
概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...
- postgres 数据库备份恢复
postgre 数据库备份恢复命令 备份:pg_dump -U postgres -v -F c -Z 4 -f ***.backup dbname 9压缩率最狠恢复:pg_restore -U p ...
- Oracle数据库备份恢复,巡检须要关注的对象设置以及相关恢复概述
数据库备份恢复.巡检须要关注的对象设置: 1.数据库名称,以及DBID: --dbid在v$database中 SYS@ORCL>select dbid,name from v$dat ...
- mysql事务,视图,权限管理,索引,存储引擎(胖胖老师)
1: 视图什么是视图 视图是一个虚拟表, 它的内容来源于查询的实表, 本身没有真正的数据;视图的作用 对于复杂的查询时,每次查询时都需要编写一些重复的查询代码让编写sql的效率低下, 为了 ...
随机推荐
- 【技术分享】手把手教你使用PowerShell内置的端口扫描器
[技术分享]手把手教你使用PowerShell内置的端口扫描器 引言 想做端口扫描,NMAP是理想的选择,但是有时候NMAP并不可用.有的时候仅仅是想看一下某个端口是否开放.在这些情况下,PowerS ...
- pdf.js跨域问题的分析
最近在做公司业务时,需要在线浏览pdf.在现代浏览器中, 均可直接浏览pdf文件,无兼容性问题.但公司的业务线需要支持到ie8. 经过自己的搜索调研, pdf.js比较适合.pdf.js兼容到ie9, ...
- spring基于注解进行注入(个人记录)
spring的Bean基于注解进行配置,再结合自动装配属性,也就DI,其实说白了就相当于初始化的时候给对象赋初值. 配置文件的过程有些麻烦,记录一下. 基于注解进行配置: 1.在application ...
- MySQL之数据的备份与还原
备份db_book:这里用到了cmd,以管理员方式运行,不然后面使用mysqldump会被拒绝访问!!! 1.启动cmd,输入命令,切换到MySQL的bin文件: 2.然后输入备份命令: 备份好的sq ...
- NOIP[2015] Day2题解
问题 A: 跳石头 时间限制: 1 Sec 内存限制: 128 MB 题目描述 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石. ...
- 如何编写更好的SQL查询:终极指南-第二部分
上一篇文章中,我们学习了 SQL 查询是如何执行的以及在编写 SQL 查询语句时需要注意的地方. 下面,我进一步学习查询方法以及查询优化. 基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查 ...
- Ubuntu16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano
title: Ubuntu 16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano categories: 深度学习 tags: [深度学习框架搭建] --- 前言 ...
- login shell与non-login shell的区别
Bash应该是我们每天日常工作接触最多的东西了,就像我们最忠实的朋友,我们有必要了解一下这位朋友的“习性”. Bash有几种不同的运行模式,login shell与non-login shell,in ...
- visual studio xamarin 离线安装文件以及 android 模拟器
介绍 为了使用vs开发android我也是煞费苦心,先是从网上各种搜刮文章,然后找各种各样的离线包(因为国内网络是下载不了C#/Xamain)的包的,还有各种各样的安装包,都已快接近奔溃的边缘.每次不 ...
- 09 Linear Regression
线性回归假设 错误衡量/代价函数---均方误差 最小化样本内代价函数 只有满秩方阵才有逆矩阵 线性回归算法 线性回归算法是隐式迭代的 线性回归算法泛化可能的保证 线性分类是近似求解,线性回归是解析求解 ...