事务、索引、视图、数据库备份和恢复

本文介绍了MySQL中的事务处理,包括手动事务的开启与管理,监控SQL语句更新,以及自动提交设置。此外,文章详细讲解了索引的创建(普通、唯一和多列索引),视图的创建、查询与维护,以及数据文件备份与恢复的方法。
摘要由CSDN通过智能技术生成

事务

#创建银行卡
CREATE table account(
cid int UNIQUE,
cname VARCHAR(20),
money DECIMAL(10,2) UNSIGNED
)
INSERT into account VALUES(12345,'李嘉欣',1000);
INSERT into account VALUES(12346,'徐杰',2000);
#管理手动事务的语句
/* 开启事务
BEGIN  
 提交事务
COMMIT
 回滚事务
 ROLLBACK*/

 
 BEGIN;
 #执行监控的SQL语句
 UPDATE ACCOUNT SET MONEY = MONEY-1000 WHERE CID = 12345;
 UPDATE ACCOUNT SET MONEY = MONEY+1500 WHERE CID = 12346;
 #结果(提交或者回滚)
 #提交事务

 COMMIT
 #回滚事务
 ROLLBACK
 SELECT * FROM ACCOUNT
 
 #MYSQL默认自动提交事务
 #查看默认设置
 show VARIABLES like 'autocommit'
 #关闭/打开默认自动提交
 SET AUTOCOMMIT = OFF
 SET AUTOCOMMIT = ON
         

索引


#创建十万条数据
CREATE PROCEDURE pro_apple2()
BEGIN
  DECLARE i int DEFAULT 1;
    while i<=100000
    DO
INSERT into student VALUES(null,'七喜','女',23,'学习','1314A');
SET i = i+1;
END while;
END
call pro_apple2()
SELECT * from student
SELECT COUNT(*) from student
SELECT name from student where name LIKE '大喜'
#创建普通索引索引在name上
CREATE INDEX index_name on student(name)
#删除索引
DROP index index_name on student;

#创建唯一索引
CREATE UNIQUE index index_id on student(id)
#多列索引
select name from student where name = '七喜' and id = 1

视图


#员工表
CREATE TABLE users(
userid int,
username VARCHAR(20))
#客户类型表
CREATE TABLE types(
typeid int,
typename VARCHAR(20))
#客户来源表
CREATE TABLE source(
sourceid int,
sourcename VARCHAR(20))
#客户情况表
CREATE TABLE conditions(
conid int,
conname VARCHAR(20))
#客户表
CREATE TABLE customer(
cid int,
cname VARCHAR(20),
conid int,
sourceid int,
userid INT,
typeid int)

#四表联查
select c.cid,c.cname,u.username,s.sourcename,co.conname,t.typename from customer c 
left join users u on c.userid = u.userid
left join source s on c.sourceid = s.sourceid
left join conditions co on c.conid = co.conid
left join types t on c.typeid = t.typeid

#创建视图
CREATE view v_customer as /*加SELECT 语句*/select c.cid,c.cname,u.username,s.sourcename,co.conname,t.typename from customer c 
left join users u on c.userid = u.userid
left join source s on c.sourceid = s.sourceid
left join conditions co on c.conid = co.conid
left join types t on c.typeid = t.typeid

SELECT * from v_customer
#查看视图  DESC 视图名字
 DESC v_customer
#查看视图创建语句 SHOW  CREATE VIEW  视图名字;
 SHOW  CREATE VIEW  v_customer
#调用视图 SELECT  列名 ...    FROM    视图名字;
/*修改视图 

语法:CREATE   OR  REPLACE  VIEW  视图名  AS <SELECT 语句>;
 ALERT  VIEW  视图名    AS <SELECT 语句>;*/

 /*删除视图
 DROP   VIEW    [ IF EXISTS  ]     视图名字1  , 视图名字2 */


数据库备份和恢复


#数据文件备份:手动复制  只支持MYISAM存储引擎的文件
CREATE table bbb(
i INT
)ENGINE = MYISAM
#单表备份 SELECT  */字段列表  INTO OUTFILE  ‘文件所在路径’   FORM   数据源;
#sql备份整个库 mysqldump /mysqldump.exe  -uroot -p[password] 数据库名字   >  外部文件路径( 建议使用.sql文件);
#sql备份多张表 mysqldump /mysqldump.exe  -uroot -p123 数据库名字 [数据表名字1]   [数据表名字2] ...  > 外部文件路径(建议使用.sql文件   );


#数据库恢复
/*单表恢复 LOAD  DATA   INFILE   文件所在路径 INTO TABLE   表名 */
/*sql恢复
方法1.mysql -h服务器地址 -u用户名 -p密码  数据库名字 < 备份文件路径
方法2.source    备份文件路径*/

  • 48
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值