MYSQL,如何实现: student表的性别不能为空且取值范围为{男,女} ,年龄必须大于16岁
时间: 2024-09-20 12:16:36 浏览: 70
Mysql练习3:为学生表、科目表、成绩表添加数据.zip
在MySQL中,为了确保`student`表的性别字段非空并且只接受“男”、“女”两个值,以及年龄字段大于16岁,你需要在创建表的时候添加相应的约束条件。以下是创建表的SQL语句示例:
```sql
CREATE TABLE IF NOT EXISTS student (
id INT AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender ENUM('男', '女') NOT NULL,
age INT NOT NULL CHECK (age > 16),
PRIMARY KEY (id)
);
```
这里,`gender`字段被声明为`ENUM`类型,它限制了可能的值只能是"男"或"女"。同时,我们还添加了一个`CHECK`约束,确保`age`字段的值大于16。
如果你想对已经存在的表添加这些约束,可以使用`ALTER TABLE`命令:
```sql
ALTER TABLE student MODIFY COLUMN gender ENUM('男', '女') NOT NULL;
ALTER TABLE student ADD CONSTRAINT check_age CHECK (age > 16);
```
第一个语句用于修改已有的`gender`字段添加非空约束及枚举值限制;第二个语句则添加一个新的`check_age`约束检查年龄是否大于16。
阅读全文