这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
8、视图
-
概念:view , 站在不同的角度去看同一份数据,以文件的形式存在
-
视图对象的创建与删除
- 创建:create view 视图名 as select 字段名 from 表明 ;
- 删除: drop view 视图名 ;
【注意】:只用DQL语句才能用view来创建,可以面向视图对象进行增删改查 , 对视图对象的增删改查会导致原表被操作
-
作用:简化SQL语句
【案例】:展示视图的创建与删除
drop table if exists dept2 ;
create table dept2 select * from dept ;
create view dept2_view as select * from dept2 ;
drop view dept2_view ;
【案例】:面向视图进行创建、更新数据
drop view if exists emp_dept_view ;
create view emp_dept_view as select e.ename , e.sal , d.dname from emp e join dept d on e.deptno = d.deptno ;
select * from emp_dept_view ;
update emp_dept_view set sal = 200 where ename = 'SMITH';
9、DBA常用命令
-
创建用户:create user 用户名 identified by '密码' ;
--可以登录但是只可以看见一个库 information_schema
-
导入导出:
- 导入:source 文件位置
- 导出:mysqldump 数据库名称 > 文件路径 文件名.sql -u 用户名 -p 密码
【案例】展示DBA常用命令
create user zzyyui identified by '20zzy100588A' ;
grant all on *.* to 'zzyyui'@'%' with grant option;
// 回收权限
revoke all on *.* from guest;
//慎用
use mysql;
select * from user;
update user set password = password('') where user = '';
flush privileges;
// 导入导出
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
source D:\ bjpowernode.sql
10 数据库设计范式
- 概念:数据库设计的依据(面试常考)
- 第一范式:任何一张表必须要有主键,每一个字段原子性不可再分;
- 第二范式:建立在第一范式之上,要求所有非主键字段完全依赖主键,不要产生部分依赖;
- 第三范式:建立在第二范式之上,要求所有非主键字段直接依赖主键,不要产生传递依赖。
10.1 第一范式
- 地位:最核心、最重要的范式,所有表的设计都需要满足
- 要求:必须有主键,并且每一个字段原子性不可再分
【案例】:判断是否满足第一范式
学生编号 学生姓名 联系方式
-------------------------------------
1001 张三 zs@gmail.com,1359999999
1002 李四 ls@gmail.com,13699999999
1001 王五 ww@163.net,13488888888
【存在问题】:
1、最后一条记录和第一条重复(不唯一,没有主键)
2、联系方式字段可以再分,不是原子性的
【更改】:
学生编号(pk) 学生姓名 email 联系电话
-------------------------------------------------------------
1001 张三 zs@gmail.com 1359999999
1002 李四 ls@gmail.com 13699999999
1003 王五 ww@163.net 13488888888