Mysql必读MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别
《Mysql必读MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别》要点: MYSQL教程对于题目中提出的问题,可以拆分来一步步解决.在 MySQL 中 KEY 和 INDEX 是同义.那这个问题就可以简化为 PRIMARY KEY,UNIQUE KEY 和 INDEX 的区别.而这三者也正好是索引的划分,主键索引,唯一索引和普通索引(INDEX). MYSQL教程使用 INDEX 来加速从数据库中读取数据.INDEX 通常加在那些 JOIN,WHERE,和 ORDER BY 子句的列上. MYSQL教程创建索引时,需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件). 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录. MYSQL教程索引也有它的缺点:虽然索引提高了查询速度,却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE.因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件. MYSQL教程MySQL 中 KEY 与 INDEX 区别 MYSQL教程KEY 通常是 INDEX 同义词.如果关键字属性 PRIMARY KEY 在列定义中已给定,则 PRIMARY KEY 也可以只指定为KEY.这么做的目的是与其它数据库系统兼容. PRIMARY KEY 是一个唯一 KEY,此时,所有的关键字列必须定义为NOT NULL.如果这些列没有被明确地定义为NOT NULL,MySQL应隐含地定义这些列. MYSQL教程KEY 即键值,是关系模型理论中的一部份,比如有主键(PRIMARY KEY),外键(Foreign KEY)等,用于数据完整性检否与唯一性约束等.而 INDEX 则处于实现层面,比如可以对表个的任意列建立索引,那么当建立索引的列处于SQL语句中的Where条件中时,就可以得到快速的数据定位,从而快速检索.至于UNIQUE INDEX,则只是属于INDEX中的一种而已,建立了UNIQUE INDEX表示此列数据不可重复,猜想MySQL对UNIQUE INDEX类型的索引可以做进一步特殊优化吧. MYSQL教程于是,在设计表的时候,KEY只是要处于模型层面的,而当需要进行查询优化,则对相关列建立索引即可. MYSQL教程KEY MYSQL教程KEY 是数据库的物理结构,包含两层含义,一是约束,偏重于约束和规范数据库的结构完整性,二是索引,辅助查询. MYSQL教程可见,key是同时具有constraint和index的意义. MYSQL教程INDEX MYSQL教程INDEX 也是数据库的物理结构,但他只有辅助查询作用,它会在创建时占用另外的空间.索引分为前缀索引、全文索引等.索引只是索引,不会去约束索引字段的行为. MYSQL教程PRIMARY KEY 和 UNIQUE KEY 的区别 MYSQL教程PRIMARY KEYs(主键) 和 UNIQUE KEYs(唯一键约束) 是类似的,PRIMARY KEY通常是一列,也有可能多列,通常由他来决定一行数据(row). 一张表只能有一个 PRIMARY KEY,但可以有很多 UNIQUE KEY. 当给一列设置为 UNIQUE KEY 之后,不能有两行在该列上有相同的数据. PRIMARY KEY 不允许有 NULL值,但是 UNIQUE KEY 可以. MYSQL教程修改表 MYSQL教程总结,相同点: MYSQL教程差异点: MYSQL教程alter table t add constraint uk_t_1 UNIQUE (a,b); insert into t (a,b ) values (null,1); # 不能重复 insert into t (a,null);#可以重复 MYSQL教程在MySQL中,对于一个PRIMARY KEY的列,MySQL已经自动对其建立了UNIQUE INDEX,无需重复再在上面建立索引了. MYSQL教程网上关于 PRIMARY KEY 和 UNIQUE INDEX 的一段解释: MYSQL教程Note that “PRIMARY” is called PRIMARY KEY not INDEX. MYSQL教程操作索引 MYSQL教程建立索引会占用磁盘空间的索引文件. MYSQL教程如果是 CHAR,VARCHAR 类型,length 可以小于字段实际长度;如果是 BLOB 和 TEXT类型,必须指定 length. MYSQL教程在创建表时创建索引: MYSQL教程
CREATE TABLE mytable(
ID INT NOT NULL,username VARCHAR(15) NOT NULL,INDEX [INDEXName] (username(length))
);
MYSQL教程删除索引 MYSQL教程 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |