数据库中视图与表的区别以及如何创建视图、创建表

联系:
1、视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在;
2、一个视图可以对应一个基本表,也可以对应多个基本表;
3、视图是基本表的抽象和在逻辑意义上建立的新关系。

区别:
1、视图是已经编译好的sql语句。而表不是  
2、表可以及时对它进行修改,但视图只能有创建的语句来修改
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,可以理解为计算机中的文件。
     视图只是逻辑概念的存在,没有实际的物理记录,是虚拟的内存表,可以理解为快捷方式
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 
8、视图的建立和删除只影响视图本身,不影响对应的基本表。

视图是一个子查询,性能肯定会比直接查询要低(尽管sql内部有优化),所以使用视图时有一个必须要注意的,就是不要嵌套使用查询,尤其是复杂查询。
 

/*创建基本表*/
CREATE TABLE Student(
	Sno CHAR(5) CONSTRAINT PK_Stu PRIMARY KEY,
	Sname CHAR(20) CONSTRAINT UQ1 UNIQUE,
	Ssex CHAR(2),
	Sage INT NOT NULL CONSTRAINT CK1 CHECK(Sage>15 AND Sage<=35),
	Sdept CHAR(15),CONSTRAINT CK2 CHECK(Ssex IN ('男','女') AND Sno LIKE '95%')
)
CREATE TABLE Course(
	Cno CHAR(4) PRIMARY KEY
    /*略...*/
)
CREATE TABLE SC(
	Sno CHAR(5) REFERENCES Student(Sno),
	Cno CHAR(4) REFERENCES Course(Cno),
	Grade INT,
	PRIMARY Key(Sno,Cno)
)

/*向Student表中增加Scity列*/
ALTER TABLE Student ADD Scity CHAR(20) CONSTRAINT CK3 CHECK(Scity IN ('杭州','宁波'))

/*删除*/
ALTER TABLE Student DROP COLUMN Scity

/*建立索引*/
CREATE UNIQUE INDEX Sno ON Student(Sno DESC)
CREATE VIEW Stu1001 AS
	SELECT *
	FROM *
	WHERE Sno='1001'

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值