文档库 最新最全的文档下载
当前位置:文档库 › 云大 数据库 实验五:数据库单表查询

云大 数据库 实验五:数据库单表查询

云大 数据库 实验五:数据库单表查询
云大 数据库 实验五:数据库单表查询

实验五:数据库单表查询

一、实验目的

1.掌握SELECT语句的基本语法和查询条件表示方法;

2.掌握查询条件表达式和使用方法;

3.掌握GROUP BY 子句的作用和使用方法;分组

4.掌握HAVING子句的作用和使用方法;

5.掌握ORDER BY子句的作用和使用方法。排序

二、实验环境

已安装SQL Server 2005 企业版的计算机(13台);

具有局域网环境,有固定IP;

三、实验学时

2学时

四、实验要求

1.了解数据库查询;

2.了解数据库查询的实现方式;

3.完成实验报告;

五、实验内容及步骤

以数据库原理实验4数据库中数据为基础,请使用T-SQL 语句实现以下操作:1.列出所有不姓刘的所有学生;

SELECT*

FROM stu_info

WHERE Sname LIKE'[^张]%'

GO

2.列出姓?沈?且全名为3个汉字的学

生;

3.显示在1985年以后出生的学生的基本信息;

4.按照?性别、学号、姓名、年龄、院系?的顺序列出学生信息,其中性别按

以下规定显示:性别为男显示为男生,性别为女显示为女生,其他显示为?条件不明?;

SELECT Ssex AS性别,Sno AS学号,Sname AS姓名,Sage AS年龄,Sdept AS院系,性别=

CASE

WHEN Ssex='男'THEN'男生'

WHEN Ssex='女'THEN'女生'

ELSE'条件不明'

END

FROM stu_info

GO

5.查询出课程名含有?数据?字串的所有课程基本信息;

6.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性

别、年龄及院系;

SELECT Sno AS学号, Sname AS姓名,Ssex AS性别,Sage AS年龄,Sdept AS院系FROM stu_info

WHERE Sno LIKE'_______[1-4,9]%'OR Sno LIKE'________[1-4,9]'

GO

7.列出选修了‘1’课程的学生,按成绩的降序排

列;

8.列出同时选修?1?号课程和?2?号课程的所有学生的学号;(建两张表分

别选出然后连接)

SELECT a.Sno FROM sc a,sc b

WHERE https://www.wendangku.net/doc/0e4800429.html,o=1 AND https://www.wendangku.net/doc/0e4800429.html,o=2 AND a.Sno=b.Sno

GO

9.列出课程表(course)中全部信息,按先修课(Cpno)的升序排列;

SELECT*

FROM course

ORDER BY Cpno ASC

GO

10.列出年龄(Sage)超过平均值AVG(Sage)的所有学生名单(Sname),按年龄

(Sage)的降序(DESC)显示;

SELECT*

FROM stu_info

WHERE Sage>(SELECT AVG(Sage)FROM stu_info)

ORDER BY Sage DESC

GO

11.按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在

结果集中列标题分别指定为?学号,姓名,性别,出生年份,院系?;SELECT Sno AS学号,Sname AS姓名,Ssex AS性别,出生年份=2013-Sage,Sdept AS院系

FROM stu_info

ORDER BY Sage DESC

GO

12.按照院系降序显示所有学生的?院系,学号、姓名、性别、年龄?等信息,

其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;

SELECT Sdept AS院系,Sno AS学号,Sname AS姓名,Ssex AS性别, Sage AS年龄, 院系=

CASE

WHEN Sdept='CS'THEN'计算机系'

WHEN Sdept='IS'THEN'信息系'

WHEN Sdept='MA'THEN'数学系'

WHEN Sdept='EN'THEN'外语系'

WHEN Sdept='CM'THEN'中医系'

WHEN Sdept='WM'THEN'西医系'

ELSE'院系不明'

END

FROM stu_info

ORDER BY Sdept ASC

GO

13.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段

?院系规模?,其中若该院系人数>=5则该字段值为?规模很大?,若该院系人数大于等于4小于5则该字段值为?规模一般?,若该院系人数大于等于2小于4则该字段值为?规模稍小?,否则显示?规模很小?;

SELECT DISTINCT Sdept AS院系,

院系规模=

CASE

WHEN COUNT(*)>=5 THEN'规模很大'

WHEN COUNT(*)>=4 AND COUNT(*)<5 THEN'规模一般'

WHEN COUNT(*)>=2 AND COUNT(*)<4 THEN'规模稍小'

ELSE'规模很小'

END

FROM stu_info

GROUP BY Sdept

GO

14.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及

成绩;

SELECT Sno AS学号,Cno AS课程号,Grade AS成绩

FROM sc

WHERE Grade>=70 AND Grade<=80

ORDER BY Cno DESC,Grade DESC

GO

15.显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为

?学生总人数,平均年龄?;

SELECT COUNT(Sdept)AS学生总人数,AVG(Sage)AS平均年龄

FROM stu_info

GO

16.显示选修的课程数大于3的各个学生的选修课程数;

SELECT Sno AS学号,COUNT(Cno)AS选修课程数

FROM sc

GROUP BY Sno

HAVING COUNT(Cno)>3

GO

17.按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;SELECT DISTINCT Cno,'选修人数'=COUNT(Sno),'最高成绩'=MAX(Grade),'最低成绩'=MIN(Grade),'平均成绩'=AVG(Grade)

FROM sc

GROUP BY Cno

ORDER BY Cno DESC

GO

18.显示平均成绩大于?200515001?学生平均成绩的各个学生的学号、平均成

绩;

SELECT Sno,'平均成绩'=AVG(Grade)

FROM sc

GROUP BY Sno

HAVING AVG(Grade)>

(SELECT AVG(Grade)

FROM sc

WHERE Sno='200515001')

GO

19.显示选修各个课程的及格的人数、及格比率;

SELECT DISTINCT Cno,

'及格人数'=SUM

(CASE

WHEN GRADE>1 THEN 1 ELSE 0 END),

'及格率'=SUM

(CASE

WHEN GRADE>1 THEN 1 ELSE 0 END)/COUNT(*)

FROM sc

GROUP BY Cno

GO

20.显示选修课程数最多的学号及选修课程数最少的学号;

SELECT DISTINCT'选修最多的课程'=Sno,'选修课程数'=COUNT(*)

FROM sc

GROUP BY Sno

HAVING COUNT(*)>=ALL(

SELECT COUNT(Cno)FROM sc

GROUP BY Sno)

GO

SELECT DISTINCT'选修最少的课程'=Sno,'选修课程数'=COUNT(*)

FROM sc

GROUP BY Sno

HAVING COUNT(*)<=ALL(

SELECT COUNT(Cno)FROM sc

GROUP BY Sno)

GO

21.显示各个院系男女生人数,其中在结果集中列标题分别指定为?院系名称、

男生人数、女生人数?;P152

SELECT DISTINCT'院系名称'=Sdept,

'男生人数'=SUM(

CASE

WHEN Ssex='男'THEN 1 ELSE 0

END),

'女生人数'=SUM(

CASE

WHEN Ssex='女'THEN 1 ELSE 0

END)

FROM student

GROUP BY Sdept

GO

22.列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;SELECT DISTINCT Sno,AVG(Grade)

FROM sc

GROUP BY Sno

HAVING SUM(CASE WHEN Grade<=60 THEN 1 ELSE 0 END)>=2

GO

六、出现问题及解决办法

如:某些查询操作无法执行,如何解决?

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

数据库数据查询实验报告

师学院数学与计算机科学学院 《数据库》实验报告 实验序号:07 实验项目名称:数据查询 学号2014210758 姓名邹业安专业、班级14信科 实验地点222 指导教师褚万军时间2017.6.07 一、实验目的及要求 ?掌握从简单到复杂的各种数据查询。包括:单表查询、多表连接查询、嵌套查询、集合查询。 ?掌握用条件表达式表示检索条件。 ?掌握用聚合函数计算统计检索结果。 二、实验设备(环境)及要求 1、环境要求: 硬件:PC(PII以上,128M以上存)、因特网接入; 软件:在SQL Server 2000中 三、实验容与步骤 1、一般简单查询 (1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。select distinct 学号 from 选课 select 学号 from 选课

(2)查询某个表中的所有记录查询教师表中的所有记录 (3)使用单个条件的简单查询查询成绩大于50的学生的学号select 学号 from 选课where 成绩>50

(4)使用多个条件(AND关系)的查询 select工资 from教师 where工资>200 and工资<500 (5)使用多个条件(OR关系)的查询 select工资 from教师 where工资<200 or工资>500 (6)使用多个条件(混合AND和OR关系)的查询 select*from学生 where (院系='2'and生源='')or(院系='6'and生源='') (7)使用带NOT运算的查询

where not (生源='') (8)使用BETWEEN???AND???的查询 select * from 选课 where 成绩 between 86 and 93 (9)使用NOT???BETWEEN???AND???的查询select * from 选课 where 成绩 not between 76 and 93 (10)使用LIKE运算符的字符串匹配查询。

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

SQL查询—— 简单查询实验报告书

实验题目:SQL查询——简单查询 【实验目的与要求】 一、实验目的 1. 熟练掌握单表查询的SELECT语法结构; 2. 通过观察查询结果, 体会SELECT语句的实际应用。 二、实验要求 1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验 内容的预习准备工作。 2.能认真独立完成实验内容。 3.实验后做好实验总结,根据实验情况完成实验报告。 【实验环境】 PC机、Windows XP系统+SQL Server 2005 【实验内容】 基于实验一建立的EDUC 数据库,用Transact-SQL 语句实现如下查询: 1.选修了课程的学生学号; 2.计算机系的学生; 3.计算机系学生的学号和姓名; 4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序) 5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出; (提示:新输出项要命名列标题) 6.没有成绩的学生的学号和上课编号; 7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序 排列,如果成绩相同则按学号的升序排列;(提示:查询输出哪几项) 8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注: 默认排序规则通常是Chinese_PRC_CI_AS,汉字按照汉语拼音的字典顺序来排序:首先按拼音,拼音相同按声调,声调相同按笔画数。)

9.姓李和刘的学生的信息; 10.不姓张王李刘的学生的学号、姓名和性别; 11.选修课程的学生人数; 12.选修上课编号为1的学生的最高分; 13.每位学生所修课程的平均分; 14.选修两门以上课程的学生; 15.总成绩大于200 分的学生的学号和总成绩。(提示:group by分组统计)【实验方法和步骤】 1.新建查询,在查询编辑器中依次按照如上实验内容编写SELECT语句完成查询。

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept 1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的 execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

实验报告 数据库的基本查询'

一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验二建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示: (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。 使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:

(3) 查询STUDENT表的前3条记录(top 3)。 使用SQL语句:“select top 3 * from Student”,得出结果如下图所示: 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示: 若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示: (2) 查询信息系和计算机系的姓名和成绩。 使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:

数据库原理实验报告四(有答案)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验四查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询 操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降 序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并 将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作: a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编 辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表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 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

数据库实验98235

数据库原理实验指导 实验前准备: 请设计一个企业销售管理据库,其中需要保存的信息如下: 员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期; 客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码; 产品信息,包括:产品编号,产品名称; 员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。 此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期;要求: (1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型; (2)将ER图转换为关系模型; 实验一 实验名称:数据定义(2课时)

一、实验目的 1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER 企业管理器的使用,并将得到的表生成脚本,然后保存。 2、理解上述基本表之间的关系,建立关系表。 3、掌握修改表结构的基本方法 4、掌握索引和视图的创建方法 二、实验环境 MS SQL SERVER或者My Sql。 三、实验内容与步骤 1、建立一个数据库和五张表的表结构。 (1)/*员工人事表employee */

Create datebase sale; create table employee( emp_no char(5) Not null primary key, emp_name char(10) Not null, sex char(1) Not null, dept char(4) null, title char(6) null, date_hired datetime null, birthday datetime null, salary int null, addr char(50) null, Mod_date datetime Default 0, constraint c1 check(性别in('男','女')) ); (2)/*客户表customer */ create TABLE customer( cust_id char(5) Not null primary key, cust_name char(20) Not null, addr CHAR(40) Not null, tel_no char(10) Not null, zip char(6) null ); (3)/*销售主表sales */

数据库实验报告1

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

实验三--数据库中的数据查询及视图操作实验报告

实验三--数据库中的数据查询及视图操作实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 实验 名称: 实验三数据库中的数据查询及视图操作(1) 班级: 姓 名: 学 号: 实验地点: 日期: 一、实验目的: 1.继续熟练SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.掌握SELECT语句的使用。 3.掌握单表查询,多表查询以及嵌套查询。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验三),(如:041540538张三(实验三)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 【实验环境】 1.SQL SERVER 2005/2008; 2.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】

针对实验一建立的数据库的表,用select语句完成如下查询操作,写出select语句,并给出操作结果。 1.针对SPJ数据库中的四个表,实现如下查询: (1)求供应工程J1零件的供应商号码SNO; (2)求供应工程J1零件P1的供应商号码SNO; (3)求供应工程J1零件的供应商名SNAME; (4)求供应工程J1零件P1的供应商名SNAME; (5)求供应工程J1零件为红色的供应商号码 SNO; (6)求没有使用天津供应商生产的红色零件的 工程号JNO; (7)求至少用了供应商S1所供应的全部零件的 工程号JNO; (8)找出使用上海产的零件的工程名称; 2.针对学生-课程数据库中的三个表,用嵌套方法查询实现如下查询: (1)查询选修了数据库的学生姓名。 (2)查询比计算机系CS所有学生年龄都大的学生信息。 (3)列出“李勇”选修的所有课程的课名和成绩。(4)查询数据库的先行课的课程名。 3.针对实验一建立的SPXS数据库中的三个表,实现如下查询: (1)查询与商品“电视”颜色相同的商品名; (2)查询不销售商品P2的商店名; (3)查询至少销售商品P1、P2两种商品的商店名; (4)所有商店都销售的商品号。 (5)只销售一种商品P4的商店名。 三、实验结果与分析: 写出操作语句,粘贴查询结果(粘贴结果要求粘贴SQL Server Managemet Studio整个窗口):

数据库实验五

西南石油大学实验报告 注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。 一、实验课时:2 二、实验目的 (1) 学习如何编写简单的Transact-SQL程序。 (2) 掌握函数的使用。 (3) 学习如何执行Transact-SQL程序。 (4) 掌握简单存储过程的编写方法。 (5) 掌握简单自定义函数的编写方法。 三、实验要求 (1) 使用SQL Server 2008查询分析器。 (2) 严格依照操作步骤进行。 四、实验环境 (1) PC机。 (2) SQL Server 2008。 五、实验内容及步骤 1.使用局部变量、全局变量 (1)定义一个tinyint的整型变量,为其赋值45,并显示变量的值。DECLARE@LENGTH tinyint SET@LENGTH= 45

PRINT@LENGTH; (2)定义一个长度为20的可变长度型字符变量,为其赋值“Welcome to SWPU”,并显示变量的值。 DECLARE@str nchar(20) SET@str='Welcome to SWPU' PRINT@str (3)查询当前数据库服务器名。 select@@SERVERNAME

(4)查询当前数据库管理系统版本。 SELECT@@VERSION; 2.函数的使用 (1) 数学函数的使用 分别用函数求出-3的绝对值,16的平方根,5的三次方。DECLARE@i int; SET@i=-3; SELECT ABS(@i); GO select sqrt(16)

select power(5,3) (2) 字符串函数的使用 1)分别将字符串“china”、“MACHINE”转换成大写、小写字母; select upper('china') select lower('MACHINE')

数据库SQL查询语句实验报告

实验一简单查询 在订单数据库中完成如下的查询 (1) 查询所有业务部门的员工姓名、职称、薪水 命令: select employeeName2612,headShip2612,salary2612 from Employee2612 where department2612='业务科' 结果: (2) 查询名字中含有“有限”的客户姓名和所在地。 命令: select CustomerName2612,address2612 from Customer2612 where CustomerName2612 like '%有限%' 结果: (3) 查询出姓“王”并且姓名的最后一个字为“成”的员工。 命令: select * from Employee2612 where employeeName2612 like '王%成' 结果: (4) 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。 命令:

select employeeName2612,department2612,headShip2612,address2612, case sex2612 when 'M' then '男' when 'F' then '女' end as 性别 from Employee2612 where address2612 like '%上海%' or address2612 like '%南昌%' and sex2612='F' 结果: (5) 在表sales中挑出销售金额大于等于10000元的订单。 命令: SELECT orderNo2612,sum(quantity2612*price2612) as total FROM OrderDetail2612 GROUP BY orderNo2612 HA VING sum(quantity2612*price2612)>10000 结果: (6) 选取订单金额最高的前10%的订单数据。 命令: select TOP 10 PERCENT orderNo2612, sum(quantity2612*price2612) as total from OrderDetail2612 group by orderNo2612 ORDER BY total desc 结果: (7) 查询出职务为“职员”或职务为“科长”的女员工的信息。 命令: select * from Employee2612 where headShip2612 in ('科长','职员') and sex2612='F' 结果:

数据库实验报告五

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班 姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept

1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output 的是输出参数 as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

北邮大三下数据库实验报告5

北京邮电大学 实验报告 课程名称数据库系统原理 实验内容实验5 数据库完整性与安全性实验 班级2013211***姓名 *** 指导老师成绩_________ 2016年05月20日

实验5 数据库完整性与安全性实验 实验目的: 1.通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方 法,加深对数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法, 加深对数据库安全性的理解 实验内容 完整性实验与要求: 1.分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 定义主键: 方法一:使用Enterprise Manager设置主键(以book表为例) ①光标移到book表的位置,右键->设计 ②在你要选的属性列右键->设置主键,完成。

方法二:使用SQL语句。 ①右键数据库,新建查询 设置外键: 方法一:使用Enterprise Manager设置外键(以student表为例) ①单击student表,鼠标移到“键”文件夹,单击右键,选择“新建外键”。 ②选择“表和列规范”进行设置

③我们想在student表设置class_id属性为外键,按照下图选择,点击确定,保存即可。 方法二:SQL语句 新建查询,输入如图语句。

2.向学生表插入具有相同学号的数据,验证其实体完整性约束; Student表的主键是学号,所以不能插入有相同学号的学生。 3.向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; Class表中没有“2013211302”这个班级,所以无法插入。改变班级号为class表中存在的,则能够进行插入,结果如下: 4.删除教师表中的所有数据,验证参照完整性约束;

数据库上机实验报告

实验一:建立数据库及基本表 一、实验目的 1、了解SQL Server数据库的逻辑结构和物理结构; 2、了解SQL Server的基本数据类型; 3、学会在企业管理器中创建数据库和表; 4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。 二、实验内容 1、创建数据库和查看数据库属性。 2、创建表。 3、查看和修改表结构。 4、熟悉企业管理器和查询分析器工具的使用方法 三、实验步骤 1、在企业管理器中创建数据库和数据表。 (1) 使用企业管理器建立图书管理数据库,数据库名为BM,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名均采用默认值。 详细步骤: (2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。 (3) 通过企业管理器,在建好了图书管理数据库BM中建立图书(book)、读者(reader)和借阅(borrow)3个表,其结构为: 图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话); 借阅(书号,读者编号,借阅日期)。 (4) 利用企业管理器向表中输入数据。 2、在查询分析器中创建数据库和数据表 (1) 创建数据库S-C 的sql语句: create database s_c (2) 在数据库S-C下,创建基本表学生表student(sno,sname,ssex,sage,sdept)的sql语句: create table student( sno c(8),sname c(10),ssex c(2),sage(4),sdept c(8) ) 创建基本表课程表course(cno,cname, ccredit)的sql语句: create table course( cno c(4),cname c(10),ccredit c(2) ) 创建基本表成绩表sc(sno,cno,grade)的sql语句: create table sc( sno c(8),cno c(4),grade n(4) )

数据库实验5

实验5 SQL的数据操纵功能 实验目的 学会使用MS SQL SERVER 2000的查询分析器完成SQL的数据操纵功能,主要包括数据插入、删除与修改。 知识点拨: 1.数据插入语法格式: 2.数据修改语法格式: 3.数据删除语法格式: 4.SELECT … INTO…语句的使用: 实验内容 1.数据插入 2.数据修改 3.数据删除 4.SELECT … INTO…语句: 实验步骤 1.选择数据库JX; 注意:以下操作请验证结果! 2.数据插入: 1)向学生表加入一条记录,其学号、姓名、性别和系别分别为:(’06011’,’王文 娟’,’女’,’计算机’); insert into Student(Sno,Sname,Sex,Sdept) values ('06011','王文娟','女','计算机') 2)向学生表加入一条记录,其姓名、性别和系别分别为:(’王娟’,’女’,’计算 机’),观察运行结果; 3)创建一个与学生信息表结构完全相同的基本表CP_Student,用以存储计算机和外 国语系学生信息; create table CP_Student ( Sno char(10) not null, SName varchar(10), Sex char(2), Sbirth smalldatetime, Sdept varchar(20), total smallint )

4)将Student中计算机系和外国语系的学生信息插入到CP_Student; insert into CP_Student select * from Student where Sdept='CS'or Sdept='外国语系' 3.数据修改: 1)把教师“王芳”改为“王芳龄”; update Teacher set Tname='王芳龄' where Tname='王芳' 2)将职称是副教授的教师工资提高2%; update Teacher set Tpay=Tpay*(1+0.02) where Tprof='副教授' 3)将计算机系和外国语系学生的考试成绩分别下调4%和增加2分; update Student set Total=total*(1-0.04) where Sdept='CS' update Student set Total=Total+2 where Sdept='外国语系' 4)把李强同学的所有分数都加1分;(可使用UPDATE。。。FROM 。。。WHERE。。。) update SC set Grade=Grade+1 where Sno=( select Sno from Student where SName='李强' ) 5)选做题:对课程表中的学分进行修改,修改方式为:学分低于3分的加0.4分,高 于3分的减去0.5分,3分的加0.2分; update Course set Credit=Credit+0.4 where Credit<3 update Course set Credit=Credit-0.5 where Credit>3

数据库实验报告

实验一 SQL Server基本使用与数据定义一.实验目的 1.掌握“服务管理器”、“企业管理器”及“查询分析器”基本使用方法;2.熟悉数据库建模及E/R图的画法; 3.掌握SQL Server 中数据库、及数据表的建立与管理方法; 4.掌握数据的导入/导出及数据库备份/还原方法。 二.实验内容 一、SQL Server 基本使用 1.启动SQL SERVER。 2.注册服务器 3.企业管理器属性 4.查询分析器介绍 5.查看数据库及浏览表中记录 二、数据库的建立与管理 1.数据库建模 2.启动、并打开SQL Server 3.使用图形界面创建数据库和表 4.使用查询分析器创建表 5.数据库的备份与还原

实验二 SQL查询 一.实验目的: 1.掌握SQL语言中SELECT语句的多种查询方式。 2.掌握对表建立与删除索引的方法。 3.掌握聚焦函数的使用方法。 4.掌握集合查询方法。 二.实验内容: 1.建立与删除[索引]的方法。 在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。 CREATE INDEX 代理商No ON 代理商(代理商编号) CREATE INDEX 客户No ON 客户(客户编号) CREATEINDEX产品No ON产品(产品编号) CREATEINDEX订单No ON订单(订单编号) 2.单表查询, ①从产品表中查询现有产品的库存量。 SELECT COUNT(*) FROM产品 ②从客户表中查询“王五”的地址及代理商编号。 SELECT地址,代理商编号 FROM客户 WHERE姓名='王五' ③从代理商表中查询代理商“惠普”的提成金额。 SELECT提成金额 FROM代理商 WHERE姓名='惠普' ④从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。 SELECT产品编号,订购数量 FROM订货项目 WHERE订单编号='444' ⑤分别求代理商和客户的总数。 SELECT COUNT(*)代理商数 FROM代理商 SELECT COUNT(*)客户数 FROM客户 ⑥从订货项目表中,查询编号为0033的产品定货总数量。 SELECT COUNT(*)订货总数量 FROM订货项目 WHERE订单编号='0033' 3.多表查询 ①查询编号为300的客户通过的代理商的姓名和地址。 SELECT代理商.姓名,代理商.地址

数据库实验(实验七数据查询)实验报告答案

实验7数据查询 【实验内容】 7.1单表查询 1、指定列或全部列查询 1) 查询S表中全体学生的详细记录 use jxsk select * from S 出言岂select - f Tdtt s| .1结杲 SEX AGE DEPT NATEVE J_a, i so i王青 山 19计算机NULL 2SI—赵亦17软件MULL 35218计算机NULL 4S3弓綽明胃IS信息NULL 554李四21包动ft NULL &S519软件NULL 756昊丽20计算机NULL 8S7范思明女ie NULL 9S820自动化NULL 10 S919枫牛NULL 2) 查询所有学生的姓名及其岀生年份。 use jxsk select SN, 2012 - AGEfrom S 1 「王 諭】 1&93 2赵亦1995 J钱尔1594 4號慣明隔 &李四1S51 6周展憫1553 7昊丽1382 8范思明1994 S??1S92 10张海涛 2、按条件查询及模糊查询 1)查询考试成绩有不及格的学生的学号。 use jxsk selectdistinct SNOfrom SCwhere SCORE<60 2)查询年龄在20 —23岁之间的学生的姓名、系名和年龄use jxsk select SN,

DEPT, AGEfrom S where AGE>=20 and AGE<= 30 □ us* select 5N, DEET, troni 5 L AGE>=20 ard AGE<-30 V结果J消息 | SH DEPT ,

相关文档