使用sql创建一个成绩表sscore,字段有:学号(sno),专业(spf),姓名(snm),出生年月日(sbt),学期(stm),数学(smt),英语(sen),数据库(sdb). (12分)
时间: 2023-10-30 08:36:30 浏览: 47
CREATE TABLE sscore (
sno VARCHAR(10) NOT NULL,
spf VARCHAR(20),
snm VARCHAR(20),
sbt DATE,
stm VARCHAR(10),
smt FLOAT,
sen FLOAT,
sdb FLOAT,
PRIMARY KEY (sno, stm)
);
相关问题
写一个sql语句,成绩表sscore: 学生ID、科目sskc、当前科 目的单科分数ssfs 学生表sstudent: 学生ID、班级ssclass. 年龄ssage、所在城市city 请查询各个城市总分大于500的学生数 (注意只能用一个sql表示)
请看以下 SQL 语句:
SELECT COUNT(DISTINCT sstudent.学生ID)
FROM sstudent
JOIN sscore ON sstudent.学生ID = sscore.学生ID
GROUP BY sstudent.city
HAVING SUM(sscore.ssfs) > 500;
创建学生数据库student,创建学生信息表message表(sno,sname,birthday,major)、成绩表score(sno,cno, cname ,sscore)并输入数据。创建java web项目,通过表单提交一个学生的成绩,然后查询所有的学生的成绩数据,输出
创建学生数据库和两个关联表的过程通常是在数据库设计阶段完成的,这里我会提供一个基本的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();
}
}
}
```
阅读全文