从 MySQL 表中删除约束
约束是一组规则或限制,禁止在 MySQL 列中输入数据。MySQL 中的表具有用户想要限制的各种属性或列。
应用的障碍禁用 MySQL 列集中所有类型的数据值的允许,从而提供跨列的一致性。它仅启用应用的约束集定义中允许的值。
在 MySQL 中创建具有约束的表
在 MySQL 中,用户可以将约束与表模式一起应用到列上。这些约束可以是下面给出的两种类型。
- 列级约束
- 表级约束
使用约束创建表的语法:
CreatetabletablemnameattributeName1attributeTypeconstraint,attributeName2attributeTypeconstraint,...attributeNameNattributeTypeconstraint,TableLevelConstraint(AttributeName)
上面代码中的语法显示了如何为每个创建表级和列级约束。两者背后的想法是赋予用户根据需要添加约束的权限。
列级约束
:在定义属性名称时定义non-null
和unique
等约束类型。这意味着约束名称在提供属性的数据之后。表级约束
:约束的类型在表定义的末尾定义。这些约束类似于PrimaryKey
ForeignKey
和Index
约束。
实际查询表之前的查询列表:
createtablestudentPK(idvarchar(255)notnull,firstNamevarchar(255),lastnamevarchar(255),ageinteger,primarykey(id));
上面的命令创建了一个表 studentPK
,其属性包括 id
、firstName
、lastName
和 age
。主键
约束是 MySQL 中定义的一个关键字,用于创建表的主键或唯一标识符。
该语法在其参数中采用参数以使属性成为主键。
DescribestudentPK;
另一个查询是描述创建的表。下面显示的图像说明了输入到 studentPK
表的字段中的约束。
从 MySQL 表中删除约束
在 MySQL 中执行 DROP 约束的查询:
AltertablestudentPKdropprimarykey;
上述语法使用 Alter
关键字更改 studentPk
的语法。由于约束在表级别,因此很容易在表级别很好地删除。
Alter
命令最适合更改表的模式。它通过从同一表中删除主键来更改 StudentPk
表的模式。
下面是相同的本地运行图像。
同样,当在其他表中使用相同的键时,它会通过删除另一个表的外键而被删除。
查询创建外键
约束:
createtablestudentDept(deptidvarchar(255)notnull,deptNamevarchar(255),idvarchar(255),foreignkey(id)referencesstudentPK(id));
上面的查询在另一个关系 studentDept
表上创建了一个外键作为 id
。外键是通过使用关键字 foreign key
形成的。
除了关键字之外,它还需要 references
关键字来链接父表以使两个表相互依赖。references
关键字将 studentPk
表的 id
字段绑定为 studentDept
表中的外键。
输出可以在下图中得到验证:
在内部创建外键时,会创建该键的新键名。描述表和查看名称的语句如下:
SHOWCREATETABLEstudentDept;
下面是控制台输出的图片,可以看到 MySQL 中的表结构。
上图显示外键是用名称 studentdept_ibfk_1
创建的。现在,很容易删除具有创建名称的外键。
AltertablestudentDeptdropforeignkeystudentdept_ibfk_1;
上面的查询从 studentDept
表中删除了外键。Alter
命令表明更改发生在模式级别。
外键从 studentDept
表中删除。可以使用 describe
命令重新检查它。
删除外键之前要记住的几点:
- 外键名是需要的。从表中删除约束需要一个键。
- 不知道键名的
drop
命令导致如下所示的错误: SHOW CREATE TABLE
命令是强制性的。