MySql中的视图,实际上就是一个虚拟表。像我们想要修改物理表的数据有两种方法,一种是将视图中的数据修改了,第二种是就是直接去修改物理表的数据。
主要作用有两个:
- 方便查询(SQL中进行封装到虚拟表);
- 安全性(每个部门之间需要查询数据,从物理表中查询存在安全性问题)
创建视图:
create view 视图名 as select * from 表名;
查看视图:
select * from 视图名;
查看视图结构:
desc 视图名 view;
查看视图创建结构:
show create view 视图名;
创建视图指定列名:
create view 视图名(列名1,列名2) as
select 列名1,列名2 from 表名;
修改视图:
create/replace view 视图名(修改的列名) as
select 列名 from 表名;
可以同时创建或修改:如果试图存在则修改,不存在则新建。
从默认库中查找视图:
select * from information_schema_views;
删除视图:
drop view 视图名;
修改视图中的数据,对应的将物理表的数据修改:
update 视图名 set 列名1
where 列名2 ='';
不可修改的视图:
- 有count()sum()视图不可修改;
- 有group by视图不可修改;
- select有子查询;
- 创建的视图select来源是一个不可修改的视图;
像数据库的数据在传输和使用时,有些数据是采用MD5加密的,MD5加密在IT界各个领域都会使用到,是一种经过多少年的变化的加密版本,当今使用比较普遍的加密方式,这里就不做特别介绍了。
md5加密语法:
select md5('root');#root是我们数据库的用户名
MySql中还有一个触发器,它也就是在执行某个操作时(前后)运行的另一个指令。
创建触发器:
create trigger 触发器名 before
insert on 表名 for each row
insert into 触发器名(action,action_time)
values('insert',now());#创建插入触发器的时间
创建触发器(多条指令需要用到begin...end):
create trigger 触发器名 after
update on 表名 for each row
begin
update 触发器名 set action ='update';
insert into 触发器名 values('modify',now());
end
#创建修改的触发器时间
查看触发器(trigger)创建(系统):
show create trigger sys.sys_config_update_set_user \G
#在cmd命令行里的操作
查看触发器(trigger):
show trigger 触发器名;
删除触发器:
drop trigger 触发器名;
如何使用MySql的基本操作已经结束了,我们也要知道数据的备份以及恢复。
MySql数据库的备份方法:
- MySqldump备份工具
- 数据库的管理工具,如SQLyog
- 直接拷贝数据库文件和相关配置文件
备份myschool数据库:
mysql (-h 主机名)-u root -p myschool >d:/myschool.sql
#>后的是存储路径
查找MySqldump帮助信息:
mysqldump -?
还原的方法有三个:
- 使用source语法,在数据库MySql命令行执行/path/db_name.sql;
- 用MySql客户端
mysql -u root -p dbname</path/db_name.sql;
sourc想要执行时,一定要指定数据库(use dbname),若想要还原到新数据库,需要创建新数据库。
-
使用Navicate客户端运行sql进行还原