一、事务语法:
二、编写事务时要遵循以下原则:
三、创建和使用视图
1.使用SQL语句创建视图四、索引
全文索引
全文索引的作用是在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值.
五、索引的语法
(1)UNIQUE | FULLTEXT | SPATIAL: 分别表示唯一索引,全文索引和空间索引,为可选参数
(2)Index_name :指定索引名
(3)Table_name:指定创建索引的表名
(5)column_name:指定需要创建索引的列
(6)Length:指定索引长度
2.删除索引
语法: DROP INDEX index_name ON table_name;
(1)删除表时,该表的所有索引将同时被删除
(2)删除表中的列时,如果要删除的列为索引的组成部分,则该列也会从索引中删除.
3.查看索引
语法: SHOW INDEX FROM table_name;
(1)在查询语句后加”\G”,表示将结果集按列表示.
六:备份和恢复
mysqldump命令备份数据库
1.mysqldump命令格式
语法:mysqldump -u username -h host -ppassword dbname[tbname1[,tbname2.....]]
>filename.sql
解析:
Username:表示用户名
Host表示登录用户的主机名称,如本机为主机可省略
Password表示登录密码
Dbname为需要备份的数据库
Tbname为需要备份的数据表,可指定多张表,为可选项.如备份整个数据库则此项省略
Filename.sql表示备份文件的名称
2.mysql命令恢复数据库
语法: mysql -u username -p [dbname]<filename.sql
解析:
username 表示用户
Dbname 数据库名
filename.sql 为数据库备份后的文件
注意:在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在新数据库恢复数据库过程将会出错。
3.Mysql命令在DOS环境下的恢复数据库命令:
CREATE DATABASE mybank;
---创建表:bank
CREATE TABLE bank(
customerName CHAR(10) COMMENT '用户名',
currentMoney DECIMAL(10,2) COMMENT '当前余额'
)
---插入数据
INSERT INTO bank(customerName,currentMoney) VALUES('张三',1000);
INSERT INTO bank(customerName,currentMoney) VALUES('李四',1);
---转账测试:张三希望通过转账,直接汇款给李四500元
UPDATE bank SET currentMoney=currentMoney-500;
WHERE customerName='张三';
UPDATE bank SET currentMoney=currentMoney+500
WHERE customerName='李四';
---执行事务,并提交事务
USE mybank;
---设置结果集以gbk编码格式显示
SET NAMES gbk;
---开始事务
START TRANSACTION;
INSERT INTO bank(customerName,currentMoney) VALUES('张三',1000);
INSERT INTO bank(customerName,currentMoney) VALUES('李四',1);
---提交事务,写入磁盘
COMMIT;
---开始事务回滚
START TRANSACTION;
UPDATE bank SET currentMoney=currentMoney-1000
WHERE customerName='张三';
---回滚
ROLLBACK;
---设置自动提交并关闭或开启
#关闭事务自动提交
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;