精华内容
下载资源
问答
  • 视图是一种有结构(有行有列的二维表结构)但没结果(结构中不真实存放数据)的虚拟表。虚拟表的结构来源不是自己定义的,而是从对应的基表中产生(视图数据来源) 注:虚拟表的数据也不是从自己来的 二、创建...

    一、视图

    1、视图:view。视图是一种有结构(有行有列的二维表结构)但没结果(结构中不真实存放数据)的虚拟表。虚拟表的结构来源不是自己定义的,而是从对应的基表中产生(视图的数据来源)

    注:虚拟表的数据也不是从自己来的

    二、创建视图

    1、基本语法

        -- 创建视图
        -- select语句:可以是 普通查询|连接查询|联合查询|子查询
        create view 视图名字 as select 语句;

    (1)单表视图:基表只有一个

    (2)多表视图:基表来源至少是两个

    注:多表视图(基表有多张)的字段名不能重复。可以进行别名命名

        -- 创建视图:单表视图
        create view my_v1 as
        select * from my_student;
    
        -- 创建视图:多表视图
        create view my_v2 as
        select * from my_student as s left join my_class c on c.id = s.c_id;
        -- 报错:Duplicate column name 'id',即 id重复(表中不允许出现同名字段)
    
        -- 多表视图(基表有多张)的字段名不能重复(可以进行别名命名)
        
        create view my_v2 as
        select s.*, c.name as c_name, c.room from my_student as s
        left join my_class c on c.id = s.c_id;

    2、视图一旦创建,系统会在视图对应的数据库文件夹下创建一个对应的结构文件xxx.frm(视图不影响基表的存在,视图只是基于基表出现的东西)

    注:视图名和表名不能重复。因为产生的都是xxx.frm结构文件

    三、查看视图

    1、视图是一张虚拟表,表的所有查看方式都适用于视图

        -- 查看所有视图/表
        show tables;
        show tables like '视图名的模糊查询';
        show views;    -- 报错
        
        -- 查看视图结构
        desc 视图名;
        
        -- 查看视图创建语句
        show create table 视图名 [\G];
        show create view 视图名 [\G];

    四、使用视图

    1、使用视图主要是为了查询数据,将视图当做表一样查询即可(视图不保存结果,但可以从基表拿到数据)

        -- 使用视图,查询数据
        -- 视图不保存结果,但可以从基表拿到数据
        select * from my_v1;

    2、视图的执行,其本质就是执行封装的select语句

    五、修改视图

    1、视图本身不可修改,但视图的来源是可以修改的。修改视图,就是修改视图本身的来源语句(select语句)

    2、基本语法

        -- 修改视图
        alter view 视图名 as 新的select语句;
        -- 创建视图
        create view my_v3 as
        select * from my_student;
    
        -- 查看视图结构
        desc my_v3;
    
        -- 修改视图
        alter view my_v3 as
        select * from my_class;
    
        -- 查看视图结构
        desc my_v3; 

    六、删除视图

    1、基本语法

        -- 删除视图
        drop view 视图名字;
        -- 删除视图
        drop view my_v3;
        drop table my_v3;    -- 报错
        
        -- 表可以存数据,视图不存数据
        -- 所以,删除视图是只删除结构,而删除表table会找到table删除表中的数据
        -- 但实际上没有my_v3这张表来存储数据

    2、视图可以随意删除,因为视图没有数据。但建议不要这样做,因为创建视图的sql语句可能没有保存

    七、视图的意义

    1、视图可以节省sql语句。将一条复杂的查询语句使用视图进行保存,以后可以直接对视图进行操作

    2、数据安全。视图操作主要是针对查询的,如果对视图结构进行处理(删除),不会影响基表数据,相对安全

    3、视图往往是在大项目中使用,而且是多系统使用。可以对外提供有用的数据,但隐藏了关键(无用)的数据,数据安全

    4、视图可以对外提供友好型。不同的视图提供不同的数据,对外好像专门设计

    5、视图可以更好(容易)的进行权限控制

    注:基表的数据往往要极力隐藏,甚至都不让别人知道表的名字和结构

    八、视图数据操作

    1、视图可以进行数据写操作,但是有很多限制。一般只会给查看视图的权限,不会给增删改视图的权限

    2、对视图的操作会影响基表,基表的数据会发生改变

    3、新增数据

    (1)新增数据就是直接对视图进行数据新增

    注:给视图新增数据意味着不知道基表,不知道基表就没办法操作基表。所以,所有的操作都是对视图进行的操作

    (2)多表视图不能新增数据(不能给一个有连接的视图(多表视图)插入数据)

    (3)可以向单表视图插入数据。但是视图中包含的字段必须有基表中所有不能为空(或者没有默认值)的字段

    (4)视图是可以向基表插入数据的(对视图的操作会影响基表,基表的数据会发生改变)

        -- 单表视图插入数据
        -- 对视图的操作会影响基表,基表的数据会发生改变
        insert into 视图名 values ('值1', '值2', ... );
        -- 创建视图:单表视图
        create view my_v4 as
        select * from my_class;
    
        -- 查看数据
        select * from my_class;
        select * from my_v4;
    
        -- 单表视图插入数据
        -- 视图中包含的字段必须有基表中所有不能为空(或者没有默认值)的字段
        -- 对视图的操作影响了基表,基表数据发生了改变
        insert into my_v4 values (666, '6班', 'B606');
    
        -- 查看数据
        select * from my_v4;
        select * from my_class;

    4、删除数据

    (1)多表视图不能删除数据(此处的多表视图指的是连接) -- 试一下多表数据源(笛卡尔积)、联合 可不可以删除???

    eg:学生表和班级表连成一个视图,如果删除学生时把班级也删除了,就会造成所有的学生都没有匹配的班级了 -- 数据不可控

        -- 创建多表视图(连接)
        create view my_v5 as
        select s.*, c.name as c_name, c.room from my_student as s
        left join my_class c on c.id = s.c_id;
    
        -- 查看视图数据
        select * from my_v5;
    
        -- 多表视图删除数据
        delete from my_v5 where id = 1;
        -- 报错:Can not delete from join view 'mydatabase.my_v5'

    (2)单表视图可以删除数据

        -- 单表视图删除数据
        -- 对视图的操作会影响基表,基表的数据会发生改变
        delete from 视图名 [where条件];
        -- 创建视图:单表视图
        create view my_v6 as
        select * from my_class;
    
        -- 查看数据
        select * from my_class;
        select * from my_v6;
    
        -- 单表视图删除数据
        -- 对视图的操作影响了基表,基表数据发生了改变
        delete from my_v6 where id = 1;
    
        -- 查看数据
        select * from my_v6;
        select * from my_class;

    5、更新数据

    (1)理论上,不论单表视图还是多表视图,都可以更新数据

        -- 单表视图|多表视图 更新数据
        -- 对视图的操作会影响基表,基表的数据会发生改变
        update 视图名 set 字段名 = 值 [where条件]
        -- 创建多表视图
        create view my_v7 as
        select s.*, c.name as c_name, c.room from my_student as s
        left join my_class c on c.id = s.c_id
    
        -- 查看数据
        select * from my_v7;
    
        -- 多表视图更新数据
        -- 对视图的操作影响了基表,基表数据发生了改变
        update my_v7 set c_id = 333 where id = 3;
    
        -- 查看数据
        select * from my_v7;
        select * from my_student;
        select * from my_class;

    (2)更新限制:with check option。在创建视图的时候,如果对某个字段有限制,那么在对视图进行数据更新操作时,系统会进行验证。要保证更新之后,数据依然可以被视图查询出来(更新后的数据值依旧满足创建视图时对字段的限制),否则不让更新

        -- 更新限制(with check option)
        -- 创建视图,使用更新限制
        create view 视图名 as
        select * / 字段列表 from 表名 where条件1 with check option;
    
        -- 更新数据
        -- 更新的字段值必须满足创建视图时设定是where条件1,否则报错
        update 视图名 set 字段名 = 值 [where条件];
        -- 更新限制(with check option)
        -- 创建视图,使用更新限制
        -- where age>30:视图的数据来源都是age>30的数据
        -- with check option:视图更新的时候,不能将已经得到的age>30的数据改成age<=30的数据
        create view my_v8 as
        select * from my_student where age > 30 with check option;
    
        -- 查看数据
        select * from my_v8;
    
        -- 将视图可以查到的数据改成age<30的数据
        update my_v8 set age = 29 where id = 1;
        -- 报错:CHECK OPTION failed 'mydatabase.my_v8'
    
        -- 对视图的操作影响了基表,基表数据发生了改变
        update my_v8 set age = 36 where id = 1;    -- 修改成功
        -- 针对视图中的数据进行更新。视图中没有id=111的数据,所以修改无效
        update my_v8 set age = 36 where id = 111;
    
        -- 查看数据
        select * from my_v8;

    6、单表视图和多表视图的操作区别

    (1)单表视图:可以插入数据,可以删除数据,可以更新数据

    (2)多表视图:不能插入数据,不能删除数据,可以更新数据

    九、视图算法

    1、视图算法:系统对视图以及外部查询视图的select语句的一种解析方式

    2、视图算法分为三种

    (1)undefined:未定义(默认)。这不是一种实际使用的算法,是一种推卸责任的算法。告诉系统,视图没有定义算法,系统自己看着办

    (2)temptable:临时表算法。系统应该先执行视图的select语句,后执行外部查询语句(将第一次查询到的数据拿到内存中,再对内存进行操作,操作了两次。因为拿到内存的数据也不一定全部都是需要的数据)

    (3)merge:合并算法。系统应该先将视图对应的select语句与外部查询视图的select语句进行合并,然后执行 -- 效率高(常态)

    注:

    a). 执行一次查询的效率比执行两次查询的效率高

    b). 系统经常选择merge,undefined时也会经常选择merge

    3、算法指定:在创建视图的时候

        -- 算法指定:在创建视图的时候
        create algorithm = 指定算法 view 视图名 as select 语句;
        -- 获取每个班级中最高的一个学生
        create view my_v9 as 
        select * from my_student order by height desc;
    
        -- 查询数据
        -- 下面两句sql效果一样,结果都是错误的
        select * from my_v9 group by c_id;
        select * from my_student group by c_id order by height desc;
    
        -- 指定算法为临时表temptable
        create algorithm = temptable view my_v10 as
        select * from my_student order by height desc;
    
        -- 查看视图创建语句
        show create view my_v10\G;
        
        -- 查看数据
        -- group by c_id:group by本身也带有排序效果,默认是升序asc。此处默认按照c_id升序排序
        select * from my_v10 group by c_id;    -- 结果正确
        -- 等价于
        select * from (select * from my_student order by height desc) as a group by a.c_id;

    4、视图算法选择:如果视图的select语句中会包含一个查询子句(5子句),而且很有可能顺序比外部的查询语句要靠后,此时一定要使用临时表算法temptable。其他情况可以不用指定,默认即可

     

    展开全文
  • 那么 如果 删除视图中的数据 成功了,那么 表中的数据 就被删除了。如果那个视图, 写了个 INSTEAD OF 触发器. 但是里面没有任何删除的动作。那么 可能你 DELETE FROM 视图, 最后表的数据,一点也没变化, 也是可以...

    如果你那个视图,是 单表的, 没写 触发器的。

    那么 如果 删除视图中的数据 成功了,那么 表中的数据 就被删除了。

    如果那个视图, 写了个 INSTEAD OF 触发器. 但是里面没有任何删除的动作。

    那么 可能你 DELETE FROM 视图, 最后表的数据,一点也没变化, 也是可以的。

    1> CREATE VIEW v_main_sub AS

    2> SELECT

    3> test_main.id AS main_id,

    4> test_main.value AS main_value,

    5> test_sub.id AS sub_id,

    6> test_sub.value AS sub_value

    7> FROM

    8> test_main, test_sub

    9> WHERE

    10> test_main.id = test_sub.main_id;

    11> go

    1> SELECT * FROM v_main_sub;

    2> go

    main_id main_value sub_id sub_value

    ----------- ---------- ----------- ----------

    1 ONE 1 ONEONE

    2 TWO 2 TWOTWO

    (2 行受影响)

    1> UPDATE v_main_sub

    2> SET main_value='ONX'

    3> WHERE main_id = 1;

    4> go

    (1 行受影响)

    1> UPDATE v_main_sub

    2> SET sub_value='ONXONX'

    3> WHERE main_id = 1;

    4> go

    (1 行受影响)

    1> DELETE FROM v_main_sub WHERE main_id = 1;

    2> go

    消息 4405,级别 16,状态 1,服务器 GMJ-PC\SQLEXPRESS,第 1 行

    视图或函数 'v_main_sub' 不可更新,因为修改会影响多个基表。

    1> CREATE TRIGGER v_main_sub_trigger

    2> ON v_main_sub

    3> INSTEAD OF DELETE

    4> AS

    5> DECLARE

    6> @main_id INT,

    7> @sub_id INT;

    8> BEGIN

    9> SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;

    10>

    11>

    12> PRINT(@main_id);

    13> PRINT(@sub_id);

    14> END;

    15> go

    1> DELETE FROM v_main_sub WHERE main_id = 1;

    2> go

    1

    1

    (1 行受影响)

    1> DELETE FROM v_main_sub WHERE sub_id = 1;

    2> go

    1

    1

    (1 行受影响)

    对于多表关联的视图, 删除的时候,需要人为的去判断

    例如当 主表 和 子表,都只有一条记录的情况下。

    无法判断 本次删除, 是要删除掉一个子表的记录,留下主表的。

    还是 主表 子表的数据,一同删除。

    取消

    评论

    展开全文
  • 那么 如果 删除视图中的数据 成功了,那么 表中的数据 就被删除了。如果那个视图, 写了个 INSTEAD OF 触发器. 但是里面没有任何删除的动作。那么 可能你 DELETE FROM 视图, 最后表的数据,一点也没变化, 也是可以...

    如果你那个视图,是 单表的, 没写 触发器的。

    那么 如果 删除视图中的数据 成功了,那么 表中的数据 就被删除了。

    如果那个视图, 写了个 INSTEAD OF 触发器. 但是里面没有任何删除的动作。

    那么 可能你 DELETE FROM 视图, 最后表的数据,一点也没变化, 也是可以的。

    1> CREATE VIEW v_main_sub AS

    2> SELECT

    3> test_main.id AS main_id,

    4> test_main.value AS main_value,

    5> test_sub.id AS sub_id,

    6> test_sub.value AS sub_value

    7> FROM

    8> test_main, test_sub

    9> WHERE

    10> test_main.id = test_sub.main_id;

    11> go

    1> SELECT * FROM v_main_sub;

    2> go

    main_id main_value sub_id sub_value

    ----------- ---------- ----------- ----------

    1 ONE 1 ONEONE

    2 TWO 2 TWOTWO

    (2 行受影响)

    1> UPDATE v_main_sub

    2> SET main_value='ONX'

    3> WHERE main_id = 1;

    4> go

    (1 行受影响)

    1> UPDATE v_main_sub

    2> SET sub_value='ONXONX'

    3> WHERE main_id = 1;

    4> go

    (1 行受影响)

    1> DELETE FROM v_main_sub WHERE main_id = 1;

    2> go

    消息 4405,级别 16,状态 1,服务器 GMJ-PC\SQLEXPRESS,第 1 行

    视图或函数 'v_main_sub' 不可更新,因为修改会影响多个基表。

    1> CREATE TRIGGER v_main_sub_trigger

    2> ON v_main_sub

    3> INSTEAD OF DELETE

    4> AS

    5> DECLARE

    6> @main_id INT,

    7> @sub_id INT;

    8> BEGIN

    9> SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;

    10>

    11>

    12> PRINT(@main_id);

    13> PRINT(@sub_id);

    14> END;

    15> go

    1> DELETE FROM v_main_sub WHERE main_id = 1;

    2> go

    1

    1

    (1 行受影响)

    1> DELETE FROM v_main_sub WHERE sub_id = 1;

    2> go

    1

    1

    (1 行受影响)

    对于多表关联的视图, 删除的时候,需要人为的去判断

    例如当 主表 和 子表,都只有一条记录的情况下。

    无法判断 本次删除, 是要删除掉一个子表的记录,留下主表的。

    还是 主表 子表的数据,一同删除。

    取消

    评论

    展开全文
  • 分布式查询也可以定义使用多个异类源数据视图视图的结构和内容是通过SQL查询获得的,它也称为视图名,可以永久地保存在数据库中,视图在数据库内存储的是select语句,也即数据库内并没有存储视图这个表,而存储...

    (1)视图概述
    视图是一个虚拟表,其内容由查询定义。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。分布式查询也可以定义使用多个异类源数据的视图。视图的结构和内容是通过SQL查询获得的,它也称为视图名,可以永久地保存在数据库中,视图在数据库内存储的是select语句,也即数据库内并没有存储视图这个表,而存储的是视图的定义。Select语句的结果集构成视图所返回的虚拟表。用户可以引用表时所使用的方法,在SQL语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:
    A.    将用户限定在表中的特定行上。例如:只允许雇员看见工作跟踪表内记录其工作的行。
    B.    将用户限定在特定列上,例如,对于那些不负责任处理工资单的雇员,只允许其看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
    C.    将多个表中的列连接起来,使它们看起来像一个表。
    D.    聚合信息而非提供详细信息。


    (2)视图的类型
    ① 索引视图
    索引视图是被具体化了的视图。这意味着已经对视图定义进行了计算并且生成的数据像表一样存储,用户可以为视图创建索引,即对视图创建一个唯一的聚集索引。索引视图可以显著提高某类查询的性能,尤其适于聚合许多行的查询,但不太适合经常更新的基本数据集。

    ② 分区视图
    分区视图在一台或多台服务器间水平连接一组成员表中的分区数据,使数据看上去来自同一张表。连接同一个SQLSERVER2014实例中成员表的视图就是一个本地分区视图。

    ③ 系统视图
    系统视图包含目录元数据,可以使用系统视图返回SQL Server实例或在该实例中定义的对象有关的信息。例如,可以查询sys.databases目录视图以便返回实例中提供的用户定义数据库有关的信息。


    (3)视图的优缺点
    优点:
    ①    安全保密性。通过视图用户只能查询和修改他们所能见到的数据,数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定列上。通过视图,用户可以被限制在数据不同的子集上。
    ②    查询简单性。视图能够从几个不同的关系表中提取数据,并且用一个表单表示出来,利用视图,将多表查询转换成视图的单表查询。
    ③    结构简单性。视图能够给用户一个“个人化”的数据结构外观,用一组用户感兴趣的可见表来代表这个数据库的内容。
    ④    隔离变化。视图能够代表一个个一致的、非变化的数据。即使是在作为视图基础的源表被分隔、重新构造或者重新命名的情况下,也是如此。
    ⑤    数据完整性。如果数据被存取,并通过视图来输入,DBMS就能够自动地校验这个数据,以便却确保满足所规定的完整性约束。
    ⑥    逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库被视图分隔开来。

    缺点:
    ①    性能。数据库管理系统必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是对视图的一个简单查询,数据库管理系统也会将其变成一个复杂的结合体,需要花费一定的时间。
    ②    修改限制。当用户试图修改视图的某些记录行时,数据库管理系统必须将其转换为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于复杂的视图,可能是不可修改的。


    (4)视图的用途
    A.    集中、简化和自定义每个用户对数据库的认识。
    B.    用作安全机制,方式是通过允许用户通过视图访问数据,而不授权用户直接访问底层基表的权限。
    C.    提供向后兼容接口来模拟架构已更改的表。

     

     【视图属性参数解析】
    ①    数据库:包含此视图的数据库的名称。
    ②    服务器:当前服务器实例的名称。
    ③    用户:此连接的当前用户名。
    ④    创建日期:显示视图的创建日期。
    ⑤    名称:当前视图的名称。
    ⑥    架构:显示视图所属的架构。
    ⑦    系统对象:指示视图是否为系统对象,值为true和false。
    ⑧    ANSI NULLs:指示创建对象时是否选择了“ANSI NULLs”选项。
    ⑨    已加密:指示视图是否已加密,值为true和false。
    ⑩    带引号的标识符:指示创建对象时是否选择了“带引号的标识符”选项。
    ⑪    带架构已绑定:指示视图是否绑定到架构,值为true和false。

    【视图属性窗体参数解析】
    (名称):当前视图的名称
    A.    数据库名称:包含此视图的数据库的名称
    B.    说明:对当前视图的简短说明
    C.    架构:显示视图所属的架构
    D.    服务器名称:当前服务器实例的名称
    E.    绑定到架构:防止用户以会使用视图定义失效的任何方式修改影响此视图的基础对象。
    F.    是的确:显示是否可以明确地确定所选列的数据类型。
    G.    非重复值:指定查询将在视图中筛选出重复值。当只使用表中的部分列并且这些列可能包含重复值时,或者当联接两个或更多表的过程会在结果集中产生重复行时,此选项非常有用。选择该选项等效于向SQL窗格内的语句中插入关键字distinct。
    H.    Group by 扩展:指定对于基于聚合查询的视图,附加选项可用。
    I.    输出所有列:显示所有列是否都由所选视图返回。这是在创建视图时设置的。
    J.    SQL注释:显示SQL语句的说明。若要查看或编辑完整的说明,请单击相应的说明,再单击属性右侧的省略号(…)。注释可用包含视图使用者和使用时间等信息。
    K.    Top规范:展开此项可显示Top、“百分比”、“表达式”和“等同值”属性的属性。
    ①    Top:指定视图将包括Top子句,该子句只返回结果集中的前N行或前百分之N行。默认情况下,视图将在结果集中返回前10行。使用此选项可更改返回的行数或指定不同的百分比。
    ②    表达式:显示视图将返回的百分比(如果“百分比”设置为“是”)或记录(如果“百分比”设置为“否”)。
    ③    百分比:指定查询将包含一个top子句,仅返回结果集中前百分之n行。
    ④    等同值:指定视图将包括with ties子句。如果视图包含order by子句和基于百分比的top子句,with ties将非常有用。如果设置了该选项,并且百分比截止位置在一组行的中间,且这些行在order by子句中具有相同的值,则视图将会扩展,以包含所有这样的行。
    ⑤      更新规范:展开此项可显示“使用视图规则更新”和“check选项”属性。


     (5)创建基于视图的视图


     

     (6)    删除视图
    当一个视图不再需要时,可以将其从数据库中删除,以回收其当前使用的磁盘空间。这样数据库中的任何对象都可以使用此回收空间。
    ①    限制和局限:删除视图时,将从系统目录中删除视图的定义和有关视图的其他信息。还将删除视图的所有权限。使用drop table 删除的表上的任何视图都必须使用drop view显示删除。
    ②    权限:需要有对schema的alter权限或对object的control权限。

     


     

    (7)    对视图的数据进行增删改操作

     

    展开全文
  • 修改视图,指的是修改视图本身,当组成视图的基本表的数据发生变化...删除视图,指的是删除视图本身,使用的是DROP VIEW语句修改视图1.CREATE OR REPLACE VIEW 语句语法结构:CREATE OR REPLACE [ALGORITHM = {UNDE...
  • MySQL 删除视图

    千次阅读 2020-03-14 09:20:38
    删除视图时,只能删除视图的定义,不会删除数据。 基本语法 可以使用 DROP VIEW 语句来删除视图。 语法格式如下: DROP VIEW <视图名1> [ , <视图名2> …] 其中:<视图名> 指定要删除的视图名。...
  • 删除视图的sql语句是“DROP VIEW”,具体格式为“DROP VIEW [ , …]”。“DROP VIEW”语句可以一次删除多个视图,但是必须在每个...删除视图时,只能删除视图的定义,不会删除数据。可以使用 DROP VIEW 语句来删除视...
  • MySQL删除视图

    万次阅读 2017-07-30 23:14:46
    删除视图时,只能删除视图的定义,不会删除数据 删除一个或多个视图,使用DROP VIEW语句语法格式 DROP VIEW [IF EXISTS] View_name [,view_name1]…… [RESTRICT | CASCADE]参数说明View_name,表示要删除的视图...
  • —— 进入数据库查看:show index from 表名\Gdesc:查看表结构select * from 表名:查询所有数据视图(view):是一种有结构,但是没结果的虚拟表视图优点:对外提供友好型,不同的视图对应不同的数据一、创建视图1)...
  • --删除视图 --删除视图只是删除视图的定义,并不会删除基表的数据。 --只有视图所有者和具备DROP VIEW权限的用户可以删除视图。 --视图被删除后,基于被删除的其他视图或应用无效。 ...
  • 本章讲解如何创建、更新和删除视图。SQL CREATE VIEW 语句在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。您...
  • 废话少讲,直奔主题函数方法我们采用传统的函数法,先找出重复的内容,然后删除,具体来看一下操作步骤及要点:添加辅助列,公式:=COUNTIF($A$2:A2,A2)要点:注意这里,我们不能引用整列,$A$2:A2,下拉区域会扩展...
  • Oracle删除视图中的数据

    千次阅读 2012-11-15 17:36:05
    CREATE OR REPLACE PROCEDURE "INDI_DEL_PRO" (IDPARA IN INDIVIDUALVIEW.ID%TYPE, CATEGORYPARA IN INDIVIDUALVIEW.CATEGORY%TYPE, RETURNPARA OUT NUMBER) AS APPLYNO INDIVIDUALVIEW.APPLY_NO%TYPE;...
  • 相关mysql视频教程推荐:《mysql教程》mysql数据视图的定义及相关操作,如查询、修改、删除、添加等操作介绍,在我们近期发布的文章中,已经给大家详细讲解过了,这里就不一一为大家介绍了。需要了解的新手朋友们...
  • MySQL——删除视图

    万次阅读 2018-05-17 00:01:54
    删除视图时,只能删除视图的定义,不会删除数据。 语法格式: DROP VIEW [ IF EXISTS ] view_name [, view_name] … [ RESTRICT | CASCADE ] a. IF EXISTS 参数指判断视图是否存在,如果存在则执行...
  • SQLServer之删除视图

    2018-10-30 03:31:14
    删除视图注意事项 删除视图时,将从系统目录中删除视图的定义和有关视图的其他信息。 还将删除视图的所有权限。 使用 DROP TABLE 删除的表上的任何视图都必须使用 DROP VIEW 显式删除。 对索引视图执行 DROP VIEW 时...
  • 视图是从一个或者多个表中导出的,它的行为与表非常相似,但是视图是一个虚拟表,它可以把非常复杂的查询变成一个简单的视图对象,然后便于我们在实际业务中开发。...删除视图 drop view 视图名 ...
  • 视图并不在数据库中实际存在,行和列数据来自定义视图的查询总使用的表,并且是在使用视图时动态生成的。视图相对于普通表的优势:简单:使用视图的用户完全不需要关系后面对应的表结构、关联条件和筛选条件,对用户...
  • 要通过视图更新基本表数据,必须保证视图是可更新视图,即可以在INSET、UPDATE或DELETE等语句当中使用它们。对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系。还有一些特定的其他结构,这类...
  • 1. 插入数据1.1 数据插入插入有几种方式:插入完整的行(建议表名后的括号里明确给出列名与后面的值进行分);insert into 表名 values(字段值,字段值…………..);插入行的一部分;直接在表名后面的列名省略某些列...
  • Database 嵌套子查询 数据更新update 删除数据delete 视图view --本次实验所用数据表见“建表作业-银行贷款数据库” use loandb select * from loant select * from bankt select * from LegalEntityT --(一)嵌...
  • MySQL入门 SQL语言之十七:视图的使用、创建、修改、删除视图更新数据视图和表的对比 #视图 /*含义:虚拟表,和普通表一样使用,数据来自定义视图的使用的原始表,并且是动态生成的,只保存sql逻辑,不保存查询...
  • 删除视图时,只能删除视图的定义,不会删除数据。 基本语法 可以使用 DROP VIEW 语句来删除视图。 语法格式如下: DROP VIEW <视图名1> [ , <视图名2> …] 其中:<视图名> 指定要删除的视图名。...
  • 视图提供了一种MySQL的SELECT语句层次的封装,可用来简化数据处理以及重新格式化基础数据或保护基础数据。 创建视图: CREATE VIEW 视图名称 (视图列名1,视图列名2) AS SELECT语句 eg: CREATE VIEW product...
  • 方式1-图形用户界面 1、新建视图 2、保存视图 3、刷新视图节点 4、查看视图 5、维护视图 6、删除视图 方式2-SQL语句 1、创建视图 2、查看视图中的数据 3、修改视图 4、删除视图
  • 删除数据遇到表或视图不存在

    千次阅读 2016-08-12 20:27:53
    在rename一张表的时候提示不能重命名,在网上查说是删掉相关的物化视图, 语句是drop materialized view log on ...后来删除数据被提示表或视图不存在,查了很多原因,尝试着清了相关物化视图,居然奏效,在此记录下
  • 定义视图数据删除规则 The TTreeView Delphi component displays a hierarchical list of items— tree nodes. A node is presented by node text and an optional image. Each node in a tree view is an ...
  • MySQL视图-(视图创建,修改,删除,查看,更新数据视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询总使用的表,并且是在使用视图时...
  • 本章讲解如何创建、更新和删除视图。 SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段...
  • 使用T-SQL语句操作视图提示:只能查看,删除,创建视图,不能对数据进行增,删,改操作。use StuManageDB go --判断视图是否存在 if exists(Select * from sysobjects where Name='View_ScoreQuery') drop view View...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,073
精华内容 2,029
关键字:

删除视图数据