BEGIN;
UPDATE account SET balance = balance + 2000
WHERE accountName = '李四';
UPDATE account SET balance = balance - 2000
WHERE accountName = '张三';
#提交事务
COMMIT;
#回滚事务 已提交的事务回滚不了
ROLLBACK;
#查看表引擎
SHOW CREATE TABLE account;
#修改表引擎
ALTER TABLE account ENGINE = INNODB;
关闭自动提交
开启自动提交
数据回滚
提交事务
什么是事务
指将一系列数据操作捆绑成为一个整体并进行统一管理的机制
事务的特性
1.原子性
2.一致性
3.隔离性
4.持久性
事务的原则
1.事务尽可能短
2.事务中访问的数据量尽量的少
3.查询数据尽量不要使用事务
4.在事务处理过程中尽量不要出现等待用户输入的操作
索引
什么是索引
对数据库表或多列进行排列的一种结构
作用
1.提高查询效率
2.改善数据库的性能
语法
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
NO table_name (column_name [length]...);
#设置主键索引
ALTER TABLE member ADD PRIMARY KEY(id);
UNIQUE:唯一索引
FULLTEXT:全文索引
SPATIAL:空间索引
如果未指定则是普通索引
index_name:指定索引名
table_name:创建索引的表名
column_name:哪个列创建索引
查看索引
删除索引
DROP INDEX index_remark ON member;
创建视图(虚拟表)
CREATE VIEW v_patient_msg
AS(
SELECT p.patientID,
p.patientName,
cc.checkitemName,
cc.checkitemCost,
pp.CheckResult,
pp.examDate,
DATE_FORMAT(pp.examDate,'%Y') AS dYear
FROM
patient p,
prescriptiom pp,
checkitem cc
WHERE
p.patientID = pp.patientID
AND pp.CheckItemID = cc.checkitemID
);
删除视图
DROP VIEW IF EXISTS v_ps
查看视图
USE inform
SELECT * FROM VIEWS\G;
备份数据库
1.mysqldump
mysqldump -u root -p hospital >d:\hospital.sql