定义一个学生表 STU , STU 表的学号为主键,姓名取值唯一,性别默认值取"男",且性别只允许取"男"或"女",专业为非空。(截图上传代码和代码运行结果)
时间: 2024-09-30 11:08:01 浏览: 62
在创建一个名为STU的学生表时,你可以使用SQL语言来定义这个表,考虑到你的需求,以下是创建表的SQL语句示例:
```sql
CREATE TABLE STU (
ID INT PRIMARY KEY, -- 学号为主键
NAME VARCHAR(50) NOT NULL UNIQUE, -- 姓名取值唯一,假设最大长度为50字符
GENDER ENUM('男', '女') NOT NULL DEFAULT '男', -- 性别字段,只允许'男'或'女'
MAJOR VARCHAR(100) NOT NULL -- 专业字段,不允许为空
);
```
在这个例子中:
- `ID` 字段表示学号,设置为主键,意味着每个学生的学号都是唯一的。
- `NAME` 字段用于存储学生的姓名,`UNIQUE`关键字保证了姓名的唯一性。
- `GENDER` 字段是枚举类型,限制了性别只能是'男'或'女',并且设置了默认值为'男'。
- `MAJOR` 字段用于存储专业信息,`NOT NULL`表示该字段不能为空。
请注意,由于这是一个文本环境,无法直接显示实际的代码运行结果,你可以在数据库环境中执行上述SQL语句来创建表。如果你需要查看表结构,可以使用`DESCRIBE STU`或`SHOW COLUMNS FROM STU`命令。
相关问题
如何在SQL中创建一个名为stu2的学生表,满足以下条件:学号范围从1到100,姓名字段必须唯一且不允许为空,年龄字段应小于30,性别人员仅限于'男'和'女',并设置学号为主键?
在SQL中,你可以使用以下CREATE TABLE语句来创建这样一个学生表(stu2)。这里是一个示例:
```sql
CREATE TABLE stu2 (
student_id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL UNIQUE,
age INT CHECK (age < 30),
gender ENUM('男', '女') NOT NULL
);
```
这个命令做了以下几件事:
- `CREATE TABLE stu2` 创建了一个名为stu2的新表。
- `student_id INT PRIMARY KEY` 定义了学号字段,作为整数类型,同时指定它是主键,主键值必须唯一,不能为空。
- `name VARCHAR(50) NOT NULL UNIQUE` 定义了姓名字段,为可变长度字符串,最大长度为50字节,不允许为空并且每个名字都必须是唯一的。
- `age INT CHECK (age < 30)` 定义了年龄字段,限制其为整数,并添加了一个检查约束,确保年龄小于30。
- `gender ENUM('男', '女') NOT NULL` 定义了性别字段,只能取值为'男'或'女',同样不允许为空。
阅读全文