网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

中级SQL考前复习资料

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为广大网友收集整理了,中级SQL考前复习资料,希望对大家有所帮助!


    高银培训
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    2008年中级SQL考前复习
    (高银培训)准备工作:做以下题目所需的数据库在“做题目所需数据库文件.rar”内,请先解压到桌面上,再将各题的数据库文件分别复制到C:\Datas目录下。
    一、SQL语句
    SQL--StructuredQueryLanguage是一种用来建立、维护及查询关系数据库的命令语言。考试时要求生成一个查询文件(T.QPR),它的内容是一条SELECT命令:SELECTFROMWHEREGROUPBYHAVINGORDERBYINTOTABLE<输出字段表>;<源数据表名1><记录筛选条件>;<分组关键字段名1>[,<分组关键字段名2>…];<分组筛选条件>;<第1排序项>[DESC][,<第2排序项>[DESC]]…;<查询结果数据表名><输出字段表>FROM<源数据表名>其余部分可根据查询要求而设定,也可以省略。[INNERJOIN<源数据表名2>ON<联接条件>];
    其中必不可少的部分是:SELECT
    二、要解决的问题
    题目给出两个表,是否都打开?问1:题目给出两个表,是否都打开?何时要“分组”问3:何时要“分组”?何时用自连接?何时用无条件自连接?问5:何时用自连接?何时用无条件自连接?输出“一条记录,一个字段”怎么操作?问2:输出“一条记录,一个字段”怎么操作?怎样区分“分组过滤条件”记录筛选条件”问4:怎样区分“分组过滤条件”和“记录筛选条件”?何时用两个联结条件?问6:何时用两个联结条件?
    三、SQL内部过程与操作
    1、SQL内部过程:查询时,常常包含两个表(也可以一个表),应先设置一个联接条件,将这两个表组合起来,形成一个内部的临时表,用于存放中间结果,这个临时表包含每个源表的所有字段。联接时,系统自动将这两个表在两个不同的工作区内打开,并将其中一个表设为当前表。当前表的记录指针首先指向第一条记录,然后检查另一表的每条记录是否符合联接条件,如果符合,则在临时表中生成一条记录,然后,当前表的记录指针指到下一条记录,重复,直至当前表结束。2、操作:进入VFP,在命令窗口中输入如下命令:RUNCOPYC:\DATAS\*.DBFC:ModiQuerA:\T.QPR(先将C:\DATAS中数据表文件复制到C盘当前目录)(在A盘根目录下建立SQL查询T.QPR)
    四、常见类型与各类型举例
    中级考试可能会出现以下类型:中级考试可能会出现以下类型:1、不分组2、分组3、整个表作为一个组4、提供两个表,只用一个表提供两个表,5、两个联接条件6、自联接(有条件)自联接(有条件)7、自联接(无条件)自联接(无条件)8、修改SQL
    三、各类型举例
    1
     高银培训
    网址:gy.net
    电话:65
    554002(总部)
    28899927(松江)
    1、不分组
    (1)、2006/01/No.6在C:\DATAS中有数据表文件T1.DBF,记录了一批学生的成绩,每位学生对应一条记录,结构为:XMYWSXWYCNNN8333000()(语文)(数学)(外语)
    请先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表文件T4.DBF,每位学生对应一条记录,其中包含总分(数学、语文、外语三门课之和,但如果外语成绩超过90分,则外语成绩乘1.1加入总分)超过260分的学生,结构为1个字段:(提示:在记录筛选时,可以采用两种条件“或”的形式,分别针对外语不超过、超过90分的两种情况)。解:SELECTT1.xm;FROMt1;WHERET1.wy>90;ANDT1.yw+T1.sx+T1.wy*1.1>260;OR(T1.wy<=90;ANDT1.yw+T1.sx+T1.wy>260);INTOTABLEt4.dbf(2)、2006/09/No.4子目录C:\DATAS中有数据表文件T1.DBF和T2.DBF,分别存放着一批学生第一、第二两个学期的选修课考试成绩,结构为:XHKCMCDF1DF2CCNN623300()(课程名称)(期中成绩)(期末成绩)
    每个记录对应一位学生的一门课程,一人可同时选修多门课程,有的课程只需学一个学期,有的课程需学两个学期(以下简称“大课”),大课每人最多选一门。先把表文件复制到当前目录,然后建立T.QPR,运行此文件能在磁盘上生成数据表T4.DBF,选修大课的每位学生对应一条记录,结构为3个字段,第1个是,第2个是大课名称,第3个是该课程的最后成绩(计算方法为:两个学期的期中成绩各15%,期末成绩各35%,加起来)。解:SELECTT1.xh,T1.kcmc,(T1.df1+T2.df1)*0.15+(T1.df2+T2.df2)*0.35;FROMt1INNERJOINt2;ONT1.xh=T2.xh;WHERET1.kcmc=t2.kcmc;INTOTABLEt4.dbf(3)、2006/09/No.5在C:\DATAS中有数据表文件T1.DBF,存放着各位学生选修的课程(学生互不相同),结构为:XXKCXSXMCC88(选修课程)(学生)
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,和LXH选修同一门课程的每位学生(不包括LXH本人)对应一个记录,结构为2个字段:第1个是选修课程,第2个是学生,按学生姓名从小到大排序(提示:可采用有连接条件的自联接)。解:SELECTT1.xxkc,T1_a.xsxm;FROMt1INNERJOINt1T1_a;ONT1.xxkc=T1_a.xxkc;WHERET1.xsxm="LXH";2
     高银培训ANDT1_a.xsxm<>"LXH";INTOTABLEt4.dbf
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    二、分组(以下各题必需分组)
    (1)、2006/01/No.2在C:\DATAS中有数据表文件T1,结构为:XHXMNJBHCJCCCCN441162()(
    )(年级)(班号)(成绩)
    其中存放着所有学生的基本数据,每位学生对应一条记录,学生的互不相同,但不同年级可有相同的班号。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,有人成绩合格(成绩不小于60)的每个班级对应一条记录,结构为3个字段,第1个是年级,第2个是班号,第3个是该班级最低的合格成绩,按最低合格成绩从高到低排序。解:SELECTT1.nj,T1.bh,MIN(T1.cj);FROMt1;WHERET1.cj>=60;GROUPBYT1.nj,T1.bh;ORDEBY3DESCINTOTABLEt4.dbf(2)、2006/01/No.5在C:\DATAS中有数据表文件T1,结构为:XHXMNJBHCJCCCCN441162()()(年级)(班号)(成绩)
    其中存放着所有学生的基本数据,每位学生对应一条记录,学生的互不相同,但不同年级可有相同的班号。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,有人成绩合格(成绩不小于60)的每个班级对应一条记录,结构为3个字段,第1个是年级,第2个是班号,第3个是该班级所有学生的最低成绩。解:SELECTT1.nj,T1.bh,MIN(T1.cj);FROMt1;GROUPBYT1.nj,T1.bh;HAVINGMAX(T1.cj)>=60;INTOTABLEt4.dbf(3)、2006/07/No.1在C:\DATAS中有数据表文件T1,存放某天各个医院的门诊信息,结构是:YBKHBRXMYYMCMZKSCCCC128128(医保卡号)(病人)(医院名称)(门诊科室)
    一位病人可以到多个科就诊,不同病人的会相同,但医保卡号不会相同。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,其中包含2条记录,分别是这天内科(NK)和外科(WK)的就诊人数,结构为2个字段,第1个是门诊科室、第2个是就诊人数。3
     高银培训解:SELECTT1.mzks,COUNT(T1.ybkh);FROMt1;WHERET1.mzks="NK";OR(T1.mzks="WK");GROUPBYT1.mzks;INTOTABLEt4.dbf(4)、2006/07/No.5
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    在C:\DATAS中有数据表文件T1,存放某天各个医院的门诊信息,结构是:YBKHBRXMYYMCMZKSCCCC128128(医保卡号)(病人)(医院名称)(门诊科室)
    一位病人可以到多个科就诊,不同病人的会相同,但医保卡号不会相同。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,在2个或更多科室就诊的每位病人对应一条记录,结构为2个字段:第1个是医保卡号、第2个是病人。解:SELECTT1.ybkh,T1.brxm;FROMt1;GROUPBYT1.yymc,T1.ybkh;HAVINGCOUNT(*)>=2;
    INTOTABLEt4.dbf(5)、2006/09/No.1在C:\DATAS中有数据表文件T1,其中存放着各位学生的学习情况,每位学生有若干条记录,分别对应不同的课程,结构是:BJDMBNXHKCMCJCCCN22830(班级代码)(班内序号)(课程名)(成绩)
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每门有人及格(成绩不低于60)的课程对应一条记录,结构为2个字段,第1个是课程名,第2个是学习该课程的学生数(包括不及格的学生)。解:SELECTT1.kcm,COUNT(*);FROMt1;GROUPBYT1.kcm;HAVINGMAX(T1.cj)>=60;INTOTABLEt4.dbf(6)、2006/09/No.6在C:\DATAS中有数据表文件T1,其中存放某次考核的数据,每场的每名考生一个记录,结构是:CCKHZHCJCCN1830(场次)(考核证号)(成绩)
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每位参加一场以上考核(考核证号相同),并且既有及格成绩(不低于60)又有不及格成绩的考生对应一个记录,结构仅1个字段:考核证号。牢记:每场成绩都及格:Min(CJ)>=60每场成绩都不及格:Max(CJ)<604
     高银培训至少有一场不及格:Min(CJ)<60至少有一场及格:Max(CJ)>=60
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    既有及格、又有不及格:Max(CJ)>=60andMin(CJ)<60解:SELECTT1.khzh;FROMt1;GROUPBYT1.khzh;HAVINGMAX(T1.cj)>=60;ANDMIN(T1.cj)<60);INTOTABLEt4.dbf补充1:每位参加一场以上考核(考核证号相同),并且每场成绩都既不低于50又不满60的考生对应一个记录,结构仅1个字段:考核证号。解:SELECTT1.khzh;FROMt1;GROUPBYT1.khzh;HAVINGCOUNT(*)>1;ANDMAX(T1.cj)<60;ANDMIN(T1.cj)>=50;INTOTABLEt4.dbf补充2:每位只参加一场考核(考核证号相同)并且及格(不低于60)的考生对应一个记录,结构仅1个字段:考核证号。解:SELECTT1.khzh;FROMt1;GROUPBYT1.khzh;HAVINGCOUNT(*)=1;ANDT1.cj>=60;INTOTABLEt4.dbf补充3:每场考核对应一个记录,结构为两个字段:第一个是场次,第二个是该场的合格人数(不必考虑无人合格的特殊情况)。解:SELET1.CC,COUNT(*);FROMT1;WHERET1.CJ>=60;GROUPBYT1.CC;INTOTABLET4.DBF补充4:至少参加2场考核,既有低于60的成绩,又有不低于60的成绩,结构为3个字段:第一个是考核证号,第二个是参加考核场数,第三个是最高成绩。解:SELECTT1.KHZH,COUNT(*),MAX(CJ);FROMT1;GROUPBYT1.KHZH;HAVINGCOUNT(*)>=2;ANDMIN(CJ)<60;ANDMAX(CJ)>=60;INTOTABLET4.DBF补充5:只输出一条记录,结构为3个字段:第一个是参加考核的总人次,第二个
    是平均成绩,第三个是最高成绩。(此题类型属于整个表作为一个组)5
     高银培训解:SELECTCOUNT(*),AVG(CJ),MAX(CJ);FROMT1;INTOTABLET4.DBF
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    补充6:输出3条记录,分别对应最高的3个成绩(假定最高的4个成绩各不相同),结构为2各字段:第一个是考核证号,第二个是成绩(提示使用自连接,此题类型属于自连接)。解:SELECTT1.khzh,T1.cj;FROMt1INNERJOINt1T1_a;ONT1.cj<=T1_a.cj;GROUPBYT1.cj;HAVINGCOUNT(*)<=3;INTOTABLEt4.dbf补充7:每种出现过的成绩对应一个记录,结构为2个字段:第1个是成绩,第2个是得到这一成绩的人次,按成绩从高到低排序。解:SELECTT1.cj,COUNT(*);FROMt1;GROUPBYT1.cj;ORDERBYT1.cjDESC;INTOTABLEt4.dbf补充8:同一考生可能参加多场考核,在各场考核中使用相同的考核证号。先把表文件复制到C盘当前目录,然后建立T.qpr文件,运行此文件能在磁盘上生成数据表T4.dbf,其中的记录对应这样的考生:既有低于60的成绩,又有不低于60的成绩,结构为3个字段:第1个是考核证号,第2个是参加考核场数,第3个是最高成绩。2007/09/No.3解:SELECTT1.khzh,COUNT(*),MAX(T1.cj),MIN(T1.cj);FROMt1;GROUPBYT1.khzh;HAVINGMIN(T1.cj)<60;ANDMAX(T1.cj)>=60;INTOTABLEt4.dbf(7)、2007/01/No.4在C:\DATAS中有数据表文件T1,存放着一批学生语文(YW)和数学(SX)课程的成绩,每位学生有两条记录,结构为:XHKCCJCCN6230()(课程)(成绩)
    先把表文件复制到当前目录,然后建立T.QPR,运行此文件能在磁盘上生成数据表T4.DBF,两门课程均及格(成绩不低于60)的学生对应一条记录,结构为1个字段:。(提示:两门课程均及格,就是排除不及格的记录后,同一还有2条记录)解:SELECTT1.xh;FROMt1;GROUPBYT1.xh;HAVINGMIN(T1.cj)>=60;INTOTABLEt4.dbf(8)、2007/07/No.1在C:\DATAS中有数据表文件T1和T2,结构是:T1:JSXMC6(教师)6或:SELECTT1.xh;FROMt1;WHERET1.cj>=60;GROUPBYT1.xh;HAVINGCOUNT(*)=2;INTOTABLEt4.dbf
     高银培训BJDMSRKCT2:XHXSXMKCCJCCCCCN2846830
    网址:gy.net(班级代码)(所任课程)()(学生)(课程)(成绩)
    电话:65554002(总部)
    28899927(松江)
    T1中存放着教师所任课程、班级的基本情况,每个班级的每门课程对应一条记录;T2中存放着各位学生的学习情况,每位学生有若干条记录。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,课程数多于2门的每个班级对应1个记
    录,结构为1个字段:班级代码。解:SELECTT1.bjdm;FROMt2INNERJOINt1;ONSUBSTR(T2.xh,1,2)=T1.bjdm;GROUPBYT1.bjdm;HAVINGCNT(DISTINCTT2.kc)>2;INTOTABLEt4.dbf(9)、2007/07/No.6在C:\DATAS中有2个数据表文件T1和T2,结构是:T1:KHZHCCT2:KHZHDFCCCN81830(考核证号)(场次)(考核证号)(得分)
    两表中各记录的KHZH一一对应,每场考试都有考生及格(得分不低于60)。先把表文件复制到C盘当前目录,再建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每场考试对应一个记录,结构为2个字段,第一个是场次,第二个是该场的及格考生人数。解:SELECTT1.cc,COUNT(*);FROMt1INNERJOINt2;ONT1.khzh=T2.khzh;WHERET2.df>=60;GROUPBYT1.cc;INTOTABLEt4.dbf(10)、在C:\DATAS中有数据表文件T1,T2,结构为:T1:KCHKCMXXKCXFT2:XHKCHCJCCCNCCN262122300(课程号)(课程名)(先修课程号)(学分)()(课程号)(成绩)
    T1中的每个记录对应一门课程,XXKC字段是学习这门课程必须的基础课程号(例如,KCH为国为民78的记录,XXKC为32,表示只有32号课程成绩不低于60的学生才能选修78号课程)。T2中记录着学生已经学习过的课程情况。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,其中是有资格学习2号或3号课程的学生名单,结构为2个字段,第1个是课程号,第2个是学生。解:SELECTT1.KCH,T2.XH;FROMT1.INNERJOINT2;7
     高银培训ONT1.XXKC=T2.KCH;WHERET2.CJ>=60;ANDT1.KCHIN(“2”,“3”);INTOTABLET4.DBF
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    (11)、在C:\DATAS中有数据表文件T1.DBF,结构是:ZKZHKSXMKSKMCJCCCN48830(准考证号)(考生)(考试科目)(成绩)
    不同学生可能同名.每名学生有2个记录,分别保存主科成绩,辅科成绩(KSKM分别是“ZK”,“FK”)。录取的要求是两科的总成绩不低于120,并且至少有一科成绩不低于70。先把表文件复制到当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每位达到录取要求的学生对应一条记录,结构为2个字段:第1个是准考证号,第2个是两科的总成绩。解:SELECTT1.ZKZH,SUM(T1.CJ);FROMT1;GROUPBYT1.ZKZH;HAVINGSUM(T1.CJ)>=120;ANDMAX(T1.CJ)>=70;INTOTABLET4.DBF(12)、在C:\DATAS中有数据表文件T1.DBF,存放着某校所有学生的基本数据,每位学生对应一条记录,学生的互不相同,结构为:XMBHCJCCN4162()(班号)(成绩)
    成绩不低于本人所在班级平均成绩,是成绩较
    好;成绩低于本人所在班级平均成绩的百分之八十,是成绩较差。先把表文件复制到当前目录,然后建立T.QPR,运行此文件能在磁盘上生成数据表T4.DBF,每位成绩较好或成绩较差的学生对应一条记录,结构为4个字段,第1个是,第2个是班号,第3个是成绩,第4个是该学生所在班级的平均成绩(提示:可考虑采用自联接)。解:SELECTT1.*,AVG(T1_a.cj);FROMt1INNERJOINT1_a;ONT1.bh=T1_a.bh;GROUPBYT1.xm;HAVINGT1.cj>=AVG(T1_A.CJ);OR(T1.cj<0.8*AVG(T1_A.CJ);INTOTABLEt4.dbf(13)、在C:\DATAS中有数据表文件T1.DBF,T1的结构为:NJBHYFPBJGCCCC2221(年级)(班号)(月份)(评比结果)
    T1中存放着各个班级本学期若干次黑板报评比结果,评比结果分成“a”“b”“c”“d”四个等级。用SQL建立T.QPR、、、文件,运行此文件能在磁盘上生成数据表T4.DBF,每次评比都获得“a”级的班级对应一条记录,结构为2个字段,第一个是年级,第二个是班号。(提示:字符也能比较大小)解:SELECTT1.nj,T1.bh;FROMt1;8
     高银培训GROUPBYT1.nj,T1.bh;HAVINGMAX(T1.pbjg)="a";ANDMIN(T1.pbjg)="a";INTOTABLEt4.dbf
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    三、整个表作为一个组(在SQL中如只需输出一条记录,则可在不分组的情况下用统计函数即把整个表作为一个组)
    (1)、2006/07/No.3在C:\DATAS中有数据表文件T1,每个记录对应一位考生的一场考核,结构为:KHZHCCCJCCN8130(考核证号)(场次)(成绩)
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,其中只有1个记录,结构为3个字段:第1个是参加考核的总人次,第2个是平均成绩,第3个是最高成绩。解:SELECTCOUNT(*),AVG(T1.cj),MAX(T1.cj);FROMt1;INTOTABLEt4.dbf
    四、提供两个表,只用一个表(在SQL中一般都提供两个表,但有时只用一个)提供两个表,
    (1)、2006/01/No.1在C:\DATAS中有数据表文件T1和T2,结构是:T1:BJDMBNXHXSXMJZXMLXDHT2:BJDMBNXHKCMCJCCCCCCCCN2288822830(班级代码)(班内序号)(学生)(家长)(联系电话)(班级代码)(班内序号)(课程名)(成绩)
    T1中存放着各位学生的基本情况,每位学生一条记录;T2中存放着各位学生的学习情况,每位学生有若干条记录。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,平均成绩不低于73的每门课程对应一条记录,结构为3个字段,第1个是课程名,第2个是该课程的平均成绩,第3个是学习
    此课程的人次数,按学习此课程的人次数从高到低排序。解:SELECTT2.kcm,AVG(T2.cj),COUNT(T2.kcm);FROMt2;GROUPBYT2.kcm;HAVINGAVG(T2.cj)>=73;ORDERBY3DESC;INTOTABLEt4.dbf(2)、2007/07/No.2在C:\DATAS中有数据表文件T1和T2,结构是:T1:JSXMBJDMSRKCT2:XHXSXMKCCCCCCC628468(教师)(班级代码)(所任课程)()(学生)(课程)9
     高银培训CJN30(成绩)
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    T1中存放着教师所任课程、班级的基本情况,假定教师互不相同;T2中存放着各位学生的学习情况,每位学生有若干条记录,不同学生的可能相同。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,平均成绩超过70的每位学生对应1个记录,结构为2个字段,第1个是学生,第2个是平均成绩。解:SELECTT2.xsxm,AVG(T2.cj);FROMt2;GROUPBYT2.xh;HAVINGAVG(T2.cj)>70;INTOTABLEt4.dbf
    五、两个联接条件(下面题目应该用两个联接条件)
    (1)、2006/07/No.2在C:\DATAS中有数据表文件T1.DBF,存放着所有学生的成绩数据,每位学生对应一条记录,学生的和成绩互不相同,但不同年级可有相同的班号,结构为:XHXMNJBHCJCCCCN441162()()(年级)(班号)(成绩)
    先把表文件复制到当前目录,然后建立T.QPR,运行此文件能在磁盘上生成数据表T4.DBF,每位学生对应一条记录,结构为4个字段,第1个是,第2个是年级,第3个是成绩,第4个是该学生在同年级内的成绩名次,同年级内成绩最高者为第一名。(提示:可采用自联接,成绩不低于自己的同年级学生人数即为名次)解:SELECTT1.xh,T1.nj,T1.cj,COUNT(*);FROMt1INNERJOINt1T1_a;ONT1.nj=T1_a.nj;ANDT1.cj<=T1_a.cj;GROUPBYT1.xh;INTOTABLEt4.dbf(2)、2006/07/No.4C:\DATAS中有数据表文件T1.DBF,存放着某市各区县选派的歌手的初赛成绩,结构是:DHQXDFCCN4430(歌手代号)(选派的区县名)(歌手得分)
    现在要按得分从高到低,在每区县内各选3名歌手参加复赛(假定各区县的初赛歌手都超过3名,同一区县内歌手的得分互不相同)。先把表文件复制到当前目录,然后建立T.QPR,运行此文件能在磁盘上生成数据表T4.DBF,每名参加复赛的歌手对应1条记录,结构为3个字段,第1个是歌手代号,第2个是选派的区县名,第3个是歌手的初赛得分(提示:可以采用自联接,每名歌手与同一区县内得分不低于自己的歌手联接,分组后再判断是否满足适当条件)。解:SELECTT1.*;FROMT1INNER
    JOINT1T1_a;ONT1.qx=T1_a.qx;ANDT1.df<=T1_a.df;GROUPBYT1.dh;HAVINGCOUNT(*)<=3;INTOTABLEt4.dbf10
     高银培训
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    补充1:结构同上。现在要按得分从低到高,在每区县内各淘汰3名歌手,其余的参加复赛(假定各区县的初赛歌手都超过3名,同一区县内歌手的得分互不相同)。先把表文件复制到当前目录,然后建立T.QPR,运行此文件能在磁盘上生成数据表T4.DBF,每名参加复赛的歌手对应1条记录,结构为3个字段,第1个是歌手代号,第2个是选派的区县名,第3个是歌手的初赛得分(提示:可以采用自联接,每名歌手与同一区县内得分不高于自己的歌手联接,分组后再判断是否满足适当条件)。解:SELECTT1.*;FROMT1INNERJOINT1T1_a;ONT1.qx=T1_a.qx;ANDT1.df>=T1_a.df;GROUPBYT1.dhHAVINGCOUNT(*)>3;INTOTABLEt4.dbf(3)、2006/07/No.6C:\DATAS中有数据表文件T1.DBF、T2.DBF。T1的每个记录对应一所,结构为:XMFSXZKZHKSXMBCZY1BCZY2ZFCNCCCCN239822300(校名)(录取分数线)(准考证号)(考生)(补充志愿校名一)(补充志愿校名二)(总分)
    T2中每个记录对应一名考生,结构为:
    凡是有补充志愿填写某校,并且总分不低于该校录取分数线的考生都应收到该校发出的录取通知书。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每名考生的每份通知书对应一个记录,结构为2个字段:第1个是考生,第2个是校名。解:SELECTT2.ksxm,T1.xm;FROMt1INNERJOINt2;ONT1.xm=T2.bczy1;ORT1.xm=T2.bczy2;WHERET2.zf>=t1.fsx;INTOTABLEt4.dbf(4)、在C:\DATAS中有数据表文件T1、T2,结构为:T1:XMFSXT2:BHZY1ZY2ZFCNCCCN23922300(校名)(录取分数线)(编号)(第一志愿校名)(第二志愿校名)(总分)
    T1的每个记录对应一所。T2的每个记录对应一名考生。先把表文件复制到C盘当前目录,然后建立T.qpr文件,运行此文件能在磁盘上生成数据表T4.dbf,每个记录对应一所,结构为2个字段:第1个是校名,第2个是第二志愿填了该校,第一志愿未填该校的上线(总分不低于该校录取分数线)考生人数,没有这种考生的不必产生记录。解:SELECTT1.xm,COUNT(*);FROMt2INNERJOINt1;ONT2.zy2=T1.xm;11
     高银培训ANDT2.zy1<>T1.xm;WHERET2.zf>=T1.FSX;GROUPBYT1.xm;INTOTABLEt4.dbf
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    (5)、在C:\DATAS中有数据表文件T1、T2,结构为:T1:KHZHCCCJT2:XXSXJBCCNNNC8133320000(考核证号)
    (场次)(百分制的成绩)(下限)(上限)(级别)
    T1的每个记录对应一位考生,T2的每个记录对应四级记分制的一个级别,上限和下限是相应的百分制范围。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,其中每个记录对应一位考生,结构为3个字段:1个是考核证号,2个是百分制的成绩,3个是四级记分制的级别,第第第设法按级别“优”、“良”、“中”、“差”排序。解:SELECTT1.khzh,T1.cj,T2.jb;FROMt1INNERJOINt2;ONT1.cj>=T2.xx;ANDT1.cj<=T2.sx;ORDERBYT1.cjDESC;INTOTABLEt4.dbf,对于输出六、有条件自联接如果自联接后需要分组,那么分组的关键字段应取主动表中的字段(无_A后缀的字段)字段,普通字段取主动表中的字段,而复合字段函数中的字段取被动表中的字段(有_A后缀的字段)。(1)、2006/01/No.3在C:\DATAS中有数据表文件T1,其中记录着各种商品的销售情况,每种商品对应一条记录。结构为:DHLBDJXSLCCNN426520(商品代号)(商品类别)(单价)(销售量)或t1.cjbetweent2.xxandt2.sx
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每个商品在其中对应一条记录,结构为3个字段,第1个是商品代号,第2个是销售额(销售额=单价×销售量),第3个是同类别所有商品的平均销售额。(提示:可考虑使用自联接)解:SELECTT1.dh,T1.dj*T1.xsl,AVG(T1_a.dj*T1_a.xsl);FROMt1INNERJOINt1T1_a;ONT1.lb=T1_a.lb;GROUPBYT1.dh;INTOTABLEt4.dbf(2)、2006/01/No.4在C:\DATAS中有数据表T1.DBF,存放着各运动队的人员信息,结构为:DMXMDZCCL481(队名)(运动员)(队长)
    DZ为真表示该运动员是队长,每个队只有一位队长。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每位不是队长的运动员对应一个记录,结构是3个字段:第1个是队名,第2个是运动员,第3个是所在队的队长(提示:可采用自联接)。12
     高银培训解:SELECTT1.dm,T1.xm,T1_a.xm;FROMt1INNERJOINt1T1_a;ONT1.dm=T1_a.dm;WHERET1.dz=.F.;ANDT1_a.dz=.T.;INTOTABLEt4.dbf(3)、2006/09/No.3
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    在C:\DATAS中有数据表文件T1,存放着一公司员工信息,每位员工对应一个记录,结构是:BMXMLDCCL481(部门)()(领导)
    LD为真表示该记录对应的人员是部门领导,每个部门中有一位领导和至少一位不是领导的员工。先把表文件复制到C盘
    当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每位不是领导的员工对应一个记录,结构为3个字段,第1个是部门,第2个是,第3个是该员工的部门领导(提示:可采用自联接)。解:SELECTT1.bm,T1.xm,T1_a.xm;FROMt1INNERJOINt1_a;ONT1.bm=T1_a.bm;WHERET1.ld=.F.;ANDt1_a.ld=.T.;INTOTABLEt4.dbf(4)、2007/01/No.3CJMCCNCZN460在SQL中如需在同一个表的记录间进行纵向比较和处理,应采用自联接。(车间名称)(年产值)
    在C:\DATAS中有数据表文件T1.DBF,其中存放某厂各车间年产值,各个车间产值互不相同。结构是:
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每个车间对应一条记录,结构为3个字段,第1个是车间名称,第2个是年产值,第3个是名次(提示:可采用自联接,年产值不低于自己的车间个数即为名次)。解:SELECTT1.*,COUNT(*);FROMt1INNERJOINt1T1_a;ONT1.ncz<=T1_a.ncz;GROUPBYT1.cjmc;ORDERBYT1.nczDESC;INTOTABLEt4.dbf(5)、2007/01/No.5在C:\DATAS中有数据表文件T1,存放着一批球队去年的比赛名次(互不相同),结构是:DMMCCN420(队名)(名次)
    今年要再为这批球队组织比赛,每两个队之间都要有一场比赛。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,今年要举行的每一场比赛对应1个记录,结构为2个字段,分别是两个参赛队的队名,去年名次好(小)的队在第1个字段。整个T4按第1个字段递增排序,第1个字段相同时按第2个字段递增排序(提示:可采用有连接条件的自连接)。解:SELECTT1.dm,T1_a.dm;FROMt1INNERJOINt1T1_a;ONT1.mc     高银培训INTOTABLEt4.dbf
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    补充1:去年名次相差不超过4名的每个队对应一个记录,结构为2个字段:第1个是队名,第2个是该队将要比赛的场数(提示:采用自联接)。解:SELECTT1.dm,count(*);FROMT1INNERJOINT1T1_a;ONT1.dm<>T1_a.dm;WHEREABS(T1.mc-T1_a.mc)<=4;GROUPBYT1.dm;INTOTABLEt4.dbf(6)、2007/09/No.1在C:\DATAS中有数据表文件T1,每个记录对应一位考生,结构为:KHZHCCCJCCN8130(考核证号)(场次)(成绩)
    考核证号各不相同。先把表文件复制到C盘当前目录,然后建立T.qpr文件,运行此文件能在磁盘上生成数据表T4.dbf,其中有3个记录,分别对应最高的3个成绩(假定最高的4个成绩各不相同),结构为2个字段:第1个是考核证号,第2个是成
    绩。(提示:1.使用自联接,每个记录与成绩不低于自己的记录联接;或者先使用无联接条件的自联接,再设置适当的筛选条件。2.适当分组,组内的记录个数可以反映名次)解答参阅:二、分组第6题的补充6。(7)、2007/09/No.6C:\DATAS中有数据表文件T1.dbf,存放着某市各区县选派的歌手的初赛成绩,结构是:DHQXDFCCN4430(歌手代号)(选派的区县名)(歌手得分)
    现在要按得分从低到高,在每区县内各淘汰3名歌手,其余的参加复赛(假定各区县的初赛歌手都超过3名,同一区县内歌手的得分互不相同)。先把表文件复制到当前目录,然后建立T.qpr,运行此文件能在磁盘上生成数据表T4.dbf,每名参加复赛的歌手对应1条记录,结构为3个字段,第1个是歌手代号,第2个是选派的区县名,第3个是歌手的初赛得分(提示:可以采用自联接,每名歌手与同一区县内得分低于自己的歌手联接,分组后再判断是否满足适当条件)。解答参阅:五、两个联接条件第二题的补充1。(8)、在C:\DATAS中有数据表文件T1,记录着各班某次考试的情况,结构是:T1:BHRSBJGRSBJGlCNNN22232(班号)(班次人数)(不及格人数)(不及格率)
    各个班级的不合格率互不相同。先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每个班级对应一个记录,结构为3个字段,第一个是班号,第二个是不及格人数,第三个是名次,不及格率最低的为第一名(提示:可采用有连接条件的自联接),按不及格人数升序排列。解:SELECTT1.bh,T1.bjgrs,COUNT(*);FROMt1INNERJOINt1T1_a;ONT1.bjgl>=T1_a.bjgl;GROUPBYT1.bh;ORDERBYT1.bjgrs;INTOTABLEt4.dbf14
     高银培训
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    (9)、现有数据表T1,存放着一批学生的成绩,结构是:XHCJCN630()(成绩)
    请先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表文件T4.DBF,每位学生结构为3个字段:1个是,2个是成绩,3个是成绩排名,第第第并按成绩降序排(提示:采用自联接)。对应一条记录,解:SELECTT1.*,COUNT(*);FROMt1INNERJOINt1T1_a;ONT1.cj<=T1_a.cj;GROUPBYT1.xh;ORDERBYT1.cjDESC;INTOTABLEt4.dbf
    七、无条件自联接(在SQL中如需在同一个表的记录间进行纵向比较和处理,应采用自联接,当被动表中只取一个目标
    时,联接条件有时可不用)(1)、2006/09/No.2在C:\DATAS中有数据表文件T1,存放着一批学生的成绩,结构是:XHCJCN630()(成绩
    )
    先把表文件复制到C盘当前目录,然后建立T.QPR文件,运行此文件能在磁盘上生成数据表T4.DBF,每位学生对应一个记录,结构为2个字段:第1个是,第2个是成绩比为“000001”的学生高多少(可以为负)(提示:可采用无。连接条件的自联接)解:SELECTT1.xh,T1.cj-T1_a.cj;FROMT1,T1T1_a;WHERET1_a.xh="000001";INTOTABLEt4.dbf补充1:结构同上。建立T.QPR文件,运行此文件能在磁盘上生成数据表文件T4.DBF,每位学生对应一条记录,结构为2个字段:第1个是,第2个是成绩比为“000003”的学生低多少(提示:可采用没有联接条件的自联接)。解:SELECTT1.xh,T1_A.CJ-T1.CJ;FROMT1,T1T1_a;WHERET1_a.xh=“000003”;INTOTABLEt4.dbf补充2:结构同上。建立T.QPR文件,运行此文件能在磁盘上生成数据表文件T4.DBF,其中成绩最高和最低的学生数据,结构为2个字段:第1个是,第2个是最高成绩或最低成绩(提示:可采用没有联接条件的自联接)。解:SELECTT1.XH,T1.CJ;FROMT1,T1T1_a;GROUPBYT1.xh;HAVINGT1.cj=MAX(T1_a.cj);OR(T1.cj=MIN(T1_a.cj));INTOTABLEt4.dbf补充3:结构同上。建立T.QPR文件,运行此文件能在磁盘上生成数据表文件T4.DBF,比平均成绩高15分的每位学生对应一条记录,结构为2个字段:第1个是成绩,第2个是该成绩对应的(提示:可采用没有联接条件的自联接)。解:SELECTT1.cj,T1.xh;FROMT1,T1T1_a;GROUPBYT1.xh;HAVINGT1.cj-AVG(T1_a.cj)>=15;15
     高银培训INTOTABLEt4.dbf
    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    补充4:结构同上。建立T.QPR文件,运行此文件能在磁盘上生成数据表文件T4.DBF,每位学生对应一条记录,结构为3个字段:第1个是,第2个是本人成绩,第3个是本人成绩比最高成绩低多少(提示:可采用没有联接条件的自联接)。解:SELECTT1.*,MAX(T1_a.cj)-T1.cj;FROMT1,T1T1_a;GROUPBYT1.xh;INTOTABLEt4.dbf
    八、修改SQL(在SQL中一般是根据题意创建一个查询文件,但也可以根据题意修改已存在的T.QPR文件)
    1、2007/09/No.4自联接(无条件)在C:\DATAS中有数据表T1和T2。T1记录了一批运动员参加比赛的成绩,一名运动员可参加多个项目,结构为:XMMXMCJXMMWRCCNCN3853511(项目名)(运动员)(成绩)(项目名)(世界记录)
    T2记录了每个项目的世界记录,结构为:
    C:\DATAS中已有T.qpr文件,运行此文件能在磁盘上生成数据表文件T4.dbf,每个打破世界记录的成绩(成绩小于世界记录)对应一条记录,结构是4个字段,第1个是项目名,第2个是运动员,第3个是成绩,第4个是该项目
    的原世界记录。请修改或重写T.qpr,使其运行生成的数据表文件T4.dbf中,多于一人打破世界记录的每个项目对应一条记录,结构是3个字段,1个是项目名,2个是该项目的原世界记录,3个是目前的最好成绩。第第第新的T.qpr复制到考盘根目录下。解:在VFP中打开T.qpr,正确语句如下:SELECTT1.xmm,T2.wr,MIN(T1.cj);FROMt1INNERJOINt2;ONT1.xmm=T2.xmm;WHERET1.cj1;INTOTABLEt4.dbf2、2007/09/No.5在C:\DATAS中有数据表T1.dbf和T2.dbf。T1记录了一批运动员参加比赛的成绩,一名运动员可参加多个项目,结构为:XMMXMCJCCN3853511(项目名)(运动员)(成绩)(项目名)(世界记录)
    T2记录了每个项目的世界记录,结构为:XMMCWRN
    C:\DATAS中已有T.qpr文件,运行此文件能在磁盘上生成数据表文件T4.dbf,每个打破世界记录的成绩(成绩小于世界记录)对应一条记录,结构是4个字段,第1个是项目名,第2个是运动员,第3个是成绩,第4个是该项目的世界记录。请修改或重写T.qpr,使其运行生成的数据表文件T4.dbf中,有且仅有一人打破世界记录的每个项目对应一条记录,结构是3个字段,第1个是项目名,第2个是运动员,第3个是成绩比原世界记录减小了多少。新的T.qpr复制到考盘根目录下。解:在VFP中打开T.qpr,正确语句如下:16
     高银培训SELECTT1.xmm,T1.xm,T2.wr-T1.cj;FROMt1INNERJOINt2;ONT1.xmm=T2.xmm;WHERET1.cj    网址:gy.net
    电话:65554002(总部)
    28899927(松江)
    自我测试:九、SQL自我测试:以下A卷与B卷的SQL是代表中级考试SQL较高难度的,你若能不看答案做对,则可以衡量你已完
    全掌握SQL。A卷:C:\Datas\A中有数据表文件T1和T2,结构是:T1:BJDMBNXHXSXMJZXMLXDHT2:BJDMBNXHKCMCJCCCCCCCCN2288822830(班级代码)(班内序号)(学生)(家长)(联系电话)(班级代码)(班内序号)(课程名)(成绩)
    T1中存放着各位学生的基本情况,每位学生一条记录;T2中存放着各位学生的学习情况,每位学生有若干条记录。假定所有学生的互不相同。先把表文件复制到C盘当前目录,然后建立T.qpr文件,运行此文件能在磁盘上生成数据表T4.dbf,每位不及格(成绩低于60)门数超过1的学生对应一条记录,结构为4个字段,第1个是学生,第2个是家长,第3个是联系电话,第4个是不及格门数。解:SELECTT1.xsxm,T1.jzxm,T1.lxdh,count(*);FROMt1INNERJOINt2;ONT1.bjdm=T2.bjdm;AND
    T1.bnxh=T2.bnxh;WHERET2.cj<60;GROUPBYT1.xsxm;HAVINGcount(*)>1;INTOTABLEt4.dbfB卷:C:\Datas\B中有数据表文件T1和T2,结构同A卷。先把表文件复制到C盘当前目录,然后建立T.qpr文件,运行此文件能在磁盘上生成数据表T4.dbf,每门成绩均不低于90的每位学生对应一条记录,结构为3个字段,第1个是学生,第2个是家长,第3个是联系电话。解:SELECTT1.xsxm,T1.jzxm,T1.lxdh;FROMt1INNERJOINt2;ONT1.bjdm=T2.bjdm;ANDT1.bnxh=T2.bnxh;GROUPBYT1.xsxm;HAVINGmin(T2.cj)>=90;INTOTABLEt4.dbf17
    
    
  • 上一篇资讯: 中纺达SQL资料
  • 下一篇资讯: 个人学习资料
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师