数据库实验习题
数据库实验题目及答案

数据库实验
一、题目
药品(编号,名称,价格,厂商)
处方(药品编号,数量,医生编号)
医生(编号,姓名,科室,职称)
根据上面基本表的信息完成下列查询。
1 列出医生“张力”开的所有药品名称。
2 列出比“北方制药”所有药品都贵的药品信息。
3 列出内科所有处方的医生姓名、药品名称、金额
二、答案
题目一
连接查询
select 名称
from Yao ,Chu,Dr
where Yao.编号=Chu.药品编号and Chu.医生编号=Dr.编号and 姓名='张力'
嵌套查询
select 名称
from Yao
where 编号in(select 药品编号
from Chu
where 医生编号in(select 编号
from Dr
where 姓名= '李丽'))
题目二
select *
from Yao
where 价格>all(select 价格from Yao where 厂商='北方制药')
题目三
select 姓名,名称,价格
from Yao ,Chu,Dr
where Yao.编号=Chu.药品编号and Chu.医生编号=Dr.编号and 科室='内科'。
数据库实验题目和答案

按照如下方式重新定义四张表:定义新的books表,其所拥有的属性与属性类型与原有的books表一致以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名定义属性category为”非空” ,同时在定义的时候必须提供约束名create table Books(bookId number(9,0)constraint BooksKey primary key,title varchar(80),author varchar(40),year integer,category varchar(15)constraint B1 not null);commit;定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致以表级完整性的方式定义属性cid为主码以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名create table Customers (cid number(9,0),cname char(40)constraint C1 unique,age integer,primary key(cid));commit;定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致定义属性cid与bookId为主码,同时在定义的时候必须提供约束名以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。
当删除Books表中的某一本书时,级联删除与它相关的购买记录以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。
当删除customers表中的某个顾客时,如果存在与该客户相关的购买记录,拒绝删除。
create table Purchases(cid number(9,0),bookId number(9,0)constraint bookidFKey references Books(bookid)on delete cascade,pdate date,pprice number(8,2),constraint PurchasesKey primary key(cid,bookid),constraint cidFKey foreign key(cid) references customers(cid));commit;定义新的pricing表,其所拥有的属性与属性类型与原有的pricing表一致以列级完整性的方式定义属性booId为主码,同时在定义的时候必须提供约束名定义约束,要求当书的format是‘paperback’时,当前价格不能超过50create table Pricing(bookId number(9,0)constraint PricingKey primary key,format varchar(15),price number(9,2),constraint P1 check (format <>'paperback' OR price<=50));commit;创建如下的触发器:定义一个AFTER行级触发器,当修改books表的bookid后,自动修改purchases和pricing表中与它相关记录中的bookid(只允许使用一个触发器) create trigger alter_bookidafter update on booksfor each rowbeginif(:new.bookid<>:old.bookid)then update purchasesset bookid = :new.bookidwhere bookid = :old.bookid;update pricingset bookid = :new.bookidwhere bookid = :old.bookid;end if;end;定义如下的一张表:Score(Sno, Chinese, Math, English, Total)Sno是主码Chinese, Math, English分别表示三门课成绩,并且三门课的成绩取值范围是0-100且均不能为空值Total的取值需要正好是三门课成绩总和定义一个AFTER行级触发器,当修改Score表中某门课的成绩后,自动修改Totalcreate table Score(Sno number(9,0)constraint SnoKey primary key,Chinese number(9,2)constraint S1 check(Chinese BETWEEN 0 and 100)constraint S2 not null,Math number(9,2)constraint S3 check(Math BETWEEN 0 and 100)constraint S4 not null,English number(9,2)constraint S5 check(English BETWEEN 0 and 100)constraint S6 not null,Total number(9,2),constraint S7 check (total = chinese+math+english));定义触发器create trigger update_scorebefore update on scorefor each rowbegin:new.total := :new.chinese+:new.math+:new.english;end;利用书本上的3张表:student, course, sc问题1:对各门课程成绩进行分段统计,并有类似如下的输出结果课程: 数据库0<成绩<60 0人课程: 数据库60<成绩<80 0人课程: 数据库81<成绩<100 1人课程: 数学0<成绩<60 0人课程: 数学60<成绩<80 1人课程: 数学81<成绩<100 2人课程: 数据结构0<成绩<60 0人课程: 数据结构60<成绩<80 1人课程: 数据结构81<成绩<100 1人解答set serveroutput ondeclarea number; --0-60分人数b number; --61-80分人数c number; --81-100分人数cname ame%type; --临时存储课程名o游标,遍历sc表中的每一门课,得到课程号cnocursor cur_sc_cno isselect DISTINCT cnofrom sc;--sc.grade游标,根据cur_sc_cno游标中的课程号遍历成绩gradecursor cur_sc_grade(var_cno in o%type) isselect gradefrom scwhere cno = var_cno;ame游标,根据cur_sc_cno游标中的课程号遍历课程名cnamecursor cur_course_cname(var_cno in o%type) isselect cnamefrom coursewhere cno = var_cno;begin--遍历sc表的cnofor record_sc_cno in cur_sc_cnoloopa:=0; --初始化a,b,cb:=0;c:=0;--根据record_sc_o遍历sc表的gradefor record_sc_grade in cur_sc_grade(record_sc_o)loopif record_sc_grade.grade > 0 and record_sc_grade.grade < 61 then a:=a+1;end if;if record_sc_grade.grade > 60 and record_sc_grade.grade < 81 then b:=b+1;end if;if record_sc_grade.grade > 80 and record_sc_grade.grade < 101 then c:=c+1;end if;end loop;--根据record_sc_cno得到当前课程名for record_course_cname in cur_course_cname(record_sc_o)loopcname:=record_course_ame;end loop;dbms_output.put_line('课程:'||cname||' 0<成绩<60 '||a||'人');dbms_output.put_line('课程:'||cname||' 61<成绩<80 '||b||'人');dbms_output.put_line('课程:'||cname||' 81<成绩<100 '||c||'人');end loop;end;问题2:需要找出课程a的前n名同学以及他们成绩,并按照从高到低排列。
数据库上机实验题目和答案

试用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一、问答题1. 什么是数据?数据有什么特征?数据和信息有什么关系?答:答:数据是用于载荷信息的物理符号。
数据的特征是:①数据有“型”和“值’之分;②数据受数据类型和取值范围的约束;③数据有定性表示和定量表示之分;④数据应具有载体和多种表现形式。
数据与信息的关系为:数据是信息的一种表现形式,数据通过能书写的信息编码表示信息。
信息有多种表现形式,它通过手势、眼神、声音或图形等方式表达,但是数据是信息的最佳表现形式。
由于数据能够书写,因而它能够被记录、存储和处理,从中挖掘出更深层的信息。
但是,数据不等于信息,数据只是信息表达方式中的一种。
正确的数据可表达信息,而虚假、错误的数据所表达的是谬误,不是信息。
2. 什么是数据库?数据库中的数据有什么特点。
答:答:数据库是数据管理的新方法和技术,它是一个按数据结构来存储和管理数据的计算机软件系统。
数据库中的数据具有的特点是:①数据库中的数据具有数据整体性,即数据库中的数据要保持自身完整的数据结构;②数据库中的数据具有数据共享性,不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。
3. 什么是数据库管理系统?它的主要功能是什么?答:答:数据库管理系统简称DBMS(Database Management System),它是专门用于管理数据库的计算机系统软件。
数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。
数据库管理系统的主要功能是数据存储、数据操作和数据控制功能。
其数据存储和数据操作是:数据库的定义功能,指为说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,指将大批数据录入到数据库的操作,它使得库中含有需要保存的数据记录;数据库维护功能,指对数据的插入、删除和修改操作,其操作能满足库中信息变化或更新的需求;数据查询和统计功能,指通过对数据库的访问,为实际应用提供需要的数据。
数据库实验6

云南大学软件学院实验报告实验6 数据库完整性实验6-1 完整性约束1、创建规则(用图形或者语句方法创建)(1)创建入学日期规则“Enter_University_date_rule”,假定该学校于1923年4月30日创建。
要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期(2)创建学生年龄规则“Age_rule”。
要求:学生年龄必须在15~30岁之间(3)创建学生性别规则“Sex_rule”。
要求:性别只能为“男”或“女”(4)创建学生成绩规则“Score_rule”。
要求:学生成绩只能在0~100之间(5)用图形方法查看学生成绩规则“Score_rule”,截图为:(6)用语句方法查看学生成绩规则“Score_rule”,语句为:2、删除规则Enter_University_date_rule3、创建默认(用图形或者语句方法创建)(1)创建默认时间“Time_default”为当前系统时间(2)创建默认入学年龄“Age_default”为18岁(3)用图形方法查看默认入学年龄“Age_default”,截图为:(4)用语句方法查看默认入学年龄“Age_default”,语句为:4、删除默认入学年龄“Age_default”5、创建声明式默认:在创建表的过程中创建声明式默认(1)创建表“default_example”,表中包含字段pid、name、sex、age。
要求设定sex的默认值为“男”、age的默认值为18。
(2)在表中增加新的默认,将编号默认为100。
插入一条记录,执行结果为:6、在“学生管理数据库”各个数据表中建立相应的主键、外键、惟一值、以及check约束,要求:学生的年龄必须是两位数,其中第一位是1或2:删除check 约束:7、完成教科书456页如下习题:[7.1]a:实验6-2 触发器1、使用触发器(1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数(2)执行触发器(3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息2、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted)。
数据库实验二作业及答案

数据库实验二作业及答案实验2 SQL Server 数据库的管理一、实验目的1.了解SQL Server数据库的逻辑结构和物理结构的特点。
2.学会使用企业管理器对数据库进行管理。
3.学会使用Transact-SQL语句对数据库进行管理。
二、实验准备1.确定能够创建数据库的用户是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.确定要创建的数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长即增长的方式)和存储数据的文件。
3.了解常用的创建数据库方法。
三、实验内容及步骤1.在企业管理器中创建studentsdb数据库。
(1)运行SQL Server管理器,启动企业管理器,展开服务器“(LOCAL)(Windows NT)”。
(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。
在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。
2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“数据文件”、“事务日志”、“文件组”、“选项”和“权限”页面。
3.打开studentsdb数据库的“属性”对话框,在“数据文件”选项卡中修改studentsdb数据文件的“分配空间”大小为2MB。
指定“最大文件大小”为5MB.在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。
然后通过系统存储过程sp_helpdb查看系统中的数据库信息。
CREATEdatabase studbON(NAME=studb,FILENAME='C:\database')exec sp_helpdb5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。
mysql数据库实操题

mysql数据库实操题MySQL数据库实操题通常涉及到数据库的创建、表的设计、数据的插入、查询和更新等方面。
以下是一个MySQL数据库实操题的示例:题目:假设你是一个图书馆管理员,需要创建一个数据库来管理图书馆的图书信息。
请按照以下要求完成数据库的设计和操作:1. 创建一个名为"library"的数据库。
2. 在该数据库中创建一个名为"books"的表,包含以下字段:book_id,图书编号,为整数类型,主键。
title,图书标题,为字符串类型。
author,图书作者,为字符串类型。
publication_year,图书出版年份,为整数类型。
quantity,图书数量,为整数类型。
3. 向"books"表中插入以下数据:book_id: 1, title: "Harry Potter and the Philosopher's Stone", author: "J.K. Rowling",publication_year: 1997, quantity: 5。
book_id: 2, title: "To Kill a Mockingbird", author: "Harper Lee", publication_year: 1960, quantity: 3。
book_id: 3, title: "1984", author: "George Orwell", publication_year: 1949, quantity: 2。
4. 查询"books"表中所有图书的信息。
5. 查询"books"表中所有作者为"J.K. Rowling"的图书信息。
数据库练习题库(含答案)

数据库练习题库(含答案)一、单选题(共98题,每题1分,共98分)1.在需求分析阶段,结构化分析和建模方法是一种较为有效的需求分析方法,下列不属于结构化分析和建模方法优点的是()。
A、可避免过早陷入具体细节B、从局部或子系统开始分析问题,便于建模人员了解业务模型C、图形对象不涉及太多技术术语,便于用户理解模型D、用图形化的模型能直观表示系统功能正确答案:B2.DBMS通过加锁机制允许用户并发访问数据库,这属于DBMS提供的()。
A、数据定义功能B、数据操纵功能C、数据库运行管理与控制功能D、数据库建立与维护功能正确答案:C3.关于数据划分策略,下述说法错误的是()。
A、散列划分釆用某种散列函数,以数据的划分属性作为函数参数,计算数据应存储的磁盘序号B、范围划分根据某个属性的取值,将数据划分为n个部分,分别存储到不同磁盘上C、范围划分有利于范围查询和点查询,但也可能会引起数据分布不均匀及并行处理能力下降问题D、轮转法划分能保证元组在多个磁盘上的平均分配,并具有较高的点查询和范围查询正确答案:D4.存取方法设计属于数据库设计的()阶段的设计任务。
A、逻辑结构设计B、概念结构设计C、系统需求分析D、物理结构设计正确答案:D5.将新插入的记录存储在文件末尾,并使记录随机地分布在文件物理存储空间中的文件结构是()。
A、散列文件B、堆文件C、索引文件D、聚集文件正确答案:B6.关于"死锁”,下列说法中正确的是()。
A、在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库B、只有出现并发操作时,才有可能出现死锁C、当两个用户竞争相同资源时不会发生死锁D、死锁是操作系统中的问题,数据库操作中不存在正确答案:B7.关于数据库应用系统的需求分析工作,下列说法正确的是()。
A、在需求分析阶段,系统需求分析员要与用户充分沟通,并做出各类用户视图B、通过需求分析过程,需要确定出整个应用系统的目标、任务和系统的范围说明C、数据操作响应时间、系统吞吐量、最大并发用户数都是性能需求分析的重要指标D、数据需求分析的主要工作是要辩识出数据处理中的数据处理流程正确答案:C8.如果一个系统定义为关系系统,则它必须( )oA、支持关系数据库B、支持选择、投影和连接运算C、A和B均成立D、A、B都不需要正确答案:C9.联机分析处理包括以下()基本分析功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库概论》实验指导书(2003级)一、实验目的:数据库系统是一门应用性很强的课程,上机实验是数据库课程的重要环节。
本实验是结合《数据库概论》课程的学习而开设的实验。
本实验目的如下:1. 通过上机实验,加深对数据库系统理论知识的理解,增强对网络环境下大型数据库的感性认识和实际操作能力;2. 通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握其操作技术。
熟悉ORACLE数据库的Net8工具,掌握ORACLE数据库的网络连接配置;3. 学习使用SQL语言,加深对SQL语言的认识和理解,提高SQL语言的实际应用能力;4. 加强对事务处理、权限管理等概念的认识和理解。
二、适应专业:信息管理与信息系统,信息与计算机科学三、实验学时数:12学时四、实验内容及学时安排:实验准备:各班选出10个同学,协助老师搭建试验环境。
包括:1)安装ORACLE客户端,配置与主机的数据库连接。
2)安装软件工具 PLSQL/DEVELOPER3)负责本班用户的建立。
分为两批上午下午各两个班。
实验一:数据定义/数据操纵语言实验目的:熟悉Oracle上机环境以及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。
学时数:4学时实验内容:SQL数据定义语句, SQL数据操纵语句。
实验要求:1. 熟悉Oracle上机环境;2. 建立数据库表,修改数据库表结构,建立、删除索引;3. 对数据库表进行插入、修改和删除数据的操作。
实验二:数据查询语言,视图定义实验目的:体会SQL语言数据查询功能的丰富和复杂,视图使用。
学时数:4学时实验内容:SQL数据查询语句,视图的定义与操纵;实验要求:对数据库表进行各种查询操作,建立视图,视图查询,视图更新;实验三:授权控制与事务处理实验目的:通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。
学时数:2学时实验内容: 1. SQL数据控制语句;2. SQL事务处理。
实验要求:1. 给某一或全部用户授权和收回授权;2. 事务回退,事务提交。
五、教材及参考文献1.《数据库系统概论》(第三版)萨师煊等编著高等教育出版社 2000.22.《ORACLE 8.x For Windows NT实用教程》翁正科等编著清华大学出版社 1998.10六、实验环境实验要求如下环境服务器端:Windows 2000NT Server;ORACLE 8.x Database Server For Windows Windows2000 Server 客户端: Windows9x;Oracle 8.x Client网络协议:TCP/IP七、成绩考核上机实验考核采取实验报告和上机抽查检验相结合的方式。
每次实验结束后都必须写出实验报告。
八. 实验报告实验一:数据定义/数据操纵语言[ 实验日期 ] 年月日[ 实验目的 ]熟悉Oracle上机环境以及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。
[ 实验内容 ]Oracle上机环境以及Oracle客户端的配置参见附录。
1. SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2)字段,Sname 字段为Sname(C,8)且可为空。
例1-2: (修改数据库表) 在Student表中增加SSEX(C,2)字段。
例1-3: (修改数据库表) 将Student表中把Sname字段修改为Sname(C,10)且为非空。
例1-4: (建立索引) 为Score表按学号升序和课程号降序分别建立索引,索引名分别为SC_NDXSNO 和SC_NDXCNO。
为Score表按分数降序建立索引,索引名为GRADE_NDX。
例1-5: (删除索引) 删除索引SC_NDX_SNO。
例1-6: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student 表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。
例1-7: (修改数据库表) 删除成绩表Score的参照完整性约束关系。
例1-8: (修改数据库表) 添加成绩表Score的参照完整性约束关系。
2. SQL数据操纵语句:例2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。
例2-2:(多行插入) 将表Student中在计算机系(‘CS’)的学生数据插入到表S1中。
例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。
例2-4: (修改数据) 将S1表中所有学生的年龄加2。
例2-5: (修改数据) 将Course表中‘程序设计’课时数修改成与‘数据结构’的课时数相同。
例2-6: (插入数据) 向Score表中插入数据(‘98001’, ‘001’, 95),根据返回信息解释其原因。
例2-7: (插入数据) 向Score表中插入数据(‘97001’, ‘010’, 80),根据返回信息解释其原因。
例2-8: (删除数据) 删除Score表中学号为‘96001’的成绩信息,根据返回信息解释其原因。
例2-9: (删除数据) 删除Score表中课程号为‘003’的成绩信息,根据返回信息解释其原因。
例2-10:(删除数据) 删除学生表S1中学号以96打头的学生信息。
例2-11:(删除数据) 删除数据库表S1中所有学生的数据。
例2-12:(删除表) 删除数据库表S1和Student_Gr。
[ 实验要求 ]①熟悉Oracle上机环境,掌握Oracle客户端的配置;②建立数据库表,修改数据库表结构,建立、删除索引;③对数据库表进行插入、修改和删除数据的操作。
[ 实验方法 ]①按照附录中的操作步骤进行客户端的配置;②将实验需求用SQL语句表示;③执行SQL语句;④查看执行结果,如果结果不正确,进行修改,直到正确为止。
[实验总结 ]① SQL语句以及执行结果;②对重点实验结果进行分析;③实验中的问题和提高;④收获与体会。
实验二:数据查询语言,视图操作[ 实验日期 ] 年月日[ 实验目的 ]体会SQL语言数据查询功能的丰富和复杂,视图定义使用。
[ 实验内容 ]3. SQL数据查询语句:例3-1: (选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
例3-2: (不选择重复行) 求选修了课程的学生学号。
例3-3: (选择表中的所有列) 求全体学生的详细信息。
例3-4: (使用表达式) 求全体学生的学号、姓名和出生年份。
例3-5: (使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
例3-6: (比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
例3-7: (比较大小条件) 求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。
例3-8: (确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
例3-9: (确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
例3-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
例3-11:(确定集合条件) 求不是数学系、计算机系的学生信息。
例3-12:(匹配查询) 求姓名是以“李”打头的学生。
例3-13:(匹配查询) 求姓名中含有“志”的学生。
例3-14:(匹配查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。
例3-15:(匹配查询) 求选修课程001或003,成绩在80至90之间,学号为96xxx的学生的学号、课程号和成绩。
例3-16:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。
例3-17:(控制行的显示顺序) 求选修003课程或004课程的学生的学号、课程号和分数。
例3-18:(组函数) 求学生总人数。
例3-19:(组函数) 求选修了课程的学生人数。
例3-20:(组函数) 求计算机系学生的平均年龄。
例3-21:(组函数) 求选修了课程001的最高、最低与平均成绩。
例3-22:(分组查询) 求各门课程的平均成绩与总成绩。
例3-23:(分组查询) 求各系、各班级的人数和平均年龄。
例3-24:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。
SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT WHERE SDEPT=’CS’ GROUP BY SDEPT;例3-25:(分组查询) 分析以下语句为什么会出现错误。
并给出正确的查询语句。
SELECT SAGE FROM STUDENT GROUP BY SNO;例3-26:(分组查询) 求学生人数不足3人的系及其相应的学生数。
例3-27:(分组查询) 求各系中除01班之外的各班的学生人数。
例3-28:(涉及空值的查询) 分别观察各组函数、行的显示顺序以及分组查询与空值的关系。
例3-29:(自然连接查询) 求学生号以及其选修课程的课程号和成绩,但查询结果中只能有一个SNO字段。
例3-30:(连接查询) 求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。
例3-31:(连接查询与表的别名) 求选修了课程的学生的学生姓名、课程号和成绩。
例3-32:(自身连接查询) 求年龄大于’李丽’的所有学生的姓名、系和年龄。
例3-33:(外部连接查询) 求选修了课程002或003的学生的学号、课程号、课程名和成绩。
例3-34:(子查询) 求与‘李丽’年龄相同的学生的姓名和系。
例3-35:(子查询) 求选修了课程名为’数据结构’的学生的学号和姓名。
例3-36:(子查询ANY) 求比数学系中某一学生年龄大的学生的姓名和系。
例3-37:(子查询ALL) 求比数学系中全体学生年龄大的学生的姓名和系。
例3-38:(子查询EXISTS) 求选修了课程004的学生的姓名和系。
例3-39:(返回多列的子查询) 求与‘李丽’同系且同龄的学生的姓名和系。
例3-40:(多个子查询) 求与‘李丽’同系,且年龄大于‘黎明’的学生的信息。
例3-41:(子查询中使用表连接) 求数学系中年龄相同的学生的姓名和年龄。
例3-42:(连接或嵌套查询) 检索至少选修王成刚老师所授课程中一门课程的女学生姓名。
例3-43:(嵌套与分组查询) 检索选修某课程的学生人数多于3人的教师姓名。
例3-44:(集合查询) 列出所有教师和同学的姓名和性别。
例3-45:(相关子查询) 求未选修课程004的学生的姓名。