MySQL索引创建 删除 增加 修改命令

简单的唯一索引:

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

 代码如下 复制代码
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、一个特殊的值或者一个空串代替空值。

时间: 2024-09-26 15:47:02

MySQL索引创建 删除 增加 修改命令的相关文章

mysql索引创建修改删除

创建索引 MySQL创建索引的语法如下: 1 2 3 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...) 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL]中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引.全文索引.空间索引三种不同的索引类型.如果我们不指定任何关键字,则默认为普通索引.index_

iptables规则配置 增加、删除和修改命令

介绍 iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置. Iptables命令的管理控制选项 -A(append) 在指定链的末尾添加一条新的规则 -I (insert)在指定链中插入一条新规则,为指明插入位置 -D(delete)删除制定链里的某条规则 -R (replace)修改.替换

solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询

1      Solrj的使用 1.1     什么是solrj Solrj是访问solr服务的java程序客户端.   1.2     需求 使用solrj调用solr服务实现对索引库的增删改查操作. 1.3     环境准备 l  Solr:4.10.3 l  Jdk环境:1.7.0_72(solr4.10 不能使用jdk1.7以下) l  Ide环境:eclipse indigo 1.4     工程搭建 1.4.1   第一步:创建java工程 1.4.2   第二步:添加jar l 

mysql 索引创建与删除代码

创建索引利用create index create [unique|fulltext|spatial] index index_name    [using index_type]    on tbl_name (index_col_name,...) index_col_name:    col_name [(length)] [asc | desc] 删除索引利用drop index drop index 索引名 好了下面我们先来看一款创建索引的简单实例 create index part_

Oracle创建删除导入导出命令行总结

说明: 在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后的密码(创建数据库时输入的密码) 如果要创建新的用户就必须以system或者sysman(这二者的权限最大)的身份登录后才可创建 创建用户格式:create user 用户名 identified by 密码(例如:create user cht identified by cht;) 创建完成后,必须分配权限,否则连不上数据库和sqlplus. 因此要做:grant c

mysql中创建/删除数据库方法

创建数据库 命令:  代码如下 复制代码 create database <数据库名> 例1: 建立一个名为xhkdb的数据库  代码如下 复制代码 1.CREATE DATABASE 数据库名; 2.GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码'; 3.SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASS

MySql存储过程 创建删除与实例

mysql教程存储过程是带参数的存储过程(动态执行sql语句),该mysql存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有调用方式: mysql 5.0 新特性教程是为需要了解5.0版本新特性的mysql老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",   call getusersdynamic('age<=30','');   /********动态查询用户的信息********/    create procedure ge

mysql 如何创建索引?mysql创建索引

mysql索引作用 在索引列上,除了有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. mysql索引创建规则: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引 4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: 5.索引应该建在选择性高的字段上: 6.索引应该建在小字段上,对于大的文本字段甚至超长字

添加mysql索引的3条原则

一,索引的重要性 索引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行.表越大,花费的时间越多.如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据.注意如果你需要访问大部分行,顺序读取要快得多,因为此时我们避免磁盘搜索. 假如你用新华字典来查找"张"这个汉字,不使用目录的话,你可能要从新华字典的第一页找到最后一页,可能要花二个小时.字典越厚呢,你花的时间就越多.现在你使用目录来