
首先在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数据库学生管理系统怎么创建》等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)