主键就是主关键字(primary key)表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。是唯一标示当前表里的那一列,用主键可以代替表里一条实体的内容,如:你有一个名字,有你的住址,电话号码,籍贯,学位,政治面貌,等属性,但唯一能够标示你的还是你的身份证号,因为别人有可能有跟你同样的名字,或者同样的住址,或者同样的的学位,但身份证是唯一的。
数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引就相当于你买了一部字典的目录,通过目录,可以找到你需要查找的内容。索引不是自动有的,在数据库中,必须根据表里的字段建立索引。
1. 普通索引
这是最基本的索引,它没有任何限制,比如上文中为title字段创建的索引就是一个普通索引,MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引。
2. 唯一索引
与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值(注意和主键不同)。如果是组合索引,则列值的组合必须唯一,创建方法和普通索引类似。
唯一也是一种约束,将字段设置唯一约束后,该字段在表里的所有“记录”将是不同的,比如将学号设置为唯一,第一个学生,学号 00001;那么第二个学生 学号 可以是 00002或者00003 而不能设置为 00001,如果,设置为00001的话,数据库将报:字段违反唯一约束,这样做的目的是为了每个学生有不同的学号。