《结构化查询语言答案计算机数据库_计算机-数据库.pdf》由会员分享,可在线阅读,更多相关《结构化查询语言答案计算机数据库_计算机-数据库.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、试验二结构化查询语句 一.简单査询 1.査询XS表中各个同学的所有信息。Select*from xs 2.査询XS表中孑个同学的姓名、专业名和总学分。select xm zym,zxf from xs;3.査询XS表中所有同学的学号.姓名和总学分.结果中冬列的标题分别指左为“学号”、“姓名”和“总学分”。Select xh as 学号,xm as 姓名,zxf as 总学分 from xs;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。Select distinct zym from xs;5.査询XS表中毎个学生的学号、姓爼和年龄信息。Select
2、xh,xm,tojumber(to_char(sysdate,yyyy)-to_number(to_char(cssj,yyyy)as nl from xs;6.査询XS表中专业为“讣算机”的同学的情况。Select from xs where zyo=计算机;7.査询XS表中1980年出生的学生姓名和专业情况。Select xm,zym from xs where to_number(to_char(cssj,yyyy)=1980;8.査询XS表中专业名为“计算机”或“电子或“应用数学”的学生的情况。Select from xs Where zym in(计算机,电子 应 用数学);9.査询
3、XS表中姓“张”且单名的学生的情况。Select from xs Where xm like 张;10.査询XS表中总学分尚未确定的学生情况。Select from xs Where zxf is null 11.査询XS表中专业为“讣算机”且总学分尚未确龙的学生情况。Select from xs Where zym=计算机and zxf is null 12.从XS表中査询学生的基本信息,要求按照总学分从高到低排序,学分相同时,按学号 由低到高排序。Select from xs Order by zxf desc,xh 二数据汇总 1.求选修了“001课程的学生的平均成绩。Select av
4、g(cj)as 平均成绩 from xs_kc where kch=,00T:2 求选修了“002”课程的学生的最高分和最低分。Select max(c j)as 最高分min(cj)as 最低分 from xs_kc irtierc kch=,002;3.求学号为“4102101学生的总成绩。Select sum(cj)as 总成绩 from xs_kc where xh二200901;4.求专业为“计算机”的学生的总人数。Select count()as 总人数 from xs where zym=计算机;5.求选修了“001”课程的学生的人数。Select count()人数 from
5、xs_kc where kch二001;6求选修了课程的学生的人数。Select count(distinct xh)人数 from xs_kc;7.统计各个专业的学生数。(按专业分组)select zym,count()as 人数 from xs group by zym;8.统计各个专业的男女生人数。格式如下:专业 性别 人数 select zym,xb,count()人数 from xs group by zym,xb;9.査找平均成绩在80分以上的学生的学号和平均成绩。Select xh,avg(cj)平均成绩 from xs_kc Group by xh having avg(cj)
6、=80;10.査找选修课程超过2门成绩在80分以上的学生的学号和成绩高于80分的门数。Select xh,count()门数 from xs_kc Where cj=80 Group by xh Having count()=2;11显示每个学生的学号和平均成绩,并显示总平均成绩。(使用NUI0N子句)格式如下:学中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名的学生的情况张査询表中总学分尚未确定的学生情况
7、査询表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性人数 3.号 平均成绩 总平均成绩 .select xh,avg(cj)平均成绩 from xs_kc group by xh union all select 总平均成绩from xs_kc;12产生一个结果集,包括每个专业的学生人数及学生总人数。(使用NUION子句)格式如
8、 下:专业 总人数 select zym,count()人数 from xs group by zym union all select 总人数,count(*)from xs;三、连接査询 1.查询每个学生的基本情况及选修的课程情况,格式如下:学号 姓名 专业 课程号成绩 方法b select xs.xh zym,kchf cj from xs,xsjee irtiere xs.xh=xs_kc xh;方法2:select xse xh,xm,zym,kch,cj from xs join xs_kc on xs.xh二xs_kcxh;2.査询选修了课程号为001的毎个学生的姓爼及成绩。Se
9、lect xm,cj From xs xs_kc Where xs 00T;查询“计算机”专业且选修了“计算机基础”课程的学生的学号.姓名及成绩。方法b Select xs.xh,xm,cj From xst xsjee,kc Where xs.xh=xs_kc.xh and xs_kc.kch=kc.kch 中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名的学生的情况张査询表中总学分尚未确定的学生情况査询
10、表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性And zym=,计算机and kcm=,计算机基础;方法2:Select xs.xh xm cj From xs join xs_kc on xs.xh=xs kc.xh join kc on xs_kc kch=kc kch where zym二 计算机and kcm=计算机基
11、础;4.査询选修了课程号为001的每个学生的基本情况及成绩,若学生未选修101号课程,也包括其情况。Select xs cj From xs left join xsjcc On xs xh=xsJcc.xh and kch=,001;5.显示毎门课程的平均成绩并显示总平均成绩。格式如下:课程名 平均成绩 总平均 select kcm,avg(cj)平均成绩 from xs_kc,kc where xs_kc kch=kc kch group by kcm union all select 总平均*,avg(cj)from xsjcc;6.査询齐个专业各门课程的平均成绩。格式如下 专业 课程名
12、 平均成绩 select zym,kcm,avg(cj)平均成绩 from xs,xs_kc,kc where xs.xh=xs_kc xh and xs_kc kch=kc kch=85;子査询的使用 1.查询平均成绩高于101号课程平均分的课程号及平均成绩。Select kch,avg(cj)平均成绩 中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名的学生的情况张査询表中总学分尚未确定的学生情况査询表中
13、专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性From xs_kc Group by kch 中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名
14、的学生的情况张査询表中总学分尚未确定的学生情况査询表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性Having avg(cj)=(select avg(cj)from xs_kc irtiere kch二001/);2.査询001号课程及格的学生的基本情况。方法1:用连接査询 select xs.from xs,xs_kc wh
15、ere xs.xh=xs_kc.xh and kch=OOV and cj=60;方法2:用子査询 select*from xs where xh in(select xh from xsjcc where kch二001 and cj=60);方法3:用EXISTS子査询 select*from xs where exists(select from xs_kc where xh二xs.xh and kch=00V and cj=60);3.査找比所有讣算机系的学生的年龄都大的学生的情况。Select from xs Where css j(select min(css j)from xs
16、where zym=计算机);4.查找未选修“C语言”课程的学生的情况。(嵌套子查询)select from xs where xh not in(select xh from xs_kc,kc here xs_kc kch=kc.kch and kcm=C 语言);5.査询每个专业年龄最小的学生的基本信息。(Select from xs a Where cssj=(select inax(cssj)from xs where zym=a-zvm片 6.査找选修了“il算机基础”课程的学生的情况。Select from xs Where xh in(select xh from xs_kc,k
17、c where xs kc.kcli=kcxhtxmtcj from xstxs_kc,kc where xs.xh=xs_kc.xh and xs_kc.kcli=kc.kch and kon计算机基础,and cj=(select avg(cj)from xs_kc,kc Select xluxiihxbzym from xsdllf order by cj 中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且
18、单名的学生的情况张査询表中总学分尚未确定的学生情况査询表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性Where xh in(select xh from xs_ke,kc where xs_kc=60);9.XS_KC表中查询英学号在XS表中不存在或其课程号任KC表中不存在的学生的成 绩信息。Select from xs_kc
19、 Where xh not in(select xh from xs)Or kch not in(select kch from kc);五.表结构操作 1.创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自左),然后使用 SELECT子句向表XS1中插入多行数据(专业为“讣算机”的学生数据)。Create table xsl(xh char(6)not null primary key,xm char(8)not null,xb char(2)default(1),cssj date null);go insert into xsl select xh,xm,xb,cssj f
20、rom xs where zym=*计算机;2.修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。Alter table xsl Add 平均成绩 number default(0);Update xsl Set 平均成绩=(select avg(cj)from xs_kc Mhere xh=xsl.xh);3.将XS表中讣算机专业的学生的总学分增加10分。Update xs Set zxf二zxf+10 Where zym=计算机;4.将XS表中学号为“200901”的同学的总学分增加4分,备注改为“提前修完一门课程 S Update xs Set
21、zxf=zxf+4,bz二 提前修完一门课程 Where xh=20090T;5.将XS_KC表中学号为“4102101”的同学的“il算机基础”课程的成绩增加10分。方法1:用连接 中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名的学生的情况张査询表中总学分尚未确定的学生情况査询表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为
22、学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性Update xs_kc Set cj=cj+10 From kc,xs_kc Where xs_kc kch=kc.kch and kcnF*计算机基础 and xh=f 200901*;方法2:用子査询 Update xs_kc Set cj=cj+10 Where kch=(select kch from kc where kcm=计算机基础)And xh三 20090r;6.修改XS1表的结构.增加
23、1个“总学分”字段.并使其值为该学生所学各门功课的学 分之和。Alter table xsl Add zxf number default(0);Go Update xsl Set zxf=(select sum(kc.xf)from xs_kc,kc where xs_kc.kch=kc.kch and xs_kc.xh=xsl.xh;7.将XS1表中总学分小于40分的学生数据删除。Delete xsl Where zxf40 8.将XS_KC表中“数据库”课程的所有成绩信息删除。方法1:用连接 delete xsjcc From xs_kc kc Where xsjkc.kch=kc.kc
24、h and kcnF*数据库;方法2:用子査询 delete xs_kc Where kch=(select kch from kc where kcm=,数据库);9.将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信 息删除。Delete xs_kc Where xh not in(select xh from xs)or kch not in(select kch from kc);中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査
25、询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名的学生的情况张査询表中总学分尚未确定的学生情况査询表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性10.删除XS1表中的所有数据。Delete xsl 中所有同学的学号姓名和总学分结果中冬列的标题分别指左为学号姓名和总学分学号姓名总学分查询表中的学生数据来自哪些专业使用子句消除结果集中的重复行査询表中毎个学生的学号姓爼和年龄信息査询表中专业为讣算机的同计算机电子应用数学査询表中姓张且单名的学生的情况张査询表中总学分尚未确定的学生情况査询表中专业为讣算机且总学分尚未确龙的学生情况计算机从表中査询学生的基本信息要求按照总学分从高到低排序学分相同时按学号由低分求学号为学生的总成绩总成绩二求专业为计算机的学生的总人数总人数计算机求选修了课程的学生的人数人数二求选修了课程的学生的人数人数统计各个专业的学生数按专业分组人数统计各个专业的男女生人数格式如下专业性
限制150内