数据库实验.docx

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

数据库实验.docx

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

数据库实验.docx

数据库实验

实验一熟悉SQLSERVER的环境

(验证型实验2学时)

1.目的要求:

了解SQLServermanagementstudio的使用

2.实验内容:

回答下面每一个问题,写出实验步骤

在“已注册服务器窗口”中注册sqlserver数据库服务器

a.视图—>已注册的服务器

b.右击“数据库引擎”->新建->新建服务器注册

在“对象资源管理器”中创建名字为sc的数据库

在“对象资源管理器”目录下右击“数据库”->新建数据库

填写“数据库名称”,然后点击确定。

在sc数据库中创建一个名字为student的基本表

右击“表”->新建表,输入列号,数据类型,点击保存,输入表名称

b.

c.右击“dbo.student”->打开表,输入数据。

在查询窗口中里创建名为S_C的数据库

create database S_C

在查询窗口中使用sql语言创建名字为course的基本表

create table Course

            ( Cno char(4),

             Cname char(40),

             Cpno char(4),

             Ccredit smallint);

a.sc->新建查询->select*fromstudent

3.主要仪器设备及软件:

(1)PC

(2)MicrosoftSQLServer2005

实验二建立表格,并插入若干记录

(验证型实验2学时)

1.目的要求:

学会使用CreateTable语句和Insert语句

2.实验内容:

使用sql语言建立student,course和sc共三张表格(包括主键,外码的指定),分析具体情况适当给出一些用户自定义的约束.

建student表

右击gj—“新建查询”,在打开的窗口输入如下SQL语句:

右击——“打开表”,看到如下表:

建Course表

建SC表

CREATETABLESC

(SnoCHAR(9),

CnoCHAR(4),

GradeSMALLINT,

PRIMARYKEY(Sno,Cno),

FOREIGNKEY(Sno)REFERENCESStudent(Sno),

FOREIGNKEY(Cno)REFERENCESCourse(Cno)

);

使用Insert语句向这四张表格里添加至少10条记录(数据如教材56页所示),如果出现错误,分析错误原因

向student表中插入数据:

            insert into Student(Sno,Sname,Ssex,Sage,Sdept)

            values('95001','李勇','男','20','CS');

            ...

用相同的方法输入10条记录,截图如下:

向course表中插入数据:

                        insert into Course(Cno,Cname,Cpno,Ccredit)

                        values('1','数据库','5','

                                                   ....

  

 向SC表中插入数据:

                  insert into SC(Sno,Cno,Grade)

                  values('95001','1','92');

                  ....

 插入时遇到的问题:

insert语句与表的外键约束发生冲突不能正确插入;输入SQL语言标点符号时必须关掉中文输入法。

 解决办法:

删除相应的外键;或使用nocheckconstraint语句禁止约束  

在“对象资源管理器”中实现

(1)题中的三张表

在“对象资源管理器”中向这

(1)题中的三张表添加至少10条记录(数据如教材56页所示),如果出现错误,分析错误原因

3.主要仪器设备及软件:

(1)PC

(2)MicrosoftSQLServer2005

实验三修改表格结构,修改和删除表格中的数据

(验证型实验4学时)

1.目的要求:

用ALTER语句修改表结构:

添加列,修改列定义,删除列。

使用UPDATE和DELETE语句修改和删除Student,sc,course表格中的数据。

2.实验内容:

如下所示,创建表s,并完成随后的操作

Createtables(snochar

(2)primarykey,snamechar(10));

向表中添加属性列status,数据类型为int

向表中添加属性列city,数据类型为varchar(20),并限定其取值范围为“上海”,“北京”,“天津”之一

修改属性列status的数据类型为smallint

删除(3)题中取值范围的约束

删除属性列status

如教材85页所示,建立student,sc,course等表,并插入若干数据,完成如下操作:

列出没有成绩的学生的学号和课程号

列出2号课程成绩在70分到80分学生的学号

查询所有2005级的学生的姓名,性别和所在系

查询计科系2004级全体学生的所有信息

查询计科系2006级3班和4班学生的姓名和性别

查询所有以“数”打头的课程的名称和学分

查询数学系所有学生的姓名,性别和出生年份

将course表中名为PASCAL语言的课程更名为“C语言”

将所有课程的学分增加1分

删除没有选课成绩的选课记录

删除“IS”系的所有学生信息

删除所有的课程信息

3.主要仪器设备及软件:

(1)PC

(2)MicrosoftSQLServer2005

实验四查询(多表查询,嵌套查询,分组查询)

(验证型实验12学时)

1.目的要求:

实现单表和多表的普通查询和嵌套查询。

包括返回单值的子查询和返回多值的子查询。

使用5个聚合函数以及GROUPBY子句和HAVING子句实现分组查询.

2.实验内容

有如下关系模式,分析每个关系模式的主码,外码,完成后面的查询

职员表:

Emp(eid:

integer;ename:

string,salary:

real)

部门表:

Dept(did:

integer,dname:

string,managerid:

integer,floornum:

integer)

职员与部分的关系表:

Works(eid:

integer,did:

integer);

Works表表示:

一个职员可以在多个部门工作,一个部门有多个职员

Dept表中managerid可以取值null,表示尚未任命部门经理,floornum可以取值null,表示尚未分配工作地点

用单表查询完成如下操作:

输出所有员工的姓名和工资

输出薪水少于10000或者大于100000的雇员的名字

输出所有姓“欧阳”,且全名为四个字的雇员的姓名和工资

输出薪水在20000和50000之间的雇员的名字

输出部门名字中含有“_”的所有部门的名字和楼层号

查询公司的员工数

查询所有还没有部门经理的部门的名字和编号

查询所有已分配楼层的部门的所有信息

用连接查询完成如下操作:

查询“电视”部门的职工人数

输出每个部门的名字和平均工资

查询每个部门的部门编号,及其拥有的雇员的人数

查询在第10层工作,同时薪水少于¥50000的所有雇员的名字

输出同时管理三个或者更多部门的管理者的名字

输出管理在同一层上10个以上部门的所有管理者的名字

输出雇员“刘丽”工作的部门的名字

用嵌套查询完成如下操作:

查询工资最高的雇员的名字

查询工资最低的雇员的名字及其所在部门的编号和名字

输出与Santa工作部门相同的所有雇员的所有信息

找出薪水在20000以上,并且在电视部门或者玩具部门工作的雇员的名字

输出与刘丽在同一层工作的雇员的名字

输出比所在部门的经理挣的还要多的雇员的名字

输出满足如下条件的各个部门的名字:

经理的姓为张,同时他的薪水既不是本部门最高也不是最低

输出比“玩具”部门所有职工工资都高的雇员的姓名

输出比“电视”部门职工平均工资高的雇员的姓名

找出所有有职工的部门的名字和楼层号

查询所有没有职工的部门编号和名字

输出同时在玩具部门和糖果部门工作的雇员的名字和薪水

3.主要仪器设备及软件:

(1)PC

(2)MicrosoftSQLServer2005

实验五为表格建立约束,修改约束和查询约束

(验证型实验4学时)

1.目的要求:

使用ALTER语句和CREATE语句建立、修改、删除和查询约束

2.实验内容

执行以下SQL语句,完成随后的操作,若有错误,分析错误原因并改正错误:

Createtablestudent(snochar(9)notnull,snamechar(10),ssexchar

(2),sagetinyint,sdeptvarchar(40));

Createtablecourse(cnochar(4)notnull,cnamevarchar(30),cpnochar(4),credittinyint);

Createtablesc(snochar(9),char(5),gradenumeric(3,1));

在student表中,使sdept只能取值“计算机科学学院”,“数软学院”,“电子工程学院”,“化学与材料科学学院”

在student表中sage有默认值18

为student表建立主键

为course表建立主键和外键,其中外键约束名为C_FK_CPNO

为course表建立检查约束,限定credit的取值只能取3,2,4,5;

为course表建立唯一约束,确保每们课程名字唯一

为sc表建立主键和外键,并给出相应的约束名

在course表中插入元组(1,数据库,5,4)和(2,数学,null,2),若不能正确插入,分析原因,给出解决办法

在sc表中插入元组(95001,1,92)和(95001,3,88),若不能正确插入,分析原因,给出解决办法

(2)使用系统存储过程,sp_help,sp_helpconstraint等对约束进行查询和管理

查阅联机帮助文档,选中“索引”选项卡,分别输入sp_help,sp_helpconstraint,阅读其帮助信息。

使SC数据库成为当前数据库,执行如下命令,简要解释执行结果

Execsp_help

Execsp_helpstudent

Execsp_helpcourse

Execsp_helpconstaintsc

Execsp_helpconstraintstudent

对存储过程sp_help和sp_helpconstraint进行总结,简要解释其用途

(3)修改约束:

关闭和打开某个约束。

在course表中插入元组(4,数据结构,6,4),能够插入吗?

为什么?

禁用约束C_FK_CPNO,再次插入元组(4,数据结构,6,4),能够插入吗?

为什么?

重新启用约束C_FK_CPNO

3.主要仪器设备及软件:

(1)PC

(2)MicrosoftSQLServer2005

实验六SqlServer数据库安全管理

(验证型实验4学时)

1.目的要求:

建立用户,为用户赋权限,收回权限,建立角色,给用户赋角色

2.实验内容

分别在对象资源管理器和查询窗口中完成下列操作

创建登录帐号john,并使其成为固定服务器角色dbcreator的一个成员

授予john服务器权限:

alteranylogin,createanydatabase

John可以创建登录帐号吗?

为什么?

,若能,创建安全登录帐号帐户Mary

创建用户Mary123,使用安全登录帐号Mary

授予帐户Mary123查询和修改student表的权限

创建角色teachers,拒绝teachers修改student表

使帐户Mary123成为teachers的一个成员,Mary123能够查询和修改student表吗?

为什么?

如果希望角色teachers能够修改student表,应该怎么做?

授予帐户Mary123在数据库sc中创建表和创建视图的权限

若mary123分别是固定数据库角色db_accessadmin,db_datareader和db_denydatawriter的成员,它有何能力,解释原因。

3.主要仪器设备及软件:

(1)PC

(2)MicrosoftSQLServer2005

实验七使用ADO连接数据库

(综合型实验4学时)

1.目的要求:

在高级语言中通过ADO或者ADO.NET连接SQLSERVER数据库,做一些简单应用

2.实验内容

在高级语言中使用ADO控件(ADO.NET控件)或ADO对象(ADO.NET对象)连接SQLSERVER数据库,实现对表格的基本操作,能与数据库交互,包括数据查询,元组的添加,删除和修改。

3.主要仪器设备及软件:

(1)PC

(2)SQLServer数据库,高级语言(如VB)

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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