数据库实验16学时

数据库实验16学时
数据库实验16学时

实验(一): 熟练掌握SQL语言

实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。

实验内容:具体包括如下三部分。

一、熟悉上机环境。

客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。具体包括:

1.了解SQL Server 环境。鼠标点击开始,进入“Microsoft SQL Server→企

业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。

2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名

和口令,进入SQL查询分析器。如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。

3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。

二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有

关查询。

1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的

关系模式

2.在数据库中定义这些关系模式,并向基本表中插入如下数据:

3.插入相应的数据,试着插入重复的元组,结果如何?

4.在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和

用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不

能建立,请分析原因,修改后建立上述约束。

5.如果约束建立后,请试着插入重复元组,结果如何?试着插入重复元组,无法插入:

实验(二): 熟练掌握SQL语言

用SQL完成下列查询

1.求选修了课程的学生的学号,要求:

(1) 不使用distinct语句,消除重复元组,写出其SQL语句

(2) 使用distinct语句,消除重复元组,写出其SQL语句

(3) 如果该查询写成:

select Student.Sno from Student, SC where Student.Sno=SC.Sno 请问该查询结果和上面哪个结果是相同的?

2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名。

3.求计算机系和数学系的学生学号、姓名和年龄。

4.求不是数学系、计算机系的学生的情况,要求select后写*代替列出所有的

列名。

5.求全体学生的信息,要求按年龄升序排列。

6.求计算机系年龄在18~20岁之间的学生姓名和年龄。

7.求姓名是以老开头的计算机系学生。

8.求选修了C2课程的学生的学号、姓名、成绩。

9.求学号为95开头的学生的学号和所选修的课程的学分。

10.求选修C1课程且成绩为80分以上的学生的学号、姓名和成绩。

11.求计算机系每个学生的姓名,选修的课程名和成绩。

12.求每个学生的学号及平均成绩。

13.求男学生每一年龄组中超过1人的年龄组及人数。

14.求每一门课程的间接先行课号。

15.求选修了全部课程的学生的学号。

实验(三):数据库的安全性和完整性

实验目的:了解和使用安全子系统;进行完整性定义和检查。

实验内容:具体包括如下三部分。

一熟练掌握SQL(续)

1.修改表Students,在其中加入一个字段性别sex char(1)

2.创建索引:在Students表的Sno上创建唯一聚簇索引, 在SC表的(Sno, Cno)

上创建唯一索引. 查询Students表的内容, 记录的顺序有变化吗? 查询SC表的内容, 记录的顺序有变化吗?

3.创建视图

?创建计算机系学生视图CS_Students,其中包括学号、年龄和性别。

带with check opition子句

不带with check opition子句

时各插入一计算机系学生记录,通过视图查询插入的记录,结果如何?通过表Students查询插入的记录,查看所在系字段上的值?

?创建一视图,表示学生的平均成绩,其中包括Sno,avgGrade。通过该视图插入一学生姓名和平均成绩,结果如何?通过该视图查找平均成绩在90分以上的学生的学号和平均成绩,结果又如何?

二了解和使用安全子系统

1、将sql server的一合法帐户(user60)加入到你的数据库当中来,并给其授权,使之:

具有创建表的权限

具有对Students表查询的权限

具有对Studetns表的年龄字段修改的权限

2、用user60/user60进入系统,完成权限验证:

在Students表上,实现select * from Students

在course表上,实现select * from course

update Studetns set Sage=Sage+1

update Students set Sdept=’CS’

3、你是数据库的dbo,你来查看dept表,结果如何?使用set user命令使自己成为user60后,查看dept表,结果如何?

三完整性定义和检查

1、创建表Studetns,要求学生的年龄在16和25岁之间,并且所在系的缺省取值为‘CS’

在Studetns表上插入一学生记录(‘9921’,‘cccc’,’MA’,23,’f’)

在Studetns表上插入一学生记录(‘9922’,‘ddd’,’MA’,27,’m’)

在Studetns表上插入一学生记录(‘9923’,‘eeeee’,21,’m’)

在Studetns表上插入一学生记录(‘9922’,‘ddd’,’MA’,23,’m’)

2、创建表course,要求课号作为主键

在course表上插入一课程记录(’c9’,40,’cname1’,1)

在course表上插入一课程记录(’c9’,40,’cname2’,1)

在course表上插入一课程记录(null,25,’canme3’,2)

3、修改表Studetns,指定学号为主键,然后

插入一记录(’9908’,’shang’,’CI’,20)

插入一记录(’9908’,’shang’,’CI’,20)

插入一记录(’’,’liang’,’CS’,18)

插入一记录(’’,’an’,’CS’,19)

4、创建sc表,要求表sc中的学号参照表Studetns中的学号,sc中的课号参照course中的课号。参照约束创建完成后,向这三个表插入数据。

先在sc表插入一个选课记录,看看有什么情况发生?

先删除sc中的某个记录,看看有什么情况发生?

将Studetns表中的学号9906改为9907,看看有什么情况发生?

实验(四):事务的并发控制

实验目的:通过实验了解实际系统中,三级封锁协议的实现方法和使用方法,体会加锁操作、死锁检测与解除。

实验内容:具体分如下五部分。

说明:

(1)Set transaction isolation level read uncommitted

read committed

repeatable read

serializable

分别对应隔离级0,1,2,3。

(2)要求两人一组。

1、隔离级1(缺省)方式下体会两事务的并发执行结果。具体步骤如下(以user1和

user2为例):

●user1首先将user2接纳为自己数据库的用户, 并授权user2可以查询学生

表students

●user1输入并执行下列语句

begin transaction

update table students set age=20+1 where sno=’95001’

●user2输入并执行下列语句

begin transaction

select * from students where sno=’95001’

1)观察发生的现象, user2的语句可以执行吗(是否可以读到别人没有提交的数

据)?

2)user1输入并执行下列语句

commit

2) 观察发生的现象, user2的语句执行了吗?

3) 加锁和解锁操作的完成者是数据库用户吗?

●user2输入并执行下列语句

commit

2、隔离级1(缺省)方式下体会两事务的并发执行结果。具体步骤如下(以user1和

user2为例):

●user1首先将user2接纳为自己数据库的用户, 并授权user2可以查询学生

表students

●user2输入并执行下列语句

begin transaction

select age from students where sno=’95001’

●user1输入并执行下列语句

begin transaction

update table students set age=20+1 where sno=’95001’

1)观察发生的现象, user1的语句可以执行吗(是否可以修改别人正在读的数

据)?

●user2输入并执行下列语句

select age from students where sno=’95001’

2)观察发生的现象, user2的语句执行了吗? 结果如何(是否可重复读)?

user2输入并执行下列语句

commit

●user1输入并执行下列语句

commit

3、在隔离级0方式下体会两事务的并发执行结果。具体步骤如下(以user1和

user2为例):

●user1首先将user2接纳为自己数据库的用户, 并授权user2可以查询学生

表students

●user1输入并执行下列语句

begin transaction

update table students set age=20+1 where sno=’95001’

●user2输入并执行下列语句

begin transaction

set transaction isolation level Read Uncommitted

select * from students where sno=’95001’

1)观察发生的现象, user2的语句可以执行吗(是否可以读到别人没有提交的数

据)?

●user1输入并执行下列语句

commit

●user2输入并执行下列语句

commit

4、在隔离级1(缺省)方式下体会两事务的并发执行死锁情况。具体步骤如下(以

user1和user2为例):

●user1首先将user2接纳为自己数据库的用户, 并授权user2可以修改学生

表students和学生选课表sc

●user1输入并执行下列语句

begin transaction

update table students set age=age+1

●user2输入并执行下列语句

begin transaction

update table sc set grade=grade+5

●user1输入并执行下列语句

update table sc set grade=grade+5

1)观察发生的现象, user1的语句可以执行吗?

●user2输入并执行下列语句

update table students set age=age+1

2)观察发生的现象, user2的语句执行了吗? 结果如何?

●在成功执行的窗口输入并执行下列语句

commit

5、在隔离级1(缺省)方式下体会两事务并发执行锁的粒度(锁数据所在页)。具体

步骤如下(以user1和user2为例):

●user1首先将user2接纳为自己数据库的用户, 并授权user2可以查询学生

表students(该实验要求表中元组数要足够多, 要求指定关键字约束)

●user1输入并执行下列语句

begin transaction

update table students set age=age+1 where sno='95001'

●user2输入并执行下列语句

begin transaction

select * from students where sno='95201'

1)观察发生的现象, user2的语句可以执行吗?

●user2输入并执行下列语句

commit

●user1输入并执行下列语句

commit

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

数据库 教务管理系统 综合实验报告

华北科技学院计算机系综合性实验 实验报告 课程名称《数据库系统A》 实验学期2011 至2012 学年第 2 学期学生所在系部计算机学院 年级2010 专业班级网络B101班 学生姓名学号 任课教师 实验成绩 计算机系制

《数据库系统A》课程综合性实验报告 一、实验目的 利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。 二、设备与环境 (1) 硬件设备:PC机一台 (2) 软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2008等。 三、实验内容 1.需求分析 首先,通过调查,教务管理系统中主要有四类用户,即学生用户,老师用户,教务管理员和系统管理员。对应这些用户,其处理要求的主要的功能就是进行一系列的查询和各类数据的管理及维护。其具体的处理要求如下: 1)系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据还原,注销等功能。 2)教务管理:实现教务管理人员对系统的管理,包括课程安排,成绩审核,学生成绩管理,学生学籍管理等功能。 3)基本信息:实现显示学生和老师以及课程、班级、系别的基本信息(包括学生基本信息,教师基本信息,课程基本信息等)。 4)查询:包括实现学生查询,老师查询。学生查询包括自己的基本信息,自己的课程,课表,成绩等,老师查询包括查询自己的信息,自己所带班的学生,自己的课表以及学生成绩等。 5)教师对成绩的录入以及自己信息的查询与维护。 其次,该教务管理系统中,结合以上用户种类以及其具体的处理功能要求,教务管理系统要具备以下信息要求: 教务管理系统涉及的实体有: 教师——工作证号、姓名、电话、工资、邮箱; 学生——学号、姓名、性别、年龄、系代号等; 班级——班号、最低总学分等; 系——系代号、系名和系办公室电话等; 课程——课序号、课名、学分、最大人数等; 其中,这些实体之间的联系如下: 每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。 每个班的班主任都由一名教师担任 一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

同济大学数据库实验5答案

create proc procA as select* from student exec proca create proc procB @_year char(4) as select* from student where year(birthday )=@_year declare @_year char(4) set @_year ='1994' exec procB@_year create proc procf @_Snum char(30) as select s.snum ,avg(score)as平均成绩,count(https://www.360docs.net/doc/b111602498.html,um)as选秀门数,sum(1-score/60)as不及格门数 from student s,course c,sc,sections st where s.snum =sc.snum and sc.secnum =st.secnum and https://www.360docs.net/doc/b111602498.html,um =https://www.360docs.net/doc/b111602498.html,um and S.Snum =@_Snum group by S.Snum DECLARE @_SUNM char(30) set @_SUNM ='s001' exec procf@_sunm CREATE PROC Procd @_snum char(4),@_avg int out,@_selected_course int out,@_failed_course int out AS SELECT @_avg=AVG(score),@_selected_course=COUNT(cnum),@_failed_course=sum(1-score/60) FROM sc JOIN sections ON sc.secnum =sections.secnum WHERE snum=@_snum

数据库实验一

实验一基本表的定义、删除与修改 一、实验目的: 熟练掌握基本表的定义、删除与修改,为后继学习作准备。 二、实验属性(验证性) (1)了解并掌握SQL SERVER 2005管理控制器的使用; (2)掌握基本表的定义、删除与修改。 三、实验仪器环境与要求 1.每人一台计算机。 2.计算机安装有SQL SERVER2005。 四、实验要求(预习、实验前、实验中、实验后等要求) 1.预习教材第三章,熟悉SQL语句。 2.熟悉SQL SERVER 2005,能使用管理控制器的使用。 3.能够熟练使用SQL语句进行表的创建、删除与修改。 五、实验原理 SQL语言基本应用。 六、实验步骤: (1)启动SQL SERVER 2005。 (2)启动SQL SERVER 2005查询分析器; (3) 创建数据库; (5) 创建如下表: 1 定义基本表 1.1、学生表Student,每个属性名的意义为Sno-学号字符型长度为10、Sname-姓名字符型长度为20、Ssex-性别字符型长度为4、Sage-年龄为整型、Sdept-所在系字符型长度为15。这里要求Sno为主码,Sname不能为空值,且取值唯一。 create table student (Sno char(10) primary key, Sname char(20) unique, Ssex char(4), Sage smallint, Sdept char(15) );

1.2、建立表课程表Course,其属性名意义分别为Cno-课程号、字符型长度为15, Cname-课程名、字符型长度为20, Pre_Cno-先修课程号、字符型长度为15, Credits-学分、整型。Cno 为主码。 create table course (Cno char(15) primary key, Cname char(20), Pre_Cno char(15) references course(Cno), Ccredit smallint, ); 1.3选课表SC。其中的属性名意义分别为Sno-学号、字符型长度为10,Cno-课程号、 字符型长度为15和Grade-考试成绩、整型。Sno和Cno为主码。 create table sc ( Sno char(10) references student(Sno), Cno char(15) references course(Cno), Grade smallint, primary key (Sno, Cno), )

数据库实验五题目答案

实验五 实验5.1 数据查询 1)要求 以School数据库为例,在该数据库中存在四表格,分别为: ●表STUDENTS(sid, sname, email, grade); ●表TEACHERS(tid, tname, email, salary); ●表COURSES(cid, cname, hour); ●表CHOICES(no, sid, tid, cid, score) 在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。 按以下要求对数据库进行查询操作: (1)查询年级为2001的所有学生的名称并按编号升序排列。 程序:Select sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

sql 数据库 实验3答案

实验三:创建及管理数据表 1、创建表 依据数据表的结构创建相对应的数据表,表结构如下所示; 学生信息表(student ) CREATE (sno char (9) PRIMARY KEY , sname char (8) NOT NULL, ssex char (2), sage int , sdept varchar (20) ) 课程信息表(course ) CREATE (cno char (4) PRIMARY KEY , cname varchar (20) NOT NULL, cpno char (4), ccredit int ) 选课信息表(sc )

CREATE TABLE sc (sno char(9), cno char(4), grade int, Constraint PK_sno PRIMARY KEY(sno,cno)) 2.修改表结构 1)在表student中增加新字段“班级名称(sclass)”字符类型为varchar(10); use student ALTER TABLE student Add sclass nvarchar(10) 2)在表student中删除字段“班级名称(sclass)”; use student ALTER TABLE student Drop column sclass 3)修改表student中字段名为“sname”的字段长度由原来的6改为8; use student ALTER TABLE student ALTER COLUMN sname char(8) 4)修改表student中ssex字段默认值为‘男’; use student ALTER TABLE student add default'男'for ssex 5)修改表course中cname字段为强制唯一性字段; use student ALTER TABLE course Add constraint ix_course unique (cname) 6)修改表sc中grade字段的值域为0-100; use student ALTER TABLE sc Add constraint CK_grade CHECK(grade between 0 and 100) 7)删除数据表course的唯一性约束; use student ALTER TABLE course drop ix_course

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级:计科*** 班 学号: **** 姓名: *** 2011年12月

数据库应用系统的初步开发 一、实验类别:综合型实验 二、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 三、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 四、实验过程 (一.)系统需求说明 1 系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2 系统模块设计 成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图: 登陆失败 退出系统 用户 验证 登陆成功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别,地址,年龄,专业。 (2)课程基本信息:课程名,课程号,分数,学时,学分。

数据库实验1认识数据库管理系统

《数据库技术》 实验指导书徐州师范大学计算机科学与技术学院

实验一使用数据库管理系统(2学时) 【实验目的】 1.掌握服务管理器的启动和停止方法; 2.掌握注册服务器的步骤; 3.掌握在SQL Server 2008中创建和编辑数据库; 4.掌握备份、附加和分离数据库的方法 【实验要求】 1.熟练掌握SQL Server2008数据库服务器服务启动和注册方法; 2.熟练使用Management Studio界面方式创建及编辑数据库; 3.熟练进行数据库备份、分离附加操作; 4.独立完成实验内容,并提交书面实验报告。 【实验内容】 1. 管理SQL Server 2008服务器,主要包括启动、暂停、停止和重新启动等操作; 2. 注册SQL Server 2008服务器。 3. 使用SQL Server 2008对象资源管理器和SQL语句(新建查询)两种方法,完成学生管理系统数据库的创建,修改数据库属性。 (1)创建一个数据库,要求如下。 ●数据库名“STUDENT”。 ●数据库中包含一个数据文件,逻辑文件名为student_data,磁盘文件名为 student_data.mdf,文件初始容量为10MB,最大容量为100MB,文件容量递增值为5%。 ●事务日志文件,逻辑文件名为student_log,磁盘文件名为student_log.ldf,文件初始 容量为5MB,最大容量为30MB,文件容量递增值为2MB。 (2)对该数据库做如下修改。 ●添加一个数据文件.逻辑文件名为student2_data,磁盘文件名为student2_data.ndf, 文件初始容量为5MB,最大容量为50MB,文件容量递增值为5MB。 ●将日志文件的最大容量增加为50MB.递增值改为3MB。 (3)将学生数据库更名为STU。 (4)备份STUDENT数据库。 (5)删除STUDENT数据库。 (6)还原STUDENT数据库。 4.附加给定的数据库文件并分离创建好的数据库文件。 【实验步骤】 1.管理SQL Server 2008服务器,主要包括启动、暂停、停止和重新启动等

数据库实验八综合性实验报告

华南农业大学综合性设计性 实验报告 实验名称:数据库设计 项目性质:综合性设计性实验 所属课程:数据库系统概念 开设时间:2015-2016学年第1学期学生班级: 指导教师: 2015年12月12日

华南农业大学数学与信息学院 综合性、设计性实验成绩单 开设时间:2015-2016学第一学期

一、设计部分 1.需求分析 1.1 用户需求概述 本系统为图书管理系统数据库,该系统开发的主要目的是对大学图书馆的图书信息进行记录统计管理。具体完成录入图书信息,录入借还书记录,录入读者信息等功能。需要完成的主要功能有: 1)学生信息录入 该功能供图书馆管理员使用,学生首次借阅图书前,必须登记并录入个人身份信息,内容包括:学号、姓名、联系电话。 2)图书信息录入 该功能供图书馆管理员使用,对于首次入库的新书,必须录入图书目录资料,内容包括:图书编号、书名、作者、出版社、简介。 3)借书记录录入 该功能供图书馆管理员使用,读者凭校园卡到柜台办理借书手续,由图书馆管理人员录入借书记录,内容包括:日期、学号、图书编号。 对读者借阅图书的限制条件包括: ①读者一次可借阅1-3本图书, ②借出未还的图书,累计不得超出5本; ③没有逾期未归还的图书,从借出之日开始计算,超过90天尚未归还则视为逾期。 4)还书记录录入 该功能供图书馆管理员使用,读者凭校园卡到柜台办理归还借书手续,由图书馆管理人员录入还书记录,内容包括:日期、学号、图书编号。学生可以一次归还1至多册所借阅的图书。 5)图书信息查询 该功能供学生使用,学生自行输入书名、作者、出版社等信息作为查询条件,

系统列出满足查询条件的图书目录。 6)学生信息查询 该功能供图书馆管理人员使用,操作人员输入学生学号,系统列出该学生的个人信息、以及历次的借阅/归还图书记录。 1.2 数据需求

mysql数据库实验答案

实验一创建、修改数据库和表结构 1、用create建立教学数据库的五个基本表: (1)学生表(学号,姓名,性别,年龄),student((Sno, sname,ssex,sage) ; (2)课程表(课程号,课程名,学分),Course (Cno, Cname, credit) ; (3)选课表(学号,课程号,成绩),SC (Sno,, Cno, grade ) ; (4) 教师表(教师号,姓名,性别,出生年月,系部,职称,地址), T(Tno,Tname,ssex,birthday,dept,title,address) ; (5) 工资表(教师号,基本工资,职务工资,合计),Salary(Tno,jbgz,zwgz,hj); Create Database Student default character set utf8 default COLLATE utf8_bin;

Use Student; Create Table Student( SNo c har(20) primary key, SName char(20) , SSex char(4) default '男', SAge int ) ENGINE=InnoDB; Create Table Course( CNo c har(20) primary key, CName char(20) NOT NULL,

CRedit f loat ) ENGINE=InnoDB; Create Table SC( SNo c har(20) NOT NULL, CNo c har(20) NOT NULL, Grade float, Primary Key(SNo, CNo), Foreign Key(SNo) References Student(SNo) On Delete Cascade, Foreign Key(CNo) References Course(CNo) )ENGINE=InnoD B;

实验五、访问数据库及综合性实验练习

实验五、访问数据库及综合性实验练习 实验学时: 该实验项目使用6学时 实验目的: 1、熟悉https://www.360docs.net/doc/b111602498.html,操作数据库的基本知识 2、学习https://www.360docs.net/doc/b111602498.html,提供的五大对象进行数据库访问基本编程方法 3、学习数据绑定技术和使用数据绑定控件 实验要求: 1、学会https://www.360docs.net/doc/b111602498.html,访问数据库的基本编程方法。 2、能独立使用相关对象进行数据库的查询、插入、修改和删除编程。 3、学会数据服务控件和数据绑定技术 实验环境: 1、计算机局域网环境 2、Microsoft Visual https://www.360docs.net/doc/b111602498.html,开发环境 实验内容: 1、建立数据库和数据表练习: 建立Stud数据库,并在该库中建立student和score数据表,表中字段见P217页。 注意:参照教材P217页,但实验环境是SQL Server 2000系统。 2、SQL语言练习: 完成教材P 220~223 例9.2~例9.9 3、https://www.360docs.net/doc/b111602498.html, 对象练习: 完成教材P 228~248 例9.10~例9.15 认真领会并总结上述两种访问数据库数据的方法。 4、数据源控件练习 完成教材P 264例9.17、P286~例9.21、P294~例9.23 5、综合性实验 在实验四的基础上,继续开发并完善聊天室程序。增加以下功能。 ①当客户第一次访问时,需在线注册姓名、性别、注册时间等信息,然后将信息 保存在数据库的客户信息表中(自己建库、表)。 ②维护客户信息表,提供统计和删除功能。(使用数据绑定控件显示结果) ③动态显示客户在线情况,只显示注册姓名。… 思考题: 1、分析总结https://www.360docs.net/doc/b111602498.html,类中两种访问数据库数据的方法异同。 实验报告: 1、记录实验中的关键操作步骤与方法及程序代码和程序的运行结果; 2、记录实验中出现的问题和解决的方法。

数据库_实验三答案

实验3 SQL语言 一、实验目的 1、掌握SQL中运算符和表达式的使用。 2、掌握实用SQL语言查询数据库。 二、实验要求 1、所有的实验过程请严格按照实验容的步骤进行。 2、对关键步骤截屏并复制到实验报告的相应位置。 三、实验设备、环境 设备:计算机 环境:WINDOWS XP、SQL SERVER 2000中文版 四、实验原理、方法 上机操作 五、实验容 准备工作:还原学生成绩管理数据库; 注意:写SQL语句时,注意学生成绩管理数据库中表名称和字段名称的对应。 1、使用SQL查询分析器,对学生成绩管理数据库完成如下查询操作: 1)简单查询 (1)求数学系学生的学号和。 (2)求选修了课程的学生学号。

(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。 (4)求选修课程0001且成绩在80~90之间的学生学号和成绩,并将成绩乘以系数0.8输出。 (5)求数学系或计算机应用系姓王的学生的信息。 (6)求缺少了成绩的学生的学号和课程号。

2)连接查询 (1)查询每个学生的情况以及他(她)所选修的课程。 (2)求学生的学号、、选修的课程名及成绩。 (3)求选修0001课程且成绩为90分以上的学生学号、及成绩。

3)嵌套查询 (1)求选修了0003的学生学号和。 (2)求0001课程的成绩高于王军的学生的学号和成绩。

(3)求其他系中比计算机系某一学生年龄小的学生。 4)使用分组和函数查询 (1)求学生的总人数。 (2)求选修了课程的学生人数。

(3)求课程和选修0001的人数。 (4)求选修课超过3门课的学生学号。

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

数据库实验答案

实验3 使用T-SQL语言完成单表查询 一、实验目的 掌握使用T-SQL语言完成单表查询 掌握常用谓词的用法 掌握where子句的用法 掌握order by 子句的用法 掌握group by 子句和having短语的用法 实验环境 Microsoft SQL Server 2000。 实验内容和要求 查询全体学生的详细信息。 查询所有课程的详细信息。 查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。 查询已被学生选修了的课程的编号。 查询系别编号为“d002”的学生的姓名和性别。 查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。 查询系别编号为d001、d002和d003的学生的学号和姓名。 查询课程名为“C_”开头的课程名和学分。 某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。 查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。 查询学校所开设的总的课程数。 计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。 查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分”。 求各个系别的编号以及各系的人数。 查询选课人数大于等于2人的课程编号以及选课的人数。 查询学生2选修课程的总成绩对应的列名为“总成绩”,并显示出学号。 查询有2门以上课程是80分以上的学生的学号及课程数。 查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列。 实验1 使用T-SQL语言建库、建表 实验2 向表中增、删、改数据 实验目的 掌握使用T-SQL建库、建表、修改表; 掌握使用T-SQL对表中数据进行插入、删除和修改。 实验环境 Microsoft SQL Server 2000。 实验内容和要求 建立数据库STDB 在数据库STDB中建立四个表:

数据库综合实验

数据库原理及应用 -- SQL Server 2000 陈学进于 2010年三月 实验指导书

实验一用E-R图设计数据库 1.实验目的 1)熟悉E-R模型的基本概念和图形的表示方法。 2)掌握将现实世界的事物转化成E-R图的基本技巧。 3)熟悉关系数据模型的基本概念。 4)掌握将E-R图转化成关系表的基本技巧。 2.实验内容 1)根据需求确定实体,属性和联系。 2)将实体,属性和联系转化为E-R图。 3)将E-R图转化为表。 3.实验步骤 1)设计能够表示出班级与学生关系的数据库。 ①确定班级实体和学生实体的属性。 ②确定班级和学生之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出班级与学生关系的E-R图。 ⑤将E-R图转化为关系模式,写出各关系模式并标明各自的主码或外码。 2)设计能够表示出顾客与商品关系的数据库。 ①确定顾客实体和商品实体的属性。 ②确定顾客和商品之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出顾客与商品关系的E-R图。 ⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。 3)设计能够表示学校与校长关系的数据库。 ①确定学校实体和校长实体的属性。 ②确定学校和校长之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出学校与校长关系的E-R图。 ⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。 4)设计能够表示出房地产交易中客户,业务员和合同三者之间关系的数据库。 ①确定客户实体,业务员实体和合同实体的属性。 ②确定客户,业务员和合同三者之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出客户,业务员和合同三者关系E-R图。 ⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。 5)学生之间相互交流各自设计的数据库。

数据库实验1

邮电大学计算机学院 《大型数据库技术》 实验一:MySQL数据库安装配置及基础使用 :侯利萍班级:09 学号:B13040905 2016年 3 月21 日星期一 说明:斜体需要输出的部分。 下载安装MySQL 搜索MySQL下载页面 网址: 查看各种MySQL版本 MySQL主要版本及区别: 所下载版本及版本号: 安装配置MySQL 数据库基本操作 创建数据库 创建一个企业管理系统数据库,命名为enterprisedb,字符集选择utf8. SQL语句:create database enterprisedb; set charset utf8; 输出截图:

创建关系表 创建一雇员表,命名为employee,包括如下字段:雇员工号(从86001 开始递增),,性别,生日,部门名称。(请选择合适的数据类型) SQL语句: create table employe (id int(10) primary key AUTO_INCREMENT,name varchar(10),sex varchar(10),birthday virchar(10)) AUTO_INCREMENT=86001; 输出截图: 插入数据操作 插入10条不同信息的雇员,信息自定,需要符合实际。 SQL语句:insert into employe values("0","zhang","man","1996.1.2","mangager"); insert into employe values("0","","man","1996.1.2","mangager"); insert into employe values("0","","man","1995.1.2","mangager"); insert into employe values("0","胡","woman","1994.1.2","worker"); insert into employe values("0","周","woman","1995.1.1","worker"); insert into employe values("0","","woman","1995.3.1","worker"); insert into employe values("0","王","woman","1995.3.1","seller"); insert into employe values("0","吴","woman","1995.2.1","seller"); insert into employe values("0","吴","man","1995.2.1","seller"); insert into employe values("0","","man","1989.2.1","leader"); insert into employe values("0","田 ","woman","19988.2.1","leader"); 注释:在测试英文中文是否都正常时,多输入一个英文员工。 输出截图:

数据库系统原理与设计实验教程实验1

数据库系统原理与设计实验教程实验1

实验一简单查询 在订单数据库中,完成如下的查询: (1) 查询所有业务部门的员工姓名、职称、薪水。 select employeeName,headShip,salary from employee where department='业务科' (2) 查询名字中含有“有限”的客户姓名和所在地。 select CustomerName,address from Customer where CustomerName like '%有限%' (3) 查询出姓“王”并且姓名的最后一个字

为“成”的员工。 select * from employee where employeeName like '王%成' 没有结果 (4) 查询住址中含有上海或南昌的女员工, 并显示其姓名、所属部门、职称、住址,其 中性别用“男”和“女”显示。 select employeeName,department,headship,address, sex= Case sex when 'M'then '男' when 'F'then '女' end from employee where address like'%上海%' or address like '%南昌%' and sex='F'

(5) 在订单明细表OrderDetail中挑出销售金额大于等于10000元的订单。 select orderNo from OrderDetail group by orderNo having sum(quantity*price)>=10000 (6) 选取订单金额最高的前10%的订单数据。 SELECT TOP 10 PERCENT orderNo FROM Orderdetail GROUP BY orderNo ORDER BY sum(quantity*price) DESC (7) 查询出职务为“职员”或职务为“科长”的女员工的信息。 select * from employee where (headship='职员' or headship='科长') and sex='F'

相关文档
最新文档