如何用SQL建立一个学生成绩管理系统数据库

如何用SQL建立一个学生成绩管理系统数据库,第1张

首先在SQL中利用企业管理器或向导建立一个数据库,命名为学生管理系统,

启动SQL

Sever服务,运行企业管理器,单击要创建数据库的服务器左边的加号图标,展开树形目录,在“数据库”节点上右击鼠标,在d出的快捷菜单中选则“新建数据库”命令,然后按照提示一步步建立数据库,不再详细叙述。

假设学生管理系统下有三个表,分别为学生表、课程表、修课表,表的结构分别如下:

学生表(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语句等向数据库中添加学生的各项具体数据了。

Student 类

public class Student

{

private int id;

private int age;

private int score;

private String name;

public Student()

{

}

public Student(int id, int age, int score, String name)

{

thisid = id;

thisage = age;

thisscore = score;

thisname = name;

}

public int getId()

{

return id;

}

public void setId(int id)

{

thisid = id;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

thisage = age;

}

public int getScore()

{

return score;

}

public void setScore(int score)

{

thisscore = score;

}

public String getName()

{

return name;

}

public void setName(String name)

{

thisname = name;

}

@Override

public String toString()

{

return "学号:" + id + " 姓名:" + name + " 年龄:" + age + " 成绩:" + score;

}

}

Manager类

import javautilArrayList;

import javautilIterator;

import javautilList;

public class Manager

{

private List<Student> list;

public Manager(List<Student> list)

{

thislist = list;

}

public List<Student> getList()

{

return list;

}

public void setList(List<Student> list)

{

thislist = list;

}

//添加学生

public void add(Student s)

{

listadd(s);

}

//根据学生学号返回学生年龄

public int search(int id)

{

for(Iterator<Student> iter = listiterator(); iterhasNext();)

{

Student s = iternext();

if(sgetId() == id)

{

return sgetAge();

}

}

return -1;

}

//删除学生

public void remove(int id)

{

for(Iterator<Student> iter = listiterator(); iterhasNext();)

{

Student s = iternext();

if(sgetId() == id)

{

listremove(s);

}

}

}

//计算总成绩

public int allScore()

{

int score = 0;

int temp = 0;

for(Iterator<Student> iter = listiterator(); iterhasNext();)

{

Student s = iternext();

temp = sgetScore();

score += temp;

}

return score;

}

//修改成绩

public void update(int id)

{

for(Iterator<Student> iter = listiterator(); iterhasNext();)

{

Student s = iternext();

if(sgetId() == id)

{

ssetScore(sgetScore() + 10);

}

}

}

}

测试类 Client

import javautilArrayList;

import javautilList;

public class Client

{

public static void main(String[] args)

{

List<Student> list = new ArrayList<Student>();

Manager manager = new Manager(list);//创建一个管理者

Student s1 = new Student();//无参构造方法创建的学生实例

//通过方法设置s1的属性

s1setId(201105);

s1setAge(20);

s1setScore(100);

s1setName("zhangsan");

Student s2 = new Student(201101,21,98,"lisi");//通过带参数的构造方法创建实例

Student s3 = new Student(201108,25,95,"zhaoliu");

Student s4 = new Student(201110,23,80,"xiaoming");

Student s5 = new Student(201106,28,78,"hello");

//放到集合当中

managergetList()add(s1);//添加学生

managergetList()add(s2);

managergetList()add(s3);

managergetList()add(s4);

managergetList()add(s5);

Systemoutprintln(list);

Systemoutprintln(managerallScore());

Systemoutprintln(managersearch(201110));//根据学生学号查询学生年龄

managerremove(201110);//删除学生

managerupdate(201101);//修改成绩

}

}

可以完成你上述的基本要求,如果改动可以自行修改 很简单。

a 该“学生信息管理系统”只是对数据库应用技术的一个样本数据库的实例,重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型到ER图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。

b 系统结构简述:

本系统包括三个实体:院系;学生档案;课程;

实体之间的关系转换为其他表的有:选修;

实体“院系”与“学生档案”之间有一对多的关系,把院系表的主码转放到表“学生档案”中;

实体“学生档案”与“课程”之间有多对多的关系,因此独立形成一个表并共同存储“学生档案”与“课程”表的主码和一些自己的属性列;

c 该数据库需要进行如下数据处理:

◎从选修表中查询成绩的函数:

输入:学号和课程编号

输出:对应的学号和课程编号的分数即成绩;

◎从学生档案表中查询学生基本信息的函数:

输入:学号

输出:对应的学号的基本信息,即学号,姓名,性别,专业,****,联系地址,院系编号;

◎从学生档案表中删除对应的学生记录:

输入:学号

输出:删除对应的学生记录,若没有对应的学号则输出“没有该学生!”的提示;

◎ 向学生档案表插入数据的函数:

输入:学生档案表的基本信息,包括所有属性列;即学号,姓名,性别,专业,****,联系地址,院系编号;

◎级联更新(从院系表到学生档案表、课程表):

输入:院系编号,院系名称

◎成绩表上的触发器,当删除某一个学生的成绩时触发:

当从学生档案表中删除学生记录时,若该学号的学生记录在选修表中也有的话,则提示

以上就是关于如何用SQL建立一个学生成绩管理系统数据库 全部的内容,包括:如何用SQL建立一个学生成绩管理系统数据库 、怎么用java+sql数据库做一个学生信息管理系统、sql2005数据库学生管理系统怎么创建》等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9373886.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存