精华内容
下载资源
问答
  • 用结构体数组存储学生信息,输入学生学号查询相应的成绩 主要是熟练一下结构体的运用,思路:先存储学生信息,然后做相应的查询,在存储过程中,设置以#为结束标志,在查找过程中,同样以#为结束标志,这里用到了...

    用结构体数组存储学生信息,输入学生学号,查询相应的成绩
    主要是熟练一下结构体的运用,思路:先存储学生信息,然后做相应的查询,在存储过程中,设置以#为结束标志,在查找过程中,同样以#为结束标志,这里用到了strcmp(char1, char2),代码如下:

    #include <stdio.h>
    #include <string.h>
    struct info{
    	char name[12];
    	char id[9];
    	char score[10];
    };
    int readin(struct info *a)
    {
    	int n=0,i=0;
    	while(1)
    	{
    		scanf("%s",a[i].name);
    		if(!strcmp(a[i].name,"#"))//这里表示输入为#表示输入结束 
    		    break;
    		scanf("%s",a[i].id);
    		scanf("%s",a[i].score);
    		i++;
    		n++;
    	}
    	return n;//n表示存储的学生条数 
    }
    void findout(struct info *a, char *b, int n)
    {
    	int i=0,j=0;
    	while(1)
    	{
    		if(!strcmp(a[i].id, b))//这里表示的是搜索到要查询的学号的情况 
    		{
    			printf("%s score is: %s\n",a[i].name,a[i].score);
    			break;
    		}
    		i++;
    		n--;
    		if(n==0)
    		{
    		   printf("not found\n");
    		   break;
    		}
    	}
    		
    }
    int main()
    {
    	struct info list[30];
    	char id[10];
    	int n;
    	n = readin(list);
    	while(1) //这里是实现循环输入查询,多次查询 
    	{
    	   printf("please put in you id: "); 
    	   scanf("%s",id);
           if(!strcmp(id,"#"))
              break;
           findout(list,id,n);
    	}
    	return 0;
    	
    }
    

    在这里插入图片描述

    展开全文
  • 一、SQL语言查询选修了全部课程的学生学号和姓名。两种解决途径:第一种:我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数。相应的SQL语言如下:select S#,SNAMEfrom Swhere S# in(select S#from ...

    一、SQL语言查询选修了全部课程的学生的学号和姓名。

    f677fd4c3bfb89e70ed31aaba29db3a4.png

    9aa85d969efd91be74d09dc155068126.png

    7d88012c5c5e51328152e08b5c3d2950.png

    两种解决途径:

    第一种:

    我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数。相应的SQL语言如下:

    select S#,SNAME

    from S

    where S# in

    (select S#

    from SC

    group by S# --根据Sno分组,统计每个学生选修了几门课程。如果等于C表课程的总数,就是我们要找的S#

    having count(*) = (select count(*) from C))--统计C表中共有几门课程

    第二种:

    问题:查询选修了全部课程的学生的学号和姓名。

    可以转换为:查询没有一门课没有被该生选择的学生的学号和姓名。

    相应的S

    展开全文
  • 1.查询选修了课程为“3”的学生姓名和系别Select sname,sdept from student where sno in (select sno from sc where cno=‘3’);2.查询与“刘一平”来自同一个系的学生姓名Select sname from student where sdept...

    2655137282a37c7ffe5f52cc836f1dbe.png

    1.查询选修了课程号为“3”的学生姓名和系别

    Select sname,sdept from student where sno in (

    select sno from sc where cno=‘3’);

    2.查询与“刘一平”来自同一个系的学生姓名

    Select sname from student where sdept in (

    select sdept from student where sname=‘刘晨’) and sname <> ‘刘晨’;

    3.查询Sc表中的最高分的学生学号和课程号

    select sno,cno from sc where grade in(

    select max(grade) from sc);

    另一种:

    select sno,cno from sc where grade >=all(

    select grade from sc);

    4.查询其它系中‘2‘号课程比信息系所有学生分数高的学生学号和姓名;

    select distinct student.sno,sname from student,sc where student.sno=sc.sno and cno=‘2’ and grade >all (

    select grade from sc where sdept=‘is’ ) and sdept <> ‘is’;

    改进:

    select distinct student.sno,sname from student,sc where student.sno=sc.sno and cno=‘2’ and grade >all ( select grade from sc where sno in(select sno from student where sdept = ‘is’) ) and sdept <> ‘is’;

    老师:

    select sno,sname from student where sno in (select sno from sc where cno=‘2’ and sno not in(select sno from student where sdept=‘cs’) and grade>(select max(grade) from sc where cno=‘2’ and sno in(select sno from student where sdept=‘cs’)));

    5.查询其它系中比信息系所有学生年龄大的学生姓名和性别;

    Select distinct sname,ssex from student where sage >all (

    select sage from student where sdept = ‘is’ ) and sdept <> ‘is’;

    6.查询每门课程中低于该课程平均成绩的学生学号和姓名;

    Select student.sno,sname from student,sc x where student.sno = x.sno and grade < (

    select avg(grade) from sc y where y.cno=x.cno ) ;

    7.查询“信息系”中选课最多的学生学号;

    select student.sno from student,sc where sc.sno=student.sno and student.sdept=‘is’ group by sc.sno having count() >= all(

    select count() from sc, student where sc.sno= student.sno and sdept=‘is’ group by sc.sno);

    select sno from student where sdept=‘cs’ and sno in(select sno from sc group by sno having count()>=all(select count() from sc where sno in(select sno from student where sdept=‘cs’)group by sno));

    8.查询所有选修“计算机导论”课程的“男”同学的成绩表

    select student.sno,sname,course.cno,cname,grade from student,sc,course where student.sno=sc.sno and course.cno=sc.cno and ssex=‘男’ and student.sno in(select sno from sc,course where sc.cno=course.cno and cname = ‘计算机导论’);

    af26055919cd1c9e12881e6fc3ded796.png

    9.查询有两门及以上课程不及格的学生学号和姓名;

    14da007e7a34f6ac322cb0a6b8833523.png

    10.查询比“2”号课程平均分高的其它课程信息;

    15495e74ec74ed6c4d835472ac2509ac.png

    展开全文
  • EXISTS子查询找到的提交NOTEXISTS子查询中找不到的提交说明:不要去翻译为存在和不存在,把脑袋搞晕。2。建立程序循环的概念,这是一个动态的查询过程。如FOR循环。3。Exists执行的流程Exists首先执行外层查询,再...

    首先头脑中有三点概念:

    1。EXISTS子查询找到的提交

    NOTEXISTS子查询中找不到的提交

    说明:不要去翻译为存在和不存在,把脑袋搞晕。

    2。建立程序循环的概念,这是一个动态的查询过程。如FOR循环。

    3。Exists执行的流程Exists首先执行外层查询,再执行内存查询,与IN相反。流程为首先取出外

    层中的第一元组,再执行内层查询,将外层表的第一元组代入,若内层查询为真,即有结果

    时。返回外层表中的第一元组,接着取出第二元组,执行相同的算法。一直到扫描完外层整表。

    for(inti=0;i<>EOFout;i++)

    {

    for(intj=0;j

    }

    然后再来看一个例子:三张表学生表student(Sno,Sname),课程表course(Cno,Cname)选课表SC

    (Sno,Cno)

    要求查询出:选修了全部课程的学生姓名

    我的思路:

    首先学生的选课信息存在于SC表中,要想知道某个学生是否选修了全部课程,至少我们需要知道一共有

    几门课程,这是首要的条件。其次,学生选修了与否,我们又要扫描SC全表,统计出选修了所有课程的

    学生号,最后在STUDENT表中根据学生号打出姓名。

    语句如下:(已测试)

    selectSnamefromstudent

    whereSnoIN

    (selectSnofromSC

    groupbySno//根据Sno分组,统计每个学生选修了几门课程。如果等于course的总数,就是我们要找的Sno

    havingcount(*)=(selectcount(*)fromcourse))//统计course中共有几门课程

    另一种思路:

    引入:将题目换为查找学号为00003没有选修的科目

    思路:我们可以将已知学号代入,把每一个科目代入(循环),这将形成1*count(*)种组合。

    将这组成作为条件,一一与SC表种进行比对,找不到匹配的我们提交。

    selectCnamefromcoursewhere

    notexists//找不到的组合,提交course

    (select*fromSCwherecourse.cno=cnoandsno=''00003'')

    //在SC中匹配

    换个题目:查找没有没有选修科目的学生姓名

    思路:学号未知,科目未知,说明有两个未知变量。应该有两个EXISTS。我们可以扫描

    student和course共有s*c中组合,将这些组合与SC的每一项进行匹配,注意s*c组合已经包含所

    有可能。如果全部找到,就说明已经选修了全部课程。找不到就说明有课程没选修。再将没选修的的

    提交给上一exists循环。若上一exists不存在的再提交给外循环。

    最后详细回答你的问题:数据库SQL语句中查询选修了全部课程的学生的学号和姓名

    查询选修了全部课程的学生姓名。

    SELECTSname

    FROMStudent

    WHERENOTEXISTS

    (SELECT*

    FROMCourse

    WHERENOTEXISTS

    (SELECT*

    FROMSC

    WHERESno=Student.Sno

    ANDCno=Course.Cno);

    理解如下:查询选修了全部课程的学生姓名。

    不用管怎么样,第一个select必定是在student表里选sname既:

    SELECTSname

    FROMStudent

    加上条件即:where

    条件是什么呢?条件就是---------------------》查询选修了全部课程的

    因为没有(任意一个)谓词,只能用EXISTS或者NOTEXISTS来表示。这点理解吧?

    所以要把条件翻译成-----------------------》不存在一门课程这个学生没有选修

    where后面就是不存在(NOTEXISTS)(

    一门课程这个学生没有选修

    )

    接下来就是把Course表中的课程依次拿出来找出没有选修的

    怎么找呢?因为NOTEXISTS子查询中找不到的提交

    另外你要明白----------------------------NOTEXISTS查询都是相关查询----------

    所以只要把在最后一个select中

    WHERESno=Student.Sno

    ANDCno=Course.Cno);

    就是将这个同学通过SC表和Crouse的课程连接一遍,找到连接不上的,即:没有选修的,这样就找到了一门课这个学生没有选修,存在没有选修的课,那么该学生被pass掉了,

    一次进行一个同学的判断。

    若你学过程序编程,可以看下面的内容,若没有则可忽略、。----------

    上述是理解是数据库系统内部的实现,可以用for循环表示

    for(i=1;i

    for(i=j;j

    条件就是:

    没有一门课没有选修

    }

    }

    最后你找记住

    1.第一个select就是你要选的就是学生

    SELECTSname

    FROMStudent

    2.第二个select就是课程

    3.第三个select就是学生和课程发生关系的表------------SC选修表

    让他们连接起来

    固定的模式1你要的结果的表学生

    2满足条件的表课程表

    3产生关系的表选修表

    where通过选修表把他们连接起来

    展开全文
  • 1)查询学生信息  按学号或姓名查询 2)添加学生信息 3)修改学生信息 4)删除学生信息 5)对学生按照学号排序并输出其信息 #include<stdio.h> #include<stdlib.h> #include<string.h> #define ...
  • 查询学生 学号、姓名和平均成绩

    万次阅读 多人点赞 2017-12-06 18:59:40
    三个表:Student(学生),Course(课程),SC(选课):刚开始是这么写的:select Student.sname,Student.sno,avg(grade) as avg_grade from Student,SC where Student.sno=SC.Sno group by Student.Sno;结果在SQL...
  • 利用结构体实现某班学生学号姓名的学号成绩学分等的统计,并能实现排序和查找某一学生的功能。 ` ```csharp #include <stdio.h> #include <string.h> typedef struct stu{ char a[20];//学号 ...
  • out,--输出参数 @grade tinyint out--输出参数 AS SELECT @Sname=Sname,@Sno=Student.Sno,@Cno=cno,@grade=grade --select里面写输出参数 FROM Student,SC --从学生表,选修表中查询 where @Sno=Student.Sno--where...
  • } } if(c==false) cout该学生不存在"<>b; for(i=1;i>b;for(i=1;i>b; for(i=1;i>ch; s=0; while(s==0) { switch(ch) { case'a': add(l); break; case'b': delete(l); break; case'c': modify(l); break; case'd': ...
  • java、jsp学生信息,学生成绩管理查询系统,2019最新,
  • 2018-05-04求sql大神速度告诉我吧~~~~真的很急啊~~1 select * from TBL_STU order by Birth ASC2 select * from TBL_STU where SEX='女'2 select count(*) from TBL_STU where SEX='女'3 select name,Elective,...
  • 【简答题】查询选修了“计算机基础”课程的学生学号和成绩。 【单选题】奇偶校验码( )。 【单选题】小强用数码相机拍了一张不是很清晰的相片,但是他很想将这张照片放到他的网站上,则建议他用()软件进行处理 【填空...
  • 展开全部至少选修c1和c2的学生编号:select sno(学生学号) from sc(学生选课表) group by sno having count(*)>1SQL结构化查询语言是高级的非过程636f70793231313335323631343130323136353331333433656161化...
  • 学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息。 小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。 中学生除了包括小学生所有信息外,还包括地理、历史成绩、家庭住址等信息...
  • 学号查询信息页面UI界面如下,当查询到信息时,可在下方显示该生信息,查询不到则显示“查无此人”: UI界面设计如下: package ui; import java.awt.Container; import java.awt.Font; import java.awt....
  • python查找学生对应学号_python+mysql实现学生信息查询系统 import pymysql #import redis #pool = redis.ConnectionPool(host=‘IP地址’, port=6379, decode_responses=True) while True: while True: print(’=’...
  • SELECT sno FROM sc GROUP BY sno;
  • from Student --从学生表中查询姓名、学号 left join SC on SC.Sno=Student.Sno --通过课程左连接选修表 left join Course on SC.Cno=Course.Cno--通过课程左连接课程表 where Student.Sno not in(select Sno...
  • c语言实现的学生信息查询系统

    千次阅读 2018-05-19 11:29:26
    #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;...//输入要求:学号必须为正规学号(位数在8以上) //姓名需输入英文全拼,尽量不写汉字 //密码为yangjiantao typedef struct//结
  • 学生表(students)1.学生id ---- s_id2. 学生姓名 ---- s_name3. 学生生日 ---- s_birth4. 学生性别 ---- s_sex2.教师表(teacher)1. 教师id ---- t_id2. 教师姓名 ---- t_name3. 课程表(course)1.课程id -...
  • 采用Struts2框架,完成数据库操作(增删改查),完成分页,模糊查询
  • MATLAB实现学生成绩查询系统 源代码程序
  • SELECT sno FROM sc HAVING COUNT(sno) > 3;
  • from SC --从选修表中查询学号、姓名 left join Student --左连接学生表 on Student.Sno not in(select Sno from SC where Cno='1')--选择没有选修1课程的 group by Student.Sno,Sname;--通过学号、姓名分组 /...
  • web程序_通过学号查询学生信息_笔记

    千次阅读 2019-03-25 21:50:12
    在之前的博客中我写过关于简易的查询四级成绩的web程序,在这里,我们连接了数据库,写一个通过输入学生学号查询学生成绩的web小程序。 其实这是非常简单的,大体就是在之前的小程序上加了一个jdbc,从显示随机数...
  • 根据以下资料,回答下面的题目:使用如下三个数据库表:学生表:student(学号,姓名,性别,出生日期,院系)课程表:course(课程,课程名,学时)选课成绩表:score(学号,课程,成绩)其中出生日期的数据类型为...
  • ASP源码:学生证书查询管理系统,主要功能:通过(学号/姓名)来查询查询值:验证码:  可查询到(姓名,笔名,学号,性别,年龄,学制, 学历,毕业类型,入学时间,毕业时间,专业,班级,联系,电话留言,其他,还有照片上传功能...
  • 数据库查询_同时选修了两门课的学生姓名、学号

    万次阅读 多人点赞 2019-04-21 16:40:53
    这个查询要用到含有学生姓名、学号的表和含有学生选课情况的表,我定义的含有学生姓名sname和学号sno的表是student表(sno学号,sname姓名,sdept专业,sage年龄,ssex性别)含有学生选课情况的表是sc表(sno学号,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 142,707
精华内容 57,082
关键字:

学生学号怎么查询