快站免费网站建设哪家好沈阳做招聘网站

当前位置: 首页 > news >正文

快站免费网站建设哪家好,沈阳做招聘网站,要如何做才能拥有自己的网站呢,地宝网南昌分类一、视图 1.常见的数据库对象 ①表table#xff1a;表是存储数据的逻辑单元#xff0c;行和列形式存在。列是字段#xff0c;行是记录。 ②数据字典#xff1a;系统表#xff0c;存放数据库相关信息的表。系统表的数据通常是数据库系统维护。 ③约束constraint#x…一、视图 1.常见的数据库对象 ①表table表是存储数据的逻辑单元行和列形式存在。列是字段行是记录。 ②数据字典系统表存放数据库相关信息的表。系统表的数据通常是数据库系统维护。 ③约束constraint执行数据校验规则用于保证数据完整性 ④视图view一个或多个表里的数据的逻辑显示视图不存储数据 ⑤索引index用于提高查询性能相当于书的目录。 ⑥存储过程procedure完成一次完整的业务处理没有返回值。但可以传出参数将多个值传给调用函数 ⑦存储函数用于完成一次的特定计算具有一个返回值 ⑧触发器相当于一个事件监听器当数据库发生特定事件时触发器被触。完成相应的处理。 2.视图概述 2.1为什么使用视图 视图是使用表的一部分也可以针对不同的用户制定不同的查询视图。 2.2 视图的理解 ①视图是一种虚拟表不具有数据的占用很少的空间。 ②视图建立在已有表的基础上视图赖以建立的表是基表。 ③视图的数据进行增加、删除和修改数据表的数据也发生变化。 ④把视图理解为存储起来的select语句 ⑤视图应用在大型项目不针对于小型项目 ⑥视图优点简化查询控制数据的访问 3.创建视图 3.1创建单表视图 create view 视图名称 as select 语句 举例① create view vu_emp1 AS select employee_id,last_name,salary from emps 查看视图 select * from vu_emp1; 举例② 查询语句字段起别名作为视图的字段名 create view vu_emp2 as select employee_id emp_id,last_name lname,salary from emps where salary8000;查看视图 select * from vu_emp2; 举例③起别名 视图和查询的字段名依次匹配 create view vu_emp3(emp_id,lname,monthly_sal) as select employee_id,last_name,salary from emps where salary8000;查看视图 select * from vu_emp3; 举例④视图中的字段在基表中没有对应的 create view vu_emp_sal as select department_id,avg(salary) avg_sal from emps where department_id is not NULL group by department_id;查看视图 select * from vu_emp_sal; 3.2创建多表联合视图 create view vu_emp_dept as select e.employee_id,e.department_id,d.department_name from emps e join depts d on e.department_idd.department_id; select * from vu_emp_dept;查看视图 select * from vu_emp_dept; 3.3利用视图对数据进行格式化:员工姓名(部门名) create view vu_lname_empname as select concat(e.last_name,(,d.department_name,)),e.salary from emps e join depts d on e.department_idd.department_id;查看视图 select * from vu_lname_empname; 3.4 基于视图创建视图 select * from vu_emp1; 基于vu_emp1创建视图 create view vu_emp4 as select employee_id,last_name from vu_emp1查看vu_emp4 select * from vu_emp4 4.查看视图 ①查看数据库的表对象、视图对象 show tables; ②查看视图的结构 desc 视图名称 ③查看视图的属性信息

查看视图信息显示数据表的存储引擎、版本、数据行数和数据大小等

执行结果显示注释Comment为VIEW说明该表为视图其他的信息为NULL说明这是一个虚表。 show table status like 视图名称 ④视图的详细定义信息 show create view 视图名称 5.更新视图的数据—跟更新表格一样 举例①修改 update vu_emp1 set salary 20000 where employee_id 101; 视图和表格同时修改 举例②删除 delete from vu_emp1 where employee_id101 5.1不可更新视图的情况 ①视图的更新必须要和基表存在一对一的关系 ②出现多表查询的视图聚合函数… 虽然可以更新视图数据但总的来说视图作为虚拟表主要用于方便查询不建议更新视图的 数据。对视图数据的更改都是通过对实际数据表里数据的操作来完成的。 6.修改、删除视图 6.1修改视图 ALTER VIEW 视图名称
AS 查询语句 6.2删除视图 DROP VIEW 视图名; 7.总结 7.1视图的优点 ①简化查询操作简单 ②减少数据的冗余 在使用的时候我们要通过定义视图的查询语句来获取结果集。而视图本身不存储数据不占用数据存储的资源减少了数据冗余。 ③数据安全 MySQL将用户对数据的 访问限制 在某些数据的结果集上而这些数据的结果集可以使用视图来实现。用户不必直接查询或操作数据表。这也可以理解为视图具有 隔离性 。视图相当于在用户和实际的数据表之间加了一层虚拟表。 4. 适应灵活多变的需求

  1. 能够分解复杂的查询逻辑 7.2视图的缺点 ①表的结构发生变化对应的视图需要及时进行维护。特别是嵌套视图维护复杂可读性不好。 ②视图过多维护成本高 8课后练习 练习一 #1. 使用表employees创建视图employee_vu其中包括姓名LAST_NAME员工号EMPLOYEE_ID部门号(DEPARTMENT_ID)
    create view employee_vu as select last_name,employee_id,department_id from emps#2. 显示视图的结构
    desc employee_vu #3. 查询视图中的全部内容
    select * from employee_vu #4. 将视图中的数据限定在部门号是80的范围内 alter view employee_vu as select last_name,employee_id,department_id from emps where department_id80练习二 CREATE TABLE emps
    AS SELECT * FROM atguigudb.employees; #1. 创建视图emp_v1,要求查询电话号码以‘011’开头的员工姓名和工资、邮箱 create view emp_v1 as select last_name,salary,email,phone_number from emps where phone_number like 011%#2. 要求将视图 emp_v1 修改为查询电话号码以‘011’开头的并且邮箱中包含 e 字符的员工姓名和邮箱、电话号码 alter view emp_v1 as select last_name,salary,email,phone_number from emps where email like %e% and phone_number like 011%#3. 向 emp_v1 插入一条记录是否可以 失败了在表里有些非空字段没有默认值在视图里面没有出现此字段 #4. 修改emp_v1中员工的工资每人涨薪1000
    update emp_v1 set salarysalary1000#5. 删除emp_v1中姓名为Olsen的员工 delete from emp_v1 where last_nameOlsen#6. 创建视图emp_v2要求查询部门的最高工资高于 12000 的部门id和其最高工资 create view emp_v2 as select department_id,max(salary) from emps group by department_id having max(salary)12000#7. 向 emp_v2 中插入一条记录是否可以
    不可以聚合函数 #8. 删除刚才的emp_v2 和 emp_v1 drop view emp_v2,emp_v1