《数据库技术实训》实训报告.docx

上传人:b****7 文档编号:25432003 上传时间:2023-06-08 格式:DOCX 页数:30 大小:404.34KB
下载 相关 举报
《数据库技术实训》实训报告.docx_第1页
第1页 / 共30页
《数据库技术实训》实训报告.docx_第2页
第2页 / 共30页
《数据库技术实训》实训报告.docx_第3页
第3页 / 共30页
《数据库技术实训》实训报告.docx_第4页
第4页 / 共30页
《数据库技术实训》实训报告.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

《数据库技术实训》实训报告.docx

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

《数据库技术实训》实训报告.docx

《数据库技术实训》实训报告

《数据库技术实训》

实训报告

班级:

10计算机应用技术1班

学号:

2010

姓名:

北京青年政治学院

计算机系

内容提要

本数据库编写目的在于意图为便于学校的管理,方便查看有关学校及学生的情况。

如教务处对学生成绩的修改、删除、查找、添加等。

本数据库用到了对数据库的创建和管理,对数据库数据表的创建和管理,对数据的数据查询,视图的应用,索引的应用,和存储过程的应用,系统安全以及数据备份等。

1需求分析

1.1系统开发背景

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。

为了适应现代社会人们高度强烈的时间观念,学生管理系统数据库将会为教学办公室带来了极大的方便。

1.2系统功能需求

1、该数据库要建立一个学校学生管理数据库,方便对学生信息进行管理。

2、创建数据表为了对数据库中的一些数据进行增删改查,并对一些表建立一些关系。

3、需用到数据库的数据查询,就是说通过对数据的插入后,想要知道你想知道的一些信息,可以对数据条件的限定好能够准确的了解到你想知道的。

4、用到视图的应用,视图也是一宗常用的数据库对象,可以把它看成从一个或几个基本表导出的虚表或存储在数据库中的查询。

5、用到索引的应用,每一行记录都包括数据表中的一列或若干列值得集合,而不是数据表中的所有记录,因而能够提高数据的查询效率,此外,是用索引还可以确保列的唯一性,从而保证数据的完整性。

6、用到存储过程,经编译后存储在数据库中,使用时通过调用过程名和给出的参数来调用它们

7、需用到系统安全技术,主要是能够保护数据的安全性。

8、需用到数据的备份,主要是对数据库进行备份操作。

2数据库的设计

2.1物理表结构

Classes(班级)表

字段名

数据类型

可否为空

约束

说明

ID

int

Notnull

主键

编号

ClassID

varchar(50)

Notnull

唯一约束

班级编号

Name

varchar(50)

null

名字

monitor

varchar(50)

null

班长

DepartmentID

varchar(50)

Notnull

参照Department表中的DepartmentID

系编号

Course(课程)表

字段名

数据类型

可否为空

约束

说明

ID

int

null

主键

编号

CourseID

varchar(50)

null

唯一约束

课程编号

Title

nvarchar(100)

null

课程名称

Credits

int

null

学分

DepartmentID

varchar(50)

Notnull

参照Department表中的DepartmentID

系编号

Department(部门)表

字段名

数据类型

可否为空

约束

说明

ID

int

Notnull

主键

编号

DepartmentID

varchar(50)

Notnull

唯一约束

部门编号

DepartmentName

varchar(50)

Notnull

系名称

Budget

money

null

预算

StartDate

smalldatetime

null

创建日期

Administrator

nvarchar(50)

null

管理员

Student(学生)表

字段名

数据类型

可否为空

约束

说明

ID

int

Notnull

主键

编号

StudentID

varchar(50)

Notnull

唯一约束

学生学号

Name

nvarchar(50)

null

学生名称

Gender

nvarchar(4)

null

检查约束

性别

IDNumber

varchar(18)

null

ID号

Address

varchar(200)

null

地址

PhoneNumber

varchar(50)

null

电话号码

Email

varchar(100)

null

邮箱

ClassID

varchar(50)

Notnull

参照class表中的classID

班级编号

 

StudentGrade(学生成绩)表

字段名

数据类型

可否为空

约束

说明

ID

int

Notnull

主键

编号

StudentID

varchar(50)

Notnull

参照Student表中的StudentID

学生学号

CourseID

varchar(50)

Notnull

参照Course表中的CourseID

课程编号

Grade

int

null

成绩

Teacher(老师)表

字段名

数据类型

可否为空

约束

说明

ID

int

Notnull

主键

编号

TeacherID

varchar(50)

Notnull

教师编号

Name

nvarchar(20)

null

名字

officeRoom

varchar(50)

null

办公室

EnrolmentDate

smalldatetime

null

注册日期

Gender

nvarchar(4)

null

检查约束

性别

DepartmentID

varchar(50)

Notnull

参照Department表中的DepartmentID

部门编号

 

2.2表之间的关系

3数据库实现

3.1创建数据库

(1)在【对象资源管理器】中,右键单击【数据库】,在弹出的快捷菜单中,选择【新建数据库】选项,然后出现【新建数据库】窗体。

(2)在【新建数据库】窗体中,在【数据库名称】的文本框中将输入数据库名“school”。

单击【确定】按钮,完成创建school数据库。

(3)在【对象资源管理器】中,即出现school数据库.

 

3.2创建数据库表

CREATETABLE<表名>(<列名><数据类型>

[NULL|NOTNULL][IDENTITY[(seed,increment)][{<列约束>}]

[,…n]

参数说明如下:

[NULL|NOTNULL]:

指定列的为空性,默认值为NOTNULL。

[IDENTITY(seed,increment)]:

指定为标识列,seed为标示种子,increment为递增量。

createClasses

IDintinentity(1,1)notnullprimarykey,

ClassIDvarchar(50)notnullunique,

Namevarchar(50)notnull,

monitorvarchar(50)null,

DepartmentIDvarchar(50)notnullforeignkeyreferencesDepartment(DepartmentID)

createCourse

IDintinentity(1,1)notnullprimarykey,

CourseIDvarchar(50)notnullunique,

Titlenvarchar(50)notnull,

Creditsintnotnull,

DepartmentIDvarchar(50)notnullforeignkeyreferencesDepartment(DepartmentID)

createDepartment

IDintinentity(1,1)notnullprimarykey,

DepartmentIDvarchar(50)notnullunique,

DepartmentNamevarchar(50)notnull,

Budgetmoneynull,

StartDatesmalldatetimenull,

Administratornvarchar(50)null

createStudent

IDintinentity(1,1)notnullprimarykey,

StudentIDvarchar(50)notnullunique,

Namenvarchar(50)notnull,

Gendernvarchar(50)nullconstraintxingbiecheck(Gender='男'orGender='女')

IDNumbervarchar(18)null,

Adressvarchar(100)null,

PhoneNumbervarchar(50)null,

Emailvarchar(100)null,

ClassIDvarchar(50)notnullforeignkeyreferencesClasses(ClassID)

CREATEStudentGrade

IDintinentity(1,1)notnullprimarykey,

StudentIDvarchar(50)notnullforeignkeyreferencesStudent(StudentID),

CourseIDvarchar(50)notnullforeignkeyreferencesCourse(CourseID),

Gradeintnull

createTeacher

IDintinentity(1,1)notnullprimarykey,

TeacherIDvarchar(50)notnullunique,

Namenvarchar(20)notnull,

Gendernvarchar(50)nullconstraintxingbiecheck(Gender='男'orGender='女'),

officeRoomvarchar(50)null,

EnroimentDatesmalldatetimenull,

DepartmentIDvarchar(50)notnullforeignkeyreferencesDepartment(DepartmentID)

4数据操作

4.1为表添加测试数据

◆INSERT语句语法插入一条记录

格式:

INSERT[INTO]表名[(column_list)]

VALUES({DEFAULT|NULL|expression}[,...n])

插入多条记录

INSERT[INTO]表名[(column_list)]

SELECTcolumn_listFROMtable_list

WHEREsearch_condition

insertClasses(ClassID,Name,monitor,DepartmentID)

values('70','李宏',李华,'111')

insertClasses(ClassID,Name,DepartmentID)

values('80','王继强',李于,'112')

insertClasses(ClassID,Name,DepartmentID)

values('90','镇南关',李涛,'113')

insertCourse(CourseID,Title,Credits,DepartmentID)

values('456','英语','87','111')

insertCourse(CourseID,Title,Credits,DepartmentID)

values('457','语文','78','112')

insertCourse(CourseID,Title,Credits,DepartmentID)

values('458','数学','98','113')

insertDepartment(DepartmentID,DepartmentName,Budget,StartDate,Administrator)

values('111','计算机系')

insertDepartment(DepartmentID,DepartmentName)

values('112','艺术系')

insertDepartment(DepartmentID,DepartmentName)

values('113','社工系')

insertStudent(StudentID,Name,ClassID)

values('2010171142','李建','70')

insertStudent(StudentID,Name,ClassID)

values('2010171136','王强','80')

insertStudent(StudentID,Name,ClassID)

values('2010171118','贺龙','90')

insertStudentGrade(StudentID,CourseID,Grade)

values('2010171142','456','78')

insertStudentGrade(StudentID,CourseID,Grade)

values('2010171136','457','79')

insertStudentGrade(StudentID,CourseID,Grade)

values('2010171118','458','80')

insertTeacher(TeacherID,Name,DepartmentID)

values('911','周涛','111')

insertTeacher(TeacherID,Name,DepartmentID)

values('912','杨晓','112')

insertTeacher(TeacherID,Name,DepartmentID)

values('913','天劫','113')

4.2修改数据

UPDATE表名

SETcolumn_name=value[,column_name=value]

[FROMtable_name]

[WHEREcondition]

实现对表中一些数据的修改,从而得到新的数据

updateStudentGrade

setGrade=60

whereGrade>90

updateStudent

setName='王五'

whereName='李宏'

4.3删除数据

DELETE[FROM]表名

[WHEREcondition]

其中,condition指定删除行的条件

主要是对一些数据进行删除

deleteStudentGrade

whereGrade=60

deleteStudent

whereName='李宏'

5视图和索引

5.1创建视图

CREATEVIEW视图名[(column[,...n])]

[WITHENCRYPTION]

AS

select_statement

[WITHCHECKOPTION]

参数说明如下。

Column:

表示视图中的列名。

WITHENCRYPTION:

对包含CREATEVIEW语句文本的条目进行加密。

AS:

表示视图要执行的操作。

select_statement:

定义视图的SELECT语句。

WITHCHECKOPTION:

强制针对视图执行的所有数据修改语句都必须符合在select_statement中设置的条件。

createviewde_te

as

selectDepartment.DepartmentNameas部门名称,Teacher.TeacherIDas教师编号

fromDepartmentjoinTeacher

onDepartment.DepartmentID=Teacher.DepartmentID

--利用视图查询数据

select*

fromde_te

createviewco_st

as

selectCourse.Titleas课程名,Course.Creditsas学分,StudentGrade.Grade

as学生成绩,StudentGrade.StudentIDas学生编号

fromCoursejoinStudentGrade

onCourse.CourseID=StudentGrade.CourseID

--利用视图查询数据

select*

fromco_st

createviewcl_st

as

selectClasses.Nameas班级名称,Classes.DepartmentIDas部门编号,

Student.Nameas学生姓名,Student.StudentIDas学生编号

fromClassesjoinStudent

onClasses.ClassID=Student.ClassID

--利用视图查询数据

select*

fromcl_st

createviewcl_co_st

as

selectClasses.Nameas班级名称,Classes.DepartmentIDas部门编号,

Student.Nameas学生姓名,Student.StudentIDas学生编号,

Course.Titleas课程名,Course.Creditsas学分

fromClassesjoinCourse

onClasses.DepartmentID=Course.DepartmentID

joinStudent

onClasses.ClassID=Student.ClassID

--利用视图查询数据

select*

fromcl_co_st

 

createviewte_de_co

AS

selectCourse.Titleas课程名,Course.Creditsas学分,

Department.DepartmentNameas系名称,Teacher.TeacherIDas教师编号

fromTeacherjoinDepartment

onTeacher.DepartmentID=Department.DepartmentID

joinCourse

onTeacher.DepartmentID=Course.DepartmentID

--利用视图查询数据

select*

fromte_de_co

createviewst_sg

as

select

StudentGrade.Gradeas学生成绩,StudentGrade.StudentIDas学生学号,

Student.Nameas学生姓名

fromStudentjoinStudentGrade

onStudent.StudentID=StudentGrade.StudentID

--利用视图查询数据

select*

fromst_sg

 

5.2创建索引

CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]

/*索引的类型*/

INDEX索引名

ON{表名|视图名}列名[ASC|DESC][,...n])

--创建索引

createindexstudent_studentIDonstudent(studentID)

createindexstudent_nameonstudent(name)

createindexStudentGrade_gradeonStudentGrade(grade)

createindexteacher_nameonteacher(name)

createindexdepartment_nameondepartment(departmentname)

createindexcourse_titleoncourse(title)

createindexcourse_creditsoncourse(credits)

createindexclasses_nameonclasses(name)

 

6存储过程

6.1创建存储过程的语法规则

语法格式:

CREATE[PROC|PROCEDURE]存储过程名

[{@参数名称参数数据类型}[=参数的默认值]

[OUTPUT]]

[,...n]

[WITHENCRYPTION]

[WITHRECOMPILE]

AS

sql_statement 

参数:

@参数名称:

存储过程可以没有参数。

也可以声明一个或多个参数,参数名称必须@作为第一个字符。

参数后面带OUTPUT,表示为输出参数。

WITHENCRYPTION:

对存储过程加密,其他用户无法查看存储过程的定义。

WITHRECOMPILE:

每次执行该存储过程都重新进行编译。

sql_statemen:

该存储过程中定义的编程语句。

 

6.2创建不带参数的存储过程

创建不带参数的存储过程

语法格式。

CREATE[PROC|PROCEDURE]存储过程名

[WITHENCRYPTION][WITHRECOMPILE]

AS

sql_statement

--创建不带参数的存储过程

createprocedurecl_information

as

select*fromClasses

--执行不带参数的存储过程

execcl_information

--创建不带参数的存储过程

createprocedurest_sg_information

as

select

StudentGrade.Gradeas学生成绩,StudentGrade.StudentIDas学生编号,

Student.Nameas学生姓名

fromStudentjoinStudentGrade

onStudent.Stude

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

当前位置:首页 > 自然科学 > 物理

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

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