MySQL中,增加某个字段的非空约束的SQL语句?
时间: 2024-03-03 07:53:54 浏览: 68
在 MySQL 中,可以使用 ALTER TABLE 语句来增加某个字段的非空约束,具体的 SQL 语句如下所示:
```
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 NOT NULL;
```
例如,如果要将表中的 student 表的 name 字段设置为非空约束,可以执行以下 SQL 语句:
```
ALTER TABLE student MODIFY COLUMN name VARCHAR(50) NOT NULL;
```
需要注意的是,如果该字段已经存在空值,那么在增加非空约束之前必须先将该字段的空值更新为非空值,否则会报错。另外,增加非空约束之后,该字段的值就不能为 NULL,否则会报错。
相关问题
MySQL 修改某个非空字段为默认为null的sql语句
你可以使用以下的SQL语句来修改某个非空字段为默认为NULL:
```sql
ALTER TABLE `table_name` MODIFY COLUMN `column_name` data_type DEFAULT NULL;
```
其中,`table_name` 是你要修改的表名,`column_name` 是你要修改的字段名,`data_type` 是字段的数据类型。将 `DEFAULT` 关键字设置为 `NULL` 就可以将该字段的默认值修改为 `NULL`。
注意:如果该字段已经存在数据,那么在修改字段默认值之前,你需要确保该字段中的数据都是可以为 `NULL` 的。否则在修改之后,如果该字段存在非空数据,那么会导致插入或更新数据时出错。
用mysql56版本的sql语句创建一个部门信息表,字段1为部门编号,数据类型为int,非空约束,主键约束且自增;字段2为部门名称,数据类型为varchar,长度为20,非空约束。再创建一个员工信息表,字段1为编号,数据类型为int,非空约束,主键约束且自增;字段2为姓名,数据类型为varchar,长度为20,非空约束;字段3为性别,数据类型为varchar,长度为2,非空约束;字段4为联系电话,数据类型为char,长度为11,非空约束;字段5为月薪,数据类型为decimal,长度为8,2为小数点,非空约束,设置检查约束,大于0;字段6为入职日期,数据类型为date,非空约束,设置默认值,默认为系统日期;字段7为部门编号,数据类型为int,外键约束,参照部门信息表的部门编号。
以下是对应的SQL语句:
创建部门信息表:
```sql
CREATE TABLE department (
department_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
department_name VARCHAR(20) NOT NULL
);
```
创建员工信息表:
```sql
CREATE TABLE employee (
employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
employee_name VARCHAR(20) NOT NULL,
gender VARCHAR(2) NOT NULL,
phone CHAR(11) NOT NULL,
salary DECIMAL(8,2) NOT NULL CHECK (salary > 0),
hire_date DATE NOT NULL DEFAULT CURRENT_DATE,
department_id INT NOT NULL,
FOREIGN KEY (department_id) REFERENCES department (department_id)
);
```
这里使用了外键约束,将员工信息表中的部门编号字段设为外键,参照部门信息表中的部门编号字段。这样可以保证员工信息表中的部门编号只能引用部门信息表中存在的部门编号。
阅读全文