什么时候我应该使用键,主键,唯一键和索引?
当前回答
主键和唯一键很相似,只是功能不同。主键使表行唯一(即不能有两个具有完全相同键的行)。一个数据库表中只能有一个主键。
唯一键使表行中的表列是唯一的(即,没有两个表行可能具有完全相同的值)。您可以有多个唯一键表列(不像主键,这意味着表中只有一个表列是唯一的)。
INDEX还创建唯一性。MySQL(示例)将为被索引的列创建索引表。这样,在对索引表列查询查询时,更容易检索表行值。缺点是,如果你做很多更新/删除/创建,MySQL必须管理索引表(这可能是一个性能瓶颈)。
希望这能有所帮助。
其他回答
主键用于处理不同的表。这是关系数据库的基础。如果你有一个图书数据库,最好创建2个表- 1)图书和2)作者,INT主键“id”。然后在books中使用id而不是作者的名字。
如果不希望有重复的条目,则使用唯一键。例如,您可能在图书表中有标题,并希望确保每个标题只有一个条目。
唯一键:没有两行相似的列
Primary Key: Collection of minimum number of columns which can uniquely identify every row in a table (i.e. no two rows are similar in all the columns constituting primary key). There can be more than one primary key in a table. If there exists a unique-key then it is primary key (not "the" primary key) in the table. If there does not exist a unique key then more than one column values will be required to identify a row like (first_name, last_name, father_name, mother_name) can in some tables constitute primary key.
索引:用于优化查询。如果你要搜索或排序的基础上的一些列的结果很多次(例如。大多数人会通过名字而不是他们的卷号来搜索学生),那么如果列的值都被“索引”了,比如用二叉树算法,就可以优化。
唯一密钥:
可以有多个值为空。 任何两个元组在唯一键中都不能有相同的值。 一个或多个唯一键可以组合成一个主键,反之则不行。
主键
可以包含多个唯一键。 唯一表示一个元组。
主键不允许空值,但唯一键允许空值。
在一个表中只能声明一个主键,但是一个表可以有多个唯一键(列赋值)。
主键和唯一键很相似,只是功能不同。主键使表行唯一(即不能有两个具有完全相同键的行)。一个数据库表中只能有一个主键。
唯一键使表行中的表列是唯一的(即,没有两个表行可能具有完全相同的值)。您可以有多个唯一键表列(不像主键,这意味着表中只有一个表列是唯一的)。
INDEX还创建唯一性。MySQL(示例)将为被索引的列创建索引表。这样,在对索引表列查询查询时,更容易检索表行值。缺点是,如果你做很多更新/删除/创建,MySQL必须管理索引表(这可能是一个性能瓶颈)。
希望这能有所帮助。
推荐文章
- 如何停止mysqld
- 检查MySQL表是否存在而不使用“select from”语法?
- 从NOW() -1天选择记录
- 从表中选择1是什么意思?
- 数据库性能调优有哪些资源?
- 如何更改表的默认排序规则?
- MySQL foreign_key_checks是否影响整个数据库?
- 设置NOW()为datetime数据类型的默认值?
- 在MySQL中Datetime等于或大于今天
- 如何在列表中找到最大值的所有位置?
- 删除MySQL中的主键
- 我如何在MySQL中添加更多的成员到我的enum类型列?
- 相当于varchar(max)在MySQL?
- PHP与MySQL 8.0+错误:服务器请求身份验证方法未知的客户端
- laravel5“LIKE”对等物(雄辩的)