mysql 创建 主键索引 唯一索引 全文索引 多列索引 添加索引

查看索引  show index from 数据库表名

alter table 数据库add index 索引名称(数据库字段名称)

PRIMARY KEY(主键索引)

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

UNIQUE(唯一索引)

ALTER TABLE `table_name` ADD UNIQUE (`column`)

INDEX(普通索引) mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) FULLTEXT(全文索引) ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

多列索引 ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

1.普通索引。 这是最基本的索引,它没有任何限制。它有以下几种创建方式: (1)创建索引:CREATE INDEX indexName ON tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB 和 TEXT 类型,必须指定length,下同。 (2)修改表结构:ALTER tableName ADD INDEX [indexName] ON (tableColumns(length))  (3)创建表的时候直接指定:CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ; 2.唯一索引。 它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式: (1)创建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length)) (2)修改表结构:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length)) (3)创建表的时候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length)); 3.主键索引 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLE testIndex(i_testID INT NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY KEY(i_testID)); 当然也可以用ALTER命令。

分类: Mysql

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏抠抠空间

MySQL之表操作

一、创建表   1、创建新表 #语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名...

36070
来自专栏云霄雨霁

数据更新语言DML

16800
来自专栏同步博客

MySQL常用语句

  今天天气很好,大晴天,心情也好好的。就将MySQL常用的语句总结一下,记录在随笔里,也顺便分享分享。日后,这篇随笔我将会持续更新,作为我自己的MySQL语句...

10720
来自专栏Java后端生活

MySQL(十三)DDL之库和表的管理

19140
来自专栏沃趣科技

MySQL8.0新特性——invisible indexes

MySQL 8.0版本中新增了invisible indexes(不可见索引)特性,索引被invisible后,MySQL优化器就会忽略该索引(无此特性时需要删...

526110
来自专栏散尽浮华

mysql操作命令梳理(1)-索引

1、创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。以下命令语句分别展...

23160
来自专栏破晓之歌

数据库练习

12220
来自专栏ml

mysql 查询数据库表结构

1.  1 mysql> describe tmp_log; 2 +----------+------------------+------+-----+---...

37380
来自专栏Android知识点总结

SpringBoot-14-MyBatis预热篇,MySQL小结

新建一个测试表:将sword_insert_test中test_name赋值为sword表中id大于5的name

24310
来自专栏文渊之博

mysql replace into 的使用情况

 发现,auto_increment并没有+1,而是针对原来的那一条id=4的记录进行了update,因为没有指定其他列(v,extra)的值,所以,updat...

18130

扫码关注云+社区

领取腾讯云代金券