数据库实验三(含答案)

合集下载

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

《数据库原理与应用》实验报告三及答案
@screditas'所选学分'
结果:
警告:聚合或其他SET操作消除了Null值。
学生号选课门数平均分所选学分
--------- ----------- ---------------------- -----------
081220101 669 22
(1行受影响)
4、思考题
1)存储过程和触发器的异同点?
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1、计算机操作系统要求在windows XP以上。
2、并要求SQL Server软件2000以后版本。
三、实验内容及要求
利用实验指导书中的关系数据库完成下面题目:
1、说明下面代码段的功能
LE (SELECT____avg________(NormalMark) FROMstudent_course)<80
BEGIN
if (SELECT MAX(NormalMark) FROMstudent_course)>____95_____
BREAK
ELSE
___UPDATE student_course
case trank
when‘教授’then‘高级职称’
when‘讲师’then‘中级职称’
else
‘初级职称’
end
from teacher
答:在教师表中选取姓名和性别两列,并给每个教师分等级;
2、完成下面代码的书写
计算student_course表的平时分数列的平均值。如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。
SET NormalMark = NormalMark *1.05

SQL数据库实验三_简单查询(2)解答

SQL数据库实验三_简单查询(2)解答

实验三简单查询(2)解答实验结果1、查询住址在上海的员工所做的订单,结果输出员工编号、姓名、住址、订单编号、客户编号和订单日期,并按客户编号排序输出。

SQL语句:SELECT employeeNo,employeeName,address,orderNo,customerNo,orderDateFROM Employee,OrderMasterWHERE employeeNo= salerNo AND address like'%上海%'ORDER BY customerNo查询结果:2、查找订购了“32M DRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。

SQL语句:SELECT a.customerNo,customerName,b.orderNo,quantity, price*quantity total FROM Customer a,OrderMaster b, OrderDetail c, Product dWHERE a.customerNo=b.customerNo AND b.orderNo=c.orderNo ANDc.productNo=d.productNo AND productName='32M DRAM'ORDER BY a.customerNo查询结果:3、查找与“张小娟”在同一个部门工作的员工姓名、所属部门、性别和出生日期。

SQL语句:SELECT b.employeeName,b.department,CASE b.sexWHEN'M'THEN'男'WHEN'F'THEN'女'ELSE'不详'END sex,CONVERT(CHAR(10),b.birthday,120) birthdayFROM Employee a,Employee bWHERE a.department=b.department AND a.employeeName='张小娟'查询结果:4、查询1973年出生的员工所订购产品的订单,输出结果为员工编号、姓名、所属部门、订单编号、客户名称、订单日期,按员工编号排序编号。

数据库实验三作业及答案

数据库实验三作业及答案

实验3 SQL Server 数据表的管理一、实验目的1.学会使用企业管理器和Transact-SQL语句CREATE TABLE和ALTER TABLE创建和修改表。

2.学会在企业管理器中对表进行插入、修改和删除数据操作。

3.学会使用Transact-SQL语句对表进行插入、修改和删除数据操作。

4.了解SQL Server的常用数据类型。

二、实验准备1.了解在企业管理器中实现表数据的操作,如插入、修改和删除等。

2.掌握用Transact-SQL语句对表数据进行插入(INSERT)、修改(UPDATE)和删除(DELETE和TRANCATE TABLE)操作。

三、实验内容及步骤1.启动企业管理器,展开studentsdb数据库文件夹。

2.在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2、图1-3和图1-4所示。

图1-2 学生基本情况表student_info图1-3 课程信息表curriculum图1-4 学生成绩表grade3.在企业管理器中创建student_info、curriculum表。

4.在企业管理器中,将student_info表的学号列设置为主键,非空。

5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表。

CREATETABLE grade(学号varchar(4),课程编号varchar(4),分数decimal(5,0))6.student_info、curriculum、grade表中的数据如图1-5、图1-6和图1-7所示。

图1-5 student_info的数据图1-6 curriculum的数据图1-7 grade的数据7.在企业管理器中为student_info、curriculum、grade表添加数据。

8.使用Transact_SQL语句INSERT INTO...VALUES向studentsdb数据库的grade表插入以下数据:学号课程编号分数0004 0001 80答; CREATE TABLE grade(学号 char(4),课程编号 char(4),分数 decimal)INSERT INTO grade VALUES('0004','0001','80')9.使用Transact_SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与管理实验南京晓庄学院《数据库原理与应⽤》课程实验报告实验三数据表的创建与管理实验所在院(系):数学与信息技术学院班级:学号::1.实验⽬的(1)理解SQL Server 2005常⽤数据类型和表结构的设计⽅法。

理解主键、外键含义,掌握建⽴各表相关属性间参照关系的⽅法。

(2)熟练掌握使⽤SQL Server Management Studio图形⼯具创建表,删除表,修改表结构,插⼊及更新数据的⽅法。

(3)熟练掌握使⽤Transact-SQL语句创建表,删除表,修改表结构,插⼊及更新数据的⽅法。

2.实验要求基本实验:(1)在实验⼆所创建的“TM”数据库中合理设计以下各表逻辑结构:学⽣信息(学号,,性别,籍贯,出⽣⽇期,民族,学院/系别号,班级号)课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时)学习信息(学号,课程号,考试成绩,平时成绩)院系信息(院系号,院系名称)要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。

(2)依据你所设计的表结构,使⽤SQL Server Management Studio图形⼯具在“TM”数据库中创建学⽣信息表和课程信息表,并试验在图形界⾯中修改表结构,删除数据表,输⼊并更新数据的⽅法。

(3)依据你所设计表结构,使⽤Transact-SQL语句创建学习信息表和院系信息表,并试验使⽤T-SQL语句修改表结构,删除数据表,插⼊和更新数据的⽅法。

(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引⽤完整性约束。

(5)按要求完成实验报告。

扩展实验:(1)在“TM”数据库中补充设计以下各表结构:教师信息(教师号,,性别,出⽣⽇期,学历,学位,⼊职时间,职称,院系号)授课信息(教师号,课程号,学期)班级信息(班级号,班级名称,专业号)专业信息(专业号,专业名称,学制,学位)图书信息(图书号,书名,作者,,出版⽇期,册数,价格,分类)借书偏息(学号,图书号,借出时间,归还时间)奖励信息(学号,奖励类型,奖励⾦额)(2)设计并实现各表之间相关属性的参照关系。

数据库 实验三答案

数据库 实验三答案

实验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 使用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)解答

SQL数据库实验三_简单查询(1)解答
查询结果:
16.在订单数据库中,根据员工的薪水进行分类显示。(薪水小于2000元的,显示“低收入者”,大于等于2000元小于4000元的,显示“中等收入者”,大于等于4000元的,显示“高收入者”。
SQL语句:
SELECTemployeeNo,employeeName,salary,薪水级别=
CASE
FROMEmployee
WHEREyear(hireDate)=1991
查询结果:
其他:
selectemployeeNo,employeeName,sex,telephone=isnull(telephone,'不详'),
birthday=convert(char(10),birthday,120),year(getdate())-year(birthday)asage
fromEmployee
wheredepartment<>'业务科'anddepartment<>'财务科'
12.查询1991年被雇佣的职工号、姓名、性别、电话号码、出生日期以及年龄,如果电话号码为空,显示“不详”,出生日期按yyyy-mm-dd显示。
SQL语句:
SELECTemployeeNo,employeeName,sex,isnull(telephone,'不详')telephone,CONVERT(CHAR(10),birthday,120)birthday,year(getdate())-year(birthday)age
FROMEmployee
WHEREdepartment='业务科'ordepartment='财务科'

数据库实验三

数据库实验三
【例4.16】查询单价在50—100之间的物资名称、数量及其 单价
SELECT mat_name, amount, unit FROM stock WHERE unit BETWEEN 50 AND 100 等价
SELECT mat_name, amount, unit FROM stock WHERE unit>=50 AND unit<=100
%代表任意长度(长度可以为0)的字符串
_代表任意单个字符
【例4.20】查询存放在供电局1#仓库的物资的详细情况 SELECT * FROM stock WHERE warehouse LIKE ‘供电局1#仓库’ 等价于 SELECT * FROM stock WHERE warehouse=‘供电局1#仓库’
一、单表查询
单表查询是指仅涉及一张表的查询。 1、选择表中的若干列 选择表中的全部列或部分列,这就是关系代数的投影运算。 1)查询指定的列:在很多情况下,用户只对表中一部分属性列
感兴趣,这时可以通过在SELECT子句的<目标列表达式>中指定 要查询的属性列。 【例4.8】查询所有配电物资的物资编号、物资名称、规格 SELECT mat_num, mat_name, speci FROM stock;
请按照课本第62页的语法,演练【例4.22】、【例 4.23】、【例4.24】
(5) 涉及空值的查询
空值(NULL)在数据库中有特殊含义,它表示不确定的值。 判断取值为空的语句格式为:列名 IS NULL 判断取值不为空的语句格式为:列名 IS NOT NULL 【例4.25】 查询无库存单价的物资编号及其名称 SELECT mat_num, mat_name FROM stock WHERE unit IS NULL 注意: 这里的“IS”不能用等号(=)代替。

数据库实验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(o CHAR(4)PRIMARYKEY,ame CHAR(40)NOTNULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATETABLE SC(Sno CHAR(8)FOREIGNKEY (Sno)REFERENCES Student(Sno), o CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATETABLE Employee(编号CHAR(8)PRIMARYKEY,VARCHAR(8)notnull部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。

数据库认证实验三答案

数据库认证实验三答案

--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;。

数据库查询语句例题与答案实验三

数据库查询语句例题与答案实验三

实验三数据查询语言一、基本查询使用相应SQL语句,完成如下操作:(1)查询所有用户的用户ID 和姓名。

select uid , namefrom [user](2)查询注年龄最小 3 位用户的用户ID, 姓名和年龄。

select top 3 ( uid ), name , datediff ( yyyy , birthday , getdate ()) age from [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 )= 27)查询所有书目的书名、出版社及价格,要求出版社升序排列,出版社相同时,按价格从高到底进行排序。

title , press , price bookfrom [order]where state = 4、数据汇总使用相应 SQL 语句,完成如下操作:1)查询理工类书目的最高价格、最低价格及平均价格。

select max( price ) max_price , min ( price ) min_price , avg ( price ) avg_price from bookwhere category = 1(2) 查询所有理工类书目的库存总量。

数据库SQLServer-实验3答案-教

数据库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修改《课程表》的“课程编号”列,使之为非空。

数据库实验三-实验九含参考答案

数据库实验三-实验九含参考答案
例 3-15:(匹配查询) 求选修课程 1 或 3,成绩在 80 至 90 之间,学号为 200215xxx 的学生的学号、 课程号和成绩。 select Sno,Cno,Grade from SC where Cno in('1','3')and Grade Between 80 and 90 and Sno like'200215%'
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:(组函数) 求学生总人数。

SQL数据库实验三_简单查询(1)解答

SQL数据库实验三_简单查询(1)解答
查询结果:
其他:
selectemployeeName,department,
case
whensex='M'then'男'
whensex='F'then'女&#
whereemployeeNamelike'张%'
10.查询姓张且全名为三个汉字的职工姓名。
SQL语句:
SELECTemployeeName
9.查询所有姓张的职工姓名、所属部门和性别,且性别显示为“男”或“女”。
SQL语句:
SELECTemployeeName,department,sex=
casesex
WHEN'M'THEN'男'
WHEN'F'THEN'女'
ELSE'不详'
END
FROMEmployee
WHEREemployeeNameLIKE'张%'
whensalary<2000then'低收入者'
whensalary>=2000andsalary<4000then'中等收入者'
whensalary>=4000then'高收入者'
end
fromEmployee
WHEREyear(birthday)=1973ANDheadShip='职员'
查询结果:
其他:
SELECT*
FROMEmployee
WHEREyear(birthday)='1973'ANDheadShip='职员'

《数据库系统》实验---实验三答案

《数据库系统》实验---实验三答案

实验三复制表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)将总成绩的名次放入“排名”列中,总成绩相同的学生的排名也相同(即一个名次可以多个人),没有成绩的排名置空值。

大学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)查询有考试成绩(即成绩不为空值)的学生的学号、课程号。

数据库第三次实验报告

数据库第三次实验报告

《数据库系统概论》实验报告姓名班级学号日期题目:实验 3:视图操作和安陈鑫100111062011302526 2013-10-23全性控制一实验内容及步骤结果:(1)在 Student 数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986 年出生的学生的视图,视图中包括学号,性别,成绩这三个信息。

运行结果:(2) 用两种不同的SQL语句创建课本128 页第 11 题中要求的视图(视图名: V_SPJ)1第一种方法:create view v_spjasselect sno , pno , qtyfrom spj, jwherespj . jno= j . jnoand j . jname=' 三建'2第二种方法:create view v_spjasselect sno , pno , qtyfrom spjwhere jno in( select jnofrom jwhere j . jname =' 三建 ' ).(3)用 SQL语句完成课本 128 页第 11 题中对视图 V_SPJ的查询第一问:select *from v_spj第二问:select pno , qtyfrom v_spjwhere sno = 'S1' ;.(4) 用 T-SQL 语句操作视图的数据。

(15 分,每题 5 分)1给视图 V_SPJ中增加一条数据 ( 基本表中有插入的数据即可 ) 。

insert into v_spj ( sno , pno , qty )values ( 'S6' , 'P6' , 600 );2修改视图 V_SPJ中的任意一条数据的供应数量。

update v_spjset sno ='s1'where qty = 400 ;3删除视图 V_SPJ中的任意一条数据。

deletefrom v_spjwhere qty = 200(5) 在图形用户界面中创建新登录名以及用户。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三完整性的操作,创建视图等
一.实验目的:
1.创建、删除和修改约束
2.视图的创建和使用
3.生成和执行SQL脚本
二.实验内容:
内容一:创建和修改约束
1.约束可分为:“非空约束,主键约束,唯一约束,检查约束,默认约束”。

按照以下的表格要求,把上次课的表格约束完成,并在每个约束设置完后验证,并把验证结果保存。

表1“学生”
2.创建表2“学期成绩”,标结构如下:
3.创建表3“课程注册”,表结构如下:
内容二:创建视图
1.创建学生表的视图view_stu,课程注册的视图view_cou。

2.查看view_stu的视图信息。

4.修改刚才输入的数据记录。

5.删除你所添加的数据记录。

6.删除视图view_cou。

会修改
8. 基本表得数据修改,是否影响视图。

反应外模式和模式之间的
关系。

会影响。

内容三:生成和执行SQL 脚本
1.将你所建立的数据库生成SQL 脚本。

(注意:命名自定(下同))。

2.将数据库中的数据表分别生成SQL脚本。

3.执行SQL 脚本。

参照sql 脚本的写法,创建一个新的数据库并在此数据库里创建一张新表。

相关文档
最新文档