数据库-实验三答案
数据库实验内容-答案
实验内容:实验一:数据库的操作使用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
数据库原理与应用实验报告三及答案
广东金融学院实验报告课程名称:数据库原理与应用实验编号及实验名称实验三数据库高级应用实验系别计科系姓名学号班级实验地点新电1101实验日期05月14日实验时数8指导教师同组其他成员无成绩一、实验目的及要求1、掌握SQLServer存储过程的定义和使用。
2、掌握SQLServer触发器的定义和使用。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)1、计算机操作系统要求在windowsXP以上。
2、并要求SQLServer软件月日第3页共2页。
大学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答案
实验三:创建及管理数据表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。
《数据库原理与应用》实验报告三及答案
课程名称:数据库原理与应用
实验编号
及实验名称
实验三数据库高级应用实验
系 别
计科系
姓 名
学 号
班 级
实验地点
新电1101
实验日期
2014年05月14日
实验时数
8
指导教师
同组其他成员
无
成 绩
一、实验目的及要求
1、掌握SQL Server存储过程的定义和使用。
2、掌握SQL Server触发器的定义和使用。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1、计算机操作系统要求在windows XP以上。
2、并要求SQL Server软件2000以后版本。
三、实验内容及要求
利用实验指导书中的关系数据库完成下面题目:
1、说明下面代码段的功能
SELECT tname as‘姓名’,tSex as‘性别’,
case trank
when‘教授’then‘高级职称’
when‘讲师’then‘中级职称’
else
‘初级职称’
end
from teacher
答:在教师表中选取姓名和性别两列,并给每个教师分等级;
2、完成下面代码的书写
计算student_course表的平时分数列的平均值。如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。
答:在student_course表中添加一列summark期末成绩,而exammark作为期中成绩,mark作为期末成绩;
createtriggerget_summark2onstudent_course
数据库原理及应用实验指导书答案
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
最新国家开放大学电大《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.分别向以上四个表中增加数据。
数据库查询语句例题与答案实验三
实验三数据查询语言一、基本查询使用相应SQL语句,完成如下操作:(1)查询所有用户的用户ID和姓名。
select uid,namefrom [user](2)查询注年龄最小3位用户的用户ID,姓名和年龄。
select top 3(uid),name,datediff(yyyy,birthday,getdate()) agefrom [user]order by birthday desc(3)查询库存小于50本的所有书目信息。
select*from bookwhere stock<50(4)查询清华大学出版社的所有书目信息。
select*from bookwhere press='清华大学出版社'(5)查询价格在50-100元的所有的书名。
select titlefrom bookwhere price>50 and price<100(6)查询姓“张”或“王”或“李”且单名的学生的情况。
select*from [user]where name like'张%'or name like'李%'or name like'王%'and len(name)=2(7)查询所有书目的书名、出版社及价格,要求出版社升序排列,出版社相同时,按价格从高到底进行排序。
select title,press,pricefrom bookorder by press,price desc(8)查询所有有交易记录的用户ID。
select oidfrom [order]where state= 4二、数据汇总使用相应SQL语句,完成如下操作:(1)查询理工类书目的最高价格、最低价格及平均价格。
select max(price)max_price,min(price)min_price,avg(price)avg_price from bookwhere category = 1(2)查询所有理工类书目的库存总量。
数据库认证实验三答案
--1,在student数据表sname字段上建立索引,索引名称为index_snamecreateindex index_sname on student(sname);--2,在课程表course为cname字段建立索引,索引名称为index_cnamecreateindex index_cname on course(cname);--3,删除索引index_sname,index_cnamedropindex index_sname on student;dropindex index_cname on course;--4,在student数据表中创建查看视图view_sno_sname,包含字段(sno,sname),并执行视图查看数据,并通过视图添加数据,完成--创建视图createview view_sno_snameasselect sno,snamefrom student;--添加数据到视图insertinto view_sno_snamevalues('1','张三');--查看视图里面的数据select*from view_sno_sname;--5,使用触发器完成,当删除student表中某个学生记录时,将该条被删除的学生记录,添加到studentinfo表中。
--创建一张studentinfo表createtable studentinfo(sno char(6)primarykey,sname nvarchar(30),ssex char(2),sage Tinyint,sdept nvarchar(20));createtrigger tri_student_deleteon studentfordeleteasdeclare@sno char(6),@sname nvarchar(30),@ssex char(2),@sage Tinyint,@sdept nvarchar(20)select@sno=sno,@sname=sname,@ssex=ssex,@sage=sage,@sdept=sdept from deletedinsertinto studentinfo(sno,sname,ssex,sage,sdept)values(@sno,@sname,@ssex,@sage,@sdept); --显示触发器exec sp_helptext'tri_student_delete';deletefrom student wheresno=1;select*from student;-- 在student表删除一条记录的同时,studentinfo表中同时添加了一条数据select*from studentinfo;--6,使用触发器完成,student表和sc表的级联删除操作--当student表中删除一条记录的时候,对应的sc中的记录也删除,即实现了级联删除的操作createtrigger stu_sc_deleteon studentfordeleteasdeclare@sno char(6)select@sno=sno from deleteddeletefrom sc where sno=@sno;select*from student;select*from sc;--删除student表中的一条数据deletefrom student where sno='2';select*from student;select*from sc;。
数据库实验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表CREATE TABLE Student(Sno CHAR(8)PRIMARY KEY,Sname CHAR(8),Ssex CHAR(2)NOT NULL,Sage INT,Sdept CHAR(20));(2)创建Course表CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40)NOT NULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATE TABLE SC(Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno),Cno CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATE TABLE Employee(编号CHAR(8)PRIMARY KEY,姓名VARCHAR(8)not null部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。
数据库SQLServer-实验3答案-教
数据库SQLServer-实验3答案- 教材-教辅.数据库技术与应用实验实验3 SQL Server数据表管理实验3 SQL Server数据表管理一、实验目的1.学会使用SQL Server管理平台和Transact-SQL语句CREATE TABLE 和ALTER TABLE创建和修改表。
2.学会在SQL Server管理平台中对表进行插入、修改和删除数据操作。
3.学会使用Transact-SQL语句对表进行插入、修改和删除数据操作。
4.了解SQL Server的常用数据类型。
二、实验内容1.启动SQL Server管理平台,在对象资源管理器中展开“studentsdb 数据库文件夹。
2.在studentsdb数据库中创建数据表《学生表》、《课程表》、《成绩表》,数据结构如图3-1、图3-2和图3-3所示。
图3-1 学生表图3-2 课程表2南京师范大学中北学院.数据库技术与应用实验实验3 SQL Server数据表管理图3-3 成绩表3.在SQL Server管理平台中创建《学生表》、《课程表》。
4.在SQL Server管理平台中,将《学生表》的学号列设置为主键,非空。
5.使用Transact-SQ语句 CREATE TABLE在studentsdb数据库中创建《成绩表》。
6.《学生表》、《课程表》、《成绩表》中的数据如图3-4、图3-5和图3-6所示。
7.在SQL Server管理平台中为《学生表》、《课程表》、《成绩表》添加数据。
3南京师范大学中北学院.数据库技术与应用实验实验3 SQL Server数据表管理(注意:在添加数据是必须逐行输入,否则系统将会报错,显示“出错信息为:键列信息不足或不正确。
更新影响到多行”,产生原因是由于相同记录所造成)。
8.使用Transact-SQL语句INSERT NTTO …VALUES向studentsdb数据库的《成绩表》插入以下数据:学号课程编号成绩0004 0001 804南京师范大学中北学院.数据库技术与应用实验实验3 SQL Server数据表管理9.使用Transact-SQL语句ALTER TABLE修改《课程表》的“课程编号”列,使之为非空。
数据库实验三-实验九含参考答案
select max(grade),min(grade),avg(grade) from sc where cno='001' 例 3-7:(分组查询) 求各门课程的平均成绩与总成绩。
select cno,avg(grade),sum(grade) from sc group by cno 例 3-8:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。 SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT WHERE SDEPT=’CS’ GROUP BY SDEPT;
选择列表中的列'STUDENT.Sname' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
例 3-9:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。 SELECT SAGE FROM STUDENT GROUP BY SNO;
选择列表中的列'STUDENT.Sage' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
实验五:数据查询语言
[ 实验目的 ]
体会 SQL 语言数据查询功能的丰富和复杂。
[ 实验内容 ]
3. SQL 数据查询语句: 例 3-1:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。 select sno,cno from sc where grade is null 例 3-2:(控制行的显示顺序) 求选修 003 课程或 004 课程的学生的学号、课程号和分数。 select sno,cno,grade from sc where cno in('003','004') order by grade 例 3-3:(组函数) 求学生总人数。
实验三四(标准答案)
实验三四(答案)[1]————————————————————————————————作者:————————————————————————————————日期:2实验三:数据库的嵌套查询实验实验目的:加深对嵌套查询语句的理解。
实验内容:使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
实验步骤:一. 使用带IN谓词的子查询1. 查询与’刘晨’在同一个系学习的学生的信息:select * from student where sdept in(select sdept from student where sname='刘晨')比较: select * from student where sdept =(select sdept from student where sname='刘晨') 的异同比较: select * from student where sdept =(select sdept from student where sname='刘晨') andsname<>'刘晨V比较: select S1.* from student S1, student S2 where S1.sdept=S2.sdept and S2.sname='刘晨'2. 查询选修了课程名为’信息系统’ 的学生的学号和姓名:SQL Server中: select sno, sname from student where sno in(select sno from sc where cno in(select cno from course where cname='信息系统'))VFP中: select sno, sname from student where sno in(select sno from sc, course where o=oand cname='信息系统')3. 查询选修了课程’1’和课程’2’的学生的学号:select sno from student where sno in (selectsnofrom sc where cno='1') and sno in (select sno from sc where cno='2')比较: 查询选修了课程’1’或课程’2’的学生的sno:select sno from sc where cno='1' or cno='2'比较连接查询:select A.sno from sc A, sc B where A.sno=B.sno and o='1' and o='2'二. 使用带比较运算的子查询4. 查询比’刘晨’年龄小的所有学生的信息:select * from student where sage<(select sage from student where sname='刘晨')三. 使用带Any, All谓词的子查询5. 查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄;select sname, sage from student where sage <Any(select sage from student where sdept='IS')and sdept<>'IS'6. 查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄:select sname, sage from student where sage <ALL(select sage from student where sdept='IS')and sdept<>'IS'7. 查询与计算机系(CS)系所有学生的年龄均不同的学生学号, 姓名和年龄: select sno,sname,sage from student where sage<>all(select sage from student where sdept='CS')四. 使用带Exists谓词的子查询和相关子查询8. 查询与其他所有学生年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student A where not exists(select * from student B where A.sage=B.sage and A.sno<>B.sno)9. 查询所有选修了1号课程的学生姓名:select sname from student where exists(select * from sc where sno=student.sno and cno='1')10. 查询没有选修了1号课程的学生姓名:select sname from student where not exists(select * from sc where sno=student.sno and cno='1')11. 查询选修了全部课程的学生姓名:SQL Server中:select sname from student where not exists(select * from course where not exists( select * from sc where sno=student.sno and cno=o))11. 查询至少选修了学生95002选修的全部课程的学生的学号:SQL Server中:select distinct sno from sc A where not exists(select * from sc B where sno='95002'and not exists(select * from sc C where sno=A.sno and cno=o))12. 求没有人选修的课程号cno和cnamecname:select cno,cname from course C where not exists(select * from sc where o=o )13*. 查询满足条件的(sno,cno)对, 其中该学号的学生没有选修该课程号cno 的课程SQL Server中:select sno,cno from student,course where not exists(select * from sc where cno=o and sno=student.sno)14*. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):select * from sc A where grade=(select max(grade) from sc where sno=A.sno )思考:如何查询所有学生都选修了的课程的课程号cno?实验四:数据库的分组查询和统计查询实验目的:熟练掌握数据查询中的分组、统计、计算和集合的操作方法。
数据库实验和参考答案
数据库实验和参考答案上机实验三1.在“学生管理数据库”中用查询分析器创建p82页的课程数据表(表名为kcb),并输入数据内容。
2.用查询分析器在student表中增加一个字段:“电话号码”,字符型,并设置默认值为“1111111”。
3.用查询分析器删除kcb表的主键4.用企业管理器或查询分析器修改course表,设置约束:学时>=学分*16。
5.用查询分析器修改学生管理数据库中的students_dat文件增容方式为一次增加3MB.6.将“学生管理数据库”更名为“学生管理”。
7.将“学生管理”数据库备份到外存中。
8.将“学生管理”数据库的数据导出为excel文件,并保存在外存中。
9.为course表中的课程名建立唯一性索引。
10.将“学生管理”数据库从系统中分离出来。
11. 将“学生管理”数据库附加到企业管理器中。
上机实验四1.分别查询学生表和学生修课表中的全部数据。
2.查询计算机系的学生的姓名、年龄。
3.查询选修了c01号课程的学生的学号和成绩。
4.查询成绩在70到80分之间的学生的学号、课程号和成绩。
5.查询计算机系年龄在18到20之间且性别为“男”的学生的姓名、年龄。
6.查询0412101号学生的修课情况。
7.查询c01号课程成绩最高的分数。
8.查询学生都选修了哪些课程,要求列出课程号。
9.查询Northwind数据库中orders 表的OrderlD、CustomerID和OrderDate,并将最新的定购日期(OrderDate)列在前边。
10.查询Northwind数据库中orders 表的ShipCountry列以B,C,D,F 开始且第三个字符为“a”的OrderlD、CustomerID和ShipCountry的信息。
11.查询Northwind数据库中orders 表的ShipCountry列不以A,B,C,D,E,F开始且最后一个字母是“a”的OrderlD、CustomerlD和ShipCountry的信息。
《数据库系统》实验---实验三答案
实验三复制表CREATE TABLE test3_01 AS(SELECT * FROM pub.student_31)增加五个列ALTER TABLE test3_01 ADD (总成绩int,平均成绩int,总学分int,排名int,院系编号varchar(2))(1)使用update语句,利用pub.student_course、pub.course,统计“总成绩”;UPDATE test3_01SET 总成绩=(SELECT SUM(成绩)FROM pub.student_coursewhere test3_01.学号=pub.student_course.学号GROUP BY 学号)(2)使用update语句,利用pub.student_course、pub.course,统计“平均成绩”;UPDATE test3_01SET 平均成绩=(SELECT avg(成绩)FROM pub.student_coursewhere test3_01.学号=pub.student_course.学号GROUP BY 学号)(3)使用update语句,利用pub.student_course、pub.course,统计“总学分”create table a as SELECT 学号,sum(学分) 总学分FROM pub.student_course,pub.coursewhere pub.course.课程号=pub.student_course.课程号and pub.student_course.成绩>=60GROUP BY 学号UPDATE test3_01SET 总学分=(select 总学分from awhere test3_01.学号=a.学号)drop table a(4)将总成绩的名次放入“排名”列中,总成绩相同的学生的排名也相同(即一个名次可以多个人),没有成绩的排名置空值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)建立下面两个视图:
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) ;
参加人情况(职工号,姓名,社团编号,社团名称,参加日期);
社团负责人(编号,名称,负责人职工号,负责
人姓名,负责人性别) ;
参加人情况(职工号,姓名,社团编号,社团名称,参加日期);
4) 查找参加歌唱队或篮球队的职工号和姓名。
5)查找参加了全部社会团体的职工情况。
6)查找没有参加任何社会团体的职工情况。
7)查找参加了职工号为“0002”的职工所参加全部社会团体的职工号。
8)求每个社会团体的参加人数。
9)求参加人数最多的社会团体的名称和参加人数。
10)求参加人数超过2人的社会团体的名称和负责人。
2、设工程零件数据库中有四个基本表:
供应商(供应商代码,姓名,所在城市,联系电话)
工程(工程代码,工程名,负责人,预算)
零件(零件代码,零件名,规格,产地,颜色)
供应零件(供应商代码,工程代码,零件代码,数量)
试用SQL语句表达下列操作:
1)定义以上几个表,注意主码和参照关系。
2)为以上几个表添加适量数据(可用企业管理器)。
3)找出天津市供应商的姓名和电话。
4)查找预算在50000-100000元之间的工程的信息,并将结果按预算降序排列。
5)找出使用供应商S1所提供零件的工程号码。
6)找出工程项目J2使用的各种零件名称及其数量。
7)找出上海厂商供应的所有零件号码。
8)找出使用上海产的零件的工程名称。
9)找出没有使用天津产零件的工程号码。
10)把全部红色零件的颜色改为蓝色。
11)将由供应商S5供给工程代码为J4 的零件P6 改为由S3供应,并作其他必要的修改。
12)从供应商关系中删除S2的记录,并从供应商零件关系中删除相应的记录。
六、实验报告要求及记录、格式
1、实验报告为WORD文档,文件名为“学号+姓名.DOC”,如“88888888张三.DOC”。
2、实验报告的内容为实验指导书的内容:标题+截屏。
3、每个实验结束后一周内由每班学习委员
收齐实验报告的电子版后压缩为一个名
为“班级+实验X.DOC“的RAR文件并
上交,如“信管11实验1.rar”。
七、实验注意事项
实验过程中注意爱护计算机,实验完毕要按正常操作关闭计算机。
八、实验结果讨论、体会和收获。