视图
怎么创建视图对象?怎么删除试图对象?
//表复制
create table dept2 as select * from dept;
//创建视图对象
create view dept2_view as select * from dept2;
//删除视图对象
drop view dept2_view;
用视图做什么
我们可以面向视图对象进行增删改查,对视图对象的增删改查,会导致原表被操作!
//面向视图查询
mysql> create view dept2_view as select * from dept2;
Query OK, 0 rows affected (0.18 sec)
//面向视图插入
mysql> select * from dept2_view;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
4 rows in set (0.03 sec)
//查询原表数据
mysql> insert into dept2_view(deptno,dname,loc) values(60,'sales','beijing');
Query OK, 1 row affected (0.15 sec)
mysql> select * from dept2;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
| 60 | sales | beijing |
+--------+------------+----------+
5 rows in set (0.03 sec)
//面向视图删除
mysql> delete from dept2_view;
Query OK, 5 rows affected (0.13 sec)
//查询原表数据
mysql> select * from dept2;
Empty set
连表创建视图对象
mysql> create view emp_dept_view as select
-> e.ename,e.sal,d.dname from emp e join dept d
-> on e.deptno=d.deptno;
Query OK, 0 rows affected (0.17 sec)
mysql> select * from emp_dept_view;
+--------+---------+------------+
| ename | sal | dname |
+--------+---------+------------+
| SMITH | 800.00 | RESEARCH |
| ALLEN | 1600.00 | SALES |
| WARD | 1250.00 | SALES |
| JONES | 2975.00 | RESEARCH |
| MARTIN | 1250.00 | SALES |
| BLAKE | 2850.00 | SALES |
| CLARK | 2450.00 | ACCOUNTING |
| SCOTT | 3000.00 | RESEARCH |
| KING | 5000.00 | ACCOUNTING |
| TURNER | 1500.00 | SALES |
| ADAMS | 1100.00 | RESEARCH |
| JAMES | 950.00 | SALES |
| FORD | 3000.00 | RESEARCH |
| MILLER | 1300.00 | ACCOUNTING |
+--------+---------+------------+
14 rows in set (0.03 sec)
视图对象在实际开发中的作用
假设有一条非常复杂的sql语句,而这条sql语句需要在不同的位置上反复使用。每一次使用这个sql语句的时候都需要重新编写,很长,很麻烦,怎么办?
可以把这条复杂的SQL语句以视图对象的形式新建。在需要编写这条SQL语句的位置直接使用视图对象,可以大大简化开发。并且利于后期的维护,因为修改的时候也只需要修改一个位置就行,只需要修改视图对象所映射的SQL语句。
我们以后面向视图开发的时候,使用视图的时候可以像使用table一样。可以对视图进行增删改查等操作。视图不是在内存当中,视图对象也是存储在硬盘上的,不会消失。
增删改查,又叫:CRUD。
CRUD是在公司中程序员之间沟通的术语,一般我们很少说增删改查。一般都说CRUD。
- C:(增)
- R:(查:检索)
- U:(改)
- D:(删)
DBA常用命令
重点掌握:
数据的导入和导出
-
数据导出
未登录
//导出数据库 mysqldump bjpowernode>D:\bjpowernode.sql -uroot -p123456 //导出表 mysqldump bjpowernode emp>D:\bjpowernode.sql -uroot -p123456
-
数据导入
先创建数据库:create database bjpowernode;
使用数据库:use bjpowernode;
然后初始化数据库:source D:\bjpowernode.sql