精华内容
下载资源
问答
  • 数据库视图的使用

    2020-02-25 17:08:15
    1、数据库视图的概念 视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。 视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。...

    1、数据库视图的概念

    视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。

    视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

    视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。

    视图看上去非常像数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。

    2、视图的作用

    ①简化了操作,把经常使用的数据定义为视图。

      我们在使用查询时,在很多时候我们要使用聚合函数,同时还要 显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,我们可以创建视图,这以后,我们只需要select * from view就可以啦,这样很方便。

    ②安全性,用户只能查询和修改能看到的数据。

      因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图不可以随意的更改和删除,可以保证数据的安全性。 

    ③逻辑上的独立性,屏蔽了真实表的结构带来的影响。

    3、视图的缺点

    ①性能差
      数据库必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也要把它变成一个复杂的结合体,需要花费一定的时间。
    ②修改限制
      当用户试图修改视图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的视图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。

    在定义数据库对象时,不能不加选择地来定义视图,应该权衡视图的优点和缺点,合理地定义视图。

    4、视图语法

    --创建视图
    CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name
    AS
    SELECT查询
    [WITH READ ONLY CONSTRAINT]

    语法解析:

    (1)OR REPLACE:如果视图已经存在,则替换旧视图。
    (2)FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。
    (3)NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。
    (4)WITH READ ONLY:
    默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

    --从视图中检索数据--  
    select * from view_name;  
    --删除视图--  
    drop view view_name;  
    --查询本库的所有视图view,结果中owner代表不同的用户
    select * from all_views t;
    --查看本用户的所有视图view,执行sql
    select * from user_views t;

     

     

     

     

    展开全文
  • 2. 视图的基本操作 2.1 创建视图 2.2 修改视图 2.3 删除视图 2.4查看视图 1.视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作。 1.1 视图的概念 视图是一个虚拟表,其...

    目录

    1.视图概述

    1.1 视图的概念

    1.2 视图的作用

    2. 视图的基本操作

    2.1 创建视图

    2.2 修改视图

    2.3 删除视图

    2.4 查看视图

    3. 视图练习


    1.视图概述

    视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作。

    1.1 视图的概念

    视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。同样对视图的更新,会影响到原来表的数据。

    视图是存储在数据库中的查询的SQL语句,它主要出于两种原因:安全原因,视图可以隐藏一些数据,例如,员工信息表,可以用视图只显示姓名、工龄、地址,而不显示社会保险号和工资数等;另一个原因是可使复杂的查询易于理解和使用。这个视图就像一个“窗口”,从中只能看到你想看的数据列。这意味着你可以在这个视图上使用SELECT *,而你看到的将是你在视图定义里给出的那些数据列。

    1.2 视图的作用

    视图是在原有表或者视图的基础上重新定义的虚拟表,这可以从原有的表上选取对用户有用的信息,忽略次要信息,其作用类似于筛选。视图的作用归纳为如下几点:

    1. 使操作简单化

    视图需要达到的目的就是所见即所需。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

    2.增加数据的安全性

    通过视图,用户只能查询和修改指定的数据。指定数据之外的信息,用户根本接触不到。这样可以防止敏感信息被未授权的用户查看,增强机密信息的安全性。

    3.提高表的逻辑独立性

    视图可以屏蔽原有表结构变化带来的影响。例如原有表增加列和删除未被引用的列,对视图不会造成影响。同样,如果修改表中的某些列,可以使用修改视图来解决这些列带来的影响。

    2. 视图的基本操作

    2.1 创建视图

    创建视图是指在已经存在的数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。

    查看创建视图的权限

    创建视图需要具有CREATE VIEW的权限。同时应该具有查询涉及的列的SELECT权限。可以使用SELECT语句来查询这些权限信息。查询语法如下:

    SELECT Select_priv,Create_view_priv FROM mysql.user WHERE user='用户名';

    参数说明:

    (1)Select_priv:属性表示用户是否具有SELECT权限,Y表示拥有SELECT权限,N表示没有。

    (2)Create_view_priv:属性表示用户是否具有CREATE VIEW权限;

    (3)mysql.user:表示MySQL数据库下面的user表。

    (4)用户名:参数表示要查询是否拥有权限的用户,该参数需要用单引号引起来。

    示例:查询MySQL中root用户是否具有创建视图的权限。

    MySQL中,创建视图是通过CREATE VIEW语句实现的。其语法如下:

    CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]
    VIEW 视图名[(属性清单)]
    AS SELECT语句
    [WITH [CASCADED|LOCAL] CHECK OPTION];

    参数说明:

    (1)ALGORITHM:可选项,表示视图选择的算法。

    (2)视图名:表示要创建的视图名称。

    (3)属性清单:可选项,指定视图中各个属性的名词,默认情况下与SELECT语句中的查询的属性相同。

    (4)SELECT语句:表示一个完整的查询语句,将查询记录导入视图中。

    (5)WITH CHECK OPTION:可选项,表示更新视图时要保证在该视图的权限范围之内。

    例:创建视图。

    CREATE  VIEW view_student AS SELECT id,name,class FROM student;
    例:创建视图同时,指定属性清单。
    
    CREATE VIEW view_student1(stu_id,stu_name,stu_class) AS SELECT id,name,class FROM student;
    
    CREATE OR REPLACE VIEW view_student1(stu_id,stu_name,stu_class) AS SELECT id,name,class FROM student;
    创建视图时需要注意以下几点:
    

    (1)运行创建视图的语句需要用户具有创建视图(create view)的权限,若加了[or replace]时,还需要用户具有删除视图(drop view)的权限;

    (2)select语句不能包含from子句中的子查询;

    (3)select语句不能引用系统或用户变量;

    (4)select语句不能引用预处理语句参数;

    (5)在存储子程序内,定义不能引用子程序参数或局部变量;

    (6)在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用check table语句;

    (7)在定义中不能引用temporary表,不能创建temporary视图;

    (8)在视图定义中命名的表必须已存在;

    (9)不能将触发程序与视图关联在一起;

    (10)在视图定义中允许使用order by,但是,如果从特定视图进行了选择,而该视图使用了具有自己order by的语句,它将被忽略。

    2.2 修改视图

    修改视图是指修改数据库中已存在的表的定义。当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致。MySQL中通过CREATE OR REPLACE VIEW语句和ALTER VIEW语句来修改视图。

    示例:修改视图

    mysql> CREATE OR REPLACE 
    VIEW view_student1(stu_id,stu_name,stu_class) AS SELECT id,name,class FROM student;
    Query OK, 0 rows affected
    
    
    mysql> select * from view_student1;
    +--------+----------+-----------+
    | stu_id | stu_name | stu_class |
    +--------+----------+-----------+
    |   1001 | Jason    |         1 |
    |   1002 | Helen    |         3 |
    |   1003 | Steve    |         5 |
    |   1004 | Hanna    |         1 |
    |   1005 | Bob      |         3 |
    |   1006 | John     |         7 |
    |   1007 | Walln    |         8 |
    +--------+----------+-----------+
    7 rows in set
    
    
    
    mysql> ALTER VIEW view_student1 AS SELECT id,name,class FROM student where id  in (select id from student );
    Query OK, 0 rows affected
    
    mysql> select * from view_student1;
    +------+-------+-------+
    | id   | name  | class |
    +------+-------+-------+
    | 1001 | Jason |     1 |
    | 1002 | Helen |     3 |
    | 1003 | Steve |     5 |
    | 1004 | Hanna |     1 |
    | 1005 | Bob   |     3 |
    | 1006 | John  |     7 |
    | 1007 | Walln |     8 |
    +------+-------+-------+
    7 rows in set
    说明:ALTER VIEW语句改变了视图的定义,该语句与CREATE OR REPLACE VIEW语句有着同样的限制,如果删除并重新创建一个视图,就必须重新为它分配权限。
    

    2.3 删除视图

    删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。MySQL中,使用DROP VIEW语句来删除视图。但是,用户必须拥有DROP权限。

    例:删除视图。

    DROP VIEW IF EXISTS view_student;

    2.4 查看视图

    查看视图是指查看数据库中已存在的视图的定义。

    例:查看视图。

    mysql> describe view_student;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | NO   |     | NULL    |       |
    | name  | varchar(30) | YES  |     | NULL    |       |
    | class | int(10)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set

    3. 视图练习

    员工表和数据:

    CREATE TABLE employee(  
            ID INT  PRIMARY KEY  AUTO_INCREMENT,  
            NAME CHAR(30) NOT NULL,  
            SEX  CHAR(2) NOT NULL,  
            AGE INT NOT NULL,  
            DEPARTMENT CHAR(10) NOT NULL,  
            SALARY  INT NOT NULL,  
            HOME CHAR(30),  
            MARRY CHAR(2) NOT NULL DEFAULT  '否',         
            HOBBY CHAR(30)  
     ); 
     
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'李红','女',20,'人事资源部','7000','浙江','否','网球');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'姜文','女',21,'人事资源部','9000','北京','是','看书');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'李楠','男',22,'产品研发部','8000','上海','否','音乐');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'潇潇','女',23,'产品研发部','9000','重庆','否','游泳');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'王亮','女',24,'产品研发部','9000','四川','是','足球');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'程默','男',25,'业务销售部','8500','福建','否','游戏');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'陆明','男',26,'业务销售部','10000','山西','否','篮球');
    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'韩路','男',26,'业务销售部','15000','江苏','否','足球');

    具体的表内容如下:

    员工信息表和数据:

    CREATE TABLE employee_detail(
    	ID INT PRIMARY KEY,
    	POS CHAR(10) NOT NULL,
    	EXPERENCE CHAR(10) NOT NULL,
    	CONSTRAINT `FK_ID` FOREIGN KEY(ID) REFERENCES employee(ID)
    );
    
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(1,'人事管理','工作二年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(2,'人事招聘','工作二年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(3,'初级工程师','工作一年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(4,'中级工程师','工作二年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(5,'高级工程师','工作三年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(6,'销售代表','工作二年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(7,'销售经理','工作一年');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(8,'销售总监','工作一年');

    具体的表内容如下:

    单表上创建视图:

    CREATE VIEW V_VIEW1(ID, NAME, SEX, AGE,DEPARTMENT) AS SELECT ID, NAME, SEX, AGE,DEPARTMENT FROM employee;
    

    显示结果

    SELECT * FROM V_VIEW1;

    多表上创建视图:

    CREATE VIEW V_VIEW2(ID, NAME, SEX, AGE,DEPARTMENT,POS,EXPERENCE) AS SELECT a.ID, a.NAME, a.SEX, a.AGE,a.DEPARTMENT,b.POS,b.EXPERENCE FROM employee a,employee_detail b WHERE a.ID=b.ID;
    

    显示结果

    SELECT * FROM V_VIEW2;

    修改视图中的数据,会影响原有表数据变化,例如:

    UPDATE V_VIEW2 SET POS='高级工程师' WHERE NAME='李楠';

    修改原始表中的数据,会影响视图的变化,例如:

    INSERT INTO employee(ID, NAME, SEX, AGE,DEPARTMENT, SALARY, HOME, MARRY, HOBBY) VALUES(NULL,'韩寒','男',24,'产品研发部','8000','上海','否','音乐');
    INSERT INTO employee_detail(ID,POS,EXPERENCE) VALUES(9,'初级工程师','工作一年');

    展开全文
  • 视图的定义: ...3.数据库只存放视图的定义而不存放视图的数据,这些数据还存在在原来的基本表中。 4.不同的基本表组织成视图时,至少要具备相同的标识数据。 什么时候用视图? 1.经常用到的查询,
    视图的定义:
    1.数据库存储数据是通过表来实现的,是物理存在的,有物理存储空间。你可以通过对表的操作实现对表中数据的处理。
    2.视图是物理不存在的,是一张虚表,是通过数据库代码来对表中数据做一个逻辑结构的重组。
    3.数据库只存放视图的定义而不存放视图的数据,这些数据还存在在原来的基本表中。
    4.不同的基本表组织成视图时,至少要具备相同的标识数据。
    什么时候用视图?
    1.经常用到的查询,比较复杂的联合查询用视图可以优化性能。
    2.敏感数据,涉及到权限管理方面,比如某表中的部分字段含有机密信息,不应当让低权限的用户访问到的情况,这时候给这些用户提供一个适合他们权限的视图,供他们阅读自己的数据就行了。
    建立视图
    数据库的重构造往往是不可避免的。重构数据库最常见的是将一个基本表“垂直”地分成多个基本表。例如:将学生关系Student(Sno,Sname,Ssex,Sage,Sdept),
    分为SX(Sno,Sname,Sage)和SY(Sno,Ssex,Sdept)两个关系。这时原表Student为SX表和SY表自然连接的结果。如果建立一个视图Student:
    CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept)
    AS
    SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept
    FROM SX,SY
    WHERE SX.Sno=SY.Sno;
    这样尽管数据库的逻辑结构改变了(变为SX和SY两个表了),但应用程序不必修改,因为新建立的视图定义为用户原来的关系,使用户的外模式保持不变,用户的应用程序通过视图仍然能够查找数据。
    例子:
    例如经常需要执行这样的查询“对每个学生找出他获得最高成绩的课程号”。可以先定义一个视图,求出每个同学获得的最高成绩:

    CREATE VIEW VMGRADE
    AS
    SELECT Sno,MAX(Grade) Mgrade
    FROM SC
    GROUP BY Sno;

    然后用如下的查询语句完成查询:

    SELECT SC.Sno,Cno FROM SC,VMGRADE WHERE SC.Sno = VMGRADE.Sno AND SC.Grade = VMGRADE.Mgrade;

    check with option:
    (with check option对于没有where条件的视图不起作用的)
    通过有with check option选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论: 插入后的数据,通过视图能够查询出来就符合WITH CHECK OPTION 否则就不符合;
    首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。
    1.对于update,有with check option,要保证update后,数据要被视图查询出来
    2.对于delete,有无with check option都一样
    4.对于insert,有with check option,要保证insert后,数据要被视图查询出来
    对于没有where 子句的视图,使用with check option是多余的
    展开全文
  • 1 根据上面基本信息定义视图显示每种商品品名、销售数量 2 观察基本表数据变化时,视图中数据变化。 3利用视图,查询销售数量最高商品。 create table 商品 (编号 bigint, 品名 nchar(30), 进价 ...

    题目:
    商品(编号,品名,进价,库存,售价,厂商编号)
    顾客(卡号,姓名,电话,积分)
    厂商(编号,厂址,名称、电话)
    销售(顾客卡号,商品编号,数量,日期)
    1 根据上面基本表的信息定义视图显示每种商品的品名、销售数量
    2 观察基本表数据变化时,视图中数据的变化。
    3利用视图,查询销售数量最高的商品。

    create table 商品
    (编号 bigint,
     品名 nchar(30),
     进价 float,
     库存 int,
     售价 float,
     厂商编号 bigint,
     primary key(编号)
    );
    
    create table 顾客
    (卡号 bigint,
     姓名 nchar(15),
     电话 bigint,
     积分 float,
     primary key(卡号)
    );
    
    create table 厂商
    (编号 bigint,
     厂址 nchar(30),
     名称 nchar(30),
     电话 bigint,
     primary key(电话),
    );
    
    create table 销售
    (顾客卡号 bigint,
     商品编号 bigint,
     数量 int,
     日期 nchar(20),
    );
    
    
    
    alter table 商品
    add constraint fksc1
    check(进价 between 0 and 200)
    
    alter table 商品
    add constraint fksc2
    check(售价 between 20 and 300)
    
    alter table 顾客
    add constraint fksc3
    check(积分 between 0 and 5000)
    
    alter table 商品
    add constraint fksc4
    check(库存 between 0 and 5000)
    
    alter table 销售
    add constraint fksc5
    foreign key(商品编号) references 商品(编号)
    
    
    
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(101,'伊利牛奶',88,2000,100,3541);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(102,'蒙牛牛奶',90,2000,120,3542);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(103,'旺旺牛奶',98,2000,150,3543);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(104,'旺旺雪饼',67,2000,150,3543);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(105,'旺旺仙贝',87,2000,150,3543);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(106,'旺旺qq糖',78,2000,150,3543);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(107,'旺旺小小酥',65,2000,150,3543);
    insert into 商品(编号,品名,进价,库存,售价,厂商编号)
    values(108,'旺旺泡芙',102,2000,150,3543);
    
    insert into 顾客(卡号,姓名,电话,积分)
    values(1702043,'王博',13709999999,89);
    insert into 顾客(卡号,姓名,电话,积分)
    values(1702044,'李卫',15033333333,121);
    insert into 顾客(卡号,姓名,电话,积分)
    values(1702045,'李帅',18004444444,105);
    
    insert into 厂商(编号,厂址,名称,电话)
    values(3541,'内蒙古','伊利乳品',14888888888);
    insert into 厂商(编号,厂址,名称,电话)
    values(3542,'内蒙古','蒙牛乳品',15044555555);
    insert into 厂商(编号,厂址,名称,电话)
    values(3543,'台湾','旺旺乳品',16099999999);
    
    insert into 销售(顾客卡号,商品编号,数量,日期)
    values(1702043,103,1234,'20190203');
    insert into 销售(顾客卡号,商品编号,数量,日期)
    values(1702044,104,1432,'20190204');
    insert into 销售(顾客卡号,商品编号,数量,日期)
    values(1702045,105,678,'20190205');
    insert into 销售(顾客卡号,商品编号,数量,日期)
    values(1702045,106,435,'20190206');
    insert into 销售(顾客卡号,商品编号,数量,日期)
    values(1702045,107,512,'20190207');
    insert into 销售(顾客卡号,商品编号,数量,日期)
    values(1702045,102,1111,'20190208');
    
    
    
    select * from 商品
    
    select * from 顾客
    
    select * from 厂商
    
    select * from 销售
    
    delete from 商品
    
    delete from 顾客 
    
    delete from 厂商
    
    delete from 销售
    
    --一
    create view shop
    as
    select 商品.品名,销售.数量
    from 商品,销售
    where 销售.商品编号 = 商品.编号
    
    select 品名,数量'销售数量'
    from shop
    
        
    --二
    update 商品 
    set 品名='旺仔qq糖' 
    where 编号=106
    
    update 销售 
    set 数量=1432
    where 商品编号=106
    
    select 品名,数量'销售数量'
    from shop
    
    --三
    select 品名,数量'销售数量'
    from shop
    where 数量 =
    		(
    		select MAX(数量)'销售数量'
    		from shop
    		)
    
    展开全文
  • SQL Server实验——数据库视图的定义与使用学生选课数据库的创建创建学生信息表student创建课程信息表course创建学生选课信息表sc插入相关信息视图的创建基本应用一、创建信息系(sdept=’IS’)学生信息的视图IS_...
  • 一、视图 view 1.定义: 当查询的复杂度很高时,指多字段,多关系...视图的优点 1.简单: 视图构建了一个虚拟的表,表里的数据是来源于复杂的查询语句,我们将复杂的查询语句存入视图,使用是直接调用视图 2.安全...
  • 那些用于产生视图的表叫做该视图的基表。视图不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候只是重新执行SQL。一个视图也可以从另一个视图...
  • 数据库视图

    2020-09-17 19:46:07
    一种虚拟存在的表,行和列的数据来自于视图中的查询所用的表,并且是使用视图的时候动态生成的,只保存sql逻辑,不保存结果 视图:是虚拟的表,和普通的表一样,通过表,动态生成新数据 表:数据库中真实存在的 视图...
  • 数据库 视图

    2016-05-25 16:21:03
    视图是虚表,是从一个或者几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图的数据。视图是一种逻辑对象,并不是物理对象,因此视图并不占物理存储空间。 内容: 基表的列的子集...
  • 修改、查询、删除视图的命令跟建表时的一样。视图是从一个或多个表(或视图)导出的表。视图是数据库的用户使用数据库的观点。可以根据他们的不同需求,在物理的数据库上定义他们对数据库所要求的数据结构,这种根据...
  • 通过视图的创建过程,理解视图的概念和意义,掌握视图的基本使用方法。 2. 实验要求 通过视图的设计和定义,掌握建立视图的基本方法,包括通过单张表建立视图和通过多张表建立视图,通过在定义的视图上进行查询,...
  • #数据库--第4章 数据库视图

    千次阅读 2020-05-02 17:25:13
      这一章节将会介绍所有的数据库视图操作,使用的数据是 第一章 介绍和导入数据。 一、什么是视图?   视图是关系数据库系统提供给用户多种角度观察数据库中数据重要机制。   视图是从一个或n个基本表...
  • 一、数据库的创建  create database database_name; //创建一个数据库  ...二、基本创建  1. 创建表  create table 表名  (  字段名1 数据类型 [not null] [默认值],  字段名2 数据类型,
  • 修改、查询、删除视图的命令跟建表时的一样。视图是从一个或多个表(或视图)导出的表。视图是数据库的用户使用数据库的观点。可以根据他们的不同需求,在物理的数据库上定义他们对数据库所要求的数据结构,这种根据...
  • 工具:Navicat PremiumOracle 11g视图基本概念知识储备:常见数据库对象表 :基本的数据存储集合,由行和列组成视图 :从表(一个或多个)中抽取出逻辑上相关数据集合序列:提供有规律数据索引:提高查询效率...
  • Mysql之数据库视图

    2018-08-07 14:58:29
    Mysql之数据库视图数据库中视图是一个虚拟表。同真实表一样,包含行和列数据,行和列数据来自 定义视图查询所引用表,并且在引用视图时动态生成。可以隔离用户与数据保持安全,且快速查询数据。Mysql5.0后版本...
  • 数据库视图特性

    2020-06-26 17:49:34
    基本使用 创建视图 create view 视图名 as select 语句 案例 create view v_ename as select ename,dname from EMP,DEPT where EMP.depno=DEPT.deptno; select* from v_ename_dname; 修改了视图,对基表数据有...
  • 数据库视图小结

    2020-02-25 18:28:01
    说白了视图就是为了不让用户看到真实的表结构而用sql语句组成了虚表展现给用户,对构成视图的基本表修改会直接影响到视图,而对视图数据的修改也可以使真实的表数据发生改变。 视图与表的比较 1.视图是已经编好的sql...
  • 整理了下关于oracle数据库中SQL的基本使用语句,整理如下,方便记忆。 oracle的基本术语 数据字典,数据库元数据信息的数据字典表和用户可以读取的数据字典视图组成。存放oracle数据库所用的有关信息。通过数据...
  • 数据库视图和索引

    2016-04-16 18:24:57
    视图:视图是从一个或多个表或视图中导出的表,这些表或视图称作该视图的基本表,视图的基本结构和数据都是建立在对基本表的查询上。视图并不是一个真实的表,只有其定义,而没有存储其恶空间。 创建视图:视图在...

空空如也

空空如也

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

数据库视图的基本使用