學生查詢課程成績的時序圖
1. SQL查詢,學生表,課程表,成績表的一個查詢要求如下怎麼寫呢
selects.sid,s.sname,sc.scorefromstudent,course,scwherestudent.sid=sc.sidandcourse.cid=sc.cidandcourse.cname='影視設計';
注意一下,你自己寫的sid和sname中間沒有逗號,到時候一定執行報錯
2. 怎麼用SQL語句查詢每個學生選修的課程名及其成績
select 姓名,課程名,成績 from (課程名所在的表名 C join 成績所在的表名 S on C.課程號=S.課程號) join 學生信息表 on S.學號=學生信息表.學號 ;
具體的例子:
select Sname,Cname,Grade from Student st left join(Score s left join Course c on s.Cno=c.Cno)
on st.Sno=s.Sno;
3. 學生表(學號,姓名)、課程表(課程編號,課程名)、成績表(自動編號、學號,課程編號,成績) 查詢各個學生學
select A.姓名,
sum(case B.課程名 when '語文' then C.成績 else 0 end) as 語文,
sum(case B.課程名 when '數學' then C.成績 else 0 end) as 數學,
sum(case B.課程名 when '英語' then C.成績 else 0 end) as 英語,
sum(case B.課程名 when '歷史' then C.成績 else 0 end) as 歷史,
from 學生表 A left join 成績表 C on 學生表.學號=成績表.學號
left join 課程表 B on 成績表.課程編號=課程表.課程編號
group by A.姓名
剛剛不是在那邊回答你了么~~~
4. 設計一個學生成績管理系統,能對學生成績信息(學號,課程名稱,成績)進行查詢(要求可以使用模糊查詢和
簡單模式,具體功能你自己可以繼續編寫
#include<stdio.h>
#include<string.h>
#include<conio.h>
struct student{
char number[20];
char name[30];
float scor_eng;
float scor_math;
float scor_phy;
};
void printmenu();
int mycreat(int xueshengnumber,struct student record[100]);
void myshow(int xueshengnumber,struct student record[100]);
void myselect(int xueshengnumber,struct student record[100]);
void mymodify(int xueshengnumber,struct student record[100]);
int myadd(int xueshengnumber,struct student record[100]);
int mydelete(int xueshengnumber,struct student record[100]);
void mysort(int xueshengnumber,struct student record[100]);
/* ------------------------------------------------------------------*/
main()
{
char choose,yesorno;
struct student record[100]; //用結構體代替原來的5個數組
int xueshengnumber=0; /*輸入的學生數 */
do
{
printmenu(); /* 列印菜單界面 */
choose=getch();
while(choose>'7'||choose<'0')
{
printf("請在0-7之間選擇\n");
choose=getch();
}
switch(choose)
{
case '1':
{
xueshengnumber=mycreat(xueshengnumber,record);
break;
}
case '2':
{
myshow(xueshengnumber,record);
break;
}
case '3':
{
myselect(xueshengnumber,record);
break;
}
case '4':
{
mymodify(xueshengnumber,record);
break;
}
case '5':
{
xueshengnumber=myadd(xueshengnumber,record);
break;
}
case '6':
{
xueshengnumber=mydelete(xueshengnumber,record);
break;
}
case '7':
{
mysort(xueshengnumber,record);
break;
}
case '0':
{
printf("確實要退出系統嗎?");
break;
}
}
printf("\n要繼續選擇嗎{Y/N}\n");
do
yesorno=getch();
while(yesorno!='Y'&&yesorno!='N'&&yesorno!='y'&&yesorno!='n');
}while(yesorno=='Y'||yesorno=='y');
}
/* ------------------------------------------------------------------*/
void printmenu()
{
printf("|----------------------------------------------------------------------|\n");
printf("| 學生成績管理系統,請選擇數字進行相應操作 |\n");
printf("| 1:錄入學生成績(包括姓名、學號、英語、數學、物理),輸入完成按「結束」|\n");
printf("| 2:顯示學生成績; |\n");
printf("| 3:查詢學生成績; |\n");
printf("| 4:修改學生成績; |\n");
printf("| 5:添加學生成績; |\n");
printf("| 6:刪除學生成績; |\n");
printf("| 7:排序學生成績; |\n");
printf("| 0:退出該成績; |\n");
printf("|----------------------------------------------------------------------|\n");
}
int mycreat(int xueshengnumber,struct student record[100])
{/*----------------------------------------*/
struct student temp;
int x;
printf("請輸入第%d個記錄:\n",xueshengnumber+1);
printf("姓名(用#結束):\n");
do
gets(temp.name);
while(strcmp(temp.name,"")==0);
printf("學號(用#結束):\n");
do
gets(temp.number);
while(strcmp(temp.number,"")==0);
printf("英語成績:\n");
do
{
fflush(stdin);
x=scanf("%f",&temp.scor_eng); /*返回值含義見P38*/
}while(temp.scor_eng>100.0||temp.scor_eng<0.0||x==0);
printf("數學成績:\n");
do
{
fflush(stdin);
x=scanf("%f",&temp.scor_math);
}while(temp.scor_math>100.0||temp.scor_math<0.0||x==0);
printf("物理成績:\n");
do
{
fflush(stdin);
x=scanf("%f",&temp.scor_phy);
}while(temp.scor_phy>100.0||temp.scor_phy<0.0||x==0);
/* 輸入結束控制 */
while(temp.name[0]!='#' && temp.number[0]!='#')
{
/*保存到數組中 */
record[xueshengnumber]=temp;
xueshengnumber++;
/* 重復上次輸入 */
printf("請輸入第%d個記錄:\n",xueshengnumber+1);
printf("姓名(用#結束):\n");
do
gets(temp.name);
while(strcmp(temp.name,"")==0);
printf("學號(用#結束):\n");
do
gets(temp.number);
while(strcmp(temp.number,"")==0);
printf("英語成績:\n");
do
{
fflush(stdin);
x=scanf("%f",&temp.scor_eng); /*返回值含義見P38*/
}while(temp.scor_eng>100.0||temp.scor_eng<0.0||x==0);
printf("數學成績:\n");
do
{
fflush(stdin);
x=scanf("%f",&temp.scor_math);
}while(temp.scor_math>100.0||temp.scor_math<0.0||x==0);
printf("物理成績:\n");
do
{
fflush(stdin);
x=scanf("%f",&temp.scor_phy);
}while(temp.scor_phy>100.0||temp.scor_phy<0.0||x==0);
}
/*----------------------------------------*/
return(xueshengnumber);
}
/* 顯示模塊 */
void myshow(int xueshengnumber,struct student record[100])
{
int i;
if(xueshengnumber==0) printf("請先錄入學生成績,再顯示學生成績\n");
else
{
printf("\n\n\n顯示所有學生成績\n");
printf("姓名 學號 英語成績 數學成績 物理成績\n");
for(i=0;i<xueshengnumber;i++)
{
printf("%-15s",record[i].name);
printf("%-15s",record[i].number);
printf("%-13f",record[i].scor_eng);
printf("%-13f",record[i].scor_math);
printf("%-13f",record[i].scor_phy);
printf("\n");
}
}
}
/* 查詢模塊 */
void myselect(int xueshengnumber,struct student record[100])
{
int i;
char tempnumber[20]="";
printf("\n\n請輸入要查詢的學生學號:");
do
gets(tempnumber);
while(strcmp(tempnumber,"")==0);
for(i=0;i<xueshengnumber;i++)
if(strcmp(tempnumber,record[i].number)==0)
{
printf("查詢結果:\n");
printf("姓名 學號 英語成績 數學成績 物理成績\n");
printf("%-15s",record[i].name);
printf("%-15s",record[i].number);
printf("%-13f",record[i].scor_eng);
printf("%-13f",record[i].scor_math);
printf("%-13f",record[i].scor_phy);
printf("\n");
}
}
void mymodify(int xueshengnumber,struct student record[100])
{
int i;
struct student temp;
printf("請輸入要修改的學生學號\n");
do
gets(temp.number);
while(strcmp(temp.number,"")==0);
for(i=0;i<xueshengnumber;i++)
if(strcmp(temp.number,record[i].number)==0) break; //從此分支出來的i是有此學生的
if(i==xueshengnumber) //表明整個循環走完了也沒找到與tempnumber相等的學號
printf("查詢結果無此學生\n");
else
{
printf("請輸入要修改的學生姓名\n");
do
gets(temp.name);
while(strcmp(temp.name,"")==0);
strcpy(record[i].name,temp.name);
printf("請輸入要修改的英語成績\n");
do
{ fflush(stdin);
scanf("%f",&temp.scor_eng);
}
while(temp.scor_eng>100.0||temp.scor_eng<0.0);
record[i].scor_eng=temp.scor_eng;
printf("請輸入要修改的數學成績\n");
do
{ fflush(stdin);
scanf("%f",&temp.scor_math);
}
while(temp.scor_math>100.0||temp.scor_math<0.0);
record[i].scor_math=temp.scor_math;
printf("請輸入要修改的物理成績\n");
do
{ fflush(stdin);
scanf("%f",&temp.scor_phy);
}
while(temp.scor_phy>100.0||temp.scor_phy<0.0);
record[i].scor_phy=temp.scor_phy;
}
}
int myadd(int xueshengnumber,struct student record[100])
{
int i;
struct student temp;
printf("請輸入要添加的學生學號\n");
do
gets(temp.number);
while(strcmp(temp.number,"")==0);
for(i=0;i<xueshengnumber;i++)
if(strcmp(temp.number,record[i].number)==0)
{printf("該學號已經存在,請重新輸入要添加的學生學號\n");
do
gets(temp.number);
while(strcmp(temp.number,"")==0);
i=-1;
}
strcpy(record[i].number,temp.number);
printf("請輸入要添加的學生姓名\n");
do
gets(temp.name);
while(strcmp(temp.name,"")==0);
strcpy(record[i].name,temp.name);
printf("請輸入要添加的英語成績\n");
do
{ fflush(stdin);
scanf("%f",&temp.scor_eng);
}
while(temp.scor_eng>100.0||temp.scor_eng<0.0);
record[i].scor_eng=temp.scor_eng;
printf("請輸入要添加的數學成績\n");
do
{ fflush(stdin);
scanf("%f",&temp.scor_math);
}
while(temp.scor_math>100.0||temp.scor_math<0.0);
record[i].scor_math=temp.scor_math;
printf("請輸入要添加的物理成績\n");
do
{ fflush(stdin);
scanf("%f",&temp.scor_phy);
}
while(temp.scor_phy>100.0||temp.scor_phy<0.0);
record[i].scor_phy=temp.scor_phy;
xueshengnumber++;
return xueshengnumber;
}
int mydelete(int xueshengnumber,struct student record[100])
{
int i;
struct student temp;
printf("請輸入要刪除的學生學號:");
do
gets(temp.number);
while(strcmp(temp.number,"")==0);
for(i=0;i<xueshengnumber;i++)
if(strcmp(temp.number,record[i].number)==0) break;
if(i<xueshengnumber)
{
if(i+1==xueshengnumber) xueshengnumber--;
else{
for(;i<xueshengnumber-1;i++)
{
record[i]=record[i+1];
}
xueshengnumber--;
}
}
else
printf("查無此學生");
return xueshengnumber;
}
void mysort(int xueshengnumber,struct student record[100])
{ int i,j;
struct student t;
printf("按學號從小到大地排序\n");
for(i=0;i<xueshengnumber-1;i++)
for(j=0;j<xueshengnumber-1-i;j++)
if(strcmp(record[j].number,record[j+1].number)>0)
{
t=record[j];
record[j]=record[j+1];
record[j+1]=t;
}
}
5. 設計一個學生成績管理系統,學生成績信息包括:學號,姓名,四門課成績,實現功能如下:
//我簡單寫,請借鑒:
#include"stdafx.h"
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"time.h"
#include"string.h"#include<iostream>
usingnamespacestd;
structStudent//定義學生結構
{
charid[20];//id
charname[11];//姓名
charres[4];//成績
intend;//存儲時顯示換行,可去掉
Student(){end=0x0a0d;}//回車,換行
}list[100];//100個賬號,測試
voidmain()
{
srand((unsigned)time(0));//種子
charbuf[256];//緩存
//初始化學生100名
inti;
for(i=0;i<100;++i)
{
strcpy(list[i].id,itoa(i,buf,10));
strcpy(list[i].name,"某人");
strcpy(list[i].res,itoa(rand()%100,buf,10));
}
//保存數據
FILE*pf=fopen("data.txt","wb");
for(i=0;i<100;++i)
{
fwrite(&list[i],sizeof(Student),1,pf);
}
fclose(pf);
//讀出數據
Studentlist_1[100];//新數組
pf=fopen("data.txt","rb");
for(i=0;i<100;++i)
{
fread(&list_1[i],sizeof(Student),1,pf);
}
//顯示list_1測試
for(i=0;i<100;++i)
{
cout<<list_1[i].id<<""<<list_1[i].name<<""<<list_1[i].res<<endl;
}}
6. SQL資料庫,三個表,查詢學生某一門課程的成績
SELECTa.S#AS學號,a.SnameAS姓名,c.scoreAS物理版成績權
FROMStudenta,Courseb,SCc
WHEREa.S#=c.S#ANDb.C#=c.C#ANDb.Cname='物理'
7. sql,查詢每門課程最高分的學生的學號,課程號,成績。再一張表裡
1、首先在打開的sql中,查看Market資料庫中供應商來自哪些州的哪些城市,如內下圖所示。
8. 資料庫查詢選修某課程學生的成績,並按降序排序
這是一個參數查詢題,實現sql代碼如下:
select
學號,成績
from
學生成績
where
課程編號=[請輸入課程編號]
order
by
成績
desc;
表名和欄位名請按實際調整
9. 資料庫多表查詢,學生表,課程表,成績表
直接將三表關聯查詢就可以了
select b.姓名,c.課程,a.成績
from 成績表 a,學生表 b,課程表 c
where a.學生學號 = b.學號 and a.課程編號 = c.編號 and a.成績 < 60
10. 一張學生成績表內SQL查詢每個班級每門課程的平均分
select avg(分數復制) as 平均分, rtrim(cast(sum(case when 分數>=60 then 1 end)/count(*)*100 as char(10)))+'%' as 及格率 from A group by 班級,課程