MySQL, 表完整性约束 详解

表完整性约束

  • 作用:用于保证数据的完整性和一致性

约束条件

  • PRIMARY KEY (PK)   标识该字段为该表的主键,可以唯一的标记记录,不可以为空 UNIQUE+NOT UNLL
  • FOREIGN KEY (FK)   标记该字段为表的外键,实现表与表之间的关联
  • NULL   标记是否允许为空,可以修改
  • NOT NULL   标记该字段不能为空,可以修改
  • UNIQUE KEY (UK)   标记该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
  • AUTO_INCREMENT   标识该字段的值自动增长(整数类型,而且为主键)
  • DEFAULT   为该字段设置默认值
  • UNSIGNED   无符号,正数

1,主键

  • 每张表里只能有一个主键,不能为空,而且唯一,主键保证记录的唯一性,主键自动为NOT NULL。
  • 一个 UNIQUE KEY 又是一个NOT NULL的时候,那么它被当做PRIMARY KEY主键。

定义主键的两种方式

表存在,添加约束

mysql> alter table t7 add primary key (hostname);

创建表并指定约束

mysql> create table t9(hostname char(20),ip char(150),primary key(hostname));

示例:

mysql> insert into t9(hostname,ip) values('qfedu.com', '10.10.10.11');
  Query OK, 1 row affected (0.00 sec)

mysql> insert into t9(hostname,ip)  values('qfedu.com','10.10.10.12');
  ERROR 1062 (23000): Duplicate entry 'qfedu.com' for key 'PRIMARY'

mysql> insert into t9(hostname,ip) values('qfedu', '10.10.10.11');
  Query OK, 1 row affected (0.01 sec)

mysql> select * from t9;
  +-----------+-------------+
  | hostname  | ip          |
  +-----------+-------------+
  | qfedu     | 10.10.10.11 |
  | qfedu.com | 10.10.10.11 |
  +-----------+-------------+
  2 rows in set (0.00 sec)

mysql> insert into t9(hostname,ip) values('qfjy', '10.10.10.12');
  Query OK, 1 row affected (0.00 sec)

mysql> select * from t9;
  +-----------+-------------+
  | hostname  | ip          |
  +-----------+-------------+
  | qfedu     | 10.10.10.11 |
  | qfedu.com | 10.10.10.11 |
  | qfjy      | 10.10.10.12 |
  +-----------+-------------+
  3 rows in set (0.00 sec)

删除主键

mysql> alter table 库名.表名  drop  primary key;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值