按下述关系模式建表,所有约束用表级约束格式实现。」 班级表(班号,班名,年级)4 学生表(学号,姓名,性别,出生日期,家庭住址,所属班级)
时间: 2024-05-14 18:18:34 浏览: 27
```sql
CREATE TABLE 班级表 (
班号 VARCHAR(10) PRIMARY KEY,
班名 VARCHAR(20) NOT NULL,
年级 VARCHAR(10) NOT NULL
);
CREATE TABLE 学生表 (
学号 VARCHAR(10) PRIMARY KEY,
姓名 VARCHAR(20) NOT NULL,
性别 VARCHAR(10) NOT NULL,
出生日期 DATE NOT NULL,
家庭住址 VARCHAR(100) NOT NULL,
所属班级 VARCHAR(10) NOT NULL,
CONSTRAINT fk_所属班级 FOREIGN KEY (所属班级) REFERENCES 班级表(班号) ON DELETE CASCADE
);
```
上述 SQL 语句中,我们先创建了班级表 `班级表`,其中 `班号` 字段为主键,不允许重复,`班名` 和 `年级` 字段不能为空。
接着,我们创建了学生表 `学生表`,其中 `学号` 字段为主键,不允许重复,`姓名`、`性别`、`出生日期`、`家庭住址` 和 `所属班级` 字段都不能为空。
注意到 `所属班级` 字段在学生表中是一个外键,引用了班级表的主键 `班号`。同时,我们在学生表中添加了一个表级约束 `fk_所属班级`,确保了所属班级的合法性。其中 `ON DELETE CASCADE` 表示当班级表中的班号被删除时,该班级下的所有学生也会被删除。
相关问题
根据下述建表代码向welfareinfo插入五条内容
好的,以下是向 welfareinfo 表插入五条数据的示例 SQL 查询语句:
```
INSERT INTO WelfareInfo (ID, EmployeeID, WelfareType, WelfareAmount, WelfareDate)
VALUES
(1, 1001, '五险一金', 3000.00, '2021-10-01'),
(2, 1002, '带薪年假', 2000.00, '2021-09-01'),
(3, 1003, '股票期权', 5000.00, '2021-11-01'),
(4, 1004, '通勤补贴', 800.00, '2021-10-01'),
(5, 1005, '生日福利', 500.00, '2021-08-01');
```
请注意,上述查询语句中的具体值是根据你的实际需求和数据库结构而定的。如果你想要向 welfareinfo 表插入不同的数据,请根据实际情况修改相应的值。
请使用JDBC的方式完成下述要求: 1\在 "students" 表中插入一条记录,包含学生的姓名为 "Alice",年龄为 18,班级为 "A1"。 2\从 "students" 表中删除所有年龄小于 15 的学生记录。 3\更新 "students" 表中学生姓名为 "Bob" 的记录,将其年龄改为 20。 4\查询 "students" 表中所有年龄大于等于 18 的学生记录。 5\查询 "students" 表中所有班级为 "B2" 的学生记录。 6\从 "students" 表中删除姓名为 "Alice" 的学生记录。 7\更新 "students" 表中年龄小于 12 的所有学生记录,将其班级改为 "C3"。 8\查询 "students" 表中所有班级为 "A1" 且年龄大于 16 的学生记录。 9\查询 "students" 表中所有姓名以字母 "J" 开头的学生记录。 10\在 "students" 表中插入一条记录,包含学生的姓名为 "Emily",年龄为 21,班级为 "D4"。 表: CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), age INT, class VARCHAR(50) );
好的,以下是对应的 Java JDBC 代码,注意需要根据实际情况修改数据库连接信息和表名等参数。
1. 插入一条记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("INSERT INTO students(id, name, age, class) VALUES (?, ?, ?, ?)")) {
stmt.setInt(1, 1);
stmt.setString(2, "Alice");
stmt.setInt(3, 18);
stmt.setString(4, "A1");
int rows = stmt.executeUpdate();
System.out.println(rows + " rows inserted.");
} catch (SQLException e) {
e.printStackTrace();
}
```
2. 删除年龄小于 15 的学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("DELETE FROM students WHERE age < ?")) {
stmt.setInt(1, 15);
int rows = stmt.executeUpdate();
System.out.println(rows + " rows deleted.");
} catch (SQLException e) {
e.printStackTrace();
}
```
3. 更新学生姓名为 "Bob" 的记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("UPDATE students SET age = ? WHERE name = ?")) {
stmt.setInt(1, 20);
stmt.setString(2, "Bob");
int rows = stmt.executeUpdate();
System.out.println(rows + " rows updated.");
} catch (SQLException e) {
e.printStackTrace();
}
```
4. 查询年龄大于等于 18 的学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM students WHERE age >= ?")) {
stmt.setInt(1, 18);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String clazz = rs.getString("class");
System.out.println(String.format("id=%d, name=%s, age=%d, class=%s", id, name, age, clazz));
}
} catch (SQLException e) {
e.printStackTrace();
}
```
5. 查询班级为 "B2" 的学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM students WHERE class = ?")) {
stmt.setString(1, "B2");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String clazz = rs.getString("class");
System.out.println(String.format("id=%d, name=%s, age=%d, class=%s", id, name, age, clazz));
}
} catch (SQLException e) {
e.printStackTrace();
}
```
6. 删除姓名为 "Alice" 的学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("DELETE FROM students WHERE name = ?")) {
stmt.setString(1, "Alice");
int rows = stmt.executeUpdate();
System.out.println(rows + " rows deleted.");
} catch (SQLException e) {
e.printStackTrace();
}
```
7. 更新年龄小于 12 的所有学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("UPDATE students SET class = ? WHERE age < ?")) {
stmt.setString(1, "C3");
stmt.setInt(2, 12);
int rows = stmt.executeUpdate();
System.out.println(rows + " rows updated.");
} catch (SQLException e) {
e.printStackTrace();
}
```
8. 查询班级为 "A1" 且年龄大于 16 的学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM students WHERE class = ? AND age > ?")) {
stmt.setString(1, "A1");
stmt.setInt(2, 16);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String clazz = rs.getString("class");
System.out.println(String.format("id=%d, name=%s, age=%d, class=%s", id, name, age, clazz));
}
} catch (SQLException e) {
e.printStackTrace();
}
```
9. 查询姓名以字母 "J" 开头的学生记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM students WHERE name LIKE ?")) {
stmt.setString(1, "J%");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String clazz = rs.getString("class");
System.out.println(String.format("id=%d, name=%s, age=%d, class=%s", id, name, age, clazz));
}
} catch (SQLException e) {
e.printStackTrace();
}
```
10. 插入一条记录
```java
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("INSERT INTO students(id, name, age, class) VALUES (?, ?, ?, ?)")) {
stmt.setInt(1, 2);
stmt.setString(2, "Emily");
stmt.setInt(3, 21);
stmt.setString(4, "D4");
int rows = stmt.executeUpdate();
System.out.println(rows + " rows inserted.");
} catch (SQLException e) {
e.printStackTrace();
}
```
阅读全文