MySQL:列属性完整性

本文详细介绍了MySQL中的主键和唯一键概念,包括主键的绝对唯一性、作用及添加删除方法,同时探讨了唯一键的使用场景和操作方式。此外,还涉及到了外键在关联表中的应用,如外键的添加、删除、置空和级联操作,以及在互联网开发中对外键的考量。
摘要由CSDN通过智能技术生成

键(key)的值:

键是PRI,则列是主键或多列主键中的列之一。【主键约束】

键是UNI,则该列是唯一索引的第一列。(唯一索引允许多个空值,但可以通过检查Null字段来判断该列是否允许空。)  【唯一约束】

键是MUL,则该列是非唯一索引的第一列,其中允许在列中多次出现给定值。【可以重复】

主键(primary key)的作用以及企业用途

主键介绍:

绝对唯一性,存在性,不可重复性,用来区分数据的。(单个表只能有一个主键,但一个主键可以对应多个字段)

主键一般用来关联表,建立表与表之间的关系。

主键不能设置为NULL值(除非字段还设置为了自增等属性)。

mysql> create table t_8(
    -> id int(20) primary key, name varchar(30));
Query OK, 0 rows affected (0.02 sec)

mysql> desc t_8;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(20)     | NO   | PRI | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

添加主键:

· alter table /表名/ add primary key(/字段/,/字段/...); (可以通过修改字段来添加主键。)

mysql> create table t_8(
    -> id int(20), name varchar(30));
Query OK, 0 rows affected (0.01 sec)

mysql> desc t_8;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(20)     | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table t_8 add primary key(name);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t_8;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(20)     | YES  |     | NULL    |       |
| name  | varchar(30) | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

删除主键:

· alter table /表名/ drop primary key;

mysql> desc t_8;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(20)     | YES  |     | NULL    |       |
| name  | varchar(30) | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table t_8 drop primary key;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t_8;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(20)     | YES  |     | NULL    |       |
| name  | varchar(30) | NO   |     | NULL    |       |

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值