一、mysql索引
通过的讲是提高数据性能问题,通过索引查询不需要全表的内容,就可以定位需要查找的内容。
1、普通索引
创建索引:create index in_name on t1(name)
查看索引:show index from t1
删除:drop index in_name on t1
2、唯一索引
创建索引:create unique index in_name on t1(name)
3、使用alter索引
alter table t1 add index in_name(name);
4、alter table table drop
二、MySQL视图:
视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。
视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了。
1、查看视图 show tables
2、删除视图:drop view v_t1
3、创建视图:create view v1_t1 as select * from t1;
三、MySQL内置函数
1、string长度:select length('string')
2、去除前段空格:ltrim(' string2')
四、表复制结构+数据
t1表已创建好和数据已插入
1、复制表结构:create table t2 linke t1
2、复制表数据:
insert into t2 select * from t1
五、事物处理
事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
1、rollback 回滚
2、commit 提交
3、savepoint p1 还原点
4、rollback p1 恢复p1还原点
六、MySQL存储,就是执行代码段
向t2表内插入100条数据
1、create procedure p2()
begin
declare i int;
set i=3
while i<=100 do
insert into t2(name) values("user");
set i=i+1;
end while;
end//
查看p2存储:show create procedure p2
执行存储p2()
>call p2()
查看procedure p1()的status信息
>show procedure status p2
删除存储过程
》drop procedure p2
七、MySQL触发器
触发器是操作一张表后,需要操作删除相关另一张表信息。
切换\ 命令:\d
1、创建:create trigger tg1 before insert on t1 for each row
begin
insert into t2(id) values(new
.id);
end//
2、准备两个空表t1和t2
3、向t1表中插入多条数据
insert into t1(nam) values("test1")
3、制作删除t1后t2表中的记录也会跟着删除
》\d //
》create trigger tg2 before delete on t1 for each row
》begin delete from t2 where id=old.id;new
》end//
4、制作更改表t1后 t2表中的记录跟着个性
>create trigger tg3 before update on t1 for each row
>begin update t2 set id=new.id where id=old.id;
>end//
5、查看触发器
》show triggers
执行:uodate t1 set name="user30" where name="user100"
八、数据还原备份
进入var/mysql,找到需要备份数据表
备份数据:mysqldump -u root -p 123123 abccs>abccs.sql
还原数据:mysql -u root -p 123123 abccs<abccs.sql