数据库实验三.docx

上传人:b****6 文档编号:6904687 上传时间:2023-01-12 格式:DOCX 页数:11 大小:344.84KB
下载 相关 举报
数据库实验三.docx_第1页
第1页 / 共11页
数据库实验三.docx_第2页
第2页 / 共11页
数据库实验三.docx_第3页
第3页 / 共11页
数据库实验三.docx_第4页
第4页 / 共11页
数据库实验三.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据库实验三.docx

《数据库实验三.docx》由会员分享,可在线阅读,更多相关《数据库实验三.docx(11页珍藏版)》请在冰豆网上搜索。

数据库实验三.docx

数据库实验三

任课教师:

舒挺

《数据库原理及应用》

(2014-2015学年第1学期)

学号:

姓名:

班级:

实验三数据库更新和视图创建实验

一.实验目的

本实验的目的是要求学生熟练掌握使用SQL和通过SQLServer查询分析器向数据库输入数据、修改数据和删除数据的操作;使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。

二.相关知识

SQLServer提供了很多方法更新表中数据。

以插入记录为例,可以使用INSERT语句、VALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLEDB、ODBC和DB-Library)中的函数进行数据插入等。

本实验主要掌握INSERT、UPDATE和DELETE语句的基本用法。

1.插入操作,其语句的一般格式为

INSERT

INTOtable_or_view[(colum_list)]

VALUES(date_values);

此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。

Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。

如果没有指定column_list,表或视图中的所有列都将接收数据。

如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NULL值(或者在默认情况下为这些列定义的默认值)。

在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。

否则SQLServer将返回一个错误。

2.修改操作语句的一般格式为

UPDATE表名

SET<列名>=<表达式>[,<列名>=<表达式>]……

[where<条件>];

其功能是修改指定表中满足WHERE子句条件的元组。

其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。

如果省略WHERE子句,则表示要修改表中的所有元组。

3.删除语句的一般格式为

DELETE

FROM<表名>

[WHERE<条件>];

其功能是从指定表中删除满足WHERE子句条件的所有元组。

如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。

视图是根据子模式建立的虚拟表。

一个视图可以由一个表构造,也可以由多个表构造。

利用企业管理器和视图创建向导进行创建,查看和修改视图就如同对表的操作一样,非常容易。

三.实验内容

所使用的学生管理库中的三张表为:

(1)STUDENT(学生信息表)

SNO(学号)

SNAME(姓名)

SEX(性别)

SAGE(年龄)

SDEPT(所在系)

95001

李勇

20

CS

95002

刘晨

19

IS

95003

王名

18

MA

95004

张立

19

IS

95005

李明

22

CS

95006

张小梅

23

IS

95007

封晓文

20

MA

(2)COURSE(课程表)

CNO(课程号)

CNAME(课程名)

CPNO(先行课)

CCREDIT(学分)

1

数据库

5

4

2

数学

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

2

7

PASCAL语言

6

4

(3)SC(选修表)

SNO(学号)

CNO(课程号)

Grade(成绩)

95001

1

92

95001

2

85

95001

3

88

95002

2

90

95002

3

80

95003

1

78

95003

2

80

95004

1

90

95004

4

60

95005

1

80

95005

3

89

95006

3

80

95007

4

65

数据更新具体完成以下例题。

例1插入一条是你本人信息的学生记录;插入至少一条你本人信息的选课记录。

注:

除学号、姓名为真实数据,其他数据随意。

INSERT

INTOSTUDENT(SNO,SNAME,SEX,SDEPT,SAGE)

VALUES('329700011','吴春波','女','DM','20');

INSERT

INTOSC(SNO,CNO)

VALUES('329700011','1');

例2将一新学生记录(学号:

99999;姓名:

风清扬;性别:

男;年龄:

20;所在系:

计算机科学与技术系’CS’)插入学生表中;插入一条该生选课记录(‘99999’,’4’,’60’)。

INSERT

INTOSTUDENT(SNO,SNAME,SEX,SDEPT,SAGE)

VALUES('99999','风清扬','男','CS','20');

INSERT

INTOSC(SNO,CNO,GRADE)

VALUES('99999','4','60');

例3对每一个系,求学生的平均年龄,并把结果存入数据库。

对于这道题,首先要在数据库中建立一个有两个属性列的新表,其中一列存放系名,另一列存放相应系的学生平均年龄。

CREATETABLEDeptage(所在系CHAR(20),平均年龄SMALLINT);

然后对数据库的学生表按所在系分组求平均年龄,再把所在系和平均年龄存入新表中。

CREATETABLEDEPT_AGE

(SDEPTCHAR(15),

AVG_AGESMALLINT);

INSERT

INTODEPT_AGE(SDEPT,AVG_AGE)

SELECTSDEPT,AVG(SAGE)

FROMSTUDENT

GROUPBYSDEPT;

例4将学生95001的年龄改为22岁。

UPDATESTUDENT

SETSAGE=22

WHERESNO='95001';

例5将所有学生的年龄增加一岁。

UPDATESTUDENT

SETSAGE=SAGE+1;

例6将课程“数据库”的成绩用五级制显示,成绩>=90为优秀,90>成绩>=80为良好,80>成绩>=70为中等,70>成绩>=60为及格,成绩<60为不及格。

例7将计算机科学系全体学生的成绩置零。

updatesc

setgrade=0

where'CS'=

(selectsdept

fromstudent

wherestudent.sno=sc.sno);

例8删除“信息系统”课程成绩小于李明学生成绩的记录。

/*delete

fromstudent

where

(*/selectsno

fromsc

where(grade<(

selectgrade

fromsc

wheresno=(selectsno

fromstudent

wheresname='李明')

and(cno=

(selectcno

fromcourse

wherecname='信息系统'))))

 

例9删除学号为95006的学生记录

select*/*delete*/

fromstudent

wheresno='95006'

例10删除计算机科学系所有学生的选课记录

select*/*delete*/

fromSC

where'CS'=

(selectsdept

fromstudent

wherestudent.sno=sc.sno);

视图操作具体完成以下例题。

例1建立信息系IS学生的视图

例2建立信息系选修了’1’号课程的学生视图

例3建立信息系选修了’1’号课程且成绩在90分以上的学生视图

例4定义一个反映学生出生年份的视图

四.实验结果与分析(SQL代码及结果截图)

 

五.实验心得

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1