主键约束比唯一索引约束严格,当没有设定主键时,非空唯一索引自动称为主键。对于主键和唯一索引的一些区别主要如下:

1.主键不允许空值,唯一索引允许空值
2.主键只允许一个,唯一索引允许多个
3.主键产生唯一的聚集索引,唯一索引产生唯一的非聚集索引 注:聚集索引确定表中数据的物理顺序,所以是主键是唯一的(聚集就是整理数据的意思)
主键约束比唯一索引约束严格,当没有设定主键时,非空唯一索引自动称为主键。对于主键和唯一索引的一些区别主要如下:
1.主键不允许空值,唯一索引允许空值
2.主键只允许一个,唯一索引允许多个
3.主键产生唯一的聚集索引,唯一索引产生唯一的非聚集索引
注:聚集索引确定表中数据的物理顺序,所以是主键是唯一的(聚集就是整理数据的意思)
primary key == 主键 等价于 唯一 (UNIQUE) 且 非空 (NOT NULL)
因为 Mysql 里面的自增列, 必须要依赖一个 主键 或者 唯一的键。
所以你的 SQL 里面要有一个
如果不加 PRIMARY KEY ( `id` ) 的话, 结果将像下面这个样子:
这行语句, 设置了3个表的属性
ENGINE = InnoDB 是设置表的引擎。 innoDB 引擎是比较新的, 支持外键 与 事务处理等特性。
AUTO_INCREMENT =1 是那个 自增的 ID , 起始数值是 1
我把这样的表单写入数据库以后 留言板上的内容(中文)添加上去显示是“??”。
我查看结构的时候确实是gbk_chinese_ci 了
这个要调查一下,你的数据,是怎么插入的。
虽然你的数据库表的 字符编码, 是 gbk 了。
但是如果你的 数据,是通过 网页插入的, 而网页的编码是 utf8 之类的话。
那么最后保存的数据, 就可能是 ?? 了。
1、定义不同:(1)主键–唯一标识一条记录,不能有重复的,不允许为空(2)外键–表的外键是另一表的主键, 外键可以有重复的, 可以是空值
2、作用不同:(1)主键–用来保证数据完整性(2)外键–用来和其他表建立联系用的
3、个数:(1)主键–主键只能有一个(2)外键–一个表可以有多个外键
一、什么是 主键 、外键。主键:关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 。
二、主键和外键的用途。定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
三、主键设计原则。主键在物理层面上只有两个用途:
四、主键、外键和索引的区别。