zoukankan      html  css  js  c++  java
  • 视图的创建与使用 Sql Server View

    创建教材的三个数据表StudentCourseSC

    create database S_T
    Use S_T
    CREATE TABLE Student
    	(Sno CHAR(9),
    	Sname CHAR(20),
    	Ssex CHAR(20),
    	Sage SMALLINT,
    	Sdept CHAR(20)
    );
    CREATE TABLE SC
    	(Sno CHAR(9),
    	Cno CHAR(4),
    	Grade SMALLINT,
    	);
    CREATE TABLE Course
    	(Cno CHAR(4),
    	Cname CHAR(40),
    	Cpno CHAR(4),
    	Ccredit SMALLINT,
    	);
    
    2、向三个表中插入教材中的数据。
    INSERT INTO Student values('200215121','李勇','男',20,'CS');
    INSERT INTO Student values('200215122','刘晨','女',19,'CS');
    INSERT INTO Student values('200215123','王敏','女',18,'MA');
    INSERT INTO Student values('200215124','张立','男',19,'IS');
    INSERT INTO Course values('1','数据库','5',4);
    INSERT INTO Course(Cno,Cname,Ccredit) values('2','数学',2);
    INSERT INTO Course values('3','信息系统','1',4);
    INSERT INTO Course values('4','操作系统','6',3);
    INSERT INTO Course values('5','数据结构','7',4);
    INSERT INTO Course (Cno,Cname,Ccredit) values('6','数据处理',2);
    INSERT INTO Course values('7','PASCAL语言','6',4);
    INSERT INTO SC VALUES ('200215121', '1', 92);
    INSERT INTO SC VALUES ('200215121', '2', 85);
    INSERT INTO SC VALUES ('200215121', '3', 88);
    INSERT INTO SC VALUES ('200215122', '2', 90);
    INSERT INTO SC VALUES ('200215122', '3', 80);
    

     

     

    3、创建一个名为View_Male_Student的视图,从表Student中查询出性别为男的所有学生的资料。
    create view View_Male_Student AS 
    	select * from Student where Ssex='男'
    4、查看View_Male_Student视图的内容。
    select * from View_Male_Student
     
    5、从视图View_Male_Student中查询名为“李勇”的同学的资料。
    select * from View_Male_Student where Sname='李勇'
     
    6、向视图View_Male_Student中插入一条记录(‘200215126’,’赵林’,’男’,18,’CS’);
    insert into View_Male_Student 
    values('200215126','赵林','男',18,'CS')
    7、重新查看View_Male_Student视图的内容。
    select * from View_Male_Student   发生变化
     
    8、查看Student中的内容,看表的内容是否发生变化。
    select * from Student
     
    9、向视图View_Male_Student中插入一条记录(‘200215127’,’李红’,’女’,18,’CS’); 
    是否成功?Student表中的数据数据是否发生变化?
    insert into View_Male_Student values('200215127','李红','女',18,'CS')
    	select * from Student  成功,表中数据发生变化
     
    10、创建一个名为View_Male_Student1的视图,从表Student中查询出性别为男的所有学生的资料,视图加上WITH CHECK OPTION选项。
    create view View_Male_Student1 AS 
    	select * from Student where Ssex='男'
    	WITH CHECK OPTION
    11、向视图View_Male_Student1中插入一条记录(‘200215128’,’关飞’,’男’,18,’CS’);
    insert into View_Male_Student1 
    values('200215128','关飞','男',18,'CS')
    12、向视图View_Male_Student1中插入一条记录(‘200215129’,’孙婷’,’女’,18,’CS’);
    是否成功?Student表中的数据数据是否发生变化?
    insert into View_Male_Student1 
    	values('200215129','孙婷','女',18,'CS')
     
    select * from Student 没有发生变化,显示插入错误,因为必须是’男’才可以
     
    13、创建一个名为View_Course3的视图,从Course表中查询学分大于3的所有课程的课程号、课程名、学分。 
    create view View_Course3 AS 
    	select Cno,Cname,Ccredit from Course 
    	where Ccredit>3
    14、查看View_Course3视图的内容。
    select * from View_Course3
     
    15、修改View_Course3视图,将“数学”改为“基础数学”。
    update View_Course3 set Cname='基础数学' 
    	where Cname='数学'   更新行,因为数学的学分是,不在视图View_Course3中
     
    16、查看View_Course3和Course数据是否发生变化。
    select * from View_Course3
    	select * from Course 
    没有发生变化,因为数学的学分是,不在视图View_Course3中
      
    17、删除视图View_Course3中的PASCAL语言课程。
    delete from View_Course3 where Cname='PASCAL语言'
    18、查看View_Course3和Course中的数据是否发生变化。
    select * from View_Course3
    	select * from Course  两个都发生变化,PASCAL语言被删除
      
    19、创建一个名为View_Student1的视图,包含计算机系所有女生的学号、课程号及相应的成绩。
    create view View_Student1 AS 
    	select SC.Sno,Cno,Grade from SC,Student 
    	where SC.Sno=Student.Sno and Sdept='CS'and Ssex ='女'
    20、查看View_Student1的内容。
    select * from View_Student1
     
    21、创建一个名为View_Student2的视图,包含每位选课学生的学号、姓名、总成绩。
    create view View_Student2
    	as select Student.Sno,Sname,SUM(Grade) AS '总成绩'
    	FROM Student,SC where Student.Sno=SC.Sno
    	GROUP By Student.Sno,Student.Sname
    22、查看View_Student2中的内容。
    select * from View_Student2	
     
    


  • 相关阅读:
    Springboot~多个数据源时自定义datasource的bean
    springboot~aspose操作word模板实现导出功能
    spring-security-jwt的总结与实现
    mybatis+maven自动生成代码框架
    chrome 插件 vimium 像操作vim一样的操作浏览器
    递归计算过程和迭代计算过程
    找工作--Java相关
    《Linux程序设计》--读书笔记---第十三章进程间通信:管道
    poj 1474 Video Surveillance
    动态包含与静态包含的区别
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4239798.html
Copyright © 2011-2022 走看看