创建数据表[同学表]代層: 同学表履含屨段:学屢 char(6),姓名,性别,年龄,民族,身屛证屢,屝舍屢 要求使用:主键(学屢)、外键(屝舍屢)、默认(民族)、非空(民族,姓名,年龄)、唯一(身屛证屢)、检屣(性别)
时间: 2024-10-17 08:15:00 浏览: 18
在创建名为"同学表"的数据表时,需要考虑各个字段的要求。以下是表结构的SQL创建语句:
```sql
CREATE TABLE 同学表 (
学历号 CHAR(6) PRIMARY KEY, -- 主键,学历号码,长度为6字符
姓名 VARCHAR(50) NOT NULL, -- 非空,姓名字段,最多50字符
性别 ENUM('男', '女') CHECK (性别 IN ('男', '女')), -- 检查性别是否为男或女
年龄 INT NOT NULL, -- 非空,年龄字段,整数型
民族 ENUM('汉', '藏', '维吾尔', ...) DEFAULT '汉', -- 默认值为汉族,列举其他民族选项
身份证号 VARCHAR(18) UNIQUE NOT NULL, -- 唯一,身份证号字段,长度为18字符
宿舍号 CHAR(6), -- 外键,宿舍号码,长度为6字符
FOREIGN KEY (宿舍号) REFERENCES 宿舍表(宿舍号) ON DELETE CASCADE -- 删除同学时,级联删除对应的宿舍记录
);
```
注意:`ENUM`列出所有可能的选项,可以根据实际情况更新民族列表。`ON DELETE CASCADE`指当"宿舍表"中的相关记录被删除时,自动删除"同学表"中与此关联的记录。
相关问题
顺序表的数据类型定义,存储学生信息:姓名、学号、年龄、班级
顺序表的数据类型定义可以使用结构体来实现。对于存储学生信息,可以定义如下的结构体类型:
```c
struct Student {
char name[50]; // 姓名
int studentID; // 学号
int age; // 年龄
char className[20];// 班级
};
```
以上定义了一个名为 `Student` 的结构体,包含了姓名、学号、年龄和班级四个字段。其中,姓名字段使用字符数组类型 `name[50]` 来存储,学号和年龄字段使用整型 `int`,班级字段使用字符数组类型 `className[20]` 来存储。
通过这个结构体类型,你可以创建一个顺序表来存储多个学生的信息。
数据库名: student 同学表(学号 char (6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char (6),宿舍电话) 用 SQL 语言实现下列功能的 sql 语句代
数据库名 `student` 包含了两个相关的表:
1. **同学表** (`students`):
- 字段:学号(`stu_id`, char(6)),姓名(`name`),性别(`gender`),年龄(`age`),民族(`nationality`),身份证号(`id_number`),宿舍号(`dormitory_no`)。
2. **宿舍表** (`dormitories`):
- 字段:宿舍号(`dormitory_no`, char(6)),宿舍电话(`phone_number`)。
下面是一些基本的 SQL 操作示例,包括创建表、插入数据、查询等:
### 创建表
```sql
CREATE TABLE students (
stu_id CHAR(6) PRIMARY KEY,
name VARCHAR(50),
gender CHAR(1),
age INT,
nationality VARCHAR(20),
id_number VARCHAR(20),
dormitory_no CHAR(6)
);
CREATE TABLE dormitories (
dormitory_no CHAR(6) PRIMARY KEY,
phone_number VARCHAR(15)
);
```
### 插入数据
```sql
INSERT INTO students(stu_id, name, gender, age, nationality, id_number, dormitory_no)
VALUES('202201', '张三', 'M', 20, '汉', '123456789012345678', 'A01');
INSERT INTO dormitories(dormitory_no, phone_number)
VALUES('A01', '010-12345678');
```
### 查询关联数据
- 查询特定学生信息及其宿舍电话:
```sql
SELECT students.name, dormitories.phone_number
FROM students
JOIN dormitories ON students.dormitory_no = dormitories.dormitory_no
WHERE students.stu_id = '202201';
```
- 获取所有宿舍的信息及该宿舍的学生信息:
```sql
SELECT s.*, d.phone_number
FROM students s
JOIN dormitories d ON s.dormitory_no = d.dormitory_no;
```
阅读全文