数据库上机实验题目和答案
数据库原理及应用书后上机实验答案
数据库原理及应用——崔巍_书后上机实验程序源代码:--1CREATE DATABASE test1ON(NAME=test1_dat,FILENAME='f:\DB\data\test1dat.mdf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME=order_log,FILENAME='f:\DB\data\test1log.ldf',SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB)--2create database test2onprimary(name=test2_dat1,filename='f:\DB\data\test2dat1.mdf'),(name=test2_dat2,filename='f:\DB\data\test2dat2.ndf'),(name=test2_dat3,filename='f:\DB\data\test2dat3.ndf')log on(name=test2_log1,filename='f:\DB\data\test2log1.ldf'),(name=test2_log2,filename='f:\DB\data\test2log2.ldf')--3create database test3onprimary(name=test3_dat1,filename='f:\DB\data\test3dat1.mdf'),(name=test3_dat2,filename='f:\DB\data\test3dat2.mdf'),filegroupg2(name=test3_dat3,filename='d:\DB\data\test3dat3.ndf'),(name=test3_dat4,filename='d:\DB\data\test3dat4.ndf'),filegroupg3(name=test3_dat5,filename='e:\DB\data\test3dat5.ndf'),(name=test3_dat6,filename='e:\DB\data\test3dat6.ndf')log on(name=test3_log,filename='f:\DB\data\test3log.ldf')--4alter database test1add file(name=test1new_dat,filename='f:\DB\data\test1newdat.ndf',size=5MB)--5alter database test1modify file(name=test1_dat,size=15MB)--6dropdatabasetest3四、实验数据、结果分析:若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。
数据库上机实验题目和答案
试用SQL的查询语句表达下列查询:1.检索王丽同学所学课程的课程号和课程名。
select Cno ,Cname from c where Cno in(select cno from sc where sno in (select sno from s where sname='王丽' ))2.检索年龄大于23岁的男学生的学号和姓名。
select sno,sname from swhere sex='男' and age>233.检索‘c01’课程中一门课程的女学生姓名select sname from swhere sex='女' and sno in(select sno from sc where cno='c01')4.检索s01同学不学的课程的课程号。
select cno from cwhere cno not in (select cno from sc where sno ='s01')5.检索至少选修两门课程的学生学号。
select sc.sno from s,scwhere s.sno=sc.snogroup by sc.snohaving count(o)>=26.每个学生选修的课程门数。
解法一:select so.sno sno,ount,s.snamefrom(select sc.sno sno,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno ) so,swhere s.sno=so.sno解法二:select sc.sno sno,s.sname,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno,sname7.求选修C4课程的学生的平均分。
数据库上机考试试题及答案
1下列说法中正确的是:( D )A 、 SQL 中局部变量可以不声明就使用B 、 SQL 中全局变量必须先声明再使用C 、 SQL 中所有变量都必须先声明后使用D 、 SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。
2.哪个关键字用于测试跟随的子查询中的行是否存在( B )。
A.MOV B.EXISTSC.UNION D.HAVING3 .下列哪些语句用于创建存储过程( A )?A、CREATE PROCEDUREB、CREATE TABLEC、DROP PROCEDURED、其他5.在SQL中,SELECT语句的“SELECT DISTINCT”表示查询结果中 ( C )。
A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATA实现下列哪类功___A_____。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制Server 2000 采用的身份验证模式有( D )。
(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式Server 2000 企业版可以安装在操作系统上。
( C )(A)Microsoft Windows 98(B)Microsoft Windows 2000 Professional(C)Microsoft Windows 2000 Server(D)Microsoft Windows XPServer是一个( C )的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是语言中,删除一个视图的命令是( B )。
A. DELETEB. DROPC. CLEARD. REMOVE语言中,删除记录的命令是( A )。
A. DELETEB. DROPC. CLEARD. REMOVE14.以下触发器是当对[employee表]进行( D )操作时触发。
数据库上机实验报告
数据库实验(第三次)题目1 实验内容:1. 检索上海产的零件的工程名称;2. 检索供应工程J1零件P1的供应商号SNO;3. 检索供应工程J1零件为红色的供应商号SNO;4. 检索没有使用天津生产的红色零件的工程号JNO;5. 检索至少用了供应商S1所供应的全部零件的工程号JNO;6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。
1select jnamefrom jwhere jno in(select jnofrom spjwhere sno in(select snofrom swhere city ='上海'));2select snofrom spjwhere jno ='j1'and pno ='p1'3selectdistinct snofrom spjwhere pno in(select pnofrom pwhere color='红'and pno in (select pnofrom spjwhere jno ='j1'));4selectdistinct jnofrom spjwhere pno notin(select pnofrom pwhere color ='红'and pno in (select pnofrom spjwhere sno in(select snofrom swhere city ='天津')))5select jnofrom spjwhere sno ='s1'6select jno,qtyfrom spjwhere pno ='p1'orderby qty desc四﹑思考题1. 如何提高数据查询和连接速度。
建立视图2. 试比较连接查询和嵌套查询有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。
数据库上机实验
实验一数据表的建立一、实验目的:熟悉Access 2000的操作环境,并了解关系数据库中关系在Access 2000中的表示——数据表,同时掌握数据表建立的不同方法。
二、实验要求:1.掌握Access 2000的启动和退出;2.了解Access 2000的特性;3.熟悉Access 2000的操作界面、窗口组成各元素;4.掌握Access 2000中建立、保存数据库的方法;5.掌握Access 2000中打开数据库的方法;6.掌握在Access 2000数据库中建立数据表的方法;7.掌握数据表中字段属性的设置和修改;8.掌握数据表中数据的输入、修改、添加、删除;9.掌握在Access 2000数据表的两种视图。
三、实验内容:1、启动Access 2000;2、打开已有的数据库文件(如“罗斯文示例数据库”);3、熟悉Access的操作环境,了解其窗口组成各元素;4、通过帮助了解Access 2000的功能和新特性;5、在Access 2000中新建一个SPJ数据库,并在其中用三种不同的方法(数据表视图、表向导、设计视图)新建S、P、J、SPJ四个数据表,各表结构及内容见下页;6、根据表中数据设置各字段的类型及大小,并设置S、P、J表的主键分别为SNO、PNO、JNO,SPJ表的主键为SNO+PNO+JNO,这些字段不能取空值、而且各记录的值互不相同;7、为S表的CITY字段设置有效性规则,限定其输入的城市只能为“天津”、“北京”、“上海”之一;为SPJ表的QTY字段设置有效性规则,限定其输入的数量在100~900之间;8、按表格所示内容输入各表数据;9、练习表中记录的浏览、修改、插入、删除;10、退出Access。
四、实验步骤:1、启动Access 2000在Windows中单击“开始/程序/Microsoft Access”命令即可启动Access,如图1-1所示。
启动Access后,即可看到一个初始对话框出现,如图1-2所示。
数据库上机实验答案5
数据库上机实验答案 5学号:姓名:日期:年月日实验目的:综合练习所学的SQL语言。
学习日期函数。
实验内容:基于提供的食堂交易记录trans表,进行查询,记录SQL语句及查询结果。
食堂交易记录表trans的数据说明如下:trans食堂交易记录(stuID,学生学号posID,刷卡机编号transTime,交易时间transValue,交易金额)1 食物销量大比拼创建一张表格posSummary,表格内容如下: pos机编号,就餐人数,刷卡次数,销售金额,平均每次刷卡金额。
以pos机编号为主键。
利用insert语句填充数据。
选择并展示posSummary中销售金额前10的pos机。
2 评选食堂忠实粉丝创建一个视图stuSummary,视图内容如下:学生ID,刷卡次数,刷卡总金额,刷卡平均金额。
基于创建的视图,分别找出刷卡次数最多、刷卡总金额最多、刷卡平均金额最多的同学。
3 学习日期函数datepart执行如下语句。
将执行结果复制到excel中,绘制散点图。
解释图的意思。
select datepart(hour,transtime)*60+datepart(minute,transtime)as minuteOfDay,count(*) as freq from trans group by datepart(hour,transtime)*60+datepart(minute,transtime) order by datepart(hour,transtime)*60+datepart(minute,transtime)其中,日期函数datepart(hour,transtime)的意思是将transtime中小时的部分取出来。
4 就餐规律研究计算某一天是星期几的方法如下:datepart(weekday,transtime),其计算结果周日为1,周一为2,周六为7。
基于题3中的方法,绘制上课日(周一到周五)学生的就餐规律和休息日(周六、周日)学生的就餐规律图。
数据库期末上机试题参考答案
公司数据库由下面三个表组成:上机测试题目:要求完成以下操作:一、使用SQL命令创建名为‘corporation’的公司数据库(参数自己定义)。
(5分)CREATE DATABASE corporationON(name=CP_dat,filename="'+ @data_path+'saledat.mdf",size=8,maxsize=10,filegrowth=1)LOG ON(name=sales_log,filename ="'+@data_path +'salelog.ldf",size=1mb,filegrowth=1mb)二、分别将公司数据库中雇员、部门、工作三个表命名为Employee、Department、work。
按照上述表格内容创建这三个数据表(列名使用汉语拼音),并向三个数据表输入数据。
(5分)USE corporationGO--创建雇员表CREATE TABLE Employee (emp_no char(3) NOT NULL,emp_name char(6) NULL,age INT NULL,address nchar(2) NULL,sal INT NULL)INSERT INTO Employee V ALUES('E01', 'tom', 35, '广州',8000)INSERT INTO Employee V ALUES('E02', 'dennis',24,'顺德',5000)INSERT INTO Employee V ALUES('E03', 'john ',20,'广州',4000)INSERT INTO Employee V ALUES('E04', 'rick',41,'顺德',7000)INSERT INTO Employee V ALUES('E05', 'bill',45,'河源',7500)INSERT INTO Employee V ALUES('E06', 'frank',35,'广州',6000)INSERT INTO Employee V ALUES('E07', 'jank',25,'佛山',3000)INSERT INTO Employee V ALUES('E08', 'mike',23,'佛山',3500)--创建部门表CREATE TABLE Department (dep_no char(3) NOT NULL,dep_name nvarchar(2) NULL,dep_manager char(3) NULL)INSERT INTO Department V ALUES('D01','人事','E04')INSERT INTO Department V ALUES('D02','信息','E01')INSERT INTO Department V ALUES('D03','销售','E05')INSERT INTO Department V ALUES('D04','财务','E06')--创建工作表CREATE TABLE work (emp_no char(3) NULL,dep_no char(3) NULL,dep_year INT NULL)INSERT INTO work V ALUES('E01','D02',6)INSERT INTO work V ALUES('E01','D03',1)INSERT INTO work V ALUES('E01','D04',2)INSERT INTO work V ALUES('E02','D01',2)INSERT INTO work V ALUES('E02','D04',0)INSERT INTO work V ALUES('E03','D02',0)INSERT INTO work V ALUES('E04','D01',4)INSERT INTO work V ALUES('E04','D02',1)INSERT INTO work V ALUES('E05','D03',2)INSERT INTO work V ALUES('E06','D04',4)INSERT INTO work V ALUES('E07','D04',1)INSERT INTO work V ALUES('E08','D03',2)三、用SQL语句完成下列查询,上机验证之后将SQL语句按题号保存。
数据库上机实验(有答案)
数据库上机实验内容及要求(第二部分)1.建立工厂管理数据库工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:(1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话;(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种;(3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产;(4)一个车间制造多种零件,一种零件也可能为多个车间制造。
零件有零件号、重量和价格;(5)一种产品可由多种零件组成,一种零件也可以装配出多种产品;(6)产品和零件均存入仓库;(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
根据以上需求分析结果,按照下述要求,设计并建立工厂管理数据库。
◆分析实体及联系,设计E-R图。
◆将E-R图转换成关系模式,并规范化到3NF。
◆在Microsoft SQL Server2000中基于“企业管理器”建立数据库及相关对象(主码,外码,索引,约束等)。
◆测试数据入库2.基于“查询分析器”,完成并保存下述题目的SQL脚本(1)建立“工种”是“钳工”的所有职工详细信息的视图;create view View_工人_钳工asselect*from职工表where工种='钳工'with check option(2)建立“车间号”是“CJ01”的钳工详细信息的视图;create view View_钳工_CJ01asselect*from View_工人_钳工where车间号='CJ01'(3)建立使用了“零件号”是“LJ0002”的所有产品详细信息的视图;create view View_产品_零件LJ0002asselect产品表.产品号,价格,车间号,仓库号from装配表,产品表where装配表.产品号=产品表.产品号and零件号='LJ0002'(4)对零件表按照“零件号”建立唯一索引;create unique index Index_U_零件号on零件表(零件号)(5)对职工表按照“性别”建立聚簇索引;create clustered index Index_C_性别on职工表(性别)(6)查询使用了“零件号”是“LJ0002”的产品的生产车间号;select车间号from装配表,产品表where装配表.产品号=产品表.产品号and零件号='LJ0002'(7)查询“职工号”是“ZG0001”的职工所在车间的“车间主任姓名”和“联系电话”;select车间主任姓名,联系电话from职工表,车间表where职工表.车间号=车间表.车间号and职工号='ZG0001'(8)查询使用了“零件号”是“LJ0002”的所有产品的生产车间的“车间主任姓名”和“联系电话”;(连接查询、嵌套查询实现)select车间主任姓名,联系电话from产品表,装配表,车间表where产品表.产品号=装配表.产品号and产品表.车间号=车间表.车间号and装配表.零件号='LJ0002'select车间主任姓名,联系电话from车间表where车间号in(select车间号from产品表where产品号in(select产品号from装配表where零件号='LJ0002'))(9)查询使用了“零件号”是“LJ0002”的所有产品的“产品号”和“零件数量”,且查询结果按照“零件数量”降序排列;select产品号,零件数量from装配表where零件号='LJ0002'order by零件数量desc(10)查询使用了“零件号”是“LJ0002”的产品数;select count(*)as产品数from装配表where装配表.零件号='LJ0002'(11)查询“LJ0002”号零件装配产品的使用总量;select sum(零件数量)as使用总数from装配表where零件号='LJ0002'(12)查询使用了3种以上零件的产品号;select产品号from装配表group by产品号having count(*)>=3【注意】:下机时保存数据库文件(.mdf和.ldf)及SQL脚本文件到U盘。
(完整版)数据库张上机实验点评及参考答案
上机实验三——基本表的建立和修改三、实习内容:1.启动MSSQL Server服务,打开Enterprise Manager和Query Analyzer。
2.在Query Analyzer中用CREATE TABLE命令在实验二创建的GradeManager数据库中定义基本表:学生表(Student)、课程表(Course),利用EnterpriseManager的图形化功能建立班级表(Class)以及成绩表(Grade)。
create table Student( Sno char(7) primary key ,Sname varchar(20) not null ,Ssex char(2) not null,Sage Smallint ,Clno char(5)not null);create table Class( Clno char(5) primary key,Speciality varchar(20) not null,Inyear char(4) not null,Number integer ,Monitor char(7) );create table Course(Cno char(1) primary key,Cname varchar(20) not null,Credit Smallint );create table Grade(Sno char(7) references student(sno),Cno char(1) references course(cno),Gmark numeric,Primary key(sno,cno));四、针对以上四个表,用SQL语言完成以下各项操作。
①给学生表增加一属性Nation(民族),数据类型为Varchar(20);②删除学生表中新增的属性Nation;③向成绩表中插入记录(”2001110”,”3”,80);④修改学号为”2001110”的学生的成绩为70分;⑤删除学号为”2001110”的学生的成绩记录;⑥为学生表创建一个名为IX_Class的索引。
数据库实验上机答案整理-中国石油大学-龚安
数据库实验上机答案整理-中国石油大学-龚安实验四SQL练习2一、实验目的1.掌握索引的建立、删除及使用;2.掌握单表查询、连接查询、嵌套查询和集合查询;3.掌握插入数据、修改数据和删除数据语句的非常用形式。
二、实验学时2学时三、实验内容1.利用Query Analyzer完成以下操作:⑴在预算日期、结算日期和入账日期上分别建立索引,并在查询操作中体会索引的作用。
⑵在完成第2题的查询操作后,删除预算日期、结算日期和入账日期上的索引。
2.利用Query Analyzer完成以下操作:⑴采油一矿二队2016-5-1到2016-5-28有哪些项目完成了预算,列出相应明细。
⑵采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应明细。
⑶采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应的材料费消耗明细。
⑷采油一矿二队2016-5-1到2016-5-28有哪些项目完成了入账,列出相应明细。
⑸列出采油一矿二队2016-5-1到2016-5-28总的预算金额。
⑹列出采油一矿二队2016-5-1到2016-5-28总的结算金额。
⑺列出采油一矿二队2016-5-1到2016-5-28总的入账金额。
⑻列出采油一矿2016-5-1到2016-5-28总的入账金额。
⑼有哪些人员参与了入账操作。
⑽列出2016-5-1到2016-5-28进行了结算但未入账的项目。
⑾列出采油一矿二队的所有项目,按入账金额从高到低排列。
⑿列出有哪些施工单位实施了项目,并计算各单位所有项目结算金额总和。
⒀找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询)。
⒁作业公司二队参与了哪些项目。
⒂作业公司一队和二队参与了哪些项目(利用union)。
⒃采油一矿的油井是哪些作业队参与施工的。
3.利用Query Analyzer完成以下操作:⑴建立数据表(包含3个属性列:★施工单位、★年月、◆结算金额)保存各个施工单位每月的结算金额总和。
数据库原理及应用最全上机实验及实验答案
实验一 SQL Server 2005 的安装和环境介绍一.实验目的与要求:1.掌握SQL Server 2005 服务器的安装方法2.了解SQL Server 2005 的环境3.了解数据库及其对象二.实验准备1.了解SQL Server 2005的版本2.了解SQL Server 2005各版本对硬件和软件的需求三.实验要求1.写出SQL SERVER 2005的功能与特点, 使用方法, 应用状况的报告2.完成SQL SERVER 2005的安装、启动、登录。
四.实验内容1.安装SQL Server 2005实验一 SQL Server 2005 的安装和环境介绍●实验指导——安装SQL Server 20051.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2.将 SQL Server 2005 DVD 插入 DVD 驱动器。
如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到 DVD 的根目录然后启动splash.hta。
3.在自动运行的对话框中,单击“运行 SQL Server 安装向导”。
4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。
接受许可协议后即可激活“下一步”按钮。
若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。
如下图:5.在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。
有关组件要求的详细信息,请单击该页底部的“帮助”按钮。
若要开始执行组件更新,请单击“安装”。
更新完成之后若要继续,请单击“完成”。
6.在 SQL Server 安装向导的“欢迎”页上,单击“下一步”以继续安装。
7.在“系统配置检查 (SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。
8.在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。
数据库上机实验答案2-2
数据库上机实验答案2-2学号:姓名:日期:20 年月日实验目的:练习初步的SQL查询语句,包括:字符串比较、字符串函数等。
实验内容:基于提供的诺基亚N73的淘宝数据表,包括:商品列表Goods,完成如下查询,并回答问题。
要求:(1)输出统计答案;(2)输出查询语句。
1 通配符的练习:用通配符%和_,完成下列问题(1)Goods表中,有多少个商品的名称含有“N73”?2004select count(*)from goods where good_name like'%N73%'(2)Goods表中,有多少个商品的名称以“诺基亚”开头?1102select count(*)from goods where good_name like'诺基亚%'(3)根据商品名称,找出以“诺基亚”开头,且“全国联保”的商品列表。
select*from goods where good_name like'诺基亚%'and good_name like'%全国联保%'(4)找出商品名称中有空格的商品列表。
select*from goods where good_name like'% %'(5)找出商品名称中没有空格的商品列表。
方法1:select*from goods where not good_name like'% %'方法2:select*from goods where good_name not like'% %'方法3:select*from goodsexceptselect*from goods where good_name like'% %'(6)找出商品名称长度为7个字符的商品列表。
select*from goods where good_name like'_______'注:下划线_和连字符-不同(7)找出商品名称长度小于7个字符的商品列表。
数据库与软件工程上机实验答案
数据库与软件工程上机实验答案第一篇:数据库与软件工程上机实验答案《数据库与软件工程》上机实验答案实验三 SQL语言的DDL3.CREATE TABLE aa(Bb1 VARCHAR(30),Bb2 INT,Bb3 DECIMAL(6,2))4. ALTER TABLE aa ADD Bb4 varchar(20)5.DROP TABLE AA6. CREATE VIEWReaderView(借阅者)ASSELECT DISTINCT 读者编号FROM 借阅7. Drop ViewReaderView。
8.CREATE INDEX INDEX1 ON 读者(姓名 ASC,单位 ASC)CREATE INDEX INDEX3 ON 借阅(借阅日期 DESC)9. DROP INDEX 读者.INDEX1CREATE INDEX INDEX1 ON 读者(姓名 ASC)实验四 SQL语言的DML初步1. CREATE DEFAULT ZEROVALUE AS 0sp_bindefault ZEROVALUE, '图书.借出否'CREATE DEFAULT CURTIME AS getdate()sp_bindefault CURTIME, '借阅.借阅日期'2. CREATE RULE gender_ruleAS@value in('男','女')EXEC sp_bindrule 'gender_rule', '读者.性别'CREATE RULE lenddate_ruleAS@value > '2004-1-1'EXEC sp_bindrule 'lenddate_rule', '借阅.归还日期'3.用INSERT语句对“图书”表插入6条记录INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0001','计算机类','清华出版社','严蔚敏','数据结构', 20.11)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0002','计算机类','清华出版社','苗雪兰','数据库技术及应用',29.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0003','计算机类','清华出版社','李建中','软件工程',48.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('0004','计算机类','电子工业出版社','汤惟','WEB技术',32.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0005','自动化类','机械工业出版社','胡寿松','自动控制原理',52.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0006','自动化类','机械工业出版社','郑大钟','线性控制理论',32.00)用INSERT语句对“读者”表插入4条记录INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10001','张三','东华大学','男','67792312')INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10002','李四','东华大学','女','67792312')INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10003','王五','东华大学','男','67792312')INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10004','李明','东华大学','女','67792312')用INSERT语句对“借阅”表插入7条记录INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0001','10001','2006-04-19 09:58:03','2006-05-19 8:38:23')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0006','10002','2006-07-01 15:28:12','2006-07-18 9:14:02')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0002','10002','2006-07-01 15:28:30','2006-07-17 19:10:32')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0002','10003','2006-07-03 15:28:30','2006-08-09 15:28:30')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0004','10002','2007-05-01 11:28:24','2007-08-01 8:09:04')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0005','10002','2007-11-01 10:43:12','2007-12-01 14:09:56')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0003','10004','2007-12-01 16:06:02','2007-12-29 13:17:09')4. UPDATE 借阅SET 借阅日期='2006-08-03 15:28:30'WHERE 读者编号='10003' AND借阅日期 BETWEEN '2006-07-03' AND '2006-07-04' AND 书号='0002'5. DELETE FROM 借阅WHERE 借阅日期<'2006-06-01'1. SELECT 书号,书名 as 名称,定价 as 价格 FROM 图书WHERE 类别='自动化类'2.方法1:SELECT * FROM 图书WHERE 类别='计算机类'UNIONSELECT * FROM 图书WHERE 出版社='电子工业出版社'方法2:SELECT * FROM 图书WHERE 类别='计算机类' OR 出版社='电子工业出版社'3. SELECT * INTO 计算机图书表 FROM 图书WHERE 类别='计算机类'4. SELECT DISTINCT 读者.* FROM 读者,借阅WHERE 读者.读者编号=借阅.读者编号5. SELECT 读者.读者编号,姓名,单位,图书.书号,书名,借阅日期FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号6. SELECT 图书.书号,书名,类别,借阅日期 FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND 姓名='张三'ORDER BY 借阅日期 DESC7. SELECT 读者.读者编号,姓名,书名,DATEDIFF(day,借阅日期,归还日期)as 借阅时间FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND DATEDIFF(day,借阅日期,归还日期)>20order by 借阅时间8. SELECT * FROM 读者WHERE NOT EXISTS(SELECT * FROM 图书WHERE 类别='自动化类' and NOT EXISTS(SELECT * FROM 借阅WHERE 读者编号=读者.读者编号 and 书号=图书.书号))1.SELECT 类别,COUNT(*)AS 数量, AVG(定价)AS平均价格,SUM(定价)AS 总价FROM 图书GROUP BY 类别ORDER BY 类别2. SELECT YEAR(借阅日期)as 年份,书号,COUNT(*)AS 借阅次数FROM 借阅GROUP BY YEAR(借阅日期),书号ORDER BY 借阅次数 DESC3. SELECT 读者.读者编号,COUNT(书号)AS 借阅次数 FROM 读者LEFT JOIN(SELECT * FROM 借阅 WHERE 借阅日期 BETWEEN '2006-7-1' AND '2007-10-1')AON 读者.读者编号=A.读者编号GROUP BY 读者.读者编号4. SELECT 读者编号,COUNT(*)AS 次数 FROM 借阅,图书WHERE 借阅.书号=图书.书号 AND 书名='数据库技术及应用'GROUP BY 读者编号ORDER BY 次数 DESC5.方法1:SELECT MAX(次数)AS 最多,MIN(次数)AS 最少,AVG(次数*1.0)AS 平均FROM(SELECT 图书.书号,COUNT(*)AS 次数 FROM 图书,借阅WHERE 图书.书号=借阅.书号 AND 类别='计算机类'GROUP BY 图书.书号)A方法2:SELECT 图书.书号,COUNT(*)*1.0 AS 次数 FROM 图书,借阅WHERE 图书.书号=借阅.书号 AND 类别='计算机类'GROUP BY 图书.书号COMPUTEMAX(COUNT(*)*1.0),MIN(COUNT(*)*1.0),AVG(COUNT(*)*1.0)6. SELECT 类别 FROM 图书GROUP BY 类别HAVING MAX(定价)>=ALL(SELECT 2*AVG(定价)FROM 图书GROUP BY 类别)7. SELECT 书号,书名,定价,出版社 FROM 图书WHERE 类别='计算机类'ORDER BY 出版社 DESCCOMPUTE COUNT(书号)BY 出版社COMPUTE COUNT(书号)实验七存储过程、触发器和数据库恢复1.(1)CREATE PROCEDURE 借阅情况@Readerno VARCHAR(8)ASSELECT 读者.读者编号,姓名,图书.书号,书名,借阅日期, 借出否AS 归还否FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND 读者.读者编号=@ReadernoEXEC 借阅情况‘10004’(2)CREATE PROCEDURE 借出情况@Bookno VARCHAR(10)ASSELECT 书名,姓名,借阅日期,归还日期FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND 图书.书号=@BooknoEXEC 借出情况 '0004'2.CREATE TRIGGER lendbookinsert ON 借阅FOR INSERTASIF(SELECT 借出否 FROM 图书 WHERE 书号 IN(SELECT 书号 FROM INSERTED))=1BEGINPRINT '该书已经借出'ROLLBACK TRANSACTIONENDELSEBEGINUPDATE 图书SET 借出否=1WHERE 书号 IN(SELECT 书号 FROM INSERTED)END第二篇:数据库上机实验(二)数据库上机实验内容及要求(第二部分)1.建立工厂管理数据库工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:(1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话;(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种;(3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产;(4)一个车间制造多种零件,一种零件也可能为多个车间制造。
数据库上机实验部分题目及答案
上机实验部分题目及答案一、实验目的1、基本表的定义、修改和删除2、视图的建立、删除和查询3、约束的命名、删除和重定义二、实验结果存放创建表homework8(result ),将每题的题目序号和SQL语句写到此表。
三、实验内容现有图书管理数据库的一个关系模式:book(总编号,分类号,书名,作者,出版单位,单价)1.利用SQL语句创建book的表结构,其中总编号为主码,书名的类型为char(50),并给主码的约束命名(主码约束命名参照第五章内容)。
2.利用SQL在book这个表中分别插入以下所给元组:34、为“数据库导论”设置“出版日期”的值为2009年6月5日,为“计算机基础”设置“出版日期”的值为2008年3月4日。
5、删除总编号为445503的元组。
6、删除列“出版日期”。
7、将列“书名”的类型改为char(100),其中修改列类型的语句为:alter table <表名>[modify 列名数据类型]8、删除book的主码约束(参照第五章)9、将表book中的总编码设置为主码(参照87页内容)。
11.建立表book1,其表结构与内容参照第2题。
12. 为表book1建立科学出版社所出图书的视图science13、删除表book1,其中删除表的格式为:drop table <表名>[restrict|cascade constraint] 其中restrict与cascade参数的含义参照87页14、为表book建立高等教育出版社所出图书的视图education15、查询视图education中的所有内容16、删除视图educationdrop table homework8drop table bookcreate table homework8(ti smallint,res char(400))create table book(总编码char(8) ,分类号char(7),书名char(50),作者char(30),出版单位char(200),单价char(8),constraint total primary key(总编码) )insertinto homework8(ti,res)values (1,'create table book(总编码char(8) ,分类号char(7),书名char(50),作者char(30),出版单位char(200),单价char(8),constraint total primary key(总编码) )')22222222insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('445501','TP3/12','数据库导论','王强','科学出版社','17.90')insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('445502','TP3/12','数据库导论','王强','科学出版社','17.90')insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('445503','TP3/12','数据库导论','王强','科学出版社','17.90')insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('332211','TP5/10','计算机基础','李伟','高等教育出版社','18.00')3333333alter table bookadd 出版日期char(20)alter table bookadd 页数char(5)444444444444444444444444444444444444444update bookset 出版日期='2009年6月5日'where 书名='数据库导论'update bookset 出版日期='2008年3月4日'where 书名='计算机基础'55555555555555555555555555555555555555 deletefrom bookwhere 总编号='445503'66666666666666666666666666666666666666 alter table bookdrop column 出版日期777777777777777777777777777777777777777 alter table bookmodify 书名char(100)8888888888888888888888888888888888888 alter table bookdrop constraint total9999999999999999999999999999999999999 alter table bookadd primary key (总编码)11 11 11 11 11 11 11 11 11 11 create table book1(总编码char(8) ,分类号char(7),书名char(50),作者char(30),出版单位char(200),单价char(8),constraint total primary key(总编码))12 12 12 12 12 12 12 12 CREATE VIEW scienceASSELECT 总编码,分类号,书名,作者,出版单位,单价FROM book1WHERE 出版单位='科学出版社'13DROP TABLE book114CREATE VIEW educationASSELECT 总编码,分类号,书名,作者,出版单位,单价FROM bookWHERE 出版单位='高等教育出版社'15SELECT *FROM education16DROP VIEW education。
数据库上机习题及答案
数据库上机习题及答案 Revised by Liu Jing on January 12, 2021数据库及应用复习题一、设计题有一个[学生课程]数据库,数据库中包括三个表:学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。
课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。
用SQL语言实现下列功能:1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。
2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。
3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
4.查询学习1号课程的学生最高分数、平均成绩。
5.查询与“李洋”在同一个系学习的学生。
6.将计算机系全体学生的成绩置零。
7.删除学号为05019的学生记录。
8.删除计算机系所有学生的成绩记录。
1.CREATETABLE Student(Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20),Ssex CHAR(2),Sage INT,Sdept CHAR(15))2.ALTER TABLE Student ADD Scome DATETIME 3.SELECT Sno, GradeFROM SGWHERE Cno='3'ORDER BY Grade DESC4.SELECT MAX(Grade), AVG(Grade)FROM SCWHERE Cno='1'5.SELECT Sno, Sname, SdeptFROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname='李洋')6. UPDATE SGSET Grade=0WHERE Sno in( SELECT Sno FROM StudentWHERE Sdept = '计算机系')7.DELETE FROM StudentWHERE Sno='05019'8. DELETE FROM SGWHERE Sno in( SELECT Sno FROM StudentWHERE Sdept = '计算机系')二、设计题现有关系数据库如下:数据库名:教师数据库教师表(编号 char(6),姓名,性别,民族,职称,身份证号)课程表(课号 char(6),名称)任课表(ID,教师编号,课号,课时数)用SQL语言实现下列功能的sql语句代码:1. 创建上述三表的建库、建表代码(14分);要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID)2. 将下列课程信息添加到课程表的代码(6分)课号课程名称100001 SQL Server数据库100002 数据结构100003 VB程序设计修改课号为100003的课程名称:Visual Basic程序设计删除课号为100003的课程信息3. 写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;(4分)4. 写出创建[某门课任课教师]内嵌表值函数以及检索的代码;(6分)检索:所有代'SQL Server数据库'这门课程的老师姓名;5. 写出创建[统计课时数]:输出最大课时数、最低课时数、平均课时的存储过程以及执行代码;(6分)6.写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。
山东大学《数据库系统》上机实验答案_详细整理_2013最新版 2
数据库实验(一)熟悉环境、建立/删除表、插入数据Drop table 表名update dbtest set test=1select * from dbscore1.教师信息(教师编号、姓名、性别、年龄、院系名称)test1_teacher:tid char 6 not null、name varchar 10 not null、sex char 2、age int、dname varchar 10。
根据教师名称建立一个索引。
1、create table test1_teacher(tid char(6) primary key,name varchar(10) not null,sex char(2),age int,dname varchar(10))2.学生信息(学生编号、姓名、性别、年龄、出生日期、院系名称、班级)test1_student:sid char 12 not null、name varchar 10 not null、sex char 2、age int、birthday date(oracle的date类型是包含时间信息的,时间信息全部为零)、dname varchar 10、class varchar(10)。
根据姓名建立一个索引。
2、create table test1_student(sid char(12) primary key,name varchar(10) not null,sex char(2),age int,birthday date,dname varchar(10),class varchar(10))3.课程信息(课程编号、课程名称、先行课编号、学分)test1_course:cid char 6 not null、name varchar 10 not null、fcid char 6、credit numeric 2,1(其中2代表总长度,1代表小数点后面长度)。
数据库上机考试试题及答案
1下列说法中正确的是:( D )A 、 SQL 中局部变量可以不声明就使用B 、 SQL 中全局变量必须先声明再使用C 、 SQL 中所有变量都必须先声明后使用D 、 SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。
2.哪个关键字用于测试跟随的子查询中的行是否存在( B )。
A.MOV B.EXISTSC.UNION D.HAVING3 .下列哪些语句用于创建存储过程( A )?A、CREATE PROCEDUREB、CREATE TABLEC、DROP PROCEDURED、其他5.在SQL中,SELECT语句的“SELECT DISTINCT”表示查询结果中 ( C )。
A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同6.SQL 语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATA实现下列哪类功___A_____。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制7.SQL Server 2000 采用的身份验证模式有( D )。
(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式10.SQL Server 2000 企业版可以安装在操作系统上。
( C )(A)Microsoft Windows 98(B)Microsoft Windows 2000 Professional(C)Microsoft Windows 2000 Server(D)Microsoft Windows XP11.SQL Server是一个( C )的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是12.SQL语言中,删除一个视图的命令是( B )。
A. DELETEB. DROPC. CLEARD. REMOVE13.SQL语言中,删除记录的命令是( A )。
数据库上机实验报告答案
数据库上机实验报告答案1.建立学生数据库模式学生表:student (sno 学号,sname 姓名,ssex 性别,sage 年龄,sdept 所在系)其中:sno 长度为4的字符串,为主码;sname 长度为8的字符串;ssex 长度为2的字符串,其值只取男、女;sage 整数,其值在0-150之间;sdept 长度为10的字符串。
2.建立课程数据库模式课程表:course ( cno课程号,cname课程名,ccredit学分)其中:cno 长度为4的字符串,为主码cname 长度为10的字符串,不能有重复课程名;ccredit 整数。
3.建立选课数据库模式。
选课表: sc (sno学号, cno课程号, grade成绩)其中:sno 长度为4的字符串,和student表sno外键关联,且级联删除cno 长度为4的字符串,course表cno外键关联,grade 整数,值或空或为0—100之间,(sno, cno) 联合作主码。
(1)创建上述三个表。
(2)将年龄的数据修改为15-30之间。
(3)为Student中sname添加列级完整性约束,不能为空。
(4)为SC建立按学号升序和课程号降序建立唯一索引.(5)在表student的sname字段建立一个升序索引。
(6)删除在表student的sname字段建立的索引。
(7)给student表增加一个地址(address)属性。
(8) 删除student表地址(address)属性。
(9)建立视图view1,要求有sno,sname,cname,grade四个字段。
1) create table studen(sno char(4) primary key,sname char(8),ssex char(2) check( ssex in('男','女')),sage int check(sage between 0 and 150),sdept char(10));create table course(cno char(4) primary key,cname char(10) unique,ccredit intcreate table sc(sno char(4),cno char(4),grade int check(grade between 0 and 100),primary key (sno,cno),foreign key(sno) references student(sno) on delete cascade, foreign key(cno) references course(cno));2) alter table studentadd constraint sage_con check(sage between 15 and 30);3) alter table studentmodify sname not null;4) create unique index index1on sc (sno asc,cno desc);5) create index index2on student(sname asc);6) drop index index2;7) alter table studentadd address char(30);8) alter table studentdrop column address;9) create view view1asselect A.sno,sname,cname,gradefrom student A,course B,sc Cwhere A.sno=C.sno and /doc/287635464.html,o=http://www.doczj .com/doc/287635464.html,o;(1)在上述三个表中输入若干记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库上机实验题目和答案试用SQL的查询语句表达下列查询:1.检索王丽同学所学课程的课程号和课程名。
select Cno ,Cname from c where Cno in(select cno from sc where sno in (select sno from s where sname='王丽' ))2.检索年龄大于23岁的男学生的学号和姓名。
select sno,sname from swhere sex='男' and age>233.检索‘c01’课程中一门课程的女学生姓名select sname from swhere sex='女' and sno in(select sno from sc where cno='c01')4.检索s01同学不学的课程的课程号。
select cno from cwhere cno not in (select cno from sc where sno ='s01')5.检索至少选修两门课程的学生学号。
select sc.sno from s,scwhere s.sno=sc.snogroup by sc.snohaving count(/doc/1411529677.html,o)>=26.每个学生选修的课程门数。
解法一:select so.sno sno,/doc/1411529677.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno ) so,swhere s.sno=so.sno解法二:select sc.sno sno,s.sname,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno,sname7.求选修C4课程的学生的平均分。
select avg(grade) 'c04平均成绩'from scwhere cno='c04'8.求每个学生平均成绩。
select s.sno,s.sname,avg(sc.grade) '平均成绩'from sc,swhere s.sno=sc.snogroup by s.sno,s.sname9.统计每门课程的学生选修人数(超过3人的课程才统计)。
询结果按人数降序排列,若人数相同,按课程号升序排列。
select/doc/1411529677.html,o,/doc/ 1411529677.html,ame,count(/doc/1411529677. html,o) numberfrom c,scwhere/doc/1411529677.html,o=/doc /1411529677.html,ogroup by /doc/1411529677.html,o,/doc/ 1411529677.html,o,/doc/1411529677.html,ame having count(*)>3order by number desc,/doc/1411529677.html,o10.检索学号比王丽同学大,而年龄比他小的学生姓名。
select sno,sname from swhere sno>(select sno from s where sname='王丽') andage<(select age from s where sname ='王丽')11.检索姓名以王打头的所有学生的姓名和年龄。
select sname,age from swhere sname like '王%'12.在SC中检索成绩为空值的学生学号和课程号。
select sno,cno from scwhere grade is NULL13.输出c01 课程的成绩单,要求成绩按从高到低排序。
select sname,grade 'c01成绩' from sc,swhere s.sno=sc.sno and cno='c01'order by grade desc14.查询姓名为‘X国X’同学。
select sname from swhere sname like '_国_'15.查询没有选修c02,c03,c04的同学的学号。
select snofrom swhere not exists(select snofrom scwhere s.sno=sc.sno and cno in('c02','c03','c04'))16.查询没有参加考试的同学的学号。
select snofrom swhere exists(select *from scwhere s.sno=sc.sno and grade is null)17.检索计算机系开课程的课程号和课程名。
select cno,cname from cwhere dept in(select dept from d where dname='计算机')18.检索至少选修计算机系所开课程2门以上的女学生姓名select snamefrom s,sc,c,dwhere s.sex='女'and s.sno=sc.sno and /doc/1411529677.html,o=/doc /1411529677.html,o and dname='计算机' and d.dept=c.dept group by snamehaving count(s.sno)>219.检索王丽同学不学的课程的课程号。
select cno from c where cno not in(select cno from sc where sno in (select sno from s where sname='王丽'))20.检索选修计算机系所开全部课程的学生的学号与姓名。
select s.sno,snamefrom s,sc,c,dwhere s.sno=sc.sno and /doc/1411529677.html,o=/doc /1411529677.html,o and d.dname='计算机' and d.dept=c.dept group by sname,s.sno21.检索选修C语言且成绩大于80分的计算机系的学生的姓名与学号。
select sname,s.snofrom sc,s,d,cwhere dname='计算机' and s.dept=d.dept and /doc/1411529677.html,ame='C语言' and /doc/1411529677.html,o=/doc /1411529677.html,o and s.sno=sc.sno and sc.grade>8022.查询选修3门以上课程且平均成绩大于80的学生的学号、姓名、所在系名。
select s.sno,sname,dname from sc,s,d where s.sno=sc.sno and s.dept=d.dept group by s.sno,sname,dnamehaving count(cno)>3 and avg(sc.grade)>8023.求计算机系所开课程的每门课程的学生平均成绩,按平均成绩从高到低排序输出。
select /doc/1411529677.html,o,avg(sc.grade) from sc, d,cwhere d.dname='计算机' and /doc/1411529677.html,o=/doc /1411529677.html,o and c.dept=d.deptgroup by /doc/1411529677.html,oorder by avg(sc.grade) desc24.检索缺考2门以上的学生姓名。
select s.snamefrom s,scwhere s.sno=sc.sno and sc.grade is nullgroup by snamehaving count (*)>225.检索缺考或不及格们数3门以上的学生学号和姓名。
select distinct s.sno,s.snamefrom s,scwhere s.sno=sc.sno and (sc.grade<60 or sc.grade is null) and s.sname in( select s.snamefrom s,scwhere s.sno=sc.sno and (sc.grade<60 or sc.grade is null) and s.sname in( select s.snamefrom s,scwhere s.sno=sc.sno and (sc.grade<60 or sc.grade is null)group by s.snamehaving count (*)>3))26.检索每个学生的总学分select s.sno,sum(c.credit) '总学分'from s,c,scwhere s.sno=sc.sno and /doc/1411529677.html,o=/doc /1411529677.html,ogroup by s.sno27.查询既选修了‘数据库’又选修了‘操作系统’的学生的姓名及学号from s,sc,cwhere /doc/1411529677.html,ame='数据库'and s.sno=sc.sno and /doc/1411529677.html,o=/doc /1411529677.html,o and s.sno in( select s.snofrom s,sc,cwhere /doc/1411529677.html,ame='操作系统'and s.sno=sc.sno and /doc/1411529677.html,o=/doc /1411529677.html,o)28.查询即没有选修‘数据库’又没有选修‘操作系统’的学生的姓名及学号。