当前位置:文档之家› 数据库原理中SQL语句实验指导书及答案Word版

数据库原理中SQL语句实验指导书及答案Word版

实验四:管理SQL Server表数据

一、实验目的

熟悉数据表结构及使用特点;

熟悉使用Management Stuio界面方式管理数据表数据;

熟悉使用T-SQL语句管理数据表数据。

二、实验环境

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

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

三、实验学时

2学时

四、实验要求

了解SQL Server数据表数据的管理方法;

了解SQL Server数据类型;

完成实验报告(部分题只需给出关键语句)。

五、实验内容及步骤

以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:

向各个数据表中插入如下记录:

学生信息表(student)

课程信息表(course)

选课信息表(sc)

insert into student.dbo.sc values('20051501','1',75)

insert into student.dbo.course values('1','数据库','5',4)

insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;

update student

set Sname='李咏'

where Sname='李勇'

3.修改课程“数据处理”的学分为3学分;

3.update course

set Ccredit=3

where Cname ='数据处理'

4.将选修课程“1”的同学成绩加5分;

4.update sc

set Grade =Grade+5

where Cno='1'

5.将选修课程“大学英语”的同学成绩加5分;

update sc

set Grade=Grade+5

from course,sc

where https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and https://www.doczj.com/doc/9b19181922.html,ame='大学英语'

6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update student

set Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'

where Sno='200515010'

7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)

8.删除数据表student中无专业的学生记录;

delete

from student

where Sdept is null

9.删除数据表student中计算机系年龄大于25的男同学的记录;

delete

from student

where Ssex='男' and Sage>25 and Sdept='CS'

10.删除数据表course中学分低于1学分的课程信息;

delete

from course

where Ccredit<1

实验五:数据库单表查询

一、实验目的

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

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

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

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

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

二、实验环境

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

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

三、实验学时

2学时

四、实验要求

1.了解数据库查询;

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

3.完成实验报告;

五、实验内容及步骤

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

1.select *

from student

where Sname not like '刘%'

2.列出姓“沈”且全名为3个汉字的学生;

select *

from student1

where Sname like'沈__'

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

select *

from student

where YEAR(GETDATE())-Sage>1985

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

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

select 性别=

case

when Ssex='男' then'男生'

when Ssex='女' then'女生'

else '条件不明'

end,Sno 学号,Sname 码,Sage 年龄,Sdept 院系

from student

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

select *

from course

where Cname like '%数据%'

7.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;6.select Sno,Sname,Ssex,Sage,Sdept

from student

where Sno like '_______[1,2,3,4,9][1,2,3,4,9]%'

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

select student.*,sc.*

from student,sc

where student.Sno =sc.Sno and https://www.doczj.com/doc/9b19181922.html,o='1'

order by Grade DESC

9.列出同时选修“1”号课程和“2”号课程的所有学生的学号;

select Sno

from sc

where Cno='1' and Sno in(

select Sno

from sc

where Cno='2'

10.列出课程表中全部信息,按先修课的升序排列;

select *

from course

order by Cpno Asc

11.列出年龄超过平均值的所有学生名单,按年龄的降序显示;

select *

from student

where Sage>

(

select AVG(Sage)

from student

)

order by Sage DESC

12.按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;

select Sno 学号,Sname 姓名,Ssex 性别,YEAR(GETDATE ())-Sage 出生年份,Sdept 所在院系

from student

order by YEAR(GETDATE ())-Sage

13.按照院系降序显示所有学生的“院系,学号、姓名、性别、年龄”等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;

select Sdept=

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 ,Sno,Sname,Ssex,Sage

from student

order by Sdept DESC

14.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”,若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;

select Sdept ,院系规模=

case

when COUNT(Sno)>=5 then'规模很大'

when COUNT(Sno)>=4then'规模一般'

when COUNT(Sno)>=2then'规模稍小'

else '规模很小'

end

from student

where Sdept is not Null

group by Sdept

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

select Sno,Cno,Grade

from sc

where Grade between 70 and 80

order by Cno,Grade DESC

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

select count(*)学生总人数,AVG(Sage) 平均年龄

from student

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

select Sno 学号,COUNT(Sno)选修课程数

from sc

group by Sno

having COUNT(*)>=3

18.按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;use student

select Cno '课程号',COUNT(*)'总人数',MAX(Grade)'最高分',MIN(Grade)'最低分',AVG(Grade)'平均分'

from sc

group by Cno

order by Cno desc

19.显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩;

use student

select Sno '学号',AVG(Grade)'平均成绩'

from sc

group by Sno

having AVG(Grade)>(

select AVG(Grade)

from sc

where Sno='200515001'

)

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

use student

select Cno'课程号' ,COUNT(*)'及格人数',cast(cast(COUNT(case when Grade>=60 then 1 end)as float)/COUNT(*)AS float(1))'及格率'

from sc

group by Cno

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

use student

select Sno '学号',COUNT(*)'选修课程数'

from sc

group by Sno

having COUNT(Cno)>=all

( select COUNT(*)

from sc

group by Sno

)

union

select Sno '学号',COUNT(*)'选修课程数'

from sc

group by Sno

having COUNT(Cno)<=all

( select COUNT(*)

from sc

group by Sno

)

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

select Sdept ,COUNT(case when Ssex='女'then 1 end)'女生人数',

COUNT(case when Ssex='男'then 1 end)'男生人数'

from student

group by Sdept,Ssex

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

from sc

group by Sno

having COUNT(case when Grade<60 then 1 end)>=2

实验六:数据库综合查询

一、实验目的

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

2.掌握查询条件种类和表示方法;

3.掌握连接查询的表示及使用;

4.掌握嵌套查询的表示及使用;

5.了解集合查询的表示及使用。

二、实验环境

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

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

三、实验学时

2学时

四、实验要求

1.了解SELECT语句的基本语法格式和执行方法;

2.了解连接查询的表示及使用;

3.了解嵌套查询的表示及使用;

4.了解集合查询的表示及使用;

5.完成实验报告;

五、实验内容及步骤

以数据库原理实验5数据为基础,请使用T-SQL 语句实现进行以下操作:

1.查询以‘数据_’开头,且倒数第3个字符为‘结’的课程的详细情况;select *

from sc

where Cno in(

select Cno

from course

where Cname like '数据\_%'ESCAPE'\'

)

2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名;select Sname,student.Sno ,https://www.doczj.com/doc/9b19181922.html,o,Cname

from sc,course,student

where https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and student.Sno=sc.Sno and Sname like'_阳'

3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修

课程号及成绩;

select student.Sno,Sname,Sdept,https://www.doczj.com/doc/9b19181922.html,o,Grade

from student,sc,course

where student.Sno=sc.Sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and Cname in('数学','大学英语')

4.查询缺少成绩的所有学生的详细情况;

Select student.*

from student,sc

Where student.Sno=sc.Sno and Grade is null

5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;

from student

where Sage !=(

select Sage

from student

where Sname='张力'

)

6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成

绩;

select student.Sno,Sname,AVG(Grade)

from student,sc

where student.Sno=sc.Sno

group by student.Sno,Sname

having AVG(Grade)>(

select AVG(Grade)

from sc

where Sno=(

select Sno

from student

where Sname='张力'

)

)

7.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;

select student.Sno,Sname,Sdept,SUM(Ccredit) 总学分

from student,sc,course

where student.Sno=sc.Sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and Grade>=60

group by student.Sno,Sname,Sdept

8.列出只选修一门课程的学生的学号、姓名、院系及成绩;

select student.Sno,Sname,Sdept,sum(Grade) 成绩

from student,sc

where student.Sno=sc.Sno

group by student.Sno,Sname,Sdept

having COUNT(*)=1

9.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;select student.Sno,Sname,Cno

from student,sc

where student.Sno=sc.Sno and student.Sno in(

select student.Sno

from student,sc

where student.Sno=sc.Sno and Cno in(

select Cno

from sc

where Sno in (

select Sno

from student

where Sname='张力'

)

)

)

10.只选修“数据库”和“数据结构”两门课程的学生的基本信息;

select student.Sno,Sname

from student,sc,course

where student.Sno=sc.Sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and Cname='数据库' and student.Sno in (

select sc.Sno

from sc,course

where https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and Cname='数据结构'

)and student.Sno not in(

select Sno

from sc,course

where https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and Cname not in('数据库','数据结构')

)

11.至少选修“数据库”或“数据结构”课程的学生的基本信息;

select student.Sno,Sname

from sc,student,course

where student.Sno=sc.Sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and Cname='数据库' and student.Sno in(

select Sno

from sc

where Cno=(

select Cno

from course

where Cname='数据结构'

)

)

12.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;select https://www.doczj.com/doc/9b19181922.html,o,Cname, sc.Sno,Sname,Grade

from course left outer join sc on(https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o ),student

where student.Sno=sc.Sno

13.查询只被一名学生选修的课程的课程号、课程名;

select https://www.doczj.com/doc/9b19181922.html,o,Cname

from sc,course

where https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o

group by https://www.doczj.com/doc/9b19181922.html,o,Cname

having COUNT(*)=1

14.检索所学课程包含学生‘张向东’所学课程的学生学号、姓名;

select Sno,Sname

from student

where exists(

select *

from sc

where Sno=(

select Sno

from student

where Sname='张向东'

)

and exists (

select *

from sc y

where y.Sno=student.Sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o

)

)

15.使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;

select Sno,Sname

from student

where Sno in(

select Sno

from sc

where Cno=(

select Cno

from course

where Cname='数据结构'

)

)

16.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和

院系;

select Sname,Sdept,Sage

from student

where Sdept!='CS' and Sage

select Sage

from student

where Sdept='CS'

)

17.使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生;select Sname,Sdept,Sage

from student

where Sdept!='CS' and Sage

select Sage

from student

where Sdept='CS'

)

18.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;select *

from student

where Sdept=(

select Sdept

from student

where Sname='张力'

)

19.使用集合查询列出CS系的学生以及性别为女的学生名单;

select *

from student

where Sdept='CS'

union

select *

from student

where Ssex='女'

20.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;select student.*

from student,sc

where student.Sno=sc.Sno and Cno='1'

intersect

select student.*

from student,sc

where student.Sno=sc.Sno and Cno='2'

21.使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集;select *

from student

where Sdept='CS'

union

select *

from student

where Ssex='女'

(注:可编辑下载,若有不当之处,请指正,谢谢!)

数据库SQL语句实验报告

《数据库原理及应用》实验报告 SQL语句部分 总成绩:

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 create database Studend; ( Sno CHAR(9)PRIMARY KEY, Sname CHAR(20)UNIQUE, Ssex CHAR(2), Sage smallint, Sdept char(20),

); 课程号课程名先行课学分 Cno Cname Cpno ccredit ( Cno char(4)primary key, Cname CHAR(40), Cpno char(4), Ccredit SMALLINT, ); 学号课程号成绩 Sno Cno grade ( Sno char(9), Cno char(4), Grade smallint, ); 5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 alter table S add Sbirthday datetime; 7、删除表S的“年龄”属性列。 alter table S drop column Sage;

实验答案(四-五-六)参考答案

实验四简单查询和连接查询 1. 简单查询实验 用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作: (1) 查询数学系学生的学号和姓名。 select sno,sname from student where dept='数学系'; (2) 查询选修了课程的学生学号。 select distinct(sno) from sc; (3) 查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 select distinct(sno),grade from sc where cno='0101' order by grade desc,sno asc; (4) 查询选修课程号为0101的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。 select distinct(sno),grade*0.8 as'sore' from sc where cno='0101'and grade between 80 and 90; (5) 查询数学系或计算机系姓张的学生的信息。 select* from student where dept in('数学系','计算机系')and sname like'张%'; (6) 查询缺少了成绩的学生的学号和课程号。 select sno,cno from sc where grade is null; 2. 连接查询实验 用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作: (1) 查询每个学生的情况以及他(她)所选修的课程。 select student.*,https://www.doczj.com/doc/9b19181922.html,ame from student,sc,course where student.sno=sc.sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o; (2) 查询学生的学号、姓名、选修的课程名及成绩。 select student.sno,sname,cname,grade from student,sc,course where student.sno=sc.sno and https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o; (3) 查询选修离散数学课程且成绩为90 分以上的学生学号、姓名及成绩。

SQL数据库实验和参考答案

数据库实验和参考答案 上机实验七 1.声明一个字符串型的局部变量,并对其赋值:‘我的变量’,然后显示出此值。 declare @a char(10) set @a='我的变量' --select @a as 变量的值 print @a 2.编程实现如下功能: 1)声明两个整形的局部变量:@i1和@i2,对@i1赋初值:10,@i2的值为:@i1乘以5,再显示@i2

的结果值。 declare @i1 int,@i2 int set @i1=10 set @i2=@i1*5 print @i2 2)用While语句实现5000减1, 减2,……一直减到50的计算,并显示最终的结果。 declare @sum int,@i int set @sum=5000 set @i=1 while(@i<=50) begin

set @i=@i+1 end print @sum 3)输出100以内的素数。 declare @i smallint,@j smallint,@k smallint set @i=2 while(@i<=100) begin set @k=0 set @j=2 while(@j<@i) begin if(@i%@j=0) begin set @j=@I

end set @j=@j+1 end if @k=0 print @I set @i=@i+1 end 4)将字符数在20以内的字符串变量C的值逆序输出。要求输出界面为: declare @i varchar(20),@j int,@k varchar(20) set @j=1 set @k='' while @j<=len(@i)

《数据库原理及应用》实验指导

理学院信科08—2班陈先国 实验1 创建数据库与数据表 下面写出实现如下操作的SQL语句: (1)创建供应系统“GYXT”数据库。 CREATE DATABASE GYXT ON ( NAME=GYXT_data, FILENAME=’D:\GYXT.mdf’, SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOG ON ( NAME=GYXT_Log, FILENAME=’D:\GXTYData.ldf’, SIZE=5, MAXSIZE=25, FILEGROWTH=5); (2) 建立供应商表S。 CREATE TABLE S ( SNO char(5)not null unique, SNAME char(20)not null unique, CITY char(20)); INSERT INTO S VALUES('S1','精益','天津'); INSERT INTO S VALUES('S2','万胜','北京'); INSERT INTO S VALUES('S3','东方','北京'); INSERT INTO S VALUES('S4','丰泰隆','上海'); INSERT INTO S VALUES('S5','康健','南京'); (3) 建立零件表P。 CREATE TABLE P (PNO char(2)not null PRIMARY KEY(PNO), PNAME char(20), COLOR char(20), WEIGHT smallint); INSERT INTO P V ALUES('P1','螺母','红',12); INSERT INTO P V ALUES('P2','螺栓','绿',17);

数据库原理中SQL语句实验指导书及答案

实验四:管理SQL Server表数据 一、实验目的 熟悉数据表结构及使用特点; 熟悉使用Management Stuio界面方式管理数据表数据; 熟悉使用T-SQL语句管理数据表数据。 二、实验环境 已安装SQL Server 2005 企业版的计算机(13台); 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 了解SQL Server数据表数据的管理方法; 了解SQL Server数据类型; 完成实验报告(部分题只需给出关键语句)。 五、实验内容及步骤 以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作: 向各个数据表中插入如下记录: 学生信息表(student)

课程信息表(course) 选课信息表(sc)

insert into student.dbo.sc values('20051501','1',75) insert into student.dbo.course values('1','数据库','5',4) insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”; update student set Sname='李咏' where Sname='李勇' 3.修改课程“数据处理”的学分为3学分; 3.update course set Ccredit=3 where Cname ='数据处理' 4.将选修课程“1”的同学成绩加5分; 4.update sc set Grade =Grade+5 where Cno='1' 5.将选修课程“大学英语”的同学成绩加5分; update sc set Grade=Grade+5 from course,sc where https://www.doczj.com/doc/9b19181922.html,o=https://www.doczj.com/doc/9b19181922.html,o and https://www.doczj.com/doc/9b19181922.html,ame='大学英语'

数据库原理实验指导书

数据库原理实验指导书 实验名称:试验一:SQL语言嵌套查询和数据更新操作 所属课程:数据库原理 实验类型:设计型实验 实验类别:基础□专业基础√专业□ 实验学时:4学时 一、实验目的 1.熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练的使用SQL 语句的各种形式; 2.加深理解关系运算的各种操作(尤其的关系的选择,投影,连接和除运算); 3.熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用; 4.加深理解表的定义对数据更新的作用 二、预习与参考 1.熟悉SQL SERVER 工作环境; 2.连接到学生-课程数据库 3.复习对表中数据查询的SQL语言命令; 4.复习对表中数据的插入、修改和删除的SQL语言命令。 三、实验要求(设计要求) 针对教材例子,通过SQL SERVER企业管理器和查询分析器两种模式,熟悉数据嵌套查询、更新操作。 四、实验方法及步骤 1.在表S、C、SC上进行简单查询; 2.在表S、C、SC上进行连接查询; 3.在表S、C、SC上进行嵌套查询; 4.使用聚合函数的查询; 5.对数据的分组查询; 6.对数据的排序查询。 7.将数据插入当前数据库的表S、C、SC中; A:用SQL命令形式 B:用SQL SERVER提供的企业管理器以交互方式进行 8.将以上插入的数据分别以.SQL文件和.txt文件的形式保存在磁盘上; 9.修改表S、C、SC中的数据; A:用SQL命令形式 B:用SQL SERVER提供的企业管理器以交互方式进行 10.删除表S、C、SC中的数据。 A:用SQL命令形式 B:用SQL SERVER提供的企业管理器以交互方式进行 五、实验内容 在表S,C,SC上完成以下操作: 1.查询学生的基本信息; 2.查询“CS”系学生的基本信息; 3.查询“CS”系学生年龄不在19到21之间的学生的学号、姓名; 4.找出最大年龄; 5.找出“CS”系年龄最大的学生,显示其学号、姓名; 6.找出各系年龄最大的学生,显示其学号、姓名;

《数据库原理》实验指导书--最新版

实验一实验环境熟悉与数据库(表)的建立 实验目的 熟悉实验的环境,掌握数据库、数据表的建立方法。 实验内容 1、熟悉SQL的使用环境 进入SQL环境(企业管理管理器、查询分析器)。 2、建立学生管理系统所需的数据库、数据表 一个数据库,三张数据表。 实验环境 1、硬件 PC机,具有网络功能。 2、软件 OS:windows 2000 professional; DBMS: SQL Server 2000. 实验过程 一、SQL server 2000环境 1、系统的安装 系统的安装过程比较简单,给学生演示一下。 2、进入查询分析器 开始→程序→Microsoft SQL Server→查询分析器, 如下图所示: 图1-1 查询分析器的界面如图1-2所示:

图1-2 在文本框输入命令即可。 举例:计算圆面积的SQL程序的输入与运行结果界面(图1-3)。 图1-3

3、企业管理器的进入 开始→程序→Microsoft SQL Server→企业管理器, 如下图所示: 图1-4 企业管理器的界面如图1-5: 图1-5 二、建立数据库与数据表 1、建立学生管理数据库 用SQL语句(生成的主文件名为: XSGL.MDF) 语句为:CREATE DATABASE XSGL 2、建立学生管理系统的数据表(共3个) 使用SQL语句建立如下三个数据表(表结构见课本P92): 学生表: Student.DBF(选本班10个同学作为10条记录) CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20)

2021《数据库原理及应用》实验报告答案

2021《数据库原理及应用》实验报告答案实验二数据定义 一、实验目的 1、掌控数据库引擎的采用方法,增进对sql的语句的认知; 2、采用sql语句建立数据库、删掉数据库 3、熟练掌握ddl语言的数据定义操作,包括create、alter、drop。 二、实验内容 在sql查询分析器中用create、drop、alter语句创建、删除、修改基本表。 三、实验步骤 1、根据课本中的说明,分析s表,p表,j表和spj表的主码和外码: (1)s表中,p表中,j表的主码分别就是哪个属性,s表中,p表中,j表这三个表中是不是外码?如果存有,恳请写下。 s表的主码snop表的主码pnoj表的主码jno没有外码 (2)spj表的主码就是由哪几个属性共同组成的属性组?spj表的外码存有几个,分别就是哪些属性?分别参考哪些表的哪个属性? spj主码(sno,pno,jno) 外码sno参考s表的sno,外码pno参考p表的pno,外码jno参考j表的jno。 2.新建数据库spj,并在数据库spj中创建s表,p表,j表和spj表。(1)创建供应商表s的sql语句,要求设置主码:createtables( snochar(4)primarykey,snamevarchar(40),statussmallint,cityvarchar(20)); (2)创建零件表p的sql语句,要求设置主码并将该约束命名为p_pk: createtablep( pnochar(4)constraintp_pkprimarykey,pnamevarchar(40),colorchar(2),weightsmallin t); (3)建立工程项目表中j的sql语句,建议设置主码并命名为j_pk:createtablej( jnochar(4)constraintj_pkprimarykey,jnamevarchar(40),cityvarchar(20));

数据库系统原理及应用答案.

数据库系统原理及应用实验指导书 (本科) 福建工程学院计算机与信息科学系

目录 实验一数据定义语言 (2) 实验二SQL Sever中的单表查询 (5) 实验三SQL Serve中的连接查询 (8) 实验四SQL Serve的数据更新、视图 (11) 实验五数据控制(完整性与安全性) (16) 实验六语法元素与流程控制 (19) 实验七存储过程与用户自定义函数 (23) 实验八触发器 (27)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\StuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10% 2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。

数据库原理及应用实验指导★---实验4 SQL语言——SELECT查询操作

实验4 SQL 语言——SELECT 查询操作 1 实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作 实验示例 实验示例中要使用包括如下三个表的“教学管理”数据库JXGL : (1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。 (2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。 (3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。 1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。 CREATE DATABASE JXGL 2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下: Create Table Student ( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno), Sname VARCHAR(20), Sage SMALLINT CHECK(Sage>=15 AND Sage<=45), Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'), Sdept CHAR(2)); Create Table Course ( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno), Cname VARCHAR(20), Cpno CHAR(2), Ccredit SMALLINT); Create Table SC ( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL, Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)), PRIMARY KEY(Sno,Cno),

数据库原理实验答案

课程结束各班学委统一收实验报告 数据库原理及应用(本科) 实验指导书1(报告) 计算机信息教研室 桂林理工大学信息科学与工程学院 二○二○年八月 目录 实验 1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14)

桂林理工大学 实验报告 班级学号姓名同组实验者无 实验名称实验1 创建数据库与数据表日期年月日 一、实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 二、实验环境: Sqlserve数据库管理系统 三、实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC 三个数据表,各表中的数据如下所示: 学生STUDENT:(注:CS计算机科学,IS信息系统,MA数学) Sno Sname Ssex Sage Sdept 95001李勇M20CS 95002刘晨F19IS 95003王敏F18MA 95004张立M18IS 课程COURSE:(注:Pcno 先修课课程号) Cno Cname Pcno Ccredit 1数据库54 2数学2 3信息系统14 4操作系统63 5数据结构74 6数据处理2 7C语言64 选修SC: Sno Cno Grade 95001192

95001285 95001388 95002290 95002 950033 3 80 实验步骤: 1.创建教学管理“JXGL”数据库。(注:可采用可视窗体和SQL命令两种方法创建。以下是SQL命令方法) (1) 创建教学管理“JXGL”数据库。 在命令窗格中输入如下命令,然后单击“运行”功能钮执行该命令。 CREATE DATABASE JXGL; (2) 在JXGL数据库中建立STUDENT表,并插入记录。 CREATE TABLE STUDENT ( Sno char(5) not null unique, Sname char(20) not null unique, Ssex char(1), Sage int, Sdept char(20)); INSERT INTO STUDENT V ALUES('95001','李勇','M',20,'CS'); INSERT INTO STUDENT V ALUES('95002','刘晨','F',19,'IS'); INSERT INTO STUDENT V ALUES('95003','王敏','F',18,'MA'); INSERT INTO STUDENT V ALUES('95004','张立','M',18,'IS'); 1 (3) JXGL数据库中建立COURSE表,并插入记录。 CREA TE TABLE COURSE ( Cno char(2) not null PRIMARY KEY(Cno), Cname char(20), Pcno char(2), Ccredit smallint); INSERT INTO COURSE V ALUES('1','数据库','5',4); INSERT INTO COURSE V ALUES('2','数学',' ',2); INSERT INTO COURSE V ALUES('3','信息系统','1',4); INSERT INTO COURSE V ALUES('4','操作系统','6',3); INSERT INTO COURSE V ALUES('5','数据结构','7',4); INSERT INTO COURSE V ALUES('6','数据处理',' ',2); INSERT INTO COURSE V ALUES('7','C语言','6',4); (4) JXGL数据库中建立SC表,并插入记录。

数据库系统原理试验报告-SQL查询语句

` 数据库系统原理实验报告 :xxx

学号:xxxxxxxx 专业:xxxxx 日期:xxxxx 文档Word ` Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。表1 学生表

课程表表2 3 表学生作业表成绩3 课程号作业成绩2作业成绩1作业学号文档Word `

K001 0433 60 75 75 60 K001 0529 70 70 80 K001 70 0531 80 90 K001 80 0591 90 90 K002 80 80 0496 85 K002 70 70 0529 80 80 0531 80 K002 85 75 65 0538 K002 85 85 0592 K002 75 90 0531 80 K006 80 80 0591 K006 80 80 80 70 M001 70 0496 75 M001 65 0591 75 80 S001 0531 80 80 80 0538 60 S001 SQL 语句:写出如下15 分)(.查询数据库中有哪些专业班级。Sql语句:SELECT专业班级 ;学生表FROM 查询结果截图: 219865 分)(.查询在年出生的学生的学号、和出生日期。Sql语句:SELECT学号,,出生日期 FROM学生表 ;LIKE'1986%'WHERE出生日期查询结果截图:文档Word ` 3055 分).查询(级的男生信息。Sql语句:

SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 45 分).查询没有作业成绩的学号和课程号。(Sql语句: SELECT学号,课程号 FROM学生作业表 NULL;成绩IS IS NULL OR作业32 WHERE作业1成绩IS NULLOR作业成绩查询结果截图: 5K0015 分)课程的学生人数。.查询选修了(Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 ;='K001'课程号WHERE 查询结果截图:文档Word ` 65 分).查询数据库中共有多少个班级。(Sql语句: SELECT COUNT(DISTINCT专业班级) ;学生表FROM 查询结果截图:

新SQL——SERVER实验练习答案

SQL-Server实验 答案 上海师范大学计算机系

目录 第一部分企业管理器的使用 (3) 试验一注册服务器.................................................................................. 错误!未定义书签。 试验二创建数据库.................................................................................. 错误!未定义书签。 试验三创建表.......................................................................................... 错误!未定义书签。 实验四数据输入...................................................................................... 错误!未定义书签。 实验五登录到数据库服务器.................................................................. 错误!未定义书签。第二部分SQL语言 (3) 第二部分SQL语言 (3) 试验一数据库创建 (3) 试验二创建表 (3) 试验三创建数据完整性 (5) 试验四数据完整性试验 (6) 试验五索引 (10) 试验六更新数据 (11) 试验七 Sql 查询语句 (12) 试验八视图 (15) 试验九安全性控制实验 (16) 试验十存储过程 (17) 试验十二触发器 (21) 试验十二恢复技术 (25) 试验十三事务 (26) 试验十四锁 (27)

数据库原理实验指导书_参考答案

《数据库原理与应用》实验指导 / 学年第学期 姓名:______________ 学号:______________ 班级:______________ 指导教师:______________ 计算机科学与工程学院 2009

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 2、SQL Server 2000(2005)的安装步骤? 三、实验内容和要求 1、注册服务器 基本步骤: (1)打开企业管理器 (2)右击SQL Server组→新建SQL Server注册 (3)添加可用的服务器(实际数据库服务器的名称或IP地址) (4)选择身份验证模式(选“系统管理员分配给我的登录信息”) (5)输入正确的登录名和密码 (6)选择SQL Server组(选“在现有的SQL Server组中添加SQL Server”)(7)完成注册 若注册成功,则显示注册成功的信息。 2、连接SQL Server服务器 (1)右键单击上面注册的数据库服务器,选择连接,建立与数据库服务器的连接。观察连接后服务器图标的变化; (2)右键单击选择编辑SQL Server注册属性,观察已注册数据库服务器的属性信息; (3)右键单击选择删除SQL Server注册。为保证数据库的安全性,使用完毕自己

的数据库后,可采取删除的方式,断开与数据库的连接; (4)重复注册服务器的步骤,再次建立与数据库的连接; 3、熟悉企业管理器 (1)单击建立的服务器连接,观察服务器的7个项目,写出它们的名称。通过查看联机帮助,总结7个项目的基本功能。 (2)单击数据库,观察Northwind数据库下的11个项目,写出项目名称,通过联机帮助了解它们的基本功能。 (3)查看Northwind的表项目,单击表,观察表的名称、所有者、类型以及创建日期。回答: ▪这些表的所有者有哪几种? ▪这些表的类型有哪几种? ▪选择表Employees,在右键菜单中选择打开表->返回所有行,观察表中的数据,说出这些数据的实际含义。观察其他用户类型的表,你还能说出它们数据的实际含义吗?

SQL数据库原理实验指导书及答案

数据库原理SQLServer 实 验 指 导 书

数据库系统原理实验 一、基本操作实验 实验1:数据库的定义实验 本实验的实验目的是要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。 本实验的内容包括: l)创建数据库和查看数据库属性。 2)创建表、确定表的主码和约束条件,为主码建索引。 3)查看和修改表结构。 4)熟悉SQL Server Enterpriser Manager和 Query Analyzer工具的使用方法 具体实验任务如下。 1.基本提作实验 1)使用Enterpriser Manager建立图书读者数据库 2)在Enterpriser Manager中查看图书读者数据库的属性,并进行修改,使之符合要求。3)通过Enterpriser Manager,在建好了图书借阅数据库中建立图书、读者和借阅3个表,其结构为: 图书(书号,类别,出版社,作者,书名,定价,版次); 读者(编号,姓名,单位,性别,电话): 借阅(书号,读者编号,借阅日期人) 要求为属性选择合适的数据类型,定义每个表的主键,Allow Null(是否允许空值)和Default Value(缺省值)等列级数据约柬。 4)在Enterpriser Manager建立图书、读者和借阅3个表的表级约束:每个表的PrimaryKey (主键)约束;借阅表与图书表间、借阅表与读者表之间的FOREIGNKEY(外码)

(完整word版)sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:学生Student (Sno,Sname,Ssex,Sage,Sdept) 课程表course(Cno,Cname,Cpno,Ccredit) 学生选课SC(Sno,Cno,Grade)

二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用Create Table 语句创建表student , sc, course 的SQL语句 2在student表中插入信息 3 删除student表中的元组 4在数据库school中删除关系student 5在student表添加属性sbirthdate 类型datetime 练习 Delete 1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);

1 修改0001 学生的系科为: JSJ 2 把陈小明的年龄加1岁,性别改为女。 2 修改李文庆的1001课程的成绩为9 3 分 3 把“数据库原理”课的成绩减去1分 Select 查询语句 一单表 1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。2查询姓名中第2个字为“明”字的学生学号、性别。 3查询1001课程没有成绩的学生学号、课程号 4查询JSJ 、SX、WL 系的年龄大于25岁的学生学号,姓名,结果按系排列5按10分制查询学生的sno,cno,10分制成绩 (1-10分为1 ,11-20分为2 ,30-39分为3,。。。90-100为10) 6查询student 表中的学生共分布在那几个系中。(distinct) 7查询0001号学生1001,1002课程的成绩。 二统计 1查询姓名中有“明”字的学生人数。 2计算‘JSJ’系的平均年龄及最大年龄。 3查询学生中姓名为张明、赵英的人数 4计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列 5 计算1001,1002 课程的平均分。 6 查询平均分大于80分的学生学号及平均分 7 统计选修课程超过2 门的学生学号

2016《数据库原理》实验指导书SQL-Server2012

网络数据库技术实验指导书 南京工业大学经济与管理学院 2017年9月

目录 实验目的 (2) 实验要求 (2) 实验环境 (2) 实验一、常用数据库管理系统介绍 (3) 实验二、SQL Sever 数据库管理系统的基本操作 (10) 实验三、基本表的定义 (26) 实验四、基本表与删除索引的修改与删除 (30) 实验五、条件及统计汇总查询 (35) 实验六、数据表连接查询与数据更新操作 (39) 实验七、视图的定义、查询与维护 (42) 实验八、数据库的完整性实验 (43) 实验九、触发器实验 (46) 实验十、数据的导出与导入实验 (55) 实验十一数据库备份与数据库还原技术 (72) 实验十二、数据库用户管理技术 (77) 实验十三、数据库综合设计与实现 (77)

实验目的 数据库原理是一门理论和实践很强的课程。学生学习这门课程 要求掌握两方面内容:数据库设计和上机实践。因此数据库的实验 要围绕这两方面进行。通过对 Access、SQL Server 数据库管理系统 的学习帮助学生巩固和加深理解所学过的理论知识,树立工程的观 点和严谨的科学作风,使学生熟练掌握基本的 SQL 语句,熟悉 SQL Server 数据库管理系统的功能、数据管理、应用和开发技术。熟练 使用 SQL 语句创建数据库、表、索引、修改表结构,以及进行数据 的查询、更新、定义视图等操作。掌握 SQL Server 中触发器的创建方法,学会数据的导入和导出操作。通过实验,培养学生的动手能力以及在 实践中发现问题并能及时解决问题的能力,锻炼学生的逻辑思维能力,提高数 据库应用开发能力。为学生毕业后从事计算机应用职业做好必要的准备。 实验要求 给出一个现实世界的应用问题要求学生在正确分析问题的基础上,完成以下任务: 1、熟悉概念数据库的概念; 2、熟悉运用 SQL操纵数据库; 3、熟悉 SQL Server数据库管理系统环境,学会用该数据库 管理系统创建数据库; 4、理解范式的意义,能判断其能达到第几范式。 实验环境 数据库原理实验要求如下环境:服务器端:Windows 2007 SP1(或以上版本)、NET Framework、SQL Server 2012 标准版、Access2010、Web服务器(IIS 5.0)和 ASP。客户端:IE7.0以上。 实验学时数 24 学时。

数据库原理实验指导书(带SQL语句)

数据库原理—数据库原理与应用实验指导书

目录 实验一 SQLSERVER 2000的安装 (3) 实验二数据库及表的定义 (16) 实验三数据插入、删除、与更新 (19) 实验四数据查询 (22) 实验五视图的定义和使用 (24) 实验六数据完整性 (25) 实验七存储过程的使用 (26) 实验八事务的使用 (27) 实验九安全性管理 (29) 实验十数据库设计 (31)

实验一 SQLSERVER 2000的安装

仅连接Microsoft Windows NT 4.0、Windows 2000(所有版本)、Windows Me、Windows 98 和 Windows 95。 2.SQL SERVER 2000的安装 (1)将企业版安装光盘插入光驱后,出现以下提示框。 注意:如果您的计算机的操作系统是windows 95以上,则选择“安装SQL Server 2000 组件”,如果操作系统是windows 95,则需要选择“安装SQL Server 2000的先决条件”。 由于SQL Server 2000 的某些功能要求在Microsoft Windows 2000 Server以上的版本才能运行。因此安装Windows Server 2000(建议为Advanced版本),可以学习和使用到SQL Server 2000的更多功能,以及享受更好的性能。 本安装将在Windows 2000 Advanced Server操作系统作为示例,详细介绍安装SQL Server 2000企业版的过程。大家清首先安装Windows 2000 Advanced Server。 (2)选择 "安装 SQL Server 2000 组件",出现下一个页面。

相关主题
文本预览
相关文档 最新文档