数据库原理及安全技术教学实验报告SQL实践(一)

目录

一、实验目的

二、实验软硬件要求

三、实验预习

四、实验内容(实验步骤、测试数据等)

给定如表3.6、表3.7和表3.8所示的学生信息。

1.在SQL Server中使用对象资源管理器和SQL命令创建学生作业管理数据库,数据库的名称自定。

2.对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。

3.使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表,在实验报告中给出SQL代码。

4.在各个表中输入表3.6、表3.7和表3.8中的相应内容。

5..进行以下的查询操作(每一个查询都要给出SQL语句,列出查询结果)。

运行结果:

1.在SQL Server中使用对象资源管理器和SQL命令创建学生作业管理数据库,数据库的名称自定。

2.对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。

3.使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表,在实验报告中给出SQL代码。

4.在各个表中输入表3.6、表3.7和表3.8中的相应内容。

5.进行以下的查询操作(每一个查询都要给出SQL语句,列出查询结果)。


一、实验目的

1.掌握在SQL Server中使用对象资源管理器和SQL命令创建数据库与修改数据库的方法、创建数据表和修改数据表的方法。

2.掌握在SQL Server中使用对象资源管理器或者SQL命令创建数据表和修改数据表的方法(以SQL命令为重点)。

3.掌握无条件查询、条件查询、库函数及汇总查询、分组查询、查询的排序、连接查询的使用方法。

二、实验软硬件要求

1、SQL Server 2008

三、实验预习

建库、建表、表约束、数据插入、单表查询、表连接等SQL语句。

四、实验内容(实验步骤、测试数据等)

给定如表3.6、表3.7和表3.8所示的学生信息。

表3.6  学生表S

学号

姓名

性别

专业班级

出生日期

联系电话

0433

张艳

生物04

1986-9-13

0496

李越

电子04

1984-2-23

1381290××××

0529

赵欣

会计05

1984-1-27

1350222××××

0531

张志国

生物05

1986-9-10

1331256××××

0538

于兰兰

生物05

1984-2-20

1331200××××

0591

王丽丽

电子05

1984-3-20

1332080××××

0592

王海强

电子05

1986-11-1

表3.7  课程表C

课程号

课程名

学分数

学时数

任课教师

K001

计算机图形学

2.5

40

胡晶晶

K002

计算机应用基础

3

48

任泉

K006

数据结构

4

64

马跃先

M001

政治经济学

4

64

孔繁新

S001

高等数学

3

48

赵晓尘

表3.8  学生作业表W

课程号

学号

作业1成绩

作业2成绩

作业3成绩

K001

0433

60

75

75

K001

0529

70

70

60

K001

0531

70

80

80

K001

0591

80

90

90

K002

0496

80

80

90

K002

0529

70

70

85

K002

0531

80

80

80

K002

0538

65

75

85

K002

0592

75

85

85

K006

0531

80

80

90

续表    

课程号

学号

作业1成绩

作业2成绩

作业3成绩

K006

0591

80

80

80

M001

0496

70

70

80

M001

0591

65

75

75

S001

0531

80

80

80

S001

0538

60

80

1.在SQL Server中使用对象资源管理器和SQL命令创建学生作业管理数据库,数据库的名称自定。

(1)使用对象资源管理器创建数据库,请给出重要步骤的截图。

(2)删除第(1)步创建的数据库,再次使用SQL命令创建数据库,请给出SQL代码。

(3)创建数据库之后,如果有需要,可以修改数据库。

2.对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。

字段名

数据类型

长度或者精度

默认值

完整性约束

……

……

……

……

……

……

……

……

3.使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表,在实验报告中给出SQL代码。

4.在各个表中输入表3.6、表3.7和表3.8中的相应内容。

5. 进行以下的查询操作(每一个查询都要给出SQL语句,列出查询结果)。

(1)查询各位学生的学号、班级和姓名。

(2)查询课程的全部信息。

(3)查询数据库中有哪些专业班级。

(4)查询学时数大于60的课程信息。

(5)查询在1986年出生的学生的学号、姓名和出生日期。

(6)查询三次作业的成绩都在80分以上的学号、课程号。

(7)查询姓张的学生的学号、姓名和专业班级。

(8)查询05级的男生信息。

(9)查询没有作业成绩的学号和课程号。

(10)查询学号为0538的学生的作业1总分。

(11)查询选修了K001课程的学生人数。

(12)查询数据库中共有多少个班级。

(13)查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

(14)查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。

运行结果:

1.在SQL Server中使用对象资源管理器和SQL命令创建学生作业管理数据库,数据库的名称自定。

(1)使用对象资源管理器创建数据库,请给出重要步骤的截图。

 

(2)删除第(1)步创建的数据库,再次使用SQL命令创建数据库,请给出SQL代码。

create database 学生作业管理数据库;

2.对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。

表3.6

字段名

数据类型

长度或者精度

默认值

完整性约束

学号

Char(9)

9字节

Primary key

姓名

Char(20)

20字节

unique

性别

Char(2)

20字节

专业班级

Char(20)

20字节

出生日期

date

联系电话

Char(11)

11字节

表3.7

字段名

数据类型

长度或者精度

默认值

完整性约束

课程号

Char(9)

9字节

Primary key

课程名

Char(20)

20字节

unique

学分数

Numeric(2.1)

小数点一位

学时数

smallint

2字节

任课教师

Char(20)

20字节

表3.8

字段名

数据类型

长度或者精度

默认值

完整性约束

课程号

Char(9)

9字节

Primary key,foreign key

学号

Char(9)

9字节

Primary key,foreign key

作业1成绩

Int

4字节

作业2成绩

Int

4字节

作业3成绩

Int

4字节

3.使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表,在实验报告中给出SQL代码。

create table S
(Sno char(9) primary key,
Sname char(20) unique,
Ssex char(2),
Sclass char(20),
Sbirth date,
tell char(11)
);
create table C
(Cno char(9) primary key,
Cname char(20) unique,
Ccredit numeric(2,1),
Chour smallint,
Cteacher char(20)
);
create table W
(Cno char(9) ,
Sno char(9) ,
Wn1 int,
Wn2 int,
Wn3 int,
primary key(Cno,Sno),
foreign key(Sno) references S(Sno),
foreign key(Cno) references C(Cno)
);

4.在各个表中输入表3.6、表3.7和表3.8中的相应内容。

 

 

5. 进行以下的查询操作(每一个查询都要给出SQL语句,列出查询结果)。

(1)查询各位学生的学号、班级和姓名。

select Sno,Sclass,Sname

from S;

(2)查询课程的全部信息。

select *

from C;

(3)查询数据库中有哪些专业班级。

select distinct Sclass

from S;

(4)查询学时数大于60的课程信息。

select *

from C

where Chour>60;

(5)查询在1986年出生的学生的学号、姓名和出生日期。

select Sno,Sname,Sbirth

from S

where Sbirth>='1986-1-1'

and Sbirth<'1987-1-1';

或者

select Sno,Sname,Sbirth
from S
where Sbirth like '%1986%';

来自2023年1月数据库培训记录,g,我还再学数据库O-O

% 表示任意字符出现任意次数。(这里的任意当然包括 0 、1、无数)

_ 只匹配单个字符。

(6)查询三次作业的成绩都在80分以上的学号、课程号。

select W.Sno,W.Cno

from W

where Wn1>80

and Wn2>80

and Wn3>80;

(7)查询姓张的学生的学号、姓名和专业班级。

select Sno,Sname,Sclass

from S

where Sname like'张%';

(8)查询05级的男生信息。

select *

from S

where Sclass like'%05'

and Ssex='男';

(9)查询没有作业成绩的学号和课程号。

select Sno,Cno

from W

where Wn1 is NULL

or Wn2 is NULL

or Wn3 is NULL;

(10)查询学号为0538的学生的作业1总分。

select Sum(Wn1) as 总分数

from W

where Sno=0538;

(11)查询选修了K001课程的学生人数。

select count(Sno) as 选修K001课程的学生人数

from W

where Cno ='K001';

(12)查询数据库中共有多少个班级。

select count(distinct Sclass)  as 班级数

from S;

(13)查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

select Sno,AVG(Wn1)as Wn1平均分,AVG(Wn2)as Wn2平均分,AVG(Wn3)as Wn3平均分

FROM W

GROUP BY Sno/*按学生分组 */

Having COUNT(Cno)>=3

(14)查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。

select S.Sno,S.Sname,C.Cname

FROM W

inner join S

on S.Sno=W.Sno

inner join C

on C.Cno=W.Cno

where S.Sname='于兰兰';

select S.Sno,S.Sname,C.Cno

from W,S,C

where S.Sno=W.Sno

and W.Cno=C.Cno

and S.Sname='于兰兰';

五、实验体会

操作不够熟练,需要加强练习。

本文档为数据库上机实验报告,是自己认认真真步写的,报告包含试验中的具体步骤,过程以及代码和实验结果截图,和实验总结。 实验 实验题目: 数据库管理系统的使用 实验目的: 掌握SQL SERVER2005的使用和数据库设计的般方法。 实验内容: (1)SQL SERVER2005的使用 (2)数据库的设计过程并利用SQL SERVER2005建立数据库实验实验题目: 数据库的定义 实验目的:掌握数据建立、修改、删除、索引的SQL语句。 实验内容: (1)数据的建立 (2)数据的修改 (3)数据的删除 (4)数据的索引建立 为S的DEPT建立唯索引 (5)视图的建立与删除 建立个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 查询1983年以后出生的计算机系学生基本信息。 建立个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。 查询计算机系学生选课多于3门的学生学号。 查询计算机系学生2号课不及格的学生学号和成绩。 实验实验题目: 数据的操作 实验目的: 掌握数据数据操作的SQL语句。 实验内容: SQL语句插入数据操作 SQL语句修改数据操作 SQL语句删除数据操作 SQL语句查询数据操作 维护数据SQL语句: (1)在学生中插入新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’) (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号。 (1) 检索计算机系女生的学号和姓名。 (2) 检索全体学生姓名、出生年份和所在系。 (3) 检索未选修任何课程的学生学号。 (4) 检索WANG老师所授课程号、课程名。 (5) 检索所有姓LI同学的基本信息。 (6) 检索选修‘DATABASE’课程的学生学号。 (7) 检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。 (8) 检索选修TIAN老师所授全部课程的学生学号。 实验实验题目: T-SQL编程 实验目的: 掌握T-SQL语句的使用。 实验内容: 1.定义变量,用来存储两名学生的学号,姓名,所在系。 2.编写个自定义的函数,该函数接受个学生姓名,返回其学生中基本信息及选课情况。 3.试用CASE语句输出学生中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性检查及违约处理方式。 掌握触发器的定义及使用。 实验内容: 1. 定义S, C的完整性约束 2. 定义SC的完整性约束,要求当其被参照发生删除操作时,违约处理的方式为级联,当其被参照发生修改操作时,违约处理的方式为拒绝。 3. 触发器 ☆ 建立DML触发器,每当学生的成绩发生更新时,将更新的学号,成绩存入g-log内 ☆ 建立个INSTEAD OF触发器,每当修改课程中记录时,利用触发器动作替代修改操作。 ☆ 建立个DDL 触发器,不允许删除数据库,并作出响应。 实验实验题目: 数据库的安全性 实验目的: 掌握SQL SERVER 2005的安全控制机制 实验内容: 1. 创建登录 创建lg1,lg2,并设定口令 2. 定义用户 定义user1,user2,user1以lg1登录,user2以lg2登录,user1定义角色ddl_admin,datareader,datawriter 3. 掌握SQL SERVER 2005架构和用户分离的概念 为user1创建架构u1,并建立test,通过授权模式的方法,授权给user2访问test的权限 4. 数据库的授权、收权语句 ☆ 将查询SC和修改GRADE属性的权限授予用户user1。 ☆ 将对S的插入权限授予用户user2,并允许他将此权限授予其他用户。 ☆ 收回所有用户对S的插入权限。 实验实验题目: 数据库的设计 实验目的: 掌握数据库的概念结构设计和逻辑结构与设计,掌握ER图的示方法即如何将ER模型转化为关系模型 1.学校有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课有若干学生选修。 2.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料组成,不同零件所用的材料可以相同。有些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。
数据库随课实验数据库原理及应用》 实验类别: 课内实验 实验课程名称: 数据库原理及应用 实验室名称:软件工程实验实验课程编号: 02060007 总学时: 56 学 分: 3.5 适用专业: 计算机科学与技术、网络工程、软件工程 先修课程: 离散数学、计算机导论及操作、数据结构 实验在教学培养计划中地位、作用: 数据库原理及应用是门理论与实践相结合的课程,上机实验环节是本课程的重要组成部分。实验的目的是为了配合课堂教学,进步强化对数据库原理的理解。实验的任务是要结合数据库原理SQL Server 2000数据库系统,熟练掌握和深入理解课堂教学内容,实现从理论到实践的统实验 SQL数据定义(2学时) 1、实验目的 掌握DBMS的数据定义功能 掌握SQL语言的数据定义语句 2、实验内容 创建、删除 查看、修改的定义 理解索引的特点 创建和删除索引 3、实验要求 熟练掌握SQL数据定义语句CREATE、ALTER、DROP 写出实验报告 4、实验步骤 设有个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC: 学生:Student(Sno,Sname,Ssex,Sage,Sdept) 课程:Course(Cno,Cname,Cpno,Ccredit) 学生选课:SC(Sno,Cno,Grade) 创建、删除,例如: CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1) , Sage INT, Sdept CHAR(15))
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王陈锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值