精华内容
下载资源
问答
  • 数据库视图总结

    千次阅读 2018-05-25 11:22:30
    视图的概念VIEW ( 视 图 ) 是 一 个 或 多 个 表 的 部 分 数 据 , 它 可 以 像 表 一 样 进 行 CRUD 操 作 , 但 没 有 具 体 的 存 储 数 据 结 构 , 它 以 一 个 SELECTiä 句 的 形 式 存 在 数 据 库 中 。...
    视图的概念VIEW ( 视 图 ) 是 一 个 或 多 个 表 的 部 分 数 据 , 它 可 以 像 表 一 样 进 行 CRUD 操 作 , 但 没 有 具 体 的 存 储 数 据 结 构 , 它 以 一 个 SELECTiä 句 的 形 式 存 在 数 据 库 中 。 本 质 : 一 条 有 名 字 的 SELECT 语 句 表 现 : 一 到 多 张 表 的 部 分 内 容
    视图的优点:
    限制数据库的访问
    简化查询
    数据的独立性
    对同一数据有不同的表现

    语法:
    OR REPLACE:表示如有相同的名字的视图对象则替换
    FORCE :如果subquery中源码不存在,先创建视图对象,这时视图对象虽创建,但不能正常使用。默认值为NOFORCE,即源表不存在,不能正常创建视图
    WITH CHECK OPTION:表示可以进行插入、更新和删除操作,但应该满足WHERE字句的条件
    WITH READ ONLY : 只允许进行select操作

    view分类
    简单视图:数据来源于一张表,不包含函数以及进行分组,可以进行DML操作
    复杂视图:数据来源于多个表,包含函数以及分组,不可以进行DML操作

    DEMO:
    1、创建一个名称为empvu45的视图,视图的数据来源于AS后面的子查询

    2、创建视图empvu45,如果视图已制度经存在就替换,并且这个视图只读,不可以进行增删改

    3、数据来源两张表的视图

    (完)
    展开全文
  • #数据库--第4章 数据库视图

    千次阅读 2020-05-02 17:25:13
    #数据库--第4章 数据库视图一、什么是视图?二、视图的创建三、视图的删除四、视图的查询五、视图的增删改六、总结:   这一章节将会介绍所有的数据库视图操作,使用的数据是 第一章 介绍和导入的数据。 一、什么...


      这一章节将会介绍所有的数据库视图操作,使用的数据是 第一章 介绍和导入的数据。

    一、什么是视图?

      视图是关系数据库系统提供给用户的多种角度观察数据库中数据的重要机制。
      视图是从一个或n个基本表(视图)导出的表,它与基本表不同,是一个虚表。
      数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。
      视图在概念上与基本表等同,用户可以在视图上再定义视图,可以对视图进行查询、删除、更新等操作。
      如果基本表中的数据发生变化,从视图中查询出的数据也随之改变。
      如果对视图进行更新操作,那么对应的基本表也会进行更新,但是不是所有视图都支持更新操作。
      视图定义被编译后存储,因此执行效率高。

    注意:视图一旦创建,便不可修改,只能删除重建。


    二、视图的创建

      关键字:create view 视图名称[(字段名)] as 子查询 [with check option]
      注意:子查询可以有函数,但不允许有 order by 或者 distinct

      如果子查询的 select 接的不是单纯的字段名,或者有重名字段,则创建视图时字段名不可省略

    create view view_partavgcost(AVG_PARTKEY, AVG_SUPPLYCOST) as 
    select PS_PARTKEY, avg(PS_SUPPLYCOST) from partsupp group by PS_PARTKEY;
    

      如果子查询 select 接的是不重复的字段名,则创建视图时,可以省略字段名,默认使用 select 中的字段名

    create view partcost as select PS_PARTKEY, PS_SUPPLYCOST from partsupp;
    create view region_view as select R_REGIONKEY, R_NAME from region;
    

    三、视图的删除

      关键字:drop view … [cascade]
      注意:cascade 用来连带删除由此视图导出的其它视图
          但是SQL Server里不能够用CASCADE关键字进行表的删除,如果在SQL Server中要对表进行删除可以直接使用DROP<表名>

    drop view partcost cascade;
    

    四、视图的查询

      视图的查询和基本表一致,这里不多赘述

    select * from view_partavgcost;
    

    五、视图的增删改

      视图的增删改和普通表的增删改基本一致,但有以下几点需要注意:

      1、在对视图进行增加操作时,未在视图中出现的列置为默认值,若没有定义默认值则会插入失败
      2、若视图子句中含有聚集函数,则不可对这个视图进行增删改操作
      3、若视图子句含有标量函数,则不可对视图进行增加操作,可以进行删除和受限的修改操作(受限的修改:只能修改非函数字段)
      4、若视图子句不含有函数,即为单纯的字段名,则可以进行增删改
      5、对视图进行的增删改,也会对基本表进行

    insert into region_view(R_REGIONKEY, R_NAME) values (-1, 'ddd');
    

    六、总结

      1、视图其实就相当于预定义一个查询语句,可以让查询的逻辑更清晰
      2、视图使用户能以多种角度看待同一数据
      3、视图对重构数据库提供一定程度的逻辑独立性
      4、视图能够对机密数据提供安全保护
      5、若修改了基本表的结构,那么视图就可能无法工作。需要删除重新建立

    七、BCNF 范式

      一个满足 BCNF 的关系模式有:
      1、所有非主属性对每一个码都是完全函数依赖。
      2、所有主属性对每一个不包含它的码也是完全函数依赖。
      3、没有任何属性完全函数依赖于非码的任何一组属性。

    展开全文
  • 视图( view ): 视图概述: 通俗的讲, 视图就是一条 select 语句执行后返回的结果集 视图是对若干张基本表的引用, 一张虚拟表, 查询语句执行的结果, 不储存具体数据( 基本表数据改变, 视图也会跟着改变 ) 主要...

    视图( view ):

    视图概述:

    • 通俗的讲, 视图就是一条 select 语句执行后返回的结果集
    • 视图是对若干张基本表的引用, 一张虚拟表, 查询语句执行的结果, 不储存具体数据( 基本表数据改变, 视图也会跟着改变 )
    • 主要用于方便 查询 操作, 减少复杂的 SQL 语句, 增强可读性

    创建视图:

    • 视图名: 建议以 v_ 开头
    • create view 视图名 as select查询语句;

    查看视图:

    • select * from 视图名;

    重命名视图:

    • rename table 旧视图名 to 新视图名;

    删除视图:

    • drop view 视图名;

    视图的作用:

    • 提高了重用性, 就像一个函数
    • 对数据库重构, 却不影响程序的运行
    • 提高了安全性能, 可以对不同的用户
    • 让数据更加清晰

    事务( transaction ):

    • 所谓事务, 它是一个操作序列, 这些操作要么执行, 要么不执行, 它是一个不可分割的工作单位()

    事务四大特征( 简称ACID ):

    • 原子性(Atomicity)
    • 一致性(Consistency) 
    • 隔离性(Isolation)
    • 持久性(Durability)

    一个好的事务处理系统:必须具备这些标准特性:

    • 原子性(atomicity:

    一组事务,要么成功,要么撤回;一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性

    • 一致性(consistency:

    数据库总是从一个一致性的状态转换到另一个一致性的状态,或有非法数据(外键约束之类),事务撤回

    • 隔离性(isolation:

    通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的,事务独立运行,事务的100%隔离,需要牺牲速度

    • 持久性(durability:

    一旦事务提交,则其所做的修改会永久保存到数据库。(此时即使系统崩溃,修改的数据也不会丢失。)

    开启事务:

    • 开启事务后, 执行修改操作, 变更只会维护到本地缓存中, mysql储存在本地, 所以数据不会被修改

    begin; 或 start transaction;

    提交事务:

    • 将缓存中的数据变更维护到物理表中

    commit;

    回滚事务:

    • 放弃缓存中变更的数据

    rollback;

    注意:

    • 修改数据的命令会自动触发事务, 如: insert, update, delete
    • 而在 SQL 语句中有手动开启事务的原因是: 可以进行多次数据的修改, 如果成功一起成功, 否则一起回滚到之前的数据
    • conn.begin()  # 手动开启事务前会自动提交原来的事务, 即使没有执行commit()

    索引:

    概述:

    • 索引是一种特殊的文件( InnoDB 数据表上的索引是表空间的一个组成部分 ), 它们包含着对数据表里所有数据的引用指针
    • 通俗的说,  数据库索引好比是一本书前面的目录, 能加快数据库的查询速度, 提高效率

    查看索引:

    show index from 表名;

    创建索引:

    • 如果指定字段是字符串, 需要指定长度, 建议长度与定义字段长度一致
    • 字段类型如果不是字符串, 可以不填

    create index 索引名称 on 表名(字段名称(长度));

    删除索引:

    drop index 索引名称 on 表名;

    开启时间检测, 关闭把 1 改成 0

    set profiling=1;

    显示执行时间

    show profiles;

    注意:

    • 建立太多的索引将会影响 更新和 插入 的速度, 因为它需要同样更新每个索引文件
    • 建立索引会占用磁盘空间
    • 常用的索引有三种 主键索引普通索引唯一索引 ; 索引不是越多越好,哪些字段需要建索引呢?主键百分之百用到了索引,就是主键索引
      • 普通索引 key
        • create index 索引名称 on 表名(字段名称(长度))
        • alter table 表名 add index 索引名称(字段名称(长度))
      • 唯一索引 unique,保证这个字段只会有一个值;
        • create unique index 索引名称 on 表名(字段名称(长度))
          • alter table 表名 add unique index 索引名称(字段名称(长度))

    用户管理:

    创建账户 授权:

    权限列表包含create、alter、drop、insert、update、delete、select、all privileges: 表示所有权限

    数据库中的全部表则用  数据库.*  某张表用数据库.表名

    grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

    grant select,update,insert on jing_dong.* to 'cxq'@'localhost' identified by '111111';

    MySQL 8.0:

    创建用户:

    CREATE USER 'xxx'@'%' IDENTIFIED WITH mysql_native_password BY '111111';

    给新用户授权:

    GRANT ALL PRIVILEGES ON *.* TO '用户名'@'host名称';

    刷新权限:

    FLUSH PRIVILEGES;

    检查用户: ( 权限 & 加密方式 ):

    select user, host, plugin, authentication_string from mysql.user

    删除用户:

    DROP USER 'username'@'host';

     

    修改权限 添加权限:

    grant 权限名称 on 数据库 to 账户@主机 with grant option;

     

    撤销权限:

    revoke 权限名称 on 数据库 from 账户@主机;

    revoke insert on jing_dong.* from cxq@localhost;

     

    修改密码:

    使用root登录,修改mysql数据库的user表

    使用password()函数进行密码加密

    update user set authentication_string=password('新密码') where user='用户名';

     

    注意:修改完成后需要刷新权限

    flush privileges;

     

    备份数据库:

    注意:需要先退出MySQL客户端

    mysqldump –uroot –p密码 数据库名 > 文件名.sql

    恢复

    连接mysql,创建“新的数据库”

    退出连接,执行如下命令

    mysql -uroot –p密码 新数据库名 < 文件名.sql

    展开全文
  • 数据库视图数据是否可以直接删除 文章目录数据库视图数据是否可以直接删除一、视图是什么?二、视图数据删除1.多表构成视图数据删除2.单表视图数据删除总结 一、视图是什么? 视图(VIEW)也被称作虚表,即虚拟的表...

    数据库视图数据是否可以直接删除

    一、视图是什么?

    视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。
    视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。

    二、视图数据删除

    1.多表构成视图数据删除

    在这里插入图片描述
    在这里插入图片描述

    实践结果:多表构成视图数据不能删除!

    2.单表视图数据删除

    在这里插入图片描述

    在这里插入图片描述
    实践结果:单表构成视图数据可以删除!

    总结

    以上就是关于视图数据删除的情况,单表构成的视图是可以直接删除,多表构成的视图是无法删除。实际使用中我们基本也很少去使用单表视图,所以一般情况下视图数据是无法删除。若希望去除视图中的某数据,那么可以在创建视图时候直接添加对应的条件进行过滤!

    展开全文
  • 数据库创建视图失败总结

    千次阅读 2016-05-18 19:05:21
    在使用Sqlite创建视图时,遇到一些创建失败的小问题,简单总结一下 示例1:  CREATE VIEW view_name AS SELECT * FROM user_table WHERE user_name LIKE '张%'; 备注:AS之后的sql语句内容,不能用括号括起来 ...
  • 实验7 数据库视图的定义与使用 7.1实验目的及要求 掌握视图的用法,加深对视图作用的理解 7.2实验内容 1.创建、修改和删除视图 2.利用视图进行查询 7.3实验步骤 7.3.1视图的创建(查看视图结果用select语句...
  • select 序列名称.currval from dual
  • 数据库访问视图实现总结

    千次阅读 2016-09-30 17:55:48
    实现方式有多种,在以SQL Server 2008R2为例此介绍一种数据库视图的实现方式。 步骤一:启用Ad Hoc Distributed Queries SQL Server阻止了对组件Ad Hoc Distributed Queries的STATEMENT OpenRowset/OpenDatasource...
  • MySQL数据库总结

    万次阅读 多人点赞 2019-11-25 13:26:13
    一、数据库简介 数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。 典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。 关系型数据库:使用关系模型把数据组织到数据表...
  • 数据库 视图和表

    千次阅读 2019-08-01 15:01:17
    数据库中表的概念很好理解,就是数据的一种组织存放形式。表中是包含真正的数据的。比如我有一张表如下 在磁盘中我可以找到表文件 用cat打开表文件的话会是乱码,包含了实际的数据 而视图。本质上是sql语句(或者...
  • 视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。 数据库的设计和结构不会受到视图中的函数、...
  • 自己总结数据库oracle视图用法自己总结数据库oracle视图用法
  • 视图并不在数据库中实际存在,行和列数据来自定义视图的查询总使用的表,并且是在使用视图时动态生成的。 视图相对于普通表的优势: 简单:使用视图的用户完全不需要关系后面对应的表结构、关联条件和筛选条件,对...
  • 数据库视图的创建和修改

    万次阅读 热门讨论 2017-02-12 22:32:34
    虽然现在的进行已经学习到了十三章但是发现自己的博客总结总结到了第四章哎,遗憾啊本来应该早就完成了的数据库视频就因为过年临放假的时候太兴奋了所以就没学习过完年来了之后由于完的心还没有收好导致计划做的好...
  • 数据库视图设计的好坏,直接跟数据库的性能相关。而且,在大型数据库设计中,大家分工合作,基础表的设计与报表视图的设计往往由不同的人负责。所以,视图的设计管理跟基础表的设计管理一样,都有很大的学问。在这篇...
  • 数据库视图是什么,和表有什么区别和联系

    万次阅读 多人点赞 2019-01-21 17:42:19
    4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改。 5、表是内模式,试图是外模式。 6、视图是查看数据表的一种方法,可以查询数据表中...
  • 数据库视图、索引

    千次阅读 2016-10-10 09:03:01
    数据库视图以及索引的概念和作用介绍
  • 文章目录 1.代码 2.截图 3.总结 1.代码 SELECT * FROM M_KOSTN WHERE M_KOSTN~BUKRS = '...总结 我只是尝试用数据库视图来SELECT,是可在做到的,只是其实没必要这做,这样与数据库的交互就变成先到视图,再到数据库.
  • 数据库视图详解

    万次阅读 多人点赞 2018-11-27 19:36:29
    一、视图的概念   视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义。具有普通表的结构,但是不实现数据存储。单表视图一般用于查询和修改,会改变基本表的数据;多表视图一般用于查询,不会...
  • 数据库编程总结

    万次阅读 热门讨论 2010-04-11 20:10:00
    数据库编程总结当前各种主流数据库有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等。数据库编程是对数据库的创建、...
  • 数据库考点总结

    2019-01-06 22:36:39
    数据库基本概念 1. 数据库系统包括(数据库数据库管理系统) 2. 数据库系统特点: 数据结构化 数据的共享性高,冗余度低且易扩展 数据独立性高 物理独立性:用户的应用程序与数据库中数据的物理储存是相互独立的...
  • 数据库——视图

    热门讨论 2014-08-10 19:59:28
     视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。 为什么用视图:  视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常...
  • 任务五 数据库视图设计 文章目录任务五 数据库视图设计【实训目的与要求】【实训原理】【实训步骤】一、创建视图(注意WITH CHECK OPTION子句用法)1.创建行列子集视图2.在多表上建立视图3.创建带表达式的...
  • 数据库视图实例

    千次阅读 2018-02-08 17:22:21
    一个视图是一个或一组SQL语句,存储在数据库中相关的名称,一个视图实际上是一个预定义的SQL查询中的表的形式组成。 一个视图可以包含一个表的所有行,或选择表中的行,从一个或多个表上写SQL查询创建一个视图,...
  • 数据库视图

    千次阅读 2013-10-22 21:05:47
    但是视图并不在数据库中以存储的数据集形式存在。当我们创建一个视图时,只是把其视图的定义存放在数据字典中,在用户使用时才去求对应的数据。 二、视图的作用  1、简单性。看到的就是需要的。视图不后的操作...
  • 数据库概论总结

    万次阅读 2018-07-11 18:05:12
    数据库 绪论 数据管理的三个阶段 人工管理阶段 文件系统阶段 数据库系统阶段 基本术语 数据(Data) 计算机用来描述事物的记录(文字.图形.图像.声音) 数据的形式本身并不能完全表达其内容,需要...
  • 数据库基础操作总结 目录数据库基础操作总结1.数据库2. 数据表3. 数据类型、运算符4. postgresql的函数5. 插入、更新、删除数据6. 查询数据7. 索引、视图、触发器 1.数据库 2. 数据表 3. 数据类型、运算符 4. ...
  • 数据库知识总结

    2016-08-05 15:59:47
    视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加SQL函数、WHERE以及JOIN语句,我们也可以提交数据,就像这些来自于某个单一的表。 区别: 1. 视图是已经编译好的SQL语句,而表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,410
精华内容 40,564
关键字:

数据库视图总结