实验2 交互式SQL_参考答案
数据库实验二交互式SQL试验报告
S表
J表
P表
SPJ表
2.数据操作:
(1)求供应工程j1零件的供应商号码SNO;
select sno from spj where jno='j1'
(2)求供应工程j1零件p1的供应商号码SNO;
select sno from spj where jno='j1'and pno='p1'
创建表J
create table J(JNOchar(5)not null,JNAMEchar(20)not null,CITYchar(10));
创建表SPJ
create table SPJ(SNOchar(5)not null unique,PNOchar(5)not null unique,JNOchar(5)not null unique,QTYint);
加上select * fromp执行即可
(5)找出所有供应商的姓名和所在城市;
select sno ,city from s
(6)找出所有零件的名称、颜色、重量;
select pname,color,weight from p
(7)找出使用供应商S1所供应零件的工程号码;
select jno from spj where sno='s1'
(10)找出使用上海产的零件的工程名;
select jname from j join spj on spj.jno=j.jnojoin s on s.sno=spj.sno wheres.city='上海'
(11)找出没有使用天津产的零件的工程号码;
数据库实验报告实验二_交互式SQL
数据库实验报告实验二_交互式SQL一、实验目的1.了解交互式SQL的基本语法和使用步骤;2.掌握在MySQL中创建数据库和表格的方法;3.掌握常用的SQL操作语句。
二、实验环境1. 操作系统:Windows 10;2.数据库管理系统:MySQL。
三、实验内容1.创建数据库和表格(1)启动MySQL服务,在命令提示符窗口中输入以下命令:```mysql -u root -p```(2)输入MySQL的密码,进入MySQL的命令行界面。
(3) 创建一个新的数据库,命名为`student`,输入以下命令:```CREATE DATABASE student;```(4)进入刚刚创建的数据库,输入以下命令:```USE student;```(5) 在`student`数据库中创建一个新的表格,命名为`score`,输入以下命令:```CREATE TABLE scoreid INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),english INT,math INT,physics INT```(6) 使用`DESCRIBE`命令查看新创建的`score`表格的结构,输入以下命令:```DESCRIBE score;```2.插入数据(1) 使用`INSERT INTO`命令向`score`表格中插入数据,输入以下命令:```INSERT INTO score (name, english, math, physics) VALUES ('张三', 80, 90, 85), ('李四', 75, 85, 90);```(2) 使用`SELECT`命令查询`score`表格中的数据,输入以下命令:```SELECT * FROM score;```3.更新数据(1) 使用`UPDATE`命令修改`score`表格中的数据,将`id`为1的记录的英语成绩修改为86,输入以下命令:```UPDATE score SET english = 86 WHERE id = 1;```(2) 使用`SELECT`命令查询`score`表格中的数据,验证英语成绩是否被修改,输入以下命令:```SELECT * FROM score;```4.删除数据(1) 使用`DELETE FROM`命令删除`score`表格中的数据,将`id`为2的记录删除,输入以下命令:```DELETE FROM score WHERE id = 2;```(2) 使用`SELECT`命令查询`score`表格中的数据,验证记录是否被删除,输入以下命令:```SELECT * FROM score;```四、实验总结本次实验主要学习了交互式SQL的基本语法和使用步骤,并通过实践掌握了在MySQL中创建数据库和表格的方法,以及常用的SQL操作语句。
实验二、三:交互式SQL
实验二:交互式SQL
1 实验目的
1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成作业的上机练习。
2 实验工具KingbaseES/MS SQL SERVER2000
利用KingbaseES/MS SQL SERVER2000及其交互式查询工具ISQLW来熟悉SQL。
3 实验内容和要求
1. 在KingbaseES/SERVER2000中建立一个数据库,进行实验所要求的各种操作,所有的SQL操作均在此建立的新库里进行。
2. 根据以下要求认真填写实验报告,记录所有的实验用例。
3.1 数据定义
1.熟悉基本表的创建、修改及删除。
2.熟悉索引的创建和删除。
3.熟悉视图的创建和删除。
3.2 数据操作
1.完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询)。
2.完成各类更新操作(插入数据,修改数据,删除数据)。
3.3 视图的操作
视图的定义(创建和删除),查询,更新(注意更新的条件)。
交互式SQL-查询语句
(1)创建数据库。
(2)在数据库中建立雇员关系表、工作关系表、公司关系表。
(3)建立3个表的关联关系。
(4)向表中添加数据。
(5)用SQL语言完查询任务。
(适用计算机程序设计类)
专业班级:计算机1202班学号:120405218姓名:张天皓
实验步骤或程序:
(1)查找所有为第一银行工作的雇员的姓名及居住城市。
2•实验内容:
(1)在SQL Server2000中建立一个新数据库,进行实验所要求的各 种操作,所有的SQL操作均在此建立的新库里进行。
(2)根据以下要求认真填写上机报告,记录所有的程序及实验用例。
(3)在SQL SERVER2000中新建一个数据库,进行实验所要求的各 种操作,所有的SQL操作均在此建立的新库里进行。
group by EMቤተ መጻሕፍቲ ባይዱLOYEE.E name
hav ing Wmon ey>avg(Wm on ey);
from WORKS
group by WORKS.C nu mber );
(4)查询工资高于其所在公司平均工资的职工名。
select En ame
from EMPLOYEE,WORKS,COMPANY
whereEMPLOYEE.E number=WORKS.E number
COMPANY.C nu mber=WORKS.C number
实验报告
课程名称:
数据库系统概论
实验项目:
交互式SQL(2)
实验报告
(适用计算机程序设计类)
专业班级:计算机1202学号:120405218姓名:张天皓
实验名称:交互式SQL(2)
201509-实验二:交互式SQL
实验二:交互式SQL一、实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
二、实验平台SQL SERVER 2008三、实验内容和要求1.在SQL Server 2008中建立一个数据库,进行实验所要求的各种操作,所有的SQL操作均在此建立的新库里进行。
2.根据以下要求认真完成实验并填写实验报告。
1)数据定义1.熟悉数据库的创建、修改及删除2.熟悉基本表的创建、修改及删除。
3.熟悉索引的创建和删除。
4.熟悉视图的创建和删除。
2)数据操作1.完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询)。
2.完成各类更新操作(插入数据,修改数据,删除数据)。
3)视图的操作视图的定义(创建和删除),查询,更新(注意更新的条件)。
四、实验步骤(一)数据定义一、数据库操作1.创建数据库创建一个数据库TEST,数据文件的逻辑名称为test_data,数据文件存放在D盘根目录下,文件名为testdada.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为50MB,存储空间自动增长量为5MB;日志文件的逻辑名称为test_log,日志文件物理的存放在D盘根目录下,文件名为tesdata.ldf,初始存储空间大小为5MB,最大存储空间为25MB,存储空间自动增长量为5MB。
CREATE DATABASE testON(NAME=test_data,FILENAME=’d:\testdata.mdf’,SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5)LOG ON(NAME=test_log,FILENAME=’d:\testdata.ldf’,SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5)2.修改数据库将TEST数据库中test_data文件的最大存储空间修改为UNLIMITED。
ALTER DATABASE testMODIFY FILE(NAME=test_data,MAXSIZE=unlimited)3.删除数据库删除数据库TEST。
实验2-交互式SQL语言
实验2 交互式SQL语言
【实验目的】
(1)熟悉数据库的交互式SQL工具。
(2)熟悉通过SQL语言对数据库进行操作。
【实验平台】
SQL Server 2000或2005
【实验内容和要求】
1.建立一个学生-课程数据库S_T,以下所有的SQL操作均在数据库上进行。
2.根据要求认真填写实验报告,记录所有实验用例。
(1)数据定义
●熟悉基本表的创建、修改和删除。
●熟悉索引的创建和删除。
●熟悉视图的创建和删除。
(2)数据操作
●完成各类查询操作(单表查询、连接查询、嵌套查询、集合查询)。
●完成各类更新操作(插入数据、修改数据、删除数据)。
(3)视图操作
●视图的定义(创建和删除)、查询、更新(注意更新的条件)。
实验2 报告。
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练2及4答案
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练2及4答案盗传必究本课程分为形成性考核和终结性末考两种考核形式,形成性考核占50%(满分100分),末考为网络考试占50%(满分100),其中形成性考核为完成课程网站上的形考作业任务,形考作业均为主观题,包括四个实训:实训一:在MYSQL创建数据库和表,25分;实训二:数据查询操作,25分;实训三:数据增删改操作,25分;实训四:数据库系统维护,25分。
实验训练2:数据查询操作答案:实验目的:基于实验 1 创建的汽车用品网上商城数据库 Shopping ,理解 MySQL 运算符、函数、谓词,练习 Select 语句的操作方法。
实验内容:1. 单表查询【实验 2.1 】字段查询( 1 )查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
( 2 )查询 ID 为 1 的订单。
分析:所有的订单信息存在于订单表中,而且订单用户 ID 也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验 2.2 】多条件查询查询所有促销的价格小于 1000 的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验 2.3 】 DISTINCT( 1 )查询所有对商品 ID 为 1 的商品发表过评论的用户 ID 。
分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用 DISTINCT 实现。
( 2 )查询此汽车用品网上商城会员的创建时间段, 1 年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用 DISTINCT 去重。
【实验 2.4 】 ORDER BY( 1 )查询类别 ID 为 1 的所有商品,结果按照商品 ID 降序排列。
实验二 交互式SQL (1)汇总
实验二交互式SQL Server(1)1 实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL的DDL,DML语言对数据库进行操作。
3.完成作业的上机练习。
2 实验工具SQL-Server利用SQL-Server及其交互式查询分析熟悉SQL。
3 实验内容和要求SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
SQL Server 2000的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。
本次实验了解SQL Server 2000查询分析器的启动,熟悉如何在SQL Server 2000查询分析器中进行交互式SQL操作。
本次实验了解DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,学会SQL Server 2000的查询分析器中用DDL语言进行对表、索引、视图的增加、删除和改动。
本次实验了解DML语言的INSERT、UPDATE、DELETE对数据的操作,学会SQL Server 2000的查询分析器中用DML语言对表中的数据进行插入、删除和修改。
3.1 数据定义1.熟悉基本表的创建、修改及删除。
Create Table 创建表Drop Table 删除表Alter Table 更改表2.熟悉索引的创建和删除。
Create Index 建立索引Drop Index 删除索引3.熟悉视图的创建和删除。
Create View 建立视图Drop View 删除视图3.2 数据操作1.完成各类更新操作(插入数据,修改数据,删除数据)。
Insert Into <表名> [(<属性列1>[,<属性列2>]…)] Values (<常量1>[,<常量2>]…);Update <表名> Set <列名>=<表达式>[,<列名>=<表达式>][,…n] [Where <条件>];Delete From <表名> [Where <条件>];3.3 视图的操作视图的定义(创建和删除),查询,更新(注意更新的条件)。
SQL实验的题目和答案全解
数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成上机练习。
四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。
4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。
更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。
4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。
实验2 交互式SQL-具体实验内容要求
实验2 实验内容1.使用SQL语言创建下面的三个表表一:学生表(Student)表二:课程表(Course)表三:学生选课表(SC)2.在以上的三个表中,使用SQL语句插入下面的数据3.创建索引(1)在Student表的Sname(姓名)列上建立一个唯一性降序索引; (2)在Course表的Semester (学期)列上建立一个升序索引;(3)在SC表按学号升序和课程号降序建立唯一索引;4.修改表结构(1)将Student表的Sname列的长度修改为20;(2)向Student表增加“入学时间”(Sentrance)列,其数据类型为日期型;5.删除对象(注:先保存以上所写的SQL的情况下,再删除对象,以便能重新创建相上对象)(1)写出删除上面创建的索引的SQL;(2)写出删除学生表、课程表和选课表的SQL;6.删除和修改记录(1)将选修C02课程的成绩增加1分;(2)删除学号为9531102的学生选课记录;(3)写出删除所有选课记录的SQL;7.根据上面的三种表,写出完成如下查询功能的SQL语句:(1)查询学生选课表中的全部数据;(2)查询计算机系的学生的姓名、年龄;(3)查询成绩在80~90分之间的学生的学号、课程号和成绩;(4)查询信息系系年龄在20~23岁之间且性别为“男”的学生的姓名、年龄;(5)查询C01号课程成绩最高的分数;(6)查询数学系学生的最大年龄和最小年龄;(7)统计每个系的学生人数;(8)统计每门课程的修课人数和考试最高分;(9)统计每个学生的选课门数和考试总成绩,并按选课门数的递增顺序显示结果;(10)查询总成绩超过250分的学生,要求列出学号、总成绩;(11)查询选修了C03号课程的学生的学号和所在系;(12)查询成绩在85分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果;(13)查询哪些课程没有人选修,要求列出课程号和课程名;(14)查询既选修了C01又选修了C02号课程的学生的学号;(15)查询选修了C01号课程的学生的姓名和所在系;(16)查询数学系成绩在85分以上的学生的学号、姓名;(17)查询计算机系考试成绩最高的学生的姓名。
数据库SQL实验报告__交互式查询(连接查询及嵌套查询)
《数据库管理系统SQL Server》实验报告
要求:
1.报告格式和内容要求:
a. 内容和格式整齐。
大标题采用黑体四号字加粗,小标题采用小四号字加粗。
正
文采用五号宋体,单倍行距。
b. 贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。
c. 不要在报告中写与实验无关的话,内容要有条理、完整、并能突出重点,要将
遇到的主要问题说明。
2.提交方式和时间:一周内完成。
可以将文件包发到我邮箱******@。
注明主题:
“交SQL作业”。
3.提交文件格式要求:
a. 将实验成果放入一个文件夹中,文件夹的内容包括:本实验报告、分离后的数
据库、如有查询代码(.sql文件)和其它文件也一并放入。
b. 文件夹以“学号姓名班级_S5”为文件名。
注意:你的学号放在姓名前。
c. 注意:所有文件保存后关闭,然后再打包成RAR文件,以免提交的内容丢失或
打不开。
4.主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。
第11页2011年4月13日星期三。
实验二交互式SQL实验报告
实验二交互式SQL实验报告交互式SQL一实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成作业的上机练习。
二实验工具SQLServerXX年利用SQLServerXX年及其交互式查询来熟悉SQL语句。
三实验内容和要求1.在SQLServerXX年中建立一个数据库,进行实验所要求的各种操作,所有的SQL操作均在建立的新库里进行;2.根据以下要求认真填写实验报告,记录所有的实验用例的SQL语言;3.1数据定义(1)熟悉基本表的创建、修改及删除。
(2)熟悉索引的创建和删除。
3.2数据操作(1)完成各类查询操作(单表查询,连接查询,嵌套查询);(2)完成各类更新操作(插入数据,修改数据,删除数据);3.3视图的操作视图的定义(创建和删除),查询,更新(注意更新的条件)。
3.4具体操作内容在MSSQLServer中创建学生-课程数据库,要求有学生表(Student)、课程表(Course)和选课表(SC),向三个表中分别插入相关数据,再用SQL语句完成一下要求的查询。
1.使用SQL语言创建下面的三个表。
表一:学生信息表(Student)列名说明数据类型约束Sno学号字符串,长度为10非空Sname姓名字符串,长度为10非空Ssex 性别字符串,长度为10非空Sage年龄字符串,长度为10非空Sdept所在系字符串,长度为10非空表二:课程信息表(Course)列名说明数据类型约束Cno课程号整形非空Cname课程名字符串,长度为10非空Cpno先行课整型允许为空Ccredit学分整型非空表三:学生选课信息表(SC)1列名说明数据类型Sno学号字符串,长度为10Cno课程号整型Grade成绩字符串,长度为102.在以上的三个表中,分别插入下面的数据;表一:学生信息表(Student)SnoSnameSsex男女女男XX年15121李勇XX年15122刘晨XX年15123王敏XX年15125张立表二:课程信息表(Course)CnoCname1234567数据库数学信息系统操作系统数据结构数据处理PASCAl语言20191819约束主码,引用Student 的外码主码,引用Course的外码取值0~100SageSdeptCSCSMAISCcredit4243424Cpno51676表三:学生选课信息表(SC)SnoCnoGradeXX年15121192XX年15121285XX年15121388XX年15122290XX年151223803.根据上面的三种表,写出完成如下查询功能的SQL语句:(1)查询全体学生的详细记录(2)查询选修了课程的学生学号(3)查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别(4)查询所有姓刘的学生的姓名、学号和性别(5)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列(6)查询选修1号课程的学生最高分数(7)查询每一门课的间接先修课(即先修课的先修课)(8)查询没有选修1号课程的学生姓名(9)查询与‘刘晨’在同一个系学习的学生(10)查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄(11)将一个新学生元组(学号:XX年15128;姓名:陈冬;性别:男;所在系:2IS;年龄:18岁)插入到Student表中(12)将学生XX年15121的年龄改为22岁(13)删除学号为XX年15128的学生记录(14)建立信息系学生的视图(15)在信息系学生的视图中找出年龄小于20岁的学生(16)将信息系学生视图is_Student中学号为XX年15122的学生姓名改为“刘辰”(17)删除信息系学生视图is_Student中学号为XX年15125的记录四实验报告4.1实验环境:WindowsXPMicrosoftSQLserverXX年4.2实验内容与完成情况:(1)查询全体学生的详细记录SELECT*FromStudent;(2)查询选修了课程的学生学号SELECTDISTINCTSnoFROMSC;(3)查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别SELECTSname,SsexFROMStudentWHER ESdeptIN(‘CS’,’MA’,’IS’);(4)查询所有姓刘的学生的姓名、学号和性别SELECT*Sname,Sno,SsexFROMCourseWHERESnameLIKE‘刘%’;3(5)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列SELECT*FROMStudentORDERBYSdept,SageDESC;(6)查询选修1号课程的学生最高分数SELECTMAX(Grade)FROMSCWHERECno=‘1’;(7)①查询每一门课的间接先修课(即先修课的先修课)o,second.CpnoFROMCoursefirst,CoursesecondWHEREfirst.Cp no=o;②查询每一门课的间接先修课(即先修课的先修课)(消除有空的行)o,second.CpnoFROMCoursefirst,CoursesecondWHEREfirst.Cp no=oandsecond.Cpnoisnotnull;(8)查询没有选修1号课程的学生姓名selectSnamefromStudentwherenotexists(select*fromSCwhereSno=Student.Snoan dCno=’1’)(9)查询与‘刘晨’在同一个系学习的学生selectSno,Sname,SdeptfromStudentwhereSdeptin(selectSdeptfromStudentwhereS name=‘刘晨’);(10)查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄selectSname,SagefromStudentwhereSage‘CS’;4(11)将一个新学生元组(学号:XX年15128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中insertintoStudent(Sno,Sname,Ssex,Sdept,Sage)values(‘XX年15128’,’陈冬’,’男’,’IS’,’18’);select*fromStudent;(12)将学生XX年15121的年龄改为22岁updateStudentsetSage=‘22’whereSno=‘XX年15121’;select*fromStud ent;(13)删除学号为XX年15128的学生记录deletefromStudentwhereSno=‘XX年15128’;select*fromStudent;(14)建立信息系学生的视图createviewis_StudentasselectSno,Sname,SagefromStudentwhereSdept=‘IS’;(15)在信息系学生的视图中找出年龄小于20岁的学生selectSno,Sagefromis_StudentwhereSage<20;(16)将信息系学生视图is_Student中学号为XX年15122的学生姓名改为“刘辰”updateis_StudentsetSname=‘刘辰’whereSno=‘XX年15122’;5select*fromis_Student;(17)删除信息系学生视图is_Student中学号为XX年15125的记录deletefromis_StudentwhereSno=‘XX年15125’;select*fromis_Student;4.3出现的问题:1.建表时要将三个表建在一个数据库中,否则不可以链接查询2.三个表中相同的属性的数据类型要一致,否则涉及到表连接时就会出错五实验感想通过这次实验课,我对自己的动手能力有了一个清楚地认识,只顾学习理论知识那是远远不够的,学习计算机这个专业勤动手操作才行。
数据库-实验二-交互式SQL
视图的操作:视图的定义(创建和删除),查询,更新(注意更新的条件)。
三、实验步骤:
1.基本表的创建、修改及删除。
(1)右击“数据库”点击“新建数据库”在 中输入“student”(如图1)。
图1
(2)点击“student”前的加号,右击 选择“新建表”选项,输入相关信息,完成表“student”的建立(图2)。
5、体会
1.除了使用SQL语句进行以上操作还可以右击“表”、“视图”进行“创建Байду номын сангаас、“修改”、“删除”、“更新”等操作。
教师
评语
(3).嵌套查询。查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄。
(4).集合查询。查询选修了课程1或者选修了课程2的学生。
4.数据更新。
(1).插入数据。将一个新学生元祖(学号:200215128;姓名:陈东;性别:男;所在系:IS;年龄:18岁)插入到student表中。
(2).修改数据。将学生200215121的年龄改为22岁。
图2
(3)用SQL的数据定义语句完成对表“course”和表“SC”的建立。
(4)表的修改:a.向student表增加“入学时间”列,其数据类型为日期型。
(5)表的删除:
2.索引的创建和删除。(1)建立。
(2).删除。
3.数据查寻。
(1).单表查询。查询全体学生的学号与姓名。
(2).连接查询。查询每个学生的学号、姓名、选修的课程名及成绩。
实验报告
姓名
学号
专业班级
课程名称
数据库原理
实验日期
成绩
指导教师
批改日期
实验名称
SQL数据库 综合实训2 参考解答
一、实训目的通过完成以下实践与操作,牢固掌握SQL Server 中数据库的创建与管理、数据表的创建与管理、约束的分析与创建、表中数据的输入与删除;二、实训环境PC机+Windows XP操作系统+SQL Server 2000;三、实训内容与要求实践1:设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。
四个表的结构如下:根据需要,定义好各个表的约束,比如在Student表中,性别只能是“男”或“女”;在Grade表中,成绩的取值范围为0-100;建立好四个数据表之间的参照完整性关系;用SQL语句创建库与四个表(在创建表结构同时定义各种约束)。
create database GradeManagergouse GradeManagercreate table Student(Sno char(7) not null constraint prik_Sno primary key clustered,Sname varchar(20) not null ,Ssex char(2) not null constraint Ssex_sex check(Ssex='男' or Ssex='女'),Sage smallint,Clno char(5) not null)create table Course(Cno char(1) not null constraint prik_Cno primary key clustered,Cname varchar(20) not null ,Credit smallint)create table Class(Clno char(5) not null constraint prik_Clno primary key clustered, Speciality varchar(20) not null,Inyear char(4) not null,Number int,Moniter char(7) foreign key references Student(Sno))create table Grade(Sno char(7) not null foreign key references Student(Sno),Cno char(1) not null foreign key references Course(Cno),Gmark decimal(4,1) constraint Grade_Gmark check(Gmark<=100 and Gmark>=0))Go实践2:给学生表增加一属性Nation(民族),数据类型为Varchar(20);用select语句查询,查看是否确实已经增加了一个字段;然后删除学生表中的属性Nation,之后用select语句查询操作结果;use GradeManageralter table Student add Nation varchar(20)gouse GradeManagerselect * from Studentgouse GradeManageralter table Student drop column Nationgouse GradeManagerselect * from Studentgo实践3:向四个表中分别插入如下记录,之后用select语句查询操作结果;(此处输入SQL代码及运行结果)--向表Student中输入数据use GradeManagerinsert into Student values('2000101','李勇','男',20,'00311') insert into Student values('2000102','刘诗晨','女',19,'00311') insert into Student values('2000103','王一鸣','男',20,'00312') insert into Student values('2000104','张婷婷','女',21,'00312') insert into Student values('2001101','李勇敏','女',19,'01311') insert into Student values('2001102','贾向东','男',22,'01311') insert into Student values('2001103','陈宝玉','男',20,'01311') go--向表Course中输入数据use GradeManagerinsert into Course values('1','数据库',4)insert into Course values('2','离散数学',3)insert into Course values('3','管理信息系统',2)insert into Course values('4','操作系统',4)insert into Course values('5','数据结构',4)insert into Course values('6','数据处理',2)insert into Course values('7','C语言',4)go--向表Class中输入数据use GradeManagerinsert into Class values('00311','计算机软件','2000',120,'2000101') insert into Class values('00312','计算机应用','2000',140,'2000103') insert into Class values('01311','计算机软件','2001',220,'2001103') go--向表Grade中输入数据use GradeManagerinsert into Grade values('2000101','1',92)insert into Grade values('2000101','3',88)insert into Grade values('2000101','5',86)insert into Grade values('2000102','1',78)insert into Grade values('2000102','6',55)insert into Grade values('2000103','3',65)insert into Grade values('2000103','6',78)insert into Grade values('2000103','5',66)insert into Grade values('2000104','1',54)insert into Grade values('2000104','6',83)insert into Grade values('2001101','2',70)insert into Grade values('2001101','4',65)insert into Grade values('2001102','2',80)insert into Grade values('2001102','4',90)insert into Grade values('2001102','6',83)insert into Grade values('2001103','4',76)insert into Grade values('2001103','6',56)go实践4:把学号为”2001101”的学生的成绩修改为70分,之后用select语句查询操作结果;use GradeManagerupdate Grade set Gmark='70' where Sno='2001101'gouse GradeManagerselect * from Grade where Sno='2001101'go实践5:删除学号为”2001101”的学生的成绩记录,之后用select语句查询操作结果;use GradeManagerdelete from Grade where Sno='2001101'gouse GradeManagerselect * from Grade where Sno='2001101'go实践6:将01311班的全体学生的成绩置零,之后用select语句查询操作结果;use GradeManagerselect Sno from Student where Clno='01311'go--得到三个学号2001101、2001102、2001103,然后用update命令更新Grade 表:use GradeManagerupdate Grade set Gmark='0' where (Sno='2001101' or Sno='2001102' or Sno='2001103')go--验证update操作结果use GradeManagerselect * from Grade where (Sno='2001101' or Sno='2001102' orSno='2001103')go实践7:删除2001级计算机软件的全体学生的选课记录,之后用select语句查询操作结果;--先从表Class中查出2001级的计算机软件专业班级号use GradeManagerselect Clno from Class where (Speciality='计算机软件' and Inyear='2001') go//查到班级号01311,再用班级号从表Student中查出这个班级的学生学号use GradeManagerselect * from Student where Clno='01311'go--得到三个学号2001101、2001102、2001103,然后用delete命令删除Grade 表中有关成绩记录:use GradeManagerdelete from Grade where (Sno='2001101' or Sno='2001102' or Sno='2001103') go--验证delete操作结果use GradeManagerselect * from Grade where (Sno='2001101' or Sno='2001102' orSno='2001103')go实践8:学生李勇已退学,从数据库中删除有关他的记录,之后用select语句查询操作结果。
实验二 交互式SQL语句的使用
本科实验报告课程名称:数据库系统原理实验项目:交互式SQL语句的使用实验地点:4606专业班级:学号:学生姓名:指导教师:2012 年10 月17 日一目的与要求(1)掌握数据库对象的操作过程,包括创建、修改、删除。
(2)熟悉表的各种操作,包括插入、修改、删除、查询。
(3)熟练掌握常用 SQL 语句的基本语法。
二实验设备与环境使用 SQL Server 数据库管理系统提供的 SSMS 和查询编辑器。
三实验内容、实验记录及实验结果与分析(1)实验内容学生选课系统要求如下:建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。
要求认真进行实验,记录各实验用例及执行结果。
深入了解各个操作的功能。
(2)实验的具体要求①数据定义基本表的创建、修改及删除索引的创建视图的创建②数据操作插入数据修改数据删除数据③数据查询单表查询分组统计连接查询嵌套查询集合查询④视图操作创建视图视图查询(3)实验记录、结果一、数据定义创建学生选课数据库 ST,包括三个基本表,其中 Student 表保存学生基本信息,Course 表保存课程信息,SC 表保存学生选课信息,其结构如下表所示。
表 2-1 Student 表结构表 2-2 Course 表结构表 2-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)检查表是否创建成功SELECT * FROM Student;SELECT * FROM Course;SELECT * FROM SC;(5)修改表结构及约束增加班级列ALTER TABLE Student ADD Sclass char(4);修改年龄列ALTER TABLE Student ALTER COLUMN Sage smallint;增加约束ALTER TABLE Course ADD UNIQUE(Cname);2. 创建、删除索引(1)为 Course 表按课程名称创建索引CREATE INDEX iCname On Course(Cname);(2)为 Student 表按学生姓名创建唯一索引CREATE UNIQUE INDEX iSname ON Student(Sname);(3)为 SC 表按学号和课程号创建聚集索引CREATE CLUSTERED INDEX iSnoCno ON SC(Sno,Cno DESC);(4)为 Course 表按课程号创建唯一索引▼ CREATE UNIQUE INDEX iCno ON Course(Cno);3.创建视图建立信息系学生的视图:CREATE VIEW IS_StudentASSELECT Sno,Sname,Sage FROM Student;WHERE Sdept= 'IS';二、数据操作1.插入数据(1)插入到Student表中:INSERT INTO Student VALUES('20100001','李勇','男',20,'CS','1001') INSERT INTO Student VALUES('20100002','刘晨','女',19,'CS','1001') INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20100021','王敏','女',18,'MA','1002')INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20100031','张立','男',19,'IS','1003')INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100003','刘洋','女','1001')▼INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES('20100010','赵斌','男','19','IS','1005')▼INSERT INTO StudentVALUES('20100022','张明明','男’,'19','CS','1002')(2)插入到Course表中:INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('1','数据库系统原理','5',4)INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('2','高等数学',null,2)INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('3','管理信息系统','1',4)▼INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('4','操作系统系统原理','6',3)▼INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('5','数据结构','7',4)▼INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('6','数据处理',null,2)▼INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('7','C语言',null,4)(3)插入到SC表中:INSERT INTO SC VALUES('20100001','1',92)▼INSERT INTO SC VALUES('20100001','2',85)▼INSERT INTO SC VALUES('20100001','3',88)▼INSERT INTO SC VALUES('20100002','1',90)INSERT INTO SC VALUES('20100002','2',80)▼INSERT INTO SC(Sno,Cno) VALUES('20100003','1') INSERT INTO SC(Sno,Cno,Grade) VALUES('20100010','3',null)(4)多行插入到表中创建存一个表,保存学生的学号、姓名和年龄:CREATE TABLE cs_Student( 学号 char(8),姓名 char(8),年龄 smallint);插入数据行:INSERT INTO cs_StudentSELECT Sno,Sname,SageFROM student Where Sdept='CS';(5)检查插入到表中的数据SELECT * FROM StudentSELECT * FROM CourseSELECT * FROM SC2.修改数据(1)将学生 20100001 的年龄改为 22 岁。
实验二 交互式SQL
第二列供应商提供了了第一列供应商提 供的所有零件
SELECT * FROM SPJ T5 WHERE T5.SNO=T1.SNO AND NOT EXISTS (SELECT * FROM SPJ T6 WHERE T6.PNO = T5.PNO AND T6.SNO=T2.SNO)
)
结果:空
将所有工程中红色零件的使用数量加100
文艺的SQL表示形式: SELECT a FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE B.ID NOT IN ( SELECT C.BID FROM C WHERE C.AID=A.ID ) ) SELECT a FROM A WHERE 此处默认C中C.BID存在外键引用B.ID。 (SELECT COUNT(*) FROM B) 如果没有则需要再添加什么条件呢? = (SELECT COUNT(DISTINCT C.BID) FROM C WHERE C.AID=A.ID) SELECT a FROM A WHERE NOT EXISTS ( (SELECT B.ID FROM B) EXCEPT (SELECT C.BID FROM C WHERE C.AID=A.ID) )
结果:(J4)
求对所有工程都提供了同一零件的供应商号码
(零件,供应商,工程) / (工程)
SELECT DISTINCT SNO FROM SPJ T1 WHERE NOT EXISTS (SELECT * FROM J WHERE NOT EXISTS (SELECT * FROM SPJ T3 WHERE T1.SNO = T3.SNO AND T1.PNO = T3.PNO AND J.JNO = T3.JNO) )
实验二 参考答案
实验二SQL语言——数据查询操作实验内容参考答案六、实验内容1.查询为工程J1供应零件的供应商号码SNOuse MyDBgoselect snofrom spjwhere jno='j1'2.查询为工程J1供应零件P1的供应商号码SNOuse MyDBgoselect snofrom spjwhere jno='j1' and pno='p1'3.查询为工程J1供应红色零件的供应商号码SNOuse MyDBgoselect snofrom spjwhere jno='j1' and pno in (select pnofrom pwhere color='红')4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO use MyDBgoselect jnofrom spjwhere sno in (select snofrom swhere city<>'天津') andpno in (select pnofrom pwhere color='红')5.查询至少选用了供应商S1所供应的全部零件的工程号JNOuse MyDBgoselect jnofrom spjwhere sno='s1' and pno =all (select pnofrom p)6.找出所有供应商的名称和所在城市use MyDBgoselect sname,cityfrom s7.找出所有零件的名称、颜色和重量use MyDBgoselect pname,color,weightfrom p8.找出使用供应商S1所供应零件的工程号码jnouse MyDBgoselect jnofrom spjwhere sno='s1'9.找出工程项目J2使用的各种零件的名称及其重量use MyDBgoselect pname,weightfrom p,spjwhere spj.jno='j2' and spj.pno=p.pno10.找出上海厂商供应的所有零件号码use MyDBgoselect pnofrom spjwhere sno=(select snofrom swhere city='上海')11.找出使用上海产的零件的工程名称use MyDBgoselect jnamefrom s,j,spjwhere spj.jno=j.jno and spj.sno=(select s.snofrom swhere s.city='上海') 12.找出没有使用天津产的零件的工程号码use MyDBgoselect jnofrom spjwhere sno in (select snofrom swhere city<>'天津')13.找出重量最轻的红色零件的零件编号PNOuse MyDBgoselect pnofrom pwhere weight=(select min(weight)from pwhere color='红')14.找出供应商与工程所在城市相同的供应商提供的零件号码use MyDBgoselect pnofrom s,j,spjwhere s.sno=spj.sno and j.jno=spj.jno and s.city=j.city15.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和use MyDBgoselect sum(qty) TotalQYTfrom spjwhere sno='s1' and jno in(select jnofrom jwhere jname like '%厂%')16.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列use MyDBgoselect sno,sum(qty) TotalQTYfrom spjgroup by snohaving sum(qty)>=500order by TotalQTY desc。
实验二 交互式SQL
C H ANG Z H OU U N I V E RSITY实验报告实验课程名称: Oracle数据库本次实验是第二次名称为:交互式SQL 学生姓名:车淳班级计算机144 学号 ********学院(系):信息数理学院指导教师:石林成绩:实验时间: 2017 年 4 月 14 日2 实验二 交互式SQL2.1数据定义部分实验目的:熟悉Oracle Database XE 的SQL 命令窗口的启动及使用。
掌握SQL 的数据定义语言的使用;理解数据库对象的概念。
通过PL/SQL Developer 访问Oracle 服务器。
(1)通过PL/SQL Developer 访问Oracle 服务器(2)熟练掌握SQL 查询语句的使用。
主要练习各种查询语句的构造,其中包括单表查询、连接查询、嵌套查询和集合查询。
重点掌握连接查询和嵌套查询实验内容与步骤:1. 通过PL/SQL Developer 环境下,使用SQL 语言定义Student_学号(由于每个同学访问了同一台Oracle 服务器,所以表名后加上每个同学自己的学号)表,该表的结构描述如下:表3.1 Student_学号 表结构注意,主码的定义和约束条件的定义。
2. 在PL/SQLDeveloper 环境下,使用SQL 语言定义Course _学号表,该表的结构描述如下:表3.2 Course_学号表结构注意,要将Cno 定义为主码,Cpno 定义为外码。
3. 在PL/SQL Developer 环境下,使用SQL 语言定义SC _学号表,该表的结构描述如下:表3.3 SC_学号表结构注意,该表的主码为Sno和Cno的组合,同时Sno和Cno都是外码。
要求定义表时定义这些主码和外码。
4. 插入数据使用INSERT语句将下面三个表中的数据插入到相应的表中。
可以使用SELECT语句查看表中的数据。
表3.4 Student_学号表数据表3.5 Course_学号表数据3表3.6 SC_学号表数据5. 使用ALTER TABLE 语句修改Student表为其增加一个BirthDay列,类型为DA TE。
实验交互式SQL实验报告
实验交互式SQL实验报告一、实验目的本实验旨在通过学习和掌握交互式SQL(Structured Query Language)的基本使用方法和常见操作,加深理解数据库管理系统(Database Management System,简称:DBMS)的工作原理和实际应用。
二、实验内容1.创建数据库表:通过SQL语句创建一个包含多个字段的数据库表,例如学生信息表。
2.插入数据:使用INSERT语句向数据库表中插入若干条记录。
3.查询数据:使用SELECT语句从数据库表中查询指定的记录。
4.更新数据:使用UPDATE语句更新数据库表中的记录。
5.删除数据:使用DELETE语句从数据库表中删除指定的记录。
三、实验步骤1.创建数据库表首先使用CREATE TABLE语句创建一个名为“students”的数据库表,并指定表中的字段名称和数据类型。
例如,可以使用以下语句创建一个包含学生ID、姓名和年龄的数据库表:CREATE TABLE students (id INT, name VARCHAR(20), age INT);2.插入数据使用INSERT INTO语句向表中插入多条记录,每条记录包含相应的字段值。
例如,可以使用以下语句向“students”表中插入三条学生记录:INSERT INTO students (id, name, age) VALUES (1, 'Tom', 20);INSERT INTO students (id, name, age) VALUES (2, 'Mary', 19);INSERT INTO students (id, name, age) VALUES (3, 'John', 21);3.查询数据使用SELECT语句从表中查询指定的记录。
例如,可以使用以下语句查询“students”表中所有学生记录:SELECT * FROM students;此外,还可以使用WHERE子句限制查询结果的范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 交互式SQL(参考答案,仅供参考,答案不唯一) 1.使用SQL语言创建下面的三个表create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex varchar(2),Sage int,Sdept varchar(20))create table Course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int,Semster int,Period int)create table SC(Sno varchar(7),Cno varchar(10),Grade int ,XKLB varchar(4),primary key(Sno,Cno),foreign key(Sno) references Student(Sno),foreign key(Cno) references Course(Cno))2.在以上的三个表中,使用SQL语句插入下面的数据insert into Student values('9512101','李勇','男','19','计算机系');insert into Student values('9512102','刘晨','男','20','计算机系');insert into Student values('9512103','王敏','女','20','计算机系');insert into Student values('9521101','张立','男','22','信息系');insert into Student values('9521102','吴宾','女','21','信息系');insert into Student values('9521103','张海','男','20','信息系');insert into Student values('9531101','钱小平','女','18','数学系');insert into Student values('9531102','王大力','男','19','数学系');insert into Course values('C01','计算机文化基础',3,1,null);insert into Course values('C02','VB',2,3,null);insert into Course values('C03','计算机网络',4,7,null);insert into Course values('C04','数据库基础',6,6,null);insert into Course values('C05','高等数学',8,2,null);insert into Course values('C06','数据结构',5,4,null);insert into SC values('9512101','C01',90,'必修');insert into SC values('9512101','C02',86,'选修');insert into SC values('9512101','C06',62,'必修');insert into SC values('9512102','C02',78,'选修');insert into SC values('9512102','C04',66,'必修');insert into SC values('9512102','C01',82,'选修');insert into SC values('9512102','C05',92,'必修');insert into SC values('9512102','C06',50,'必修');insert into SC values('9512103','C02',68,'选修');insert into SC values('9512103','C06',62,'必修');insert into SC values('9531101','C01',80,'选修');insert into SC values('9531101','C05',95,'必修');insert into SC values('9531102','C05',85,'必修');3.创建索引(1)在Student表的Sname(姓名)列上建立一个唯一性降序索引;create unique index StuSname on Student(Sname desc)(2)在Course表的Semester (学期)列上建立一个升序索引;create index Course_Semester_Index on Course(Semster asc) (3)在SC表按学号升序和课程号降序建立唯一索引;create unique index SC_Sno_Cno_Index on SC(Sno asc,Cno desc) 4.修改表结构(1)将Student表的Sname列的长度修改为20;alter table Student alter column Sname varchar(20) not null(2)向Student表增加“入学时间”(Sentrance)列,其数据类型为日期型;alter table Student add Sentrance Datetime5.删除对象(注:先保存以上所写的SQL的情况下,再删除对象,以便能重新创建相上对象)(1)写出删除上面创建的索引的SQL;drop index Student.StuSname;drop index Course.Course_Semester_Index;drop index SC.SC_Sno_Cno_Index;(2)写出删除学生表、课程表和选课表的SQL;drop table SC;drop table Student;drop table Course;6.删除和修改记录(1)将选修C02课程的成绩增加1分;update SC set grade=grade + 1 where Cno= 'C02'(2)删除学号为9531102的学生选课记录;delete SC where Sno='9531102'(3)写出删除所有选课记录的SQL;delete SC7.根据上面的三种表,写出完成如下查询功能的SQL语句:(1)查询学生选课表中的全部数据;select * from SC(2)查询计算机系的学生的姓名、年龄;select Sname,Sage from Student where Sdept='计算机系'(3)查询成绩在80~90分之间的学生的学号、课程号和成绩;select Sno,Cno,grade from SC where grade>=80 and grade<=90 (4)查询信息系系年龄在20~23岁之间且性别为“男”的学生的姓名、年龄;select Sname,Sage from Student where Sdept='信息系' and (Sage between 20 and 23)(5)查询C01号课程成绩最高的分数;select MAX(grade) from SC where Cno='C01'(6)查询数学系学生的最大年龄和最小年龄;select Max(Sage) 最大年龄,Min(Sage) 最小年龄from Student where Sdept='数学系'(7)统计每个系的学生人数;select Sdept,Count(*) from Student group by Sdept(8)统计每门课程的修课人数和考试最高分;select Cno,Count(*),Max(grade) from SC group by Cno(9)统计每个学生的选课门数和考试总成绩,并按选课门数的递增顺序显示结果;select Sno,COUNT(*),SUM(grade) from SC group by Sno order by COUNT(*) ASC(10)查询总成绩超过250分的学生,要求列出学号、总成绩;select Sno,SUM(grade) from SC group by Sno havingSUM(grade)>250(11)查询选修了C03号课程的学生的学号和所在系;select S.Sno,S.Sdept from Student S,SC C where S.Sno=C.Sno ando='C03'(12)查询成绩在85分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果;select S.Sname,o,C.grade from Student S,SC C where S.Sno=C.Sno and C.grade>85 order by c.grade DESC(13)查询哪些课程没有人选修,要求列出课程号和课程名;方法一:select Cno,CName from Course where Cno not in (select Cno from SC)方法二:select o,ame from SC right outer join Course C on (o=o) where o is null方法三:select Cno,CName from Course where not exists(select * from SC where o=o)(14)查询既选修了C01又选修了C02号课程的学生的学号;方法一:select Sno from SC where Cno='C01' and Sno in (select Sno from SC where Cno='C02')方法二:select Sno from SC where Cno='C01' intersect select Sno from SC where Cno='C02' (注:交集)(15)查询选修了C01号课程的学生的姓名和所在系;select S.Sname,S.Sdept from Student S,SC C where S.Sno=C.Snoand o='C01'(16)查询数学系成绩在85分以上的学生的学号、姓名;select distinct S.Sno,S.Sname from Student S,SC C where S.Sno=C.Sno and S.Sdept='数学系' and C.grade>85(17)查询计算机系考试成绩最高的学生的姓名。