SQL实验三数据的更新操作和视图实验报告
SQL实验三数据的更新操作和视图实验报告

实验三数据的更新操作和视图本实验需要2学时。
一、实验目的1、掌握视图的创建、修改和删除操作。
2、掌握数据库数据更新(增加、修改、删除)操作。
二、实验内容和步骤1、视图(1)建立名为UV_SC的视图。
该视图可以让我们看到每个学生的姓名、选修课程名和成绩。
(2)利用UV_SC视图,查看平均成绩在80分以上的学生姓名。
(3)建立名为UV_Course的视图,该视图显示每门课的课程名和选修该课程的学生人数。
(4)修改视图UV_Course,在视图中增加一列,显示选修该课程所有学生的平均成绩。
(5)建立名为UV_IS_Depart的视图。
该视图可以用来查看“信息系”的学生的学号、姓名、年龄和系名。
并保证对该视图的修改满足系名为信息系的条件。
(6)建立名为UV_Student的加密视图。
该视图可以用来查看每个学生选修的课程门数和平均成绩。
(7)利用UV_Student视图,查询平均成绩在80分以上的学生学号。
(8)能否利用视图UV_Student,修改某个学生的平均成绩?(9)删除视图UV_Student。
2、数据更新(1)向STUDENT表增加如下记录:(3)建立与表STUDENT 同结构的空表STUD。
然后利用INSERT命令把表STUDENT中年龄大于19的学生记录添加到表STUD。
(注意:可以使用select into语句实现同结构空表的创建,再使用insert命令插入记录;或者使用单条select into语句实现等同的功能)(4)为“ 95002”的学生增加选修“操作系统”和“数据结构”这两门课的选课记录。
(5)把课程名为“操作系统”的成绩从成绩表SC中删除。
(试用三种方式完成)(6)将女生的成绩提高10%。
(试用三种方式完成)(7)如果学生“张三”的数据结构的成绩低于65,则加上10分。
(8)将成绩最低的学生的成绩加上10分。
(9)将前3名成绩最高的学生的成绩减去10分。
(10)为没有选课的学生自动增加选修“01”课程的选课记录。
实验三 SQL复杂查询与视图

实验三 SQL复杂查询与视图一.实验目的:1.掌握SQL语言中SELECT语句的多种查询方式。
2.掌握对表建立与删除索引的方法。
3.掌握聚焦函数的使用方法。
4.掌握集合查询方法。
二.实验内容:2.多表查询①查询编号为300的客户通过的代理商的姓名和地址。
select 姓名地址from 代理商where 客户编号=”300”;②查询产品编号为0033、订货数量大于100的客户编号及其姓名。
Select 客户编号姓名From 客户Where 客户.产品编号=”0033”AND 客户.订货数量>100;③查询每个客户的订单,显示客户编号、客户名、订单编号及订货日期。
Select 客户编号客户名订单编号订货日期From 订单④查询所有2000年以后订货项目。
Select *From 订货项目Where 订货时间>2000⑤查询提成金额为100000以上(含100000)的代理商所对应的客户。
Select *From 代理商Where 提成金额=100000 or 提成金额>1000003、嵌套查询分别用带有IN谓词的子查询和带比较运算符的子查询实现以下操作①查询与“刘晨”在同一个系学习的学生。
Select sdept sno snameFrom studentWhere sdept in(‘cs’)②查询选修了课程名为“操作系统”的学生。
Select sno sname sdeptFrom csWhere sco in()4.建立视图①建立含有订单号及拥有该订单的客户编号和代理商号三个字段的视图。
②建立一个含有产品编号、产品库存量及产品在订量三个字段的视图。
③建立一个含有客户编号、客户所订的产品、该产品的订购价及该产品的描述四个字段的视图。
④建立一个含计算机科学系的学生及年龄不大于19岁的学生的视图。
⑤建立一个既选修了课程1又选修了课程2的学生视图。
5.在视图基础上的查询①查询所有订单的客户和代理商。
数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分总成绩:实验一熟悉SQL SERVER,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
1.创建学生课程数据库5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。
6、在表S上增加“出生日期”属性列。
7、删除表S的“年龄”属性列。
8、删除S姓名列的唯一值约束。
9、修改SC表成绩属性列为精确数字型。
10、在表S上,按“Sno”属性列的唯一值方式建立索引。
11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。
12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。
三、实验结果:1.创建学生课程数据库create database Studend;(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)UNIQUE,Ssex CHAR(2),Sage smallint,Sdept char(20),);3.创建课程关系表C :课程号课程名先行课学分Cno Cname Cpno ccredit(Cno char(4)primary key,Cname CHAR(40),Cpno char(4),Ccredit SMALLINT,);学号课程号成绩Sno Cno grade(Sno char(9),Cno char(4),Grade smallint,);5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。
6、在表S上增加“出生日期”属性列。
alter table S add Sbirthday datetime;7、删除表S的“年龄”属性列。
alter table S drop column Sage;精选文档8、删除S姓名列的唯一值约束。
数据库的视图操作实验报告

实验(四)数据库的视图操作实验一、实验目的和要求(1)掌握SQL Server中的视图创建向导和图表创建向导的使用方法;(2)加深对视图和SQL Server图表作用的理解。
(3)掌握数据库安全性的操作方法。
二、实验内容和原理1. 基本操作实验(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。
CREATE VIEW 借阅_计算机图书AS SELECT 图书.*,借阅.*FROM 图书,借阅WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。
要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
(3)查看上述实验结果。
如果结果有误,予以纠正。
2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。
视图的列名为SNO、SNAME、SSEX和SAGE。
(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。
视图的列名为课程号、课程名称和先修课名称。
(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。
视图的列名为学号、课程号和成绩。
(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。
视图的列名为姓名、课程名称和成绩。
(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。
视图的列名为姓名、课程名称和成绩。
(6)利用Transact-SQL命令修改视图STU_SEX。
把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。
数据更新与视图操作实验报告

where shopaddress='北京'
WITH CHECK OPTION
③基于多个基本表的视图创建。
例:创建北京地区所有商店的销售记录视图V3。
create view v3(shopno,prono,amount,shopaddress)
as
select sale.shopno,prono,amount,shopaddress
prono ='p01'
基于分组视图的查询。
例:查询平均销售量大于100的商店名和平均销售量。
select amountavg,shopname
from v5
where amountavg>100
(3)更新视图
①视图上插入数据。
例:向视图V1中插入新商店(s05,农工商,北京)的信息。
例:向视图V1中插入新商店(s06,家乐福,上海)的信息。
from shop,sale
where shopaddress='北京'and
shop.shopno=sale.shopno
④基于视图的视图创建。
例:创建北京地区、销售量大于100的销售记录视图V4。
create view v4
as
select shopno,prono,amount shopadress
2.修改数据
(1)修改一行数据
例:将商店s02的商店名改为红五星。
(2)修改多行数据
例:将所有商品的价格增加100元。
3.删除数据
(1)删除一行数据
例:删除s05商店的基本信息。
(2)删除多行数据
例:删除苏果商店的所有销售记录。
数据库实验

实验一:建立数据库及基本表实验报告一、实验目的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1)使用企业管理器建立销售数据库,数据库名为sales,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
详细步骤:1启动sql server企业管理器,展开服务器,单击“数据库”,选择“操作”菜单中的“新建数据库”。
2单击数据库属性窗口的“常规”选项卡,在“名称”文本框中输入数据库的名称“sales”。
3单击“数据文件”选项卡,此处可以修改数据文件存储的路径。
(将路径修改为:“E:\”)。
4将文件初始大小改为10MB,最大改为50MB,选中“文件自动增长”,增长方式是按5%比例增长。
5单击“事务日志”,修改路径,修改初始大小为2MB,最大改为5MB,选中“文件自动增长”,按1MB增长。
6单击“确定”,完成数据库的创建。
(2)在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3)通过企业管理器,在建好了销售数据库sales中建立职工(employee)、物资(goods)和销售(sell)3个表,其结构为:职工(编号,姓名,性别,部门,电话,地址);物资(商品编号,商品名称,生产厂家,进货价,零售价,数量,进货时间);销售(销售编号,商品编号,数量,售出时间,售货员工编号);创建上述三个表的步骤:1展开服务器,数据库,展开建立数据库所在的数据库。
实验三 数据库中的数据查询及视图操作实验报告

实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。
通过本实验,我们可以掌握使用SQL语句进行数据查询和创建视图的方法,进一步提高对数据库的操作能力。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行实验。
三、实验内容本实验主要包括以下内容:1. 数据查询:使用SELECT语句查询数据库中的数据,并进行排序、过滤和聚合操作。
2. 视图操作:创建和删除视图,以及对视图进行查询和更新操作。
四、实验步骤与结果1. 数据查询首先,我们需要连接到数据库,并选择要查询的表。
假设我们选择的表名为"students",包含以下字段:学号、姓名、性别、年龄、班级。
a. 查询所有学生的信息:```sqlSELECT * FROM students;```执行以上SQL语句后,我们可以得到所有学生的信息,包括学号、姓名、性别、年龄和班级。
b. 查询男生的信息:```sqlSELECT * FROM students WHERE 性别 = '男';```执行以上SQL语句后,我们可以得到所有性别为男的学生的信息。
c. 查询年龄小于20岁的学生的姓名和班级:```sqlSELECT 姓名, 班级 FROM students WHERE 年龄 < 20;```执行以上SQL语句后,我们可以得到年龄小于20岁的学生的姓名和班级。
d. 查询学生按照年龄降序排列的结果:```sqlSELECT * FROM students ORDER BY 年龄 DESC;```执行以上SQL语句后,我们可以得到按照年龄降序排列的学生信息。
e. 查询学生按照班级分组,并统计每个班级的人数:```sqlSELECT 班级, COUNT(*) AS 人数 FROM students GROUP BY 班级;```执行以上SQL语句后,我们可以得到每个班级的人数统计结果。
实验三 多表查询、数据更新、视图

(6)向计算机系学生视图中插入一条新的学生记录,其中学号为200215126,姓名为李三,年龄为20岁,院系为IS,并分析下执行结果。
(7)删除计算机系学生视图中学号为200215121的记录,并查看Student表的变化,说明是为什么。
3、掌握子查询的表示和使用方法;
4、掌握对数据表的更新语法;
5、掌握视图的创建、查询和修改方法;
二、实验准备
1、理解Select语句的基本语法格式和执行方法;
2、理解连接查询的表示;
3、理解子查询的表示方法;
4、理解对数据表的插入、删除、更新语法;
5、理解视图的含义;
三、实验内容
1、基于Student_DB数据库中的三个表Student,Course,SC,进行如下的查询:
(7)查询选修了课程1或者选修了课程2的学生。
(8)求没有选修2号课程的学生姓名。
(9)查询选修课程1的学生集合与选修课程2的学生集合的交集。
(10)查询信息系的学生与年龄不大于19岁的学生的差集。
2、用SQL语句实现Student_DB数据库中数据表的更新(给出查询语句或截图):
(1)删除信息系所有学生的选课记录。
3、用SQL语句建立视图并对视图做相应的操作:
(1)建立计算机系学生所有信息的视图,并要求进行修改和插入操作时仍须保证该视图只有计算机系的学生。
(2)建立计算机系选修了’3’号课程且成绩在90分以下的学生视图,并对此视图进行查询。
(3)将学生的学号,姓名和平均成绩定义为一个视图。
(4)利用所建立的视图,查询选修了2号课程的计算机系的学生。
四
、实验ຫໍສະໝຸດ 过程实验过程、存在的问题及解决办法:
实验交互式SQL实验报告

精品文档试验一交互式 SQL一实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过 SQL对数据库进行操作。
3.完成作业的上机练习。
二实验工具 SQL Server 2005利用 SQL Server 2005 及其交互式查询来熟悉SQL语句。
三实验内容和要求1.在 SQLServer 2005 中建立一个数据库,进行实验所要求的各种操作,所有的 SQL操作均在建立的新库里进行;2.根据以下要求认真填写实验报告,记录所有的实验用例的SQL语言;3.1 数据定义(1)熟悉基本表的创建、修改及删除。
(2)熟悉索引的创建和删除。
3.2 数据操作(1)完成各类查询操作(单表查询,连接查询,嵌套查询)等;(2)完成各类更新操作(插入数据,修改数据,删除数据);3.3 视图的操作视图的定义(创建和删除),查询,更新(注意更新的条件)。
3.4 具体操作内容在 MS SQL Server 中创建学生-课程数据库,要求有学生表(Student)、课程表 (Course)和选课表( SC),向三个表中分别插入相关数据,再用 SQL 语句完成一下要求的查询。
1.使用 SQL 语言创建下面的三个表。
表一:学生信息表( Student)列名说明数据类型约束Sno学号字符串,长度为 10非空Sname姓名字符串,长度为 20非空Ssex性别字符串,长度为 10非空Sage年龄字符串,长度为 10非空Sdept所在系字符串,长度为 10非空表二:课程信息表( Course)列名说明数据类型约束Cno课程号整形非空Cname课程名字符串,长度为 20非空Cpno先行课整型允许为空Ccredit学分整型非空表三:学生选课信息表(SC).精品文档列名说明数据类型约束Sno学号字符串,长度为 10主码,引用 Student 的外码Cno课程号整型主码,引用 Course 的外码Grade成绩字符串,长度为 10取值 0~1002.在以上的三个表中,分别插入下面的数据;表一:学生信息表( Student)Sno Sname Ssex Sage Sdept200215121李勇男20CS200215122刘晨女19CS200215123王敏女18MA200215125张立男19IS表二:课程信息表( Course)Cno Cname Cpno Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAl 语言64表三:学生选课信息表(SC)Sno Cno Grade2002151211922002151212852002151213882002151222902002151223803.根据上面的三种表,写出完成如下查询功能的SQL 语句:(1)查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名(2)查询选修了课程的学生学号(3)查询年龄在 20~23 岁(包括 20 岁和 23 岁)之间的学生的姓名、系别、年龄(4)查询计算机科学系( CS)、数学系( MA )和信息系( IS)学生的姓名和性别(5)查询以“ DB_ ”开头,且倒数第 3 个字符为 i 的课程的详细情况(6)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列(7)查询选修 1号课程的学生最高分数、最低分数、平均分数(8)查询选修了 3 门课程的学生学号(9)查询每一门课的间接先修课(即先修课的先修课)(10) 查询选修 2 号课程且成绩大于等于90 分的所有学生(11)查询与‘刘晨’在同一个系学习的学生.(12)查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄(13)将一个新学生元组(学号: 200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18 岁)插入到Student 表中(14)将学生 200215121 的年龄改为 22 岁(15)删除学号为 200215128 的学生记录(16)建立信息系学生的视图(17)在信息系学生的视图中找出年龄小于20 岁的学生(18)将信息系学生视图 is_Student中学号为200215122的学生姓名改为“刘辰”四实验报告4.1 实验环境:Windows XPMicrosoft SQL server Management Studio 20054.2 实验内容与完成情况:(1)查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名SELECT Sname NAME, 'Year of Birth:'BIRTH , 2004 - Sage BIRTHDAY , LOWER( Sdept ) DEPARTMENT FROM Student;(2)查询选修了课程的学生学号SELECT DISTINCT Sno FROM SC ;(3)查询年龄在20~23 岁(包括20 岁和 23 岁)之间的学生的姓名、系别、年龄SELECT Sname , Sdept , Sage FROM Student WHERE Sage BETWEEN 20 AND 23 ;(4)查询计算机科学系(CS)、数学系( MA )和信息系(IS)学生的姓名和性别SELECT Sname , Ssex FROM Student WHERE Sdept IN( 'CS' , 'MA' , 'IS' );(5)查询以“ DB_ ”开头,且倒数第 3 个字符为i 的课程的详细情况.SELECT * FROM Course WHERE Cname LIKE 'DB\_%__'ESCAPE'\' ;(6)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列SELECT * FROM Student ORDER BY Sdept , Sage DESC;(7)查询选修 1号课程的学生最高分数、最低分数、平均分数SELECT MAX( Grade ) MAX, MIN ( Grade ) MIN , AVG( Grade ) AVG FROM SC WHERECno = '1' ;(8)查询选修了 3 门课程的学生学号SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)> 3;(8))查询每个学生及其选修课程的情况SELECT Student. Sno , Sname , Ssex , Sage , Sdept , Cno , Grade FROM Student, SC WHERE Student. Sno = SC. Sno ;(9)①查询每一门课的间接先修课(即先修课的先修课)SELECT first. Cno , second . Cpno FROM Course first, Course secondWHERE first. Cpno =second . Cno ;②查询每一门课的间接先修课(即先修课的先修课)(消除有空的行)SELECT first. Cno , second . Cpno FROM Course first, Course secondWHERE first. Cpno =second . Cno and second . Cpno is not null;(10) 查询选修 2 号课程且成绩大于等于90 分的所有学生① select Student . Sno , Sname , Ssex , Sage , Sdept from Student, SC whereStudent . Sno =SC. Sno and Cno = '2'and Grade>= 90 ;② select Sno , Sname , Ssex , Sage , Sdept from Student where Sno =( select Snofrom Sc where Cno ='2'and grade>= '90' );.(11)查询与‘刘晨’在同一个系学习的学生①select Sno , Sname , Sdept from Student where Sdept in ( select Sdept fromStudent where Sname =' 刘晨 ' );②select S1 . Sno , S1 . Sname , S1 . sdept from Student S1, student S2whereS1 . Sdept=s2 . Sdept and S2. Sname = ' 刘晨 ' ;③select Sno , Sname , Sdept from Student where Sdept=( select Sdept from student where Sname =' 刘晨 ' );④select Sno , Sname , Sdept from Student S1 where exists( select* from StudentS2 where S2 . Sdept= S1 . Sdept and S2. Sname = ' 刘晨 ' );(12)查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄①s electSname , Sage from Studentwhere Sage <all( select Sage from Student where Sdept = 'CS' )and Sdept <> 'CS' ;②s electSname , Sage from Studentwhere Sage <( select min ( Sage ) from Student where Sdept ='CS' )and Sdept <> 'CS' ;(13)将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18 岁)插入到 Student 表中insert into Student( Sno , Sname , Ssex , Sdept, Sage )values( '200215128',' 陈冬' ,'男' ,'IS' ,'18');select* from Student;(14)将学生 200215121 的年龄改为 22 岁update Student set Sage = '22'where Sno = '200215121';select* from Student;.(15)删除学号为 200215128 的学生记录delete from Student where Sno = '200215128';select* from Student;(16)建立信息系学生的视图create view is_Student as select Sno , Sname , Sage from Student whereSdept ='IS' ;(17)在信息系学生的视图中找出年龄小于20岁的学生select Sno , Sage from is_Student where Sage < 20 ;(18 )将信息系学生视图is_Student中学号为200215122的学生姓名改为“刘辰”update is_Student set Sname = ' 刘辰 ' where Sno ='200215122';select* from is_Student;(19 )删除信息系学生视图is_Student中学号为200215125的记录delete from is_Student where Sno = '200215125';select* from is_Student;4.3 出现的问题:在写第( 9)个查询功能的时候用select o,second.Cpno from Course first,Course second where first.Cpno=o;这句 SQL语句输出的结果中有的课程没有先修课。
SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
使用DISTINCT保留字消除重复行。
对查询结果排序和分组。
集合分组使用集函数进行各项统计。
连接查询笛卡儿连接和等值连接。
自连接。
外连接复合条件连接。
多表连接。
嵌套查询通过实验验证对子查询的两个限制条件。
体会相关子查询和不相关子查询的不同。
考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。
采用逻辑运算符AND或OR来实现集合交和减运算。
3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。
查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。
考试成绩>=60。
查询学分是3或4的课程的名称。
查询所有课程名称中含有“算法”的课程编号。
查询所有选课记录的课程号。
统计所有老师的平均工资。
15春数据库实验3 视图操作(4学时)

实验三视图操作(4学时)【实验目的】1. 学会使用SQL语句创建和使用视图,加深对视图和SQL Server基表作用的理解。
2. 了解数据库安全控制的机制,以及自主存取控制方法。
【实验要求】1.掌握创建、修改视图的SQL语句的用法。
2.掌握使用企业管管理器创建、修改视图的方法。
3.掌握查看视图的系统存储过程的用法。
4.掌握视图的使用方法。
5.掌握SQL有关用户、角色及操作权限的管理方法。
【实验内容】(一)定义视图以Student 、SC、Course表为基础完成以下视图定义。
1.定义计算机系学生基本情况视图V_Computer。
2.将Student、Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。
3.将各系学生人数,平均年龄定义为视图V_NUM_A VG。
4.定义一个反映学生出生年份的视图V_YEAR。
5.将各位学生选修课程的门数及平均成绩定义为视图V_A VG_S_G。
6.将各门课程的选修人数及平均成绩定义为视图V_A VG_C_G。
(二)使用视图1. 查询以上所建的视图结果。
2. 查询平均成绩为90分以上的学生学号、姓名和成绩。
3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。
4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列。
(三)修改视图1. 通过视图V_Computer,分别将学号为“04261001”和“04261002”的学生姓名更改为“S1_MM”,”S2_MM” 并查询结果。
2. 通过视图V_Computer,新增加一个学生记录 ('S12','YAN XI',19,'IS'),并查询结果。
3. 通过视图V_Computer,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果。
4. 通过视图V_Computer,删除学号为“S12”和“S13”的学生信息,并查询结果。
SQL数据库实验报告 实验三

实验3 SQL Server数据表的管理1.实验目的(1)掌握使用SQL Server管理平台和Transact-SQL语句CREA TE TABLE和ALTER TABLE创建和修改表的方法。
(2)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。
(3)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。
(4)了解SQL Server的常用数据类型。
2.实验内容及步骤(1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。
(2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2至图1-4所示。
图1-2 学生基本情况表student_info图1-3 课程信息表curriculum图1-4 学生成绩表grade(3)在SQL Server管理平台中创建student_info、curriculum表。
(4)在SQL Server 管理平台中,将student_info 表的学号列设置为主键,非空。
(5)使用Transact-SQL语句CREA TE TABLE在studentsdb数据库中创建grade表。
(6)student_info、curriculum、grade表中的数据如图1-5至图1-7所示。
图1-5 student_info的数据图1-6 curriculum的数据图1-7 grade的数据(7)在SQL Server管理平台中为student_info、curriculum、grade表添加数据。
(8)使用Transact-SQL语句INSERT INTO...V ALUES向studentsdb数据库的grade表插入数据:学号为0004,课程编号为0001,分数为80。
(9)使用Transact-SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。
实验三对数据库表插入数据

实验三对数据库表插入数据一、实验目的及要求1.学会在企业管理器中对表进行插入、修改和删除数据操作。
2.学会使用T-SQL语句对表进行插入、修改和删除数据操作。
3.了解T-SQL语句对表数据库操作的灵活控制功能。
二、实验内容:1.SQL数据定义语句:1-1:(修改数据库表) 在student表中增加SSEX(C,2) 字段。
1-2:(建立索引) 为score表按学号升序和课程号降序分别建立索引,索引名分别为SC_NDXSNO和SC_NDXCNO。
为Score表按分数降序建立索引,索引名为GRADE_NDX。
1-3:(删除索引) 删除索引SC_NDX_SNO。
2.SQL数据操纵语句:2-1:(插入数据) 按实验二各表中的数据(见实验数据)分别插入到教学数据库的四个数据库表中。
2-2:(修改数据) 将S1表中所有学生的年龄加2。
2-3:(修改数据) 将course表中‘程序设计’课时数修改成与‘数据结构’的课时数相同。
2-4:(插入数据) 向score表中插入数据(‘05001’, ‘001’, 95),根据返回信息解释其原因。
2-5:(删除数据) 删除Score表中学号为‘04001’的成绩信息,根据返回信息解释其原因。
三、实验编程结果或过程(本次实验未采用截图的方式显示操作过程,而是直接将涉及的数据显示在以下蓝色字体中)1.SQL数据定义语句:1-1:(修改数据库表) 在student表中增加SSEX(C,2) 字段。
ALTER TABLE student ADD ssex char(2);1-2:(建立索引) 为score表按学号升序和课程号降序分别建立索引,索引名分别为SC_NDXSNO和SC_NDXCNO。
为Score表按分数降序建立索引,索引名为GRADE_NDX。
CREATE UNIQUE INDEX SC_NDXSNO on score (sno asc);CREATE UNIQUE INDEX SC_NDXCNO on score (cno desc);CREATE UNIQUE INDEX RADE_NDX on score (score desc);1-3:(删除索引) 删除索引SC_NDXSNO。
3.使用SQL语句进行数据更新操作

实验三使用SQL语句进行数据更新操作●目标✓完成本实验,将能够:使用SQL语句对数据表进行更新,完成数据的插入、更新以及删除操作。
●实验预估时间:40 min练习 1 使用SQL 语句更新数据表在本练习中,将使用SQL语句完成对数据表的更新操作,并使用查询语句检测更新后的结果。
实验步骤:1)启动SQL Server20052)登录数据库服务器3)完成数据库和数据表的构建工作:打开并运行在服务器上共享的数据库构建文件xsgl.sql文件,具体方法为:a)将服务器上共享的xsgl.sql文件复制到本地磁盘b)双击本地磁盘中的xsgl.sql文件,并在弹出的“连接服务器”对话框中点击“连接”按钮。
c)按键盘上的“F5”键运行xsgl.sql文件中的数据库和数据表的SQL构建语句。
4)使用Select语句检索xs表中的所有学生的详细信息。
5)使用Update语句将xs表中所有专业为“信息管理”的学生总学分增加5个。
6)使用Select语句再次对xs表中的所有学生的详细信息进行检索,检测数据是否按照要表更新。
7)使用Delete语句删除xs表中学号为“2006030101”的学生记录。
8)再次使用Select语句检测相应的学生记录是否被删除。
注:数据SQL语句格式:数据更新:UPDA TE <表名>SET <列名1>=<值1>[, <列名2>=<值2>, <>=<>, …. <列名N>=<值N>]WHERE <更新条件>数据查询:SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] …FROM <表名或视图名>[,<表名或视图名> ] …[ WHERE <条件表达式> ]练习 2 使用SQL 语句更新数据表在本练习中,将使用SQL语句完成对数据表查询操作,掌握查询语句的使用方法。
数据库实验报告 SQL语言

数据库原理及实验报告实验6 视图实验目的:1)掌握交互式创建、删除视图的方法2)掌握使用SQL创建、删除视图的方法3)掌握交互式更新视图的方法4)掌握使用SQL更新视图的方法实验内容6.1实验题目:创建视图实验过程:1)交互式创建视图VIEW_S2)交互式创建成绩视图VIEW_SCORETABLE3)使用SQL创建课程表视图VIEW_CTABLE 实验结果:6.2实验题目:修改视图实验过程:1)使用交互式方法把视图VIEW_S 中的字段SNO 删掉2)使用SQL 为视图VIEW_CTABLE 增加一个课时字段CT tiny int 实验结果:6.3实验题目:通过视图修改数据库数据实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化实验结果:6.4实验题目:删除视图实验过程:1)交互式删除视图VIEW_S2)使用SQL删除视图VIEW_CTABLE实验结果:实验7 数据查询实验目的:1,掌握从简单到复杂的各种数据查询。
包括,单表查询、多表连接查询、嵌套查询、集合查询。
2,掌握用条件表达式表示检索结果。
3,掌握用聚合函数计算统计检索结果。
实验7.1 单表查询实验目的:1,掌握指定列或全部列查询。
2,掌握按条件查询。
3,掌握对查询结果排序。
4,掌握使用聚集函数的查询。
5,掌握分组统计查询。
实验内容:1,指定或全部列查询。
2,按条件查询及模糊查询。
3,对查询结果排序。
4,使用聚集函数的查询。
5,分组统计查询。
实验7.2 连接查询实验目的:掌握设计一个以上数据表的查询方法。
多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、自身连接、外连接和复合连接。
数据库实验3

宁波工程学院数据库理论与技术课程实验报告学院:电子与信息工程学院专业:计算机科学与技术年级:实验时间:组名:组长:组员姓名:指导教师签字:成绩:实验三、SQL-数据查询语言一、实验目的和要求1、实验目的:深入理解连接查询和嵌套查询的语句格式、执行过程,掌握它们的使用方法;理解数据更新语言INSERT、UPDATE、DELETE语句的格式和作用,掌握它们的使用方法和应用范围;理解视图的概念,掌握其定义方法和应用方法。
2、实验要求:在每次实验前,学生必须根据实验指导书设计出实验方案(程序和实验步骤);在实验过程中要求独立进行程序调试和排错,学会使用在线帮助来解决实验中遇到的问题,同时运用理论的知识来分析问题和解决问题,记录下实验过程和结果。
上机结束后写出实验报告,并对实验过程进行分析和总结。
二、实验内容与步骤1、在SQL SERVER 2005上附加数据库jxgl和ReadBook。
2、在jxgl中完成下列查询jxgl数据库中表及表中字段说明:Students(sno, sname,class,ssex,bday,bplace,mgrade,photo,sfzh,zxf)该表是学生基本信息表其中:sno-学号,sname-姓名,class-班级,ssex-性别,bday-出生日期,bplace-籍贯,mgrade-入学成绩,photo-照片,sfzh-身份证号码,zxf-总学分Course(cno,cname,cpno,credit)该表是课程情况表其中:cno-课程号,cname-课程名称,cpno-先修课程号,credit—学分SC(term,sno,cno,grade,point)该表是学生选课成绩表其中:term-学期,sno-学号,cno-课程号,grade-成绩,point-绩点TC(term,class,cno,tno,period)该表是教师上课情况表其中:list—序号,term-学期;class-班级;cno-课程号;tno-教师编号;period-学时Teachers (tno,tname,ps,wday,dept,pay,marry,resume)该表是教师基本情况表:其中t no-教师编号;tname-教师姓名;ps-职称;wday-入校日期;dept-系别;pay-工资;marry-婚否;resume-简历(1)查询选修课程学生的学号、姓名、所选课程号、课程名称以及所取得的成绩(2)查询每一门课程及其先修课程,查询结果中显示课程号、课程名和先修课程名(3)查询和“刘涛”在一个班级的学生的信息思考:该查询可用几种方法实现?(4)查询选修了…计算机基础‟课的学生的学号、姓名(分别用连接查询和嵌套查询的方法实现)(5)查询没有选修课程的学生的信息(6)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩(用两种方法实现)(7)查询每个学生超过该门课程平均成绩的学号(8)查询至少选修了“0311102”学生所选全部课程的学生的学号(9)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号3、在jxgl中完成下列数据更新(1)向course表添加一个新的元组。
sql数据库实验报告

sql数据库实验报告SQL数据库实验报告一、引言SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。
在本次实验中,我们使用SQL语言进行了数据库的设计、创建和操作,以及对数据库的查询和更新等操作。
本报告将详细介绍实验的目的、设计思路、实验过程和实验结果等内容。
二、实验目的本次实验的主要目的是熟悉SQL语言的使用,掌握数据库的设计和操作技巧。
通过实际操作,加深对数据库原理和相关知识的理解,并能够灵活运用SQL语言进行数据库的管理和操作。
三、实验设计本次实验的数据库设计基于一个图书馆管理系统。
我们需要设计多个表格,包括图书、读者、借阅记录等,并建立相应的关系。
为了实现这一目标,我们采用了以下步骤:1. 创建数据库:首先,我们使用SQL语句创建一个新的数据库,命名为"Library"。
2. 创建表格:接下来,我们根据需求创建了多个表格,包括"Books"、"Readers"和"BorrowRecords"等。
每个表格都有相应的字段,用于存储相关数据。
3. 设计关系:在创建表格的过程中,我们需要考虑不同表格之间的关系。
例如,图书表格和读者表格之间可以建立借阅关系,通过读者ID和图书ID进行关联。
4. 插入数据:创建表格后,我们使用SQL语句向表格中插入测试数据。
这些数据包括图书的名称、作者、出版日期等信息,以及读者的姓名、年龄、性别等信息。
5. 查询和更新:最后,我们使用SQL语句进行数据库的查询和更新操作。
通过编写合适的查询语句,我们可以实现对图书、读者和借阅记录等数据的检索和修改。
四、实验过程在实验过程中,我们按照上述设计思路一步步进行操作。
首先,我们使用SQL 语句创建了一个名为"Library"的数据库。
接着,我们创建了三个表格,分别是"Books"、"Readers"和"BorrowRecords"。
实验三 索引和视图

实验三索引和视图一、实验目的1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。
2.掌握利用SSMS和T—SQL语句创建、查询、更新及删除视图的方法。
ssex char(3)constraint ssex_ch check (ssex in('男','女')),sage int not null constraint sage_ch check (sage between 15 and 30),sdept char(10))values('C02','数据结构','C05',2) insert into coursevalues('C03','数据库','C02',2) insert into coursevalues('C04','DB_设计','C03',3)insert into coursevalues('C05','C++',null,3)insert into coursevalues('C06','网络原理','C07',3)create table sc(sno char(5)not null,cno char(5)not null,grade int constraint grade_ch check(grade between 0 and 100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno))insert into scvalues('S01','C01',92)insert into scvalues('S01','C03',84)insert into scvalues('S02','C01',90)insert into scvalues('S02','C02',94)insert into scvalues('S02','C03',82)insert into scvalues('S03','C01',72)insert into scvalues('S03','C02',90)insert into scvalues('S04','C03',75)2.索引的建立、删除①用SSMS的方式为Student表按Sno(学号)升序建唯一索引②用T—SQL语句为Course表按Cno(课程号)升序建唯一索引,create unique index course_cnoon course(cno asc)③用T—SQL语句为SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
实验报告 3(视图、索引的创建与使用)

撰写人姓名:撰写时间:审查人姓名:实验全过程记录一、实验目的1、熟练掌握视图的创建与维护操作,熟练使用视图访问数据;2、熟练掌握索引的创建与维护操作,熟练使用索引以方便查询。
二、实验内容:1、在“对象资源管理器”中使用向导和在在“查询编辑器”中使用T-SQL语句创建视图,并修改视图。
再通过视图向数据库添加、修改、删除数据。
2、使用步骤1中两种方法进行索引的创建、修改、删除操作。
三、实验用仪器设备及材料软件需求:操作系统:Windows XP或更新的版本数据库管理系统:SQL Server 2005或更新的版本硬件需求:Pentium Ⅲ1G以上的CPU处理器、256MB以上的内存、1.5G以上自由硬盘空间、打印机、打印纸、CD-ROM驱动器等。
四、实验步骤:1、在“对象资源管理器”中展开需要建立视图的“公司管理系统”数据库,用鼠标右键单击“视图”对象,选择快捷菜单“新建视图”选项,打开新建“视图”对话框,根据需要选择添加的表和视图。
现添加“职工表”、“项目表”和“客户表”。
在视图设计窗口中,创建“查询姓‘李’的职工负责的上海的项目名称”的视图。
据此设置视图的输出列、列名、表名等属性。
保存该视图并利用此视图进行查询操作。
2、选择当前数据库为“公司管理系统”数据库。
在“查询编辑器”中使用T-SQL语句创建“查询客户表中所有地址在‘北京’的客户编号和名称”的视图。
通过此视图向数据库中的表进行添加、修改、删除等更新记录操作。
3、在“对象资源管理器”中展开需要建立索引的“职工表”,选中“索引”选项并展开。
选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项,打开“新建索引”对话框。
根据“职工表”的“出生日期”列创建一不唯一、也不是聚集的索引。
设置完毕后保存该索引并进行相应的查询输出以观察索引设置的输出效果。
4、在“查询编辑器”中使用T-SQL语句对“客户表”的“客户名称”列和“地址”列创建一不唯一的、也不是聚集的复合索引。
SQL实训报告

SQL实训报告SQL实训报告(通用5篇)随着个人的素质不断提高,报告不再是罕见的东西,不同种类的报告具有不同的用途。
我敢肯定,大部分人都对写报告很是头疼的,以下是小编整理的SQL实训报告,希望能够帮助到大家。
SQL实训报告篇1一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER 对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。
掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。
掌握使用SQL语句定义和删除同义词。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据的更新操作和视图本实验需要2学时。
一、实验目的1、掌握视图的创建、修改和删除操作。
2、掌握数据库数据更新(增加、修改、删除)操作。
二、实验内容和步骤1、视图(1)建立名为UV_SC的视图。
该视图可以让我们看到每个学生的姓名、选修课程名和成绩。
(2)利用UV_SC视图,查看平均成绩在80分以上的学生姓名。
(3)建立名为UV_Course的视图,该视图显示每门课的课程名和选修该课程的学生人数。
(4)修改视图UV_Course,在视图中增加一列,显示选修该课程所有学生的平均成绩。
(5)建立名为UV_IS_Depart的视图。
该视图可以用来查看“信息系”的学生的学号、姓名、年龄和系名。
并保证对该视图的修改满足系名为信息系的条件。
(6)建立名为UV_Student的加密视图。
该视图可以用来查看每个学生选修的课程门数和平均成绩。
(7)利用UV_Student视图,查询平均成绩在80分以上的学生学号。
(8)能否利用视图UV_Student,修改某个学生的平均成绩?(9)删除视图UV_Student。
2、数据更新(1)向STUDENT表增加如下记录:(2)将学号'95011',成绩80,以及课程表中的所有课程号插入到SC表中。
(3)建立与表STUDENT同结构的空表STUD。
然后利用INSERT命令把表STUDENT中年龄大于19的学生记录添加到表STUD。
(注意:可以使用select into语句实现同结构空表的创建,再使用insert命令插入记录;或者使用单条select into语句实现等同的功能)(4)为“95002”的学生增加选修“操作系统”和“数据结构”这两门课的选课记录。
(5)把课程名为“操作系统”的成绩从成绩表SC中删除。
(试用三种方式完成)(6)将女生的成绩提高10%。
(试用三种方式完成)(7)如果学生“张三”的数据结构的成绩低于65,则加上10分。
(8)将成绩最低的学生的成绩加上10分。
(9)将前3名成绩最高的学生的成绩减去10分。
(10)为没有选课的学生自动增加选修“01”课程的选课记录。
(11)把选修“数学”不及格的成绩全部改成空值。
(12)删除成绩低于总平均成绩的女生的选课记录。
三、实验环境四、调试过程五、实验结果六、总结通过此次实验:我知道了视图不是一张真实的表格,是一个虚拟的存在形式。
1.create:当视图不存在时可使用掌握了对视图的创建(create or replace)2.进行创建;而如果不确定视图是否已存在,但此时又需要建立一张此名称的创建,如果视图名已存在也不会出现冲突,而是进replace视图时,可使用行替换。
行图上执check option表示在视视在创建图时如果使用了with 3.要保证所修改的行满足视图定义中的谓词,或DELETE操作时UPDATEINSERT这样可以确保数据修,Where条件:,即SELECT查询子句中的限定条件如条件改后仍可通过视图看到修改的数据。
4.分清楚了对视图结构的修改(alter)、对视图数据的修改(update)。
同时对视图上的计算列、内置函数列和行集合函数列不能修改。
5.知道了对视图数据的删除操作(delete)。
6.通过第二题的训练也使我对数据库数据的更新语句有了更多的体会和认识。
7.第二题第五小题,要求三种方法,只写出了两种,第三种有点没辙。
而其他题目有的没要求,因为在思考过程有别的思路,也有多写了相关方法。
附录:--1、视图--(1)建立名为UV_SC的视图。
该视图可以让我们看到每个学生的姓名、选修课程名和成绩。
create view UV_SCasselect sname,cname,gradefrom student s,course c,scwhere s.sno=sc.sno and o=oselect*from UV_SC--(2)利用UV_SC视图,查看平均成绩在分以上的学生姓名。
select snamefrom UV_SCgroup by snamehaving avg(grade)>80--(3)建立名为UV_Course的视图,该视图显示每门课的课程名和选修该课程的学生人数。
create view UV_Courseasselect cname,count(*)as'选修人数'from course c,scwhere o=ogroup by cnameselect*from UV_Course,在视图中增加一列,显示选修该课程所有学生的平均成绩。
UV_Course)修改视图4(--alter view UV_Courseasselect cname,count(*)as' 选修人数',avg(grade)as'平均成绩'from course c,scwhere o=ogroup by cnameselect*from UV_Course--(5)建立名为UV_IS_Depart的视图。
该视图可以用来查看“信息系”的学生的学号、姓名、年龄和系名。
并保证对该视图的修改满足系名为信息系的条件。
create view UV_IS_Departasselect sno,sname,sage,sdeptfrom student swhere sdept='信息系'with check optionselect*from UV_IS_Depart--(6)建立名为UV_Student的加密视图。
该视图可以用来查看每个学生选修的课程门数和平均成绩。
create view UV_Student(sno,course_no,avg_grade)with encryptionasselect sno,count(*),avg(grade)from scgroup by snoselect*from UV_Student--(7)利用UV_Student视图,查询平均成绩在分以上的学生学号。
select snofrom UV_Studentwhere avg_grade>=80--(8)能否利用视图UV_Student,修改某个学生的平均成绩?update UV_Studentset avg_grade=70where sno=95001--(9)删除视图UV_Student。
drop view UV_Student--2、数据更新--(1)向STUDENT表增加如下记录:--Sno Sname Ssex Sage Saddress Sdept--95011 王一鸣男 20 福州市计算机系insert into student(sno,sname,ssex,sage,saddress,sdept)values('95011','王一鸣','男',20,'福州市','计算机系')alter table studentadd saddress varchar(50)null--修改表结构,增加saddress列*selectfrom studentwhere sno='95011'--(2)将学号'',成绩,以及课程表中的所有课程号插入到SC表中。
insert into sc(sno,cno,grade)select'95011',cno,80from courseselect*from sc--(3)建立与表STUDENT同结构的空表STUD。
然后利用INSERT命令把表STUDENT中年龄大于的学生记录添加到表STUD。
(注意:可以使用select into语句实现同结构空表的创建,再使用insert命令插入记录;或者使用单条select into语句实现等同的功能)--法一select*into STUDfrom studentwhere sage>19--法二select*into STUDfrom studentwhere 1=0insert into STUD(sno,sname,sage,ssex,sdept,saddress)select sno,sname,sage,ssex,sdept,saddressfrom studentwhere sage>19select*from STUD--(4)为“”的学生增加选修“操作系统”和“数据结构”这两门课的选课记录。
insert into sc(sno,cno,grade)select'95002',cno,nullfrom coursewhere cname='操作系统'or cname='数据结构'select*from sc--(5)把课程名为“操作系统”的成绩从成绩表SC中删除。
(试用三种方式完成)--法一delete from scwhere cno in(select cnofrom coursewhere cname='操作系统')--法二delete from scwhere exists(select cnocourse cfromwhere cname='操作系统'and o=o)--法三--(6)将女生的成绩提高%。
(试用三种方式完成)--法一update scset grade=grade*1.1where sno in(select snofrom studentwhere ssex='女')--法二update scset grade=grade*1.1where exists(select snofrom student swhere ssex='女'and s.sno=sc.sno)--法三update scset grade=grade*1.1where(select count(*)from student swhere s.sno=sc.sno and ssex='女')=(select count(*)from course where cno=o)--(7)如果学生“张三”的数据结构的成绩低于,则加上分。
update scset grade=grade+10where exists(select snofrom student swhere s.sno=sc. sno and sname='张三'and cno in(select cnofrom course'数据结构'= cname where))--查看结果select sname,cname,gradefrom student s,course c,scwhere s.sno=sc.sno and o=o and sname='张三'and cname='数据结构' --(8)将成绩最低的学生的成绩加上分。