数据库 实验三答案

合集下载

数据库实验内容-答案

数据库实验内容-答案

实验内容:实验一:数据库的操作使用Management Studio和sql语句分别完成以下操作:1.创建一个名为“SM”的数据库,数据文件初始大小为3MB,最大为50MB,数据库自动增长,增长方式按10%;日志文件初始大小为2MB,数据大小不受限制,按1MB增长。

create database smon(name='smdata',filename='e:\smdata.mdf',size=3,maxsize=50,filegrowth=10%)log on(name='smlog',filename='e:\smlog.ldf',size=2,maxsize=unlimited,filegrowth=1)2.修改数据库“SM”,将数据文件名改成“sm_data”,初始大小改成5MBalter database smmodify file( name='smdata',newname='sm_data',size=5)3.分别查看数据库“SM”,该数据库中的文件和文件组。

exec sp_helpfile smexec sp_helpfilegroup sm4.删除数据库“SM”。

drop database sm实验二:创建表1. 在数据库SM中创建学生表student,课程表course,选课表scstudent(sid,sno,clno,sname,ssex,sage,sbir)说明:sid int identity(1,1) 序号sno 为主关系键,为字符类型学号clno 字符类型,班级号sname 字符类型,并不为空ssex 字符类型,check的值的范围为男女sbir 日期类型出生日期sage int;use smcreate table student( sid int identity(1,1),sno char(10) constraint pk_st primary key,clno char(10),sname varchar(20) not null,ssex char(2) constraint ck_ssex check(ssex in('男','女')),sbir datetime,sage int)course(cno,cname,ccredits,ctno,cpno,ctime)说明:cno 字符类型,主关系键cname 字符类型,唯一键ccredits 学分,精确数值型,精确长度为2,小数位为1ctno ,cpno 字符类型ctime 整型create table course(cno char(4) constraint pk_c primary key,cname varchar(20) constaint uk_cname unique,ccredit decimal(2,1),ctno char(2),cpno char(4),ctime tinyint)sc(sno,cno,score)说明:sno+cno为主键,并且sno是student的外部键,cno是course的外部键。

数据库原理与应用实验报告三及答案.doc

数据库原理与应用实验报告三及答案.doc

数据库原理与应用实验报告三及答案
广东金融学院实验报告课程名称:数据库原理与应用实验编号及实验名称实验三数据库高级应用实验系别计科系姓名学号班级实验地点新电1101实验日期05月14日实验时数8指导教师同组其他成员无成绩一、实验目的及要求1、掌握SQLServer存储过程的定义和使用。

2、掌握SQLServer触发器的定义和使用。

二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)1、计算机操作系统要求在windowsXP以上。

2、并要求SQLServer软件月日第3页共2页。

大学mysql实验报告(三)附答案

大学mysql实验报告(三)附答案

实验报告(三)专业:班级:学号:姓名:实验名称:数据库的简单查询实验报告内容:1、写出第182页实验3中的SQL语句(第5)7)11)13)16)18)19)20)21)题)。

5)查询全体学生的选课情况,其成绩列值都加5,并为各列设置中文的别名SELECT Sno '学号',Cno '课程号',Grade+5 '成绩' FROM Enrollment7)显示所有选课学生的学号,并去掉重复行。

SELECT DISTINCT Sno '学号' FROM Enrollment11)查询学生年龄不在20~30之间的学生学号、姓名、所在系。

SELECT Sno ,Sname,Sdept FROM Students WHERE Sage NOT BETWEEN 20 AND 30等价于:SELECT Sno ,Sname,Sdept FROM Students WHERE Sage<20 OR Sage>3013)查询既不是数学系、计算机系,也不是艺术系学生的学号、姓名。

SELECT Sno,Sname FROM StudentsWHERE Sdept NOT IN ('Math', 'Computer', 'Art')等价于:SELECT Sno,Sname FROM StudentsWHERE Sdept! ='Math' AND Sdept! = 'Computer' AND Sdept! = 'Art'16)查找姓名以S、D或J开头的所有学生的学号、姓名。

SELECT Sno,Sname FROM Students WHERE Sname LIKE '[SDJ]%'18)查询无考试成绩的学生的学号和相应的课程号。

SELECT Sno, Cno FROM Enrollment WHERE Grade IS NULL不等价于:SELECT Sno, Cno FROM Enrollment WHERE Grade =019)查询有考试成绩(即成绩不为空值)的学生的学号、课程号。

sql 数据库 实验3答案

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 studentALTER TABLE studentAdd sclass nvarchar(10)2)在表student中删除字段“班级名称(sclass)”;use studentALTER TABLE studentDrop column sclass3)修改表student中字段名为“sname”的字段长度由原来的6改为8;use studentALTER TABLE studentALTER COLUMN sname char(8)4)修改表student中ssex字段默认值为‘男’;use studentALTER TABLE studentadd default'男'for ssex5)修改表course中cname字段为强制唯一性字段;use studentALTER TABLE courseAdd constraint ix_course unique (cname)6)修改表sc中grade字段的值域为0-100;use studentALTER TABLE scAdd constraint CK_grade CHECK(grade between 0 and 100)7)删除数据表course的唯一性约束;use studentALTER TABLE coursedrop ix_course。

数据库实验3答案

数据库实验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表CREATETABLE Student(Sno CHAR(8)PRIMARYKEY,Sname CHAR(8),Ssex CHAR(2)NOTNULL,Sage INT,Sdept CHAR(20));(2)创建Course表CREATETABLE Course(Cno CHAR(4)PRIMARYKEY,Cname CHAR(40)NOTNULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATETABLE SC(Sno CHAR(8)FOREIGNKEY (Sno)REFERENCES Student(Sno), Cno CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATETABLE Employee(编号CHAR(8)PRIMARYKEY,姓名VARCHAR(8)notnull部分CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后履行.(5)检查表是否创建成功SELECT*FROM StudentSELECT*FROM CourseSELECT*FROM SCSELECT*FROM Employee(6)点窜表结构及束缚●添加班级列ALTERTABLE Student ADD Sclass char(4)●点窜年龄列ALTERTABLE Student ALTERCOLUMN Sage smallint●添加束缚ALTERTABLE Course ADDUNIQUE(Cname)(7)删除表DROPTABLE Employee2.创建索引(1)为Course表按课程名称创建索引CREATEINDEX iCname On Course(Cname)(2)为Student表按先生姓名创建独一索引CREATEUNIQUEINDEX iSname ON Student(Sname)(3)为SC表按学号和课程号创建聚集索引CREATECLUSTEREDINDEX iSnoCno On SC(Sno,Cno desc)(4)为Course表按课程号创建独一索引请本人完成该操纵3.创建视图建立信息系先生的视图:CREATEVIEW IS_StudentASSELECT Sno,Sname,Sage FROM StudentWHERE Sdept='IS';3.2 数据操纵1.拔出数据将如下表格中的数据分别拔出到数据库响应的表中:(1)拔出到Student表INSERTINTO Student VALUES('20100001','李勇','男',20,'CS','1001') INSERTINTO Student VALUES('20100002','刘晨','女',19,'CS','1001') INSERTINTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20 100021','王敏','女',18,'MA','1002')INSERTINTO Student(Sno,Sname,Ssex,Sage,Sdept,sclass)VALUES('20100031','张立','男',19,'IS','1003')INSERTINTO Student(Sno,Sname,Ssex,sclass)VALUES('20100003','刘洋','女','1001')检查以下语句中的错误,并改正:INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,sclass) VALUES('20100010',赵斌,'男','19','IS','1005')INSERT INTO Student VALUES('20100022','张明明',19,'男','CS','1002')(2)拔出到Course表INSERTINTO Course(Cno,Cname,Cpno,Ccredit)VALUES('1','数据库零碎道理','5',4)INSERTINTO Course(Cno,Cname,Cpno,Ccredit)VALUES('2','高等数学',null,2)INSERTINTO Course(Cno,Cname,Cpno,Ccredit)VALUES('3','管理信息零碎','1',4)请写出拔出其余行的拔出语句,并拔出数据.(3)拔出到SC表INSERTINTO SC VALUES('20100001','1',92)INSERTINTO SC VALUES('20100002','2',80)INSERTINTO SC(Sno,Cno)VALUES('20100003','1')INSERTINTO SC(Sno,Cno,Grade)VALUES('20100010','3',null)请写出拔出其余行的拔出语句,并运转.(4)多行拔出到表中创建存一个表,保管先生的学号、姓名和年龄:CREATETABLE cs_Student(学号char(8),姓名char(8),年龄smallint);拔出数据行:INSERTINTO cs_StudentSELECT Sno,Sname,SageFROM student Where Sdept='CS';(5)检查拔出到表中的数据SELECT*FROM StudentSELECT*FROM CourseSELECT*FROM SC2.点窜数据(1)将先生20100001的年龄改为22岁.UPDATE student SET Sage= 22 WHERE Sno='20100001';(2)将所有先生的年龄添加一岁.UPDATE Student SET Sage=Sage+1(3)填写赵斌同学的管理信息零碎课程的成绩UPDATE SC SET Grade= 85WHERE Sno='20100010'AND Cno='3'(4)将计算机科学系全体先生的成绩加5分UPDATE sc SET Grade=Grade+ 5WHERE'CS'=(select Sdept from student where student.Sno=sc.Sno);(5)请本人完成如下操纵●将刘晨同学的2号课程成绩点窜为80●将“20100021”同学的学号点窜为“20100025”(6)检查数据是否点窜3. 删除数据(1)删除学号为201000022的先生记录DELETEFROM Student WHERE Sno='20100022'(2)删除学号20100001先生的1号课程选课记录将选课信息复制到一个临时表tmpSC中:SELECT*INTO tmpSC FROM SC在tmpSC中履行删除操纵:DELETEFROM tmpSC WHERE Sno='20100001'and Cno='1'(3)删除临时表中20100002先生的全部选课记录请本人完成该操纵.(4)删除计算机科学系所有先生的选课记录DELETEFROM tmpSC WHERE'CS'=(select Sdept from student where stud ent.Sno=tmpSC.Sno);(5)删除全部选课记录DELETEFROM tmpSC(6)检查数据是否删除3.3 数据查询操纵完成如下查询操纵:1.单表查询(1)按指定目标列查询●查询先生的具体记录:SELECT*FROM Student;●查询先生的学号、姓名和年龄SELECT Sno,Sname,Sage FROM Student;(2)目标列包含表达式的查询●查询全体先生的姓名、出生年份和所有系,请求用小写字母暗示所有系名.SELECT Sname,'Year of Birth: ',2004-Sage,LOWER(Sdept)FROM Student;(3)查询结果集中点窜列名称●查询全体先生的姓名、出生年份和所有系,请求用小写字母暗示所有系名.SELECT Sname,'Year of Birth:'as BIRTH, 2000-SageBIRTHDAY,DEPARTMENT=LOWER(Sdept)FROM Student;(4)取消反复行●查询选修了课程的先生学号:比较ALL和DISTINCT的区别SELECT Sno FROM SC;SELECTDISTINCT Sno FROM SC;(5)简单条件查询●查询计算机科学系全体先生的名单SELECT Sname FROM Student WHERE Sdept='CS';(6)按范围查询●查询年龄在20~23岁之间的先生的姓名、系别和年龄SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23(7)查询属性值属于指定集合的行●查询信息系(IS)、数学系(MA)和计算机科学系(CS)先生的姓名和性别SELECT Sname,Ssex FROM Student WHERE Sdept IN('IS','MA','CS');(8)模糊查询●查询所有姓刘先生的姓名、学号和性别SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE'刘%'(9)查询空值●查询缺少成绩的先生的学号和响应的课程号SELECT Sno,Cno FROM sc WHERE Grade isnull;(10)多重条件查询●查询计算机科学系年龄在岁以下的先生姓名SELECT Sname FROM student WHERE Sdept='CS'and Sage<20;(11)结果集排序●查询全体先生情况,查询结果按所在系的系号升序排列,同一系中的先生按年龄降序排列SELECT*FROM Student ORDERBY Sdept,Sage DESC;(12)完成以下查询●查询先生基本信息,结果集属性名使用汉字●查询信息系且年龄大于23岁同学的学号和姓名●查询年龄是17、18、20、23岁同学的学号、姓名、年龄和所在系●查询年龄不在21~24岁之间的先生的姓名、系别和年龄2.分组统计(1)聚集函数的使用●查询先生总人数SELECT COUNT(*)FROM Student;●查询选修了课程的先生人数SELECT COUNT(DISTINCT Sno)FROM SC●查询最高分SELECT MAX(Grade)FROM SC(2)聚集函数感化于部分行●统计2号课程的总分、均分和最高分SELECT SUM(grade)总分,AVG(grade)均分,MAX(grade)最高分FROM sc WHERE Cno='2'(3)分组统计●统计各门课程的选课人数、均分和最高分select cno课程号,count(*)人数,AVG(grade)均分,MAX(grade)最高分from sc groupby Cno●统计均分大于90的课程select cno课程号,count(*)人数,AVG(grade)均分,MAX(grade)最高分from sc groupby Cnohaving AVG(grade)> 90(4)完成上面的查询●统计每个同学的学号、选课数、平均成绩和最高成绩●统计每个班的每门课的选课人数、平均成绩和最高成绩3. 连接查询(1)在WHERE中指定连接条件●查询每个介入选课的先生信息及其选修课程的情况SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student,SCWHERE Student.Sno=SC.Sno●查询每一门课的间接先修课SELECT*FROM course first,course secondWHEREfirst.Cpno=o;o,second.Cpno FROM course first,course second WHEREfirst.Cpno=o;(2)在FROM中指定连接条件●查询每个介入选课的先生信息及其选修课程的情况SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student JOIN SC ON (Student.Sno=SC.Sno)(3)使用外连接查询●查询每个先生信息及其选修课程的情况SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFTOUTERJOIN SC ON (Student.Sno=SC.Sno)(4)复合条件连接查询●查询选修号课程且成绩在分以上的所有先生SELECT Student.Sno,SnameFROM Student join SC ON (Student.Sno=SC.Sno)/* 连接条件*/WHERE o='2'AND SC.Grade> 90;/* 过滤条件*/(5)多表查询●查询每个先生的学号、姓名、选修的课程名及成绩SELECT Student.Sno,Sname,Cname,GradeFROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=o;(6)完成以下查询●查询选修了2号课程的同学的学号和姓名●查询各门课程的课程号、课程名称和选课先生的学号●查询选修了数据库零碎道理课程的同学的学号和姓名和成绩4. 嵌套查询(1)由In引出的子查询●查询与“刘晨”在同一个系进修的先生SELECT Sno,Sname,Sdept FROM StudentWHERE Sdept IN(SELECT Sdept FROM Student WHERE Sname='刘晨');(2)由比较运算符引出的子查询●找出每个先生超出他选修课程平均成绩的课程号.SELECT Sno,Cno FROM SCxWHERE Grade>=(SELECT AVG(Grade)FROM SCyWHERE y.Sno=x.Sno);(3)带润色符的比较运算符引出的子查询●查询其他系中比计算机科学系所有先生年龄都小的先生姓名及年龄.SELECT Sname,Sage FROM StudentWHERE Sage<ALL(SELECT Sage FROM Student WHERE Sdept='CS') AND Sdept<>'CS';(4)由EXISTS引出的子查询●查询所有选修了1号课程的先生姓名SELECT Sname FROM StudentWHERE EXISTS(SELECT*FROM SC WHERE Sno=Student.Sno AND C no='1')5. 集合查询(1)集合并●查询计算机科学系的先生及年龄不大于19岁的先生SELECT*FROM Student WHERE Sdept='CS'UNIONSELECT*FROM Student WHERE Sage<=19(2)集合交●查询计算机科学系且年龄不大于19岁的先生SELECT*FROM Student WHERE Sdept='CS'INTERSECTSELECT*FROM Student WHERE Sage<=19(3)集合差查询计算机科学系且年龄大于19岁的先生SELECT*FROM Student WHERE Sdept='CS'EXCEPTSELECT*FROM Student WHERE Sage<=19;3.4 视图操纵建立视图并基于视图进行查询:1. 创建视图(1)建立先生基本信息视图CREATEVIEW Student_VIEW(学号,姓名,性别,年龄,系,班级) ASSELECT Sno,Sname,Ssex,Sage,Sdept,SclassFROM Student;(2)建立先生均分视图CREATEVIEW S_G(Sno,Gavg)ASSELECT Sno,avg(Grade)FROM SC GROUPBY Sno;(3)建立选课信息视图CREATEVIEW XK_VIEWASSELECT Student.*,Course.*,GradeFROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=o; 2. 视图查询(1)查询先生基本信息SELECT*FROM Student_VIEW(2)找出每个先生超出他选修课程平均成绩的课程号SELECT SC.Sno,Cno,gradeFROM SC,S_GWHERE SC.Sno=S_G.Sno and Grade>=S_G.Gavg(3)查询每个先生的学号、姓名、选修的课程名及成绩SELECT Sno,Sname,Cname,GradeFROM XK_VIEW(4)比较使用视图查询和直接从基表查询的长处。

最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练3及4答案

最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练3及4答案

最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练3及4答案盗传必究本课程分为形成性考核和终结性末考两种考核形式,形成性考核占50% (满分100分),末考为网络考试占50% (满分100),其中形成性考核为完成课程网站上的形考作业任务,形考作业均为主观题,包括四个实训:实训一:在MYSQL创建数据库和表,25分;实训二:数据查询操作,25分;实训三:数据增删改操作,25分;实训四:数据库系统维护,25分。

实验训练3数据增删改操作答案:实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,练习Insert、Delete. TRUNCATE TABLE. Update 语句的操作方法,理解单记录插入与批量插入、DELETE与TRUNCATE TABLE语句、单表修改与多表修改的区别。

实验内容:【实验3-1]插入数据(1)使用单记录插入Insert语句分别完成汽车配件表Autoparts、商品类别表category>用户表Client、用户类别表Clientkind、购物车表shoppingcart、订单表Order >订单明细表order_has_Autoparts评论Comment的数据插入,数据值自定;并通过select语句检查插入前后的记录情况。

INSERT INTO 目标表SELECT * FROM 来源表;insert into insertTest select * from insertTest2;INSERT INTO目标表(字段1,字段2,...)SELECT字段1,字段2, ... FROM来源表;(这里的话字段必须保持一致)insert into insertTest2(id) select id from insertTest2;INSERT INTO 目标表(字段1,字段2,...)SELECT 字段1,字段2,...FROM来源表WHERE not exists (select * from 目标表where目标表.比较字段=来源表.比较字段);1>.插入多条记录:insert into insertTest2(id, name )select id, namefrom insertTestwhere not exists ( select * from insertTest2where insertTest2. id=insertTest. id);2>.插入一条记录: insert into insertTest (id, name )SELECT 100, 'liudehua' FROM dualWHERE not exists ( select * from insertTest where insertTest. id = 100); (2)使用带Select 的Insert 语句完成汽车配件表Autoparts 中数据的批量追加;并通过select 语句检查插入前后的记录情况。

数据库实验答案

数据库实验答案

实验3 使用T-SQL语言完成单表查询一、实验目的掌握使用T—SQL语言完成单表查询掌握常用谓词的用法掌握where子句的用法掌握order by 子句的用法掌握group by 子句和having短语的用法二、实验环境Microsoft SQL Server 2000。

三、实验内容和要求1.查询全体学生的详细信息。

2.查询所有课程的详细信息.3.查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。

4.查询已被学生选修了的课程的编号。

5.查询系别编号为“d002”的学生的姓名和性别。

6.查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。

7.查询系别编号为d001、d002和d003的学生的学号和姓名。

8.查询课程名为“C_”开头的课程名和学分.9.某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。

10.查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。

11.查询学校所开设的总的课程数.12.计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。

13.查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分"。

14.求各个系别的编号以及各系的人数。

15.查询选课人数大于等于2人的课程编号以及选课的人数。

16.查询学生200215122选修课程的总成绩对应的列名为“总成绩”,并显示出学号。

17.查询有2门以上课程是80分以上的学生的学号及课程数。

18.查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列.实验1 使用T-SQL语言建库、建表实验2 向表中增、删、改数据四、实验目的掌握使用T-SQL建库、建表、修改表;掌握使用T-SQL对表中数据进行插入、删除和修改.五、实验环境Microsoft SQL Server 2000.六、实验内容和要求19.建立数据库STDB20.在数据库STDB中建立四个表:Student表Department表Course表21.分别向以上四个表中增加数据。

数据库原理与应用实验报告三答案

数据库原理与应用实验报告三答案
广东金融学院实验报告
课程名称:数据库原理与应用
实验编号
及实验名称
实验三数据库高级应用实验
系 别
姓 名
学 号
班 级
实验地点
实验日期
年月日
实验时数
8
指导教师
同组其他成员

成 绩
一、实验目的及要求
1、掌握SQL Server存储过程的定义和使用。
2、掌握SQL Server触发器的定义和使用。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
4、思考题
1)存储过程和触发器的异同点?
四、实验步骤及结果(包含简要的实验步骤流程、结论陈述)
五、实验总结(包括心得体会、问题回答及实验改进意见)
六、教师评语
1、完成所有的实验内容,实验步骤和实验结果基本正确。
2、至少完成主要的实验内容,实验步骤和实验结果基本正确。
3、仅完成部分的实验内容,实验步骤和结果基本正确。
1、计算机操作系统要求在windows XP以上。
2、并要求SQL Server软件2000以后版本。
三、实验内容及要求
利用实验指导书中的关系数据库完成下面题目:
1、说明下面代码段的功能
SELECT tname as‘姓名’,tSex as‘性别’,
case trank
when‘教授’then‘高级职称’
declare@avgMarkfloat
declare@creditsfloat
EXECshow_course_Mark'081710106',@sccountoutput,@avgMarkoutput,@creditsoutput
select'081710106'as'学号',@sccountas'选课门数',@avgMarkas'平均分',@creditsas'所选学分'
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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门课的学生学号。

2、设职工-社团数据库有三个基本表:
职工(职工号,姓名,年龄,性别)
社会团体(编号,名称,负责人,活动地点)
参加(职工号,编号,参加日期)
试用SQL语句表达下列操作:
1)定义职工表、社会团体表和参加表,注意主码和参照关系
2)为职工表、社会团体表和参加表天添加适量数据(可用企业管理器)。

3)建立下面两个视图:
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) ;
参加人情况(职工号,姓名,社团编号,社团名称,参加日期);
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) ;
参加人情况(职工号,姓名,社团编号,社团名称,参加日期);。

相关文档
最新文档