数据库实验报告.docx

上传人:b****2 文档编号:3167628 上传时间:2023-05-05 格式:DOCX 页数:11 大小:60.09KB
下载 相关 举报
数据库实验报告.docx_第1页
第1页 / 共11页
数据库实验报告.docx_第2页
第2页 / 共11页
数据库实验报告.docx_第3页
第3页 / 共11页
数据库实验报告.docx_第4页
第4页 / 共11页
数据库实验报告.docx_第5页
第5页 / 共11页
数据库实验报告.docx_第6页
第6页 / 共11页
数据库实验报告.docx_第7页
第7页 / 共11页
数据库实验报告.docx_第8页
第8页 / 共11页
数据库实验报告.docx_第9页
第9页 / 共11页
数据库实验报告.docx_第10页
第10页 / 共11页
数据库实验报告.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库实验报告.docx

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

数据库实验报告.docx

数据库实验报告

数据库实验报告

 

学院计算机科学与技术

班级计科1205班

姓名刘贵亮

学号U201214926

指导老师胡侃

日期2015.06.14

 

目录

一、实验目的4

二、实验原理4

1.DDL使用方法4

2.DML使用方法4

三、实验内容5

1.基本表的创建与数据的插入5

2.数据查询7

3.数据修改、删除7

4.视图的操作7

5.库函数,授权的控制7

6.数据库的备份和恢复7

四、实验结果及代码7

1.基本表的创建与数据插入7

2.数据查询8

3.数据修改、删除9

4.视图的操作10

5.库函数,授权的控制10

6.数据库的备份恢复11

五、实验心得体会12

 

一、

实验目的

掌握SQL Server 2000 的工具使用 

掌握DDL的使用方法  

掌握DML的使用方法 

掌握SELECT命令 使用方法 

掌握DCL的使用方法  

掌握数据库的备份和恢复

二、实验原理

1.DDL使用方法

(1)数据库的创建

在查询分析器中执行下列语句即可在默认的设备上创建新的数据库sch。

 CREATE DATABASE database_name 。

(2)基本表的建立

创建基本表的命令为:

CREATE TABLE table_name。

 创建基本表时,应先选择包含表的数据库。

(3)视图的建立

视图是组成数据库体系结构——三级模式两级映像结构中的外模式的基本单元,SQL-Server的视图定义命令为:

CREATEVIEWview-nameASSELECTstatement。

 

视图是用于定义终端用户数据来源的。

在视图定义中可以使用复杂的SELECT命令。

2.DML使用方法

SQL的DML包括插入(INSERT)、删除(DELETE)、修改(UPDATE)等命令。

DML命令的执行是可能造成数据库不一致的根源。

(1)INSERT命令

SQL语言的插入命令:

INSERTINTOtable-name(column-list)VALUES(values-list),可以完成数据输入功能。

(2)DELETE命令

SQL的删除命令为:

DELETEFROMtable-name[WHEREcondition-expression];执行DELETE命令后,系统会删除满足命令中条件表达式的所有元组。

这种删除只是逻辑的。

因此,当再次插入一个与被删除的元组具有相同关键字的元组时,被认为违反了实体完整性。

(3)UPDATA命令

SQL的修改命令为:

 UPDATE table-name  

SET column-name = expression  [WHERE condition-expression];

执行UPDATE命令后,系统会按照SET子句修改满足命令中条件表达式的所有元组。

如果使用修改命令更新关键字的值,而该关键字在其他表中作为外码存在时,操作可能违反参照完整性。

系统将拒绝执行。

(4)SELECT命令

SELECT 命令是SQL语言中使用最频繁的命令,其变化形式繁多,灵活运用SELECT 命令可以完成任意复杂的查询要求。

SELECT 命令的基本语法为:

 

SELECT query_expression|column-list|*  FROM  table_name_list|view_name_list [WHERE condition-expression] 

[GROUP BY  [HAVING condition-expression]] 

[ORDER BY order_expression| column [ASC|DESC]][,…n]; 

三、实验内容

1.基本表的创建与数据的插入

(1)创建教学管理中的三个基本表:

Students(S#,SNAME,AGE,SEX) 学生(学号,姓名,年龄,性别)

Courses(C#,CNAME,SCORE,PC#)课程(课程号,课程名,学分,先行课号)

SC(S#,C#,GRADE)   选修(学号,课程号,成绩)

(2)用INSERT命令输入数据

S1

LU

20

M

S2

YIN

19

M

S3

XU

18

F

S4

QU

14

F

S5

PAN

14

M

S6

DONG

24

M

表格1基本表students的数据

C1

数学

4

M

C2

英语

8

M

C3

数据结构

4

F

C4

数据库

3.5

F

C5

网络

4

M

表格2基本表courses的数据

C#

S1

S2

S3

S4

S6

S8

C1

85

90

89

84

88

87

C2

73

NULL

86

82

75

85

C3

88

80

90

NULL

C4

89

85

NULL

92

88

C5

73

NULL

87

表格3基本表SC的数据(空格为未选修)

2.数据查询

(1)列出选修课程号为C2的学生学号与姓名。

(2)检索选修课程名为“数学”的学生学号与姓名。

(3)检索没有选修C2课程的学生姓名与年龄。

(4)检索选修全部课程的学生姓名。

3.数据修改、删除

(1)把C2课程的非空成绩提高10%。

(2)在SC表中删除课程名为“物理”的成绩所对应的元组。

(3)在S和SC表中删除学号为S8的所有数据。

4.视图的操作

(1)建立男生学生的视图,属性包括学号,姓名,选修课程名和成绩。

(2)在男生视图中查询平均成绩大于80分的学生学号和姓名。

5.库函数,授权的控制

(1)计算每个学生选修课程的门数、平均成绩。

(2)建立一个合法的用户,将SC表的查询权限授予该用户。

(3)使用GRANT语句,把对基本表students、Courses、SC的使用权限授予其他用户。

6.数据库的备份和恢复

(1)使用完全备份将你的实验数据库备份到软盘。

(2)删除你所建立的数据库。

(3)恢复你的数据库。

(4)在恢复后的数据库上撤销你建立的基本表和视图。

四、实验结果及代码

1.基本表的创建与数据插入

createtablestudents(schar(9)primarykey,snamechar(20)notnull,agechar(3),sexchar(6));

createtablecourses(cchar(9)primarykey,cnamechar(20)notnull,scoreint,pcchar(3));

createtablesc(schar(9)foreignkeyreferencesstudents(s),cnochar(9),gradeint,foreignkey(c)referencescourses(c));

insertintostudentsvalues('S1','LU',20,'M');

insertintostudentsvalues('S2','YIN',19,'M');

insertintostudentsvalues('S3','XU',18,'F');

insertintostudentsvalues('S4','QU',18,'F');

insertintostudentsvalues('S6','PAN',14,'M');

insertintostudentsvalues('S8','DONG',24,'M');

insertintoCoursesvalues('C1','数学',4,'M');

insertintoCoursesvalues('C2','英语',8,'M');

insertintoCoursesvalues('C3','数据结构',4,'F');

insertintoCoursesvalues('C4','数据库',3.5,'F');

insertintoCoursesvalues('C5','网络',4,'M');

insertintoSCvalues('S1','C1',85);

insertintoSCvalues('S2','C1',90);

insertintoSCvalues('S3','C1',89);

insertintoSCvalues('S4','C1',84);

insertintoSCvalues('S6','C1',88);

insertintoSCvalues('S8','C1',87);

insertintoSCvalues('S1','C2',73);

insertintoSCvalues('S2','C2',NULL);

insertintoSCvalues('S3','C2',86);

insertintoSCvalues('S4','C2',82);

insertintoSCvalues('S6','C2',75);

insertintoSCvalues('S8','C2',85);

insertintoSCvalues('S1','C3',88);

insertintoSCvalues('S2','C3',80);

insertintoSCvalues('S6','C3',90);

insertintoSCvalues('S8','C3',NULL);

insertintoSCvalues('S1','C4',89);

insertintoSCvalues('S2','C4',85);

insertintoSCvalues('S4','C4',NULL);

insertintoSCvalues('S6','C4',92);

insertintoSCvalues('S8','C4',88);

insertintoSCvalues('S1','C5',73);

insertintoSCvalues('S2','C5',NULL);

insertintoSCvalues('S8','C5',87);

2.数据查询

(1)列出选修课程号为C2的学生学号与姓名。

代码:

selectsc.s,snamefromstudents,scwhereo='C2'andsc.s=students.s;

结果:

(2)检索选修课程名为“数学”的学生学号与姓名。

代码:

selectsc.s,snamefromstudents,sc,courseswhereame='数学'andcourses.c=oandstudents.s=sc.s;

结果:

(3)检索没有选修C2课程的学生姓名与年龄。

代码:

selectsname,agefromstudentswherenotexists(select*fromscwhereo='c2'ands=students.s);

结果:

(4)检索选修全部课程的学生姓名。

代码:

selectsnamefromstudentswherenotexists(select*fromcourseswherenotexists(select*fromscwheres=students.sandcno=courses.c));

结果:

3.数据修改、删除

(1)把C2课程的非空成绩提高10%。

代码:

updatesc

setgrade=grade*1.1

whereo='c2'andoisnotnull

结果:

(2)在SC表中删除课程名为‘物理’的所对应的元组。

代码:

deletefromSCwherecnoin(selectcnofromcourseswherecname='物理')

(3)在S和SC表中删除学号为S8所对应的数据。

代码:

deletefromscwheresc.s='s8'deletefromstudentswherestudents.s='s8'

4.视图的操作

(1)建立男生学生的视图,属性包括学号,姓名,选修课程名和成绩。

代码:

createviewstudent_m(sno,sname,cname,grade)as

selectstudents.s,students.sname,cname,gradefromsc,students,courses

wherestudents.s=sc.sandcourses.c=oandsex='M'

(2)在男生视图中查询平均成绩大于80分的学生学号和姓名。

代码:

selectdistinctstudents.s,students.snamefromstudent_m,studentswherestudent_m.sno=students.sandgrade>80

结果:

5.库函数,授权的控制

(1)计算每个学生选修课程的门数、平均成绩。

代码:

selectstudents.s,students.sname,count(cno)选修门数,avg(grade)平均成绩fromstudents,scwherestudents.s=sc.sgroupbystudents.s,sname

结果:

(2)建立一个合法的用户,将SC表的查询权限授予该用户。

代码:

execsp_addloginschool,schooluseschoolgoexecsp_grantdbaccess'school','school'GRANTSELECTONSCTOschool;

(3)使用GRANT语句,把对基本表students、Courses、SC的使用权限授予其他用户。

代码:

GRANTallprivileges--授予权限

ONCoursesTOguest;

GRANTallprivileges--授予权限

ONstudentsTOguest;

GRANTallprivileges--授予权限

ONscTOguest;

结果:

6.数据库的备份恢复

(1)使用完全备份将你的实验数据库备份到软盘。

代码:

EXECsp_addumpdevice'DISK','backupdevice_sch','d:

\backupdev\sch.bak'BACKUPDATABASEschTObackupdevice_sch

(2)删除你所建立的数据库。

在对象资源管理器中找到数据库sch右键删除数据库sch。

(3)回复你的数据库。

代码:

restoredatabaseschfrombackupdevice_school

结果:

(4)在恢复后的数据库撤销你建立的基本表和试图。

代码:

droptablescdroptable

students

droptablecoursesdropviewstudent_m

五、实验心得体会

通过本次实验,我学到了很多东西,包括建表,导入数据,查询,插入。

重要的是我有机会用电脑自己进行实践,没接触的时候总是觉得它比较深奥或是不可接近的新型语言。

开始知道数据库的时候想学,不知道从何而起,感觉SQLSever数据库管理既然是单独一门课程一定会讲的比较细,也能学到真正实用的内容。

管理则需要对SQLSever数据库的原理有深刻的认识,SQLServer数据库的实验学习使我对数据库的有了新的进步。

但是课上的学习远远不足以让我熟练地使用管理数据库,因此我还要在将来的程序设计语言学习中更多的使用数据库,以在不同的环境中解决实际问题,更深刻的理解数据库的原理。

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2