学生成绩数据库
create database [数据库名]; user [该数据库名]; --学生表 create table [学生表表名]( sId int primary key, --学生ID编号,主键 sName varchar(10) unique not null, --学生名字 ); --科目表 create table [科目表表名]( sjId int primary key, --科目ID编号,主键 sjName varchar(10) unique not null, --科目名称 ); --成绩表 create table [成绩表表名] rId int primary key, --成绩ID编号,主键 sjId int references [科目表表名](sjId), --科目ID编号,继承科目表的ID编号 sId int references [学生表表名](sId), --学生ID编号,继承学生表的ID编号 result float not null --成绩 ); --查询语句 select r.rId,sj.sjId,sj.sjName,su.sId,su.sName,r.result from [成绩表表名] r, join [科目表表名] sj on sj.sjId=r.sjId, join [学生表表名] su on su.sId=r.sId;
㈡ 用SQL语言如何创建学生成绩数据库的代码
create database [数据库名];
user [该数据库名];
--学生表
create table [学生表表名](
sId int primary key, --学生ID编号,主键
sName varchar(10) unique not null, --学生名字
);
--科目表
create table [科目表表名](
sjId int primary key, --科目ID编号,主键
sjName varchar(10) unique not null, --科目名称
);
--成绩表
create table [成绩表表名]
rId int primary key, --成绩ID编号,主键
sjId int references [科目表表名](sjId), --科目ID编号,继承科目表的ID编号
sId int references [学生表表名](sId), --学生ID编号,继承学生表的ID编号
result float not null --成绩
);
--查询语句
select r.rId,sj.sjId,sj.sjName,su.sId,su.sName,r.result
from [成绩表表名] r,
join [科目表表名] sj on sj.sjId=r.sjId,
join [学生表表名] su on su.sId=r.sId;
㈢ 学生成绩管理数据库的建立
你excel就可
㈣ 如何用SQL建立一个学生成绩管理系统数据库
首先在SQL中利用企业管理器或向导建立一个数据库,命名为学生管理系统,启动SQL Sever服务,运行企业管理器,单击要创建数据库的服务器左边的加号图标,展开树形目录,在“数据库”节点上右击鼠标,在弹出的快捷菜单中选则“新建数据库”命令,然后按照提示一步步建立数据库,不再详细叙述。假设学生管理系统下有三个表,分别为学生表、课程表、修课表,表的结构分别如下:学生表(student) (学号(sno) 普通编码定长字符类型,长度7,主码,姓名(sname) 普通编码定长字符类型,长度8,非空,性别(ssex) 统一编码定长字符类型,长度1,年龄(sage) 微整型,所在系(sdept) 统一编码可变长字符类型,长度20)课程表(course) (课程号(cno) 普通编码定长字符类型,长度6,主码,课程名(cname) 统一编码定长字符类型,长度10,非空,学分(credit) 小整型,学期(semester) 小整型)修课表(sc)(学号(sno) 普通编码定长字符类型,长度7,主码,外码课程号(cno) 普通编码定长字符类型,长度6,主码,外码成绩(grade) 小整型,修课类别(type)普通编码定长字符类型,长度4)则创建表的语句分别为:create table Student(Sno char(7) primary key,Sname char(8) not null,Ssex nchar(1),Sage tinyint,Sdept nvarchar(20))create table Course(Cno char(6) primary key,Cname nchar(10) not null,Credit smallint,Semester smallint)create table SC(Sno char(7),Cno char(6),Grade smallint,Type char(4),primary key(Sno,Cno),Foreign key(Sno) References Student (Sno),Foreign key(Cno) References Course (Cno))各表的结构大体如此,如有变化可自行修改。 以上数据库和表就基本建立好了,然后就可以通过数据导入或SQL语句等向数据库中添加学生的各项具体数据了。
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
㈤ 如何用SQL建立一个学生成绩管理系统数据库
首先在SQL中利用企业管理器或向导建立一个数据库,命名为学生管理系统,
启动SQL
Sever服务,运行企业管理器,单击要创建数据库的服务器左边的加号图标,展开树形目录,在“数据库”节点上右击鼠标,在弹出的快捷菜单中选则“新建数据库”命令,然后按照提示一步步建立数据库,不再详细叙述。
假设学生管理系统下有三个表,分别为学生表、课程表、修课表,表的结构分别如下:
学生表(student)
(
学号(sno)
普通编码定长字符类型,长度7,主码,
姓名(sname)
普通编码定长字符类型,长度8,非空,
性别(ssex)
统一编码定长字符类型,长度1,
年龄(sage)
微整型,
所在系(sdept)
统一编码可变长字符类型,长度20
)
课程表(course)
(
课程号(cno)
普通编码定长字符类型,长度6,主码,
课程名(cname)
统一编码定长字符类型,长度10,非空,
学分(credit)
小整型,
学期(semester)
小整型
)
修课表(sc)(
学号(sno)
普通编码定长字符类型,长度7,主码,外码
课程号(cno)
普通编码定长字符类型,长度6,主码,外码
成绩(grade)
小整型,
修课类别(type)普通编码定长字符类型,长度4
)
则创建表的语句分别为:
create
table
Student(
Sno
char(7)
primary
key,
Sname
char(8)
not
null,
Ssex
nchar(1),
Sage
tinyint,
Sdept
nvarchar(20)
)
create
table
Course(
Cno
char(6)
primary
key,
Cname
nchar(10)
not
null,
Credit
smallint,
Semester
smallint
)
create
table
SC(
Sno
char(7),
Cno
char(6),
Grade
smallint,
Type
char(4),
primary
key(Sno,Cno),
Foreign
key(Sno)
References
Student
(Sno),
Foreign
key(Cno)
References
Course
(Cno)
)
各表的结构大体如此,如有变化可自行修改。
以上数据库和表就基本建立好了,然后就可以通过数据导入或SQL语句等向数据库中添加学生的各项具体数据了。
㈥ 创建数据库【学生成绩数据库】的方法有哪几种,分别是什么
1、在“新建”菜单中建立数据库
2、在项目管理器中建立数据库
3、使用命令建立数据库 CREAT DATABASE[数据库名/?]
㈦ 利用C++语言建立一个学生成绩数据库,可以包括以下功能:
别人的程序:需要你再修改一下 #include<iostream.h> #include<iomanip.h> #include<string.h> #define dmzzuida 100 struct dmzstudent //声明学生信息的结构体 { char dmzname[20]; //学生的名字:20个字符长度 int dmzxh; //学号 float dmzsx; //数学成绩 float dmzyw; //语文成绩 float dmzyy; //英语成绩 float dmzzf; //总分 }dmzstudent1; int dmzshuru(dmzstudent dmzstud[])//输入学生的数据,参数dmzstud是一个学生信息的数组,用于返回的 { int dmzrenshu; //定义一个int型变量,记录人数 cout<<"请输入人数:"; //显示提示信息 cin>>dmzrenshu; //获取从键盘输入的数据 if(dmzrenshu>dmzzuida)dmzrenshu=dmzzuida;//如果输入的人数大于100了,那么就让这个数等于100. for(int dmza=0;dmza<dmzrenshu;dmza++)//循环输入学成的各个信息 { cout<<"输入第"<<dmza+1<<"学生的考号:";//显示输入第几个学生的学号 cin>>dmzstud[dmza].dmzxh; //输入学号 cout<<"输入第"<<dmza+1<<"学生的名字:";//提示输入名字 cin>>dmzstud[dmza].dmzname; //输入名字 cout<<"输入第"<<dmza+1<<"学生的语文成绩:";//提示输入语文成绩 cin>>dmzstud[dmza].dmzyw; //输入语文成绩 cout<<"输入第"<<dmza+1<<"学生的数学成绩:";//提示输入数学成绩 cin>>dmzstud[dmza].dmzsx; //输入数学成绩 cout<<"输入第"<<dmza+1<<"的学生英语成绩:";//提示输入英语成绩 cin>>dmzstud[dmza].dmzyy; //输入英语成绩 dmzstud[dmza].dmzzf=dmzstud[dmza].dmzyw+dmzstud[dmza].dmzsx+dmzstud[dmza].dmzyy;//输入完成后,计算一个总分,记录在dmzzf里面 } return dmzrenshu;//返回输入的人数给调用者 } void dmzshuchu(dmzstudent dmz[],int dmzrenshu)//输出函数,把学生的信息全部显示出来,参数为学生信息数组和学生的人数 { cout<<setiosflags(ios::left)<<setw(10)<<"姓名"//设置格式,左对齐,每个数据的大小是10个字符 <<setw(10)<<"学号" <<setw(10)<<"数学成绩" <<setw(10)<<"语文成绩" <<setw(10)<<"英语成绩" <<setw(10)<<"总成绩" <<endl; for(int dmzj=0;dmzj<dmzrenshu;dmzj++)//根据学生的人数,循环显示所有的信息 { cout<<setw(10)<<dmz[dmzj].dmzname <<setw(10)<<dmz[dmzj].dmzxh <<setw(10)<<dmz[dmzj].dmzsx <<setw(10)<<dmz[dmzj].dmzyw <<setw(10)<<dmz[dmzj].dmzyy <<setw(10)<<dmz[dmzj].dmzzf <<endl; } } void dmzchaxun(dmzstudent dmzstud[],int dmzrenshu)//查询函数,传入参数为学生信息的数组和学生人数 { int dmza; //记录输入的学号,按学号查询 cout<<"学生信息查询"<<endl; //提示信息 cout<<"请输入所要查询的学生考号:"; //提示输入学号 cin>>dmza; //记录键盘输入的学号 for(int dmzb=0;dmzb<dmzrenshu;dmzb++)//在学生信息数组里面循环查找 if(dmza==dmzstud[dmzb].dmzxh) //如果输入的学号在学生信息数组里面,那么显示这个学生的信息 { cout<<"学号:"<<setw(5)<<dmzstud[dmzb].dmzxh//依次显示学号,姓名,各科成绩 <<"姓名:"<<setw(5)<<dmzstud[dmzb].dmzname <<"语文:"<<setw(5)<<dmzstud[dmzb].dmzyw <<"数学:"<<setw(5)<<dmzstud[dmzb].dmzsx <<"英语:"<<setw(5)<<dmzstud[dmzb].dmzyy <<setw(5)<<"总分:"<<dmzstud[dmzb].dmzzf <<endl; break; } if(dmzb==dmzrenshu)cout<<"无该学生的资料"<<endl;//如果没有找到,那么显示无该学生的资料 } void dmzxuehaopaixu(dmzstudent dmz[],int dmzn)//根据学号排序,输入参数为:学生信息数组,学生人数 { for(int dmzi=0;dmzi<dmzn-1;dmzi++)//在学生人数中循环比较学号 { for(int dmzj=dmzi+1;dmzj<=dmzn-1;dmzj++)//2次循环, if(dmz[dmzi].dmzxh>dmz[dmzj].dmzxh)//如果大于就交换的话,那么这是学号小的排在前面 {//下面三步是交换两个学生的信息 dmzstudent1=dmz[dmzi]; dmz[dmzi]=dmz[dmzj]; dmz[dmzj]=dmzstudent1; } } dmzshuchu(dmz,dmzn);//交换完成后,调用输出函数,把排序后的学生信息显示出来。 cout<<endl; } void dmztongji(dmzstudent dmzstud[],int dmzrenshu)//统计函数,参数为:学生信息数组,学生人数 { float dmzmax=dmzstud[0].dmzzf,dmzmin=dmzstud[0].dmzzf,dmzfenshu;//定义最大和最小成绩的初始值 for(int dmza=0;dmza<dmzrenshu;dmza++) //循环在学生信息里面找总分的最大分和最小分 { dmzmax=dmzstud[dmza].dmzzf>dmzmax?dmzstud[dmza].dmzzf:dmzmax;//最大总分 dmzmin=dmzstud[dmza].dmzzf<dmzmin?dmzstud[dmza].dmzzf:dmzmin;//最小总分 } cout<<"总分最高分:"<<setw(10)<<dmzmax<<"\t"<<"总分最低分:"<<setw(10)<<dmzmin<<endl;//把得到的分显示出来 cout<<"某一总分上的人数查询"<<endl;//查找在输入的分之上的人数 cout<<"请输入所要查询的总分:";//提示信息,输入一个边界值,用于判断比这个分大的有多少 cin>>dmzfenshu; //记录输入的分数 int dmzb=0; for(dmza=0;dmza<dmzrenshu;dmza++)//循环查找 if(dmzstud[dmza].dmzzf>=dmzfenshu)dmzb++;//总分比输入的大,那么dmzb就自加一次。 cout<<dmza<<"分以上的人数有:"<<dmzb<<endl;//循环完毕后,显示有多少人的总分大于输入的分数。 } void dmzzfpaixu(dmzstudent dmz[],int dmzn)//按照总分排序的函数,参数为:学生信息数组,学生人数 { for(int dmzi=0;dmzi<dmzn-1;dmzi++)//在学生人数中循环比较总分 { for(int dmzj=dmzi+1;dmzj<=dmzn-1;dmzj++)//2次循环 if(dmz[dmzi].dmzzf>dmz[dmzj].dmzzf)//比较总分,如果大于就交换的话,那么这是总分小的排在前 {//下面三步是交换两个学生的信息 dmzstudent1=dmz[dmzi]; dmz[dmzi]=dmz[dmzj]; dmz[dmzj]=dmzstudent1; } } dmzshuchu(dmz,dmzn);//交换完成后,调用输出函数,把排序后的学生信息显示出来 cout<<endl;//显示一个空行 } void dmzxingmingpaixu(dmzstudent dmz[],int dmzn)//按姓名排序,比较字符串,参数为:学生信息数组,学生人数 { for(int dmzi=0;dmzi<dmzn-1;dmzi++)//在学生人数中循环比较总分 { for(int dmzj=dmzi+1;dmzj<=dmzn-1;dmzj++)//2次循环 if(strcmp(dmz[dmzi].dmzname,dmz[dmzj].dmzname)>0)//名字按降序排列, {//交换学生的信息 dmzstudent1=dmz[dmzi]; dmz[dmzi]=dmz[dmzj]; dmz[dmzj]=dmzstudent1; } } dmzshuchu(dmz,dmzn);//交换完成后,调用输出函数,把排序后的学生信息显示出来 cout<<endl;//显示一个空行 } void main()//主函数 { int dmzg,dmzx;//定义两个临时变量 dmzstudent dmzstud[100];//定义一个学生数组,个数为100. do//循环 {//下面7行市提示信息 cout<<"1 学生信息输入"<<endl; cout<<"2 成绩表输出"<<endl; cout<<"3 成绩查询"<<endl; cout<<"4 成绩统计"<<endl; cout<<"5 排序并输出"<<endl; cout<<"6 退出"<<endl; cout<<"请输入要执行的操作:"; cin>>dmzx; //记录用户的输入 if(dmzx==1)dmzg=dmzshuru(dmzstud);//如果输入的是1,那么调用dmzshuru来输入学生信息,完成后返回学生人数 else if(dmzx==2)//如果输入的是2,那么输出成绩表 { cout<<"2 成绩表输出"<<endl; dmzshuchu(dmzstud,dmzg);//调用输出函数输出 } else if(dmzx==3)//如果输入的是3,那么调用查询函数进行查询操作 dmzchaxun(dmzstud,dmzg); else if(dmzx==4)//如果输入的是4,那么调用统计函数,统计最高总分,最低总分,同时记录一个大于多少分的人数 { dmztongji(dmzstud,dmzg); } else if(dmzx==5)//如果输入的是5,那么需要再次输入按哪种方式排序 { int dmza;//记录选择,下面几行是提示信息 cout<<"1 学号排序"<<endl; cout<<"2 总分排序"<<endl; cout<<"3 姓名排序"<<endl; cout<<"4 返回"<<endl; cout<<"请选择:"<<endl; cin>>dmza;//记录输入的选择 if(dmza==1)//根据选择来调用,如果是1,那么调用按学号排序的函数 { dmzxuehaopaixu(dmzstud,dmzg); } else if(dmza==2)//如果是2,那么调用按总分排序的函数 { dmzzfpaixu(dmzstud,dmzg); } else if(dmza==3)//如果是3,那么调用按姓名排序的函数 { dmzxingmingpaixu(dmzstud,dmzg); } else if(dmza==4)//如果是4,那么显示返回 cout<<"返回"<<endl; else cout<<"您的输入有误"<<endl;//其他值,提示你输入错误 } else if(dmzx==6)//如果选择6,那么显示退出 cout<<"6 退出"<<endl; else cout<<"您的输入有误请重新输入"<<endl;//其他值,显示输入错误 }while(dmzx!=6);//不等于6的情况再循环,等于6了,那么就退出程序了。 }
㈧ 学生成绩管理数据库包含哪些数据表数据表之间的关系是哪种以什么字段联系
主要有 学生、班级、科目、成绩、管理员等表。
学生里关联了班级;成绩中关联了学生、科目,记录了成绩值;管理员用于登录。
字段或代码的话建议网络查一下学生成绩管理系统,现在这样的系统比较多,可作为参考。
㈨ 数据库名:学生成绩数据库
(1). 题干有问题,课程名只在课程表中存,需要关联三个表才能查出全部要求数据,sql语句如下:
select A.学号, A.姓名, B.课程名, C.分数 FROM 学生表 A, 课程表 B, 成绩表 C where A.学号=C.学号 and B.课程号=C.课程号
(2).
insert into 学生表(班级编号,学号,姓名,性别) values ('00001','00009','张三','男')
(3).
select A.课程号, A.课程名, sum(b.分数) 总成绩, avg(b.分数) 平均成绩, max(b.分数) 最高分
from 课程表 A, 成绩表 B
where A.课程号=B.课程号
group by A.课程号,A.课程名
having max(b.分数) > 90