1.视图
创建和删除视图:
mysql> create view temp_view as select * from temp; Query OK, 0 rows affected (0.05 sec) mysql> drop view temp_view; Query OK, 0 rows affected (0.04 sec)
视图可以做什么?
我们可以面向视图进行增删查改,对视图对象的操作会影响原表被操作!
代码实例:
mysql> create view temp_view as select * from temp; # 创建视图 Query OK, 0 rows affected (0.01 sec) mysql> select * from temp_view; # 查询视图内容 +-------+--------+-----------+------+------------+---------+---------+--------+ | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 | | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | +-------+--------+-----------+------+------------+---------+---------+--------+ 14 rows in set (0.00 sec) mysql> insert into temp_view(EMPNO,ENAME) values (8000,'TIME'); # 插入数据到视图 Query OK, 1 row affected (0.09 sec) mysql> select * from temp; # 视图增删查改会影响到原表的内容 +-------+--------+-----------+------+------------+---------+---------+--------+ | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 | | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | | 8000 | TIME | NULL | NULL | NULL | NULL | NULL | NULL | +-------+--------+-----------+------+------------+---------+---------+--------+ 15 rows in set (0.00 sec)
视图是用来简化sql的,我们将很长的查询语句创建为视图,对视图进行更改,可以极大的简化sql语句的复杂度👨视图对象在数据库中也是以文件存在的
2.备份
导出du_test数据库内容到sql文件中:
# 导出数据库到sql文件中 mysqldump du_test>D:\du_test.sql -u用户名 -p密码 # 导出指定的emp表到sql文件中 mysqldump du_test emp>D:\du_test.sql -u用户名 -p密码
导入sql文件到当前数据库中:
source D:\du_test.sql
3.数据库范式
第一范式:
要求任何一张表必须有主键,每一个字段原子性不可再分
第二范式:
在第一范式的基础上,要求所有的非主键字段必须完全依赖于主键,不要产生部分依赖
第三范式:
在第二范式的基础上,要求所有的非主键字段必须完全依赖于主键,不要产生传递依赖
多对多新增关系表使用两个外键🎈
一对多多的表添加外键👌
时间和空间你可以选择牺牲一个而换取另外一个,这取决于客户的需求😊