(3) crate table score
(cid int,
Sid int,
Cname char(30),
Score_1 int,
Score_2 int,
Score_3 int,
)
这个有问题吧,一个课程编号只对应一个课程名称,一个学生的课程只有一个成绩,怎么你这里有三个成绩的。你可以把cid,sid同时在这个表设置成主键,这样cid和sid就可以唯一标示一个学生的一门课程的成绩了。
‘贰’ 求学生表和成绩表的sql语句
select student_id,avg(score),max(score),min(score) from t_score GROUP BY student_id
‘叁’ 如何用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语言建立学生数据表,包括对成绩的删除、录入、查询
sql建立表:
先建一个学生库student,库里面新建表,比如:studentnum(学生号),studentclass(班级),studenttype(专业)等等,具体你要什么表都可以建立;表里面再新建立字段,比如studentnum(学生号)表里面可以建立num,name等字段,设立num为主键,这样就建立好了一个表,其他表都一样按具体情况建立.(这是不用写代码的)
要写代码的:
CREATE TABLE [dbo].[student] (表名) (
[num] [int] IDENTITY (1, 1) NOT NULL , //字段
[Name] [nvarchar] (36) NULL , //字段
[Sex] [nvarchar] (2) NULL , //字段
[Type] [int] NULL //字段
) ON [PRIMARY]
GO
‘伍’ 用sql语句建表 表名学生成绩表
createtable学生成绩表
(
学号varchar(4)notnull,
课程号varchar(3)notnull,
成绩decimal(4,1),
primarykey(学号,课程号)
)
‘陆’ 查询每个学生的各科成绩sql语句
1、查询每个学生的各科成绩sql语句:
select a.studentid,a.name,a.sex,v1.score as '语文',v2.score as '数学', v3.score as '英语',v4.score
as ‘哲学’, (v1.score+v2.score+v3.score+v4.score)/4 as ‘平均成绩’ from Stuednt a
left join
(select studentid,score from grade where cid=(select cid from course where cname='语文'))as v1
on a.studentid=v1.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='数学'))as v2
on a.studentid=v2.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='英语'))as v3
on a.studentid=v3.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='哲学'))as v4
on a.studentid=v4.studentid
order by a.studentid
2、sql数据库介绍:
(1)SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出"做什么"的命令,"怎么做"是不用使用者考虑的。
(2)SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
(3)SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。
(4)在SQL中,关系模式(模式)称为"基本表"(base table);存储模式(内模式)称为"存储文件"(stored file);子模式(外模式)称为"视图"(view);元组称为"行"(row);属性称为"列"(column)。
‘柒’ SQL语句查询每个学生的学号、姓名、平均成绩、最高成绩和最低成绩
select 学生表.学号,学生表.姓名,
average(成绩表.成绩) as 平均成绩,
max(成绩表.成绩) as 最高成绩,
min(成绩表.成绩) as 最低成绩
from 学生表 left join 成绩表 on 学生表.学号=成绩表.学号
order by 学生表.学号
成绩表可换成语文、数学、英语等,查询结果就是各个学生相应课程的平均成绩、历史最高成绩、历史最低成绩.
‘捌’ 用SQL创建一个学生表,课程表,学生成绩表
第一个表是学生表Student,包含三个字段,学生id(stu_id) 和 学生姓名(stu_name)和课程id(les_id)
Create Table [dbo].Student(
stu_id [uniqueidentifier] NOT NULL,
stu_name [nvarchar](425) NOT NULL,
les_id [uniqueidentifier] NOT NULL
)
第二个表课程表Lesson,两个字段,课程id(les_id)和课程名称(les_name)
Create Table [dbo].Lesson(
les_id [uniqueidentifier] NOT NULL,
les_name [nvarchar](425) NOT NULL
)
第三个表学生成绩表Score,三个字段课程id(les_id),学生id(stu_id)和课程得分(les_score)
Create Table [dbo].Score(
les_id [uniqueidentifier] NOT NULL,
stu_id [uniqueidentifier] NOT NULL,
les_score [int] NOT NULL
)
‘玖’ 用SQL语言如何创建学生成绩数据库的代码
create database [数据库名];x0dx0auser [该数据库名];x0dx0ax0dx0a--学生表x0dx0acreate table [学生表表名](x0dx0asId int primary key, --学生ID编号,主键x0dx0asName varchar(10) unique not null, --学生名字x0dx0a);x0dx0ax0dx0a--科目表x0dx0acreate table [科目表表名](x0dx0asjId int primary key, --科目ID编号,主键x0dx0asjName varchar(10) unique not null, --科目名称x0dx0a);x0dx0ax0dx0a--成绩表x0dx0acreate table [成绩表表名]x0dx0arId int primary key, --成绩ID编号,主键x0dx0asjId int references [科目表表名](sjId), --科目ID编号,继承科目表的ID编号x0dx0asId int references [学生表表名](sId), --学生ID编号,继承学生表的ID编号x0dx0aresult float not null --成绩x0dx0a);x0dx0ax0dx0a--查询语句x0dx0aselect r.rId,sj.sjId,sj.sjName,su.sId,su.sName,r.result x0dx0afrom [成绩表表名] r,x0dx0ajoin [科目表表名] sj on sj.sjId=r.sjId,x0dx0ajoin [学生表表名] su on su.sId=r.sId;
‘拾’ sql制作成绩单,显示班级,学生姓名,科目名称,成绩
在制作之前至少应该有两张表(如果不需要显示班级的详细信息),grade(成绩表)和student(学生表)
表的结构设计分别为:
student:
sid:编号,自增长类型,主键
sno:学号 varchar()长度按自己需求设置,not null
sname:姓名varchar()长度按自己需求设置
sclass:班级
...其他属性按实际需求设置
grade(成绩表):
gid:编号,自增长类型,主键
gno:学号 not null
gcoursename:科目名称
gscore:成绩 float
...其他属性按实际需求设置
实现语句:
selecta.sclass,a.sname,b.gcoursename,b..sno=b.gno