简单的唯一索引:

可以创建一个唯一索引的表。唯一的索引意味着两个行不能拥有相同的索引值。这里是语法来创建索引的表

代码如下

CREATE UNIQUE INDEX index_name

ON table_name ( column1, column2,...);

可以使用一个或多个列上创建索引。例如,我们可以创建一个索引的使用在表tutorials_tbl的tutorial_author列上

代码如下

CREATE UNIQUE INDEX AUTHOR_INDEX

ON tutorials_tbl (tutorial_author)

可以创建一个简单的索引的表。只要省略UNIQUE关键字的查询创建一个简单的索引。简单的索引允许重复表中的值。

如果你想在一列以降序索引值,可以在列名后添加保留字DESC:

代码如下

mysql> CREATE UNIQUE INDEX AUTHOR_INDEX

ON tutorials_tbl (tutorial_author DESC)

ALTER命令添加和删除索引:

有四种类型的语句表添加索引:

代码如下

ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) :

这条语句添加一个主键,这意味着索引值必须是唯一的,不能是NULL。

代码如下

ALTER TABLE tbl_name ADD UNIQUE index_name (column_list):

这条语句创建一个索引,其值必须是唯一的(除NULL值,这可能会多次出现)。

代码如下

ALTER TABLE tbl_name ADD INDEX index_name (column_list):

这增加了一个普通的索引,其中的任何值,可能会出现多于一次。

代码如下

ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):

这将创建一个特殊的FULLTEXT索引,用于文本搜索的目的。

下面是这个例子,在现有的表添加索引。

代码如下

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

可以删除任何INDEX通过使用DROP子句和使用ALTER命令。试试下面的例子上面创建的索引下降。

代码如下

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

可以删除任何INDEX通过使用DROP子句t和使用ALTER命令。试试下面的例子上面创建的索引x。

ALTER命令来添加和删除PRIMARY KEY:

您可以添加主键,以及在相同的方式中。但要确保主键这是NOT NULL的列上。

这是在现有的表添加主键的例子。这将NOT NULL列,然后将其添加为一个主键。

代码如下

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;

mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

可以使用ALTER命令删除主键如下:

代码如下

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

要删除索引,这不是一个PRIMARY KEY,所以必须指定索引的名称。

显示索引信息:

您可以使用SHOW INDEX命令,列出所有相关联的索引表。垂直格式输出(指定由 G)往往是有用的这句话,以避免长时间行重叠:

试试下面的例子:

代码如下

mysql> SHOW INDEX FROM table_nameG

........

加索引

mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);

例子:

代码如下

mysql> alter table employee add index emp_name (name);

加主关键字的索引

mysql> alter table 表名 add primary key (字段名);

例子:

代码如下

mysql> alter table employee add primary key(id);

加唯一限制条件的索引

mysql> alter table 表名 add

unique 索引名 (字段名);

例子:

代码如下

mysql> alter table employee add unique emp_name2(cardnumber);

查看某个表的索引

mysql> show index from 表名;

例子:

代码如下

mysql> show index from employee;

删除某个索引

mysql> alter table 表名 drop index 索引名;

例子:

代码如下

mysql>alter table employee drop index emp_name;

总结索引与优化

1、选择索引的数据类型

MySQL支持很多数据类型,选择合适的数据类型存储数据对性能有很大的影响。通常来说,可以遵循以下一些指导原则:

(1)越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。

(2)简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储时间;以及用整型数据类型存储IP地址。

(3)尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。

mysql创建和修改索引_MySQL索引创建 删除 增加 修改命令相关推荐

  1. centos的mysql怎么删用户_linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤...

    linux/centos给Mysql创建用户.授权.查看.删除.修改密码.撤 linux/centos给Mysql创建用户.授权.查看.删除.修改密码.撤销权限 linux/centos给Mysql创 ...

  2. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  3. mysql or 创建索引_Mysql索引优化

    1.单表索引优化 单表索引优化分析 创建表 建表 SQL CREATE TABLE IF NOT EXISTS article( id INT(10) UNSIGNED NOT NULL PRIMAR ...

  4. mysql 如何添加索引_MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】...

    MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...

  5. mysql如何创建简单索引_mysql 如何创建索引呢,这个其实很简单

    mysql 如何创建索引? mysql 如何创建索引呢,这个其实很简单 create index或者为己有字段增加索引 ALTER TABLE `table_name` ADD UNIQUE (`co ...

  6. mysql 排序字段是否需要建索引_MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)...

    一.什么是索引? 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息. 二.索引的作用? 索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提高 ...

  7. mysql索引的创建与管理实验_mysql索引创建与管理笔记

    什么是索引 索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构. 其作用主要在于提高查询的速度,降低数据库系统的性能开销. 通过索引,查询数据不必读完记录的全部信息进行匹配,而是只查询索 ...

  8. mysql创建联合索引_mysql如何创建多个联合索引

    mysql创建多个联合索引的方法:可以使用CREATE INDEX或ALTER TABLE语句来创建.在创建联合索引时,应该仔细考虑列的顺序. MySQL中索引规则: 1.需要加索引的字段,要在whe ...

  9. mysql 创建表普通索引_MySQL索引篇,创建表时创建索引

    索引对于MySQL数据库查询速度具有无可取代的作用,一个合适的索引能给数据查询的效率带来巨大的提升,本文来给大家讲讲如何创建索引,索引的最佳创建方式是在建表的时候就确定好要索引的字段并建立好索引. 索 ...

最新文章

  1. Ubuntu 使用Git 使用
  2. 自动升级失败,缺少System.resources.dll?
  3. 【网络编程】之九、事件选择WSAEventSelect
  4. 利用一维数组输出杨辉三角
  5. 【英语学习】【WOTD】Parthian 释义/词源/示例
  6. Springboot 使用wangEditor3.0上传图片
  7. [原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
  8. Windows 10中Cisco *** Client提示Reason 442: failed to enable virtual adapter
  9. 牛客——数据库实战(1~30)
  10. Node:连接MySQL报错\lib\protocol\Parser.js:43 Cannot read property ‘query‘ of undefined
  11. 根据一个单词找所有的兄弟单词的思想如何处理
  12. ITEXT7 实现 PDF文档的合并与拆分
  13. 第二人生的源码分析(十四)人物角色的实现
  14. 这10部功夫片曾拿到金像奖最佳动作设计奖,李连杰主演的就有4部
  15. table在html是什么意思,html5中table指的是什么意思
  16. 图灵交互设计丛书《简约至上.交互式设计四策略》
  17. 人工神经网络具有的基本属性是什么?
  18. 开一间盈利的彩票店要做到什么?多店调研
  19. iOS开发中MD5加密算法的实现
  20. IceSSL插件配置

热门文章

  1. Java基础提高学习笔记2
  2. OSPF 224.0.0.5(AllSPFRouters)和224.0.0.6(AllDRouters)的区别
  3. docker之快速部署gogs git
  4. python中的深浅拷贝的区别
  5. Vue 中的列表渲染
  6. hashMap 和linkedHashMap
  7. initrd in linux 2.6.32.27
  8. 架构师必读!以图文的方式解锁 HTTPS原理,10分钟还原HTTPS真像!
  9. MathType中如何快速输入空心字母
  10. 6.4 Ext.core.DomQuery 单实例查询选择器,通过正则表达式查找DOM或者HTM