创建学生数据库student,创建学生信息表message表(sno,sname,birthday,major)、成绩表score(sno,cno, cname ,sscore)并输入数据。创建java web项目,通过表单提交一个学生的成绩,然后查询所有的学生的成绩数据,输出
时间: 2024-10-20 18:16:57 浏览: 151
SQL语句创建学生信息数据库表的示例实用文档.doc
创建学生数据库和两个关联表的过程通常是在数据库设计阶段完成的,这里我会提供一个基本的SQL操作示例,并说明如何在Java Web项目中实现数据的提交和查询。
首先,我们假设已经在MySQL数据库中创建了名为`student`的数据库,然后有两个表:`message`和`scores`。
```sql
-- 创建student信息表
CREATE TABLE message (
sno VARCHAR(20) PRIMARY KEY, -- 学生学号
sname VARCHAR(50), -- 学生姓名
birthday DATE, -- 出生日期
major VARCHAR(50) -- 专业
);
-- 创建成绩表
CREATE TABLE score (
sno VARCHAR(20) REFERENCES message(sno), -- 引用学生表的学号
cno INT, -- 课程编号
cname VARCHAR(50), -- 课程名称
sscore DECIMAL(3,1) -- 成绩
);
```
接下来,我们可以插入一些初始数据到这两个表中:
```sql
INSERT INTO message (sno, sname, birthday, major)
VALUES ('001', '张三', '1998-01-01', '计算机科学');
INSERT INTO score (sno, cno, cname, sscore)
VALUES ('001', 101, '数学', 85.0);
```
对于Java Web项目,你可以使用JDBC(Java Database Connectivity)来连接数据库和处理数据。这里是一个简单的示例,展示如何接收用户提交的成绩,并查询所有学生的所有成绩:
```java
import java.sql.*;
public class ScoreController {
private static final String URL = "jdbc:mysql://localhost/student";
private static final String USER = "username";
private static final String PASS = "password";
public static void main(String[] args) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(URL, USER, PASS);
// 提交成绩(例如POST请求)
int studentId = 1; // 假设已从表单获取到
double score = 90.0;
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO score (sno, cno, cname, sscore) VALUES (?, ?, ?, ?)");
pstmt.setInt(1, studentId);
pstmt.setInt(2, 202); // 假设这是新课程编号
pstmt.setString(3, "英语");
pstmt.setDouble(4, score);
pstmt.executeUpdate();
// 查询成绩
ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM score WHERE sno = ?");
while (rs.next()) {
System.out.println(rs.getInt("sno") + ": " + rs.getString("cname") + " - " + rs.getDouble("sscore"));
}
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
阅读全文