精华内容
下载资源
问答
  • 创建唯一索引

    2020-05-01 11:12:04
    唯一索引是不允许任何两行具有相同索引值胡索引。当现有胡数据存在重复胡键值,大多数数据库不允许将新创建唯一索引一起保存。数据库还可能防止添加在表创建重复键值胡新数据。 ...
       唯一索引是不允许任何两行具有相同索引值胡索引。当现有胡数据存在重复胡键值时,大多数数据库不允许将新创建胡唯一索引于表一起保存。数据库还可能防止添加将在表中创建重复键值胡新数据。
    
    展开全文
  • mysql中unique创建唯一索引

    千次阅读 2018-06-24 21:30:19
    很多情况下我们都会要求某些字段不可重复,如用户名、手机号等,我们可以MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一...本人也目前也是小白一个,网上查得有人建表这样添加唯一索引...

    很多情况下我们都会要求某些字段不可重复,如用户名、手机号等,我们可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。主键约束要保证数据既不可以为空也不可重复,而UNIQUE唯一索引,是可以允许数据为空的,而且唯一索引的主要作用就是避免数据重复(不是提高效率哦)。
    本人也目前也是小白一个,在网上查得有人建表时这样添加唯一索引:

    DROP TABLE
    IF EXISTS `t_user`;
    
    CREATE TABLE `t_user` (
        ID VARCHAR (100) NOT NULL COMMENT '主键',
        NAME VARCHAR (30) NOT NULL COMMENT '用户昵称',
        PASSWORD VARCHAR (100) NOT NULL COMMENT '用户密码',
        EMAIL VARCHAR (50) NOT NULL COMMENT '用户邮箱',
        PHONENUMBER VARCHAR (20) NOT NULL COMMENT '用户手机号码',
        PRIMARY KEY (`ID`),
        UNIQUE(NAME, PHONENUMBER)
    );

    但是我在添加数据时发现,这个唯一约束只对括号里的第一个字段NAME有作用,而对后面的PHONENUMBER没有作用(无论后面添加几个都是只对第一个有用)。也有说如果允许字段为空唯一索引就会失效,可是我这里需要创建索引的字段也没有允许为空的
    不过如果无需命名UNIQUE,只创建一个唯一索引的话,这是可以的

    还有一种方式说如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,可以使用以下SQL

    DROP TABLE
    IF EXISTS `t_user`;
    
    CREATE TABLE `t_user` (
        ID VARCHAR (100) NOT NULL COMMENT '主键',
        NAME VARCHAR (30) NOT NULL COMMENT '用户昵称',
        PASSWORD VARCHAR (100) NOT NULL COMMENT '用户密码',
        EMAIL VARCHAR (50) NOT NULL COMMENT '用户邮箱',
        PHONENUMBER VARCHAR (20) NOT NULL COMMENT '用户手机号码',
        PRIMARY KEY (`ID`),
        CONSTRAINT uc_user UNIQUE (NAME, EMAIL)
    );
    

    可是不知道为什么我测的还是有问题,如果括号里两个字段,还是只对第一个字段有作用,如果有三个及三个以上的字段,这个唯一索引就失效了,对这三个任何一个字段都没有作用
    不过既然有人这么写,他应该是测试没问题的,可是在我这里就是没有作用,所以最后,我只能一条一条写了(也可以不命名,好像很笨的样子,不过测试通过了)

    ID VARCHAR (100) NOT NULL COMMENT '主键',
        NAME VARCHAR (30) NOT NULL COMMENT '用户昵称',
        PASSWORD VARCHAR (100) NOT NULL COMMENT '用户密码'
        EMAIL VARCHAR (50) NOT NULL COMMENT '用户邮箱',
        PHONENUMBER VARCHAR (20) NOT NULL COMMENT '用户手机号码',
        PRIMARY KEY (`ID`),
        UNIQUE KEY nameindex(NAME),
        UNIQUE KEY emailindex(EMAIL),
        UNIQUE KEY PHONENUMBERindex(PHONENUMBER)

    学习更多:
    http://www.runoob.com/mysql/mysql-handling-duplicates.html
    https://www.aliyun.com/jiaocheng/1107895.html?spm=5176.100033.2.11.AjpvRQ
    http://www.w3school.com.cn/sql/sql_unique.asp

    展开全文
  • 创建Primary key主键和Unique唯一索引

    千次阅读 2016-10-28 11:54:59
    MySQL中,我们进行数据存储,为了避免插入重复数据,常常通过给数据表添加主键或者索引的方法来解决,插入过程中,如果遇到重复数据就会提示“uplicate entry 'D550-49' for key 'cv_series'”的错误,防止...
    在MySQL中,我们进行数据存储时,为了避免插入重复数据,常常通过给数据表添加主键或者索引的方法来解决,在插入过程中,如果遇到重复数据就会提示“uplicate entry 'D550-49' for key 'cv_series'”的错误,防止我们插入重复的数据,我们可以结合 on duplicate key 方法来进行解决重复问题,将重复数据进行指定字段更新。
    

    一、新建表的时候直接添加主键和Unique索引:

    CREATE TABLE a_tests (
        id int(11) NOT NULL,
        sid int(11) NOT NULL,
        name VARCHAR(100) DEFAULT NULL,
        start_year int(4) DEFAULT NULL COMMENT '车型开始年款',
        end_year INT(4) DEFAULT NULL COMMENT '车型结束年款',
        PRIMARY KEY (id,sid,name),
        UNIQUE INDEX sn(sid,name)
    );

    结果:
    这里写图片描述

    二、表已经存在,给表新增主键和Unique索引:
    1、添加primary key 主键

    ## 添加primary key 主键
    ALTER TABLE mt_cv_brand ADD PRIMARY KEY(id);
    alter table mt_cv_brand add primary key(id);

    2、创建unique唯一索引

    ## 创建unique唯一索引
    ALTER TABLE mt_brand ADD UNIQUE ( `name` );
    或者
    CREATE UNIQUE INDEX cv_name on mt_cv_brand(name);
    
    ## 添加联合索引
    alter table mt_series add index (name,bid);
    -- 已有表数据中数据不能重复,否则报错
    ALTER TABLE cv_series ADD UNIQUE INDEX(name,bid,car_type);

    3、删除已有索引:

    ##  删除唯一索引
    ALTER TABLE cv_brand DROP INDEX name;
    
    ALTER TABLE cv_series DROP INDEX cv_series;
    ALTER TABLE cv_series ADD UNIQUE INDEX cv_series(short_name,bid,car_type);
    展开全文
  • 【例】创建表名为 score 的数据表,并该表的 id 字段上建立索引,SQL 语句如下:此时id字段上建立的普通索引名字为id,id字段建立的,索引方法为BTREE,索引类型为normal创建唯一索引创建唯一索引时,使用 UNIQUE ...

    普通索引创建

    创建普通索引,即不添加 UNIQUE、FULLTEXT 等任何参数。

    【例】创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下:

    此时在id字段上建立的普通索引名字为id,在id字段建立的,索引方法为BTREE,索引类型为normal

    创建唯一索引

    创建唯一索引时,使用 UNIQUE 参数进行约束。

    【例】创建表名为 address 的数据表,并在该表的 id 字段上建立唯一索引,SQL 语句如下:

    此时在id字段上建立的唯一索引,索引名字为address,索引方法BTREE为,索引类型为Unique

    创建前缀索引(某字段前*个字节)

    创建单列索引,即在数据表的单个字段上创建索引。创建该类型索引不需要引入约束参数,用户在建立时只需要指定单列字段名,即可创建单列索引。

    【例】创建名称为 telephone 的数据表,并指定在 tel 字段上建立名称为 tel_num 的单列索引,SQL 语句如下:

    此时在tel字段上建立的普通索引,索引名字为tel_num,索引方法为BTREE,索引类型为normal,索引取的是tel字段前20为字节建立索引

    前缀索引无法使用覆盖索引

    创建全文索引

    全文索引只能作用在 CHAR、VARCHAR、TEXT、类型的字段上。创建全文索引需要使用 FULLTEXT 参数进行约束。

    【例】创建表名为 cards 的数据表,并在该表的 name 字段上建立全文索引,SQL 语句如下:

    此时在name字段上建立的全文索引,索引名字为cards_number,索引方法为空(没有),索引类型为FULL TEXT

    创建多列索引

    创建多列索引即指定表的多个字段即可实现。

    【例】创建名称为 information 的数据表,并指定 name 和 sex 为 多列索引,SQL 语句如下:

    此时在name,sex字段上建立的普通联合索引,索引名字为info,索引方法为BTREE,索引类型为normal

    创建空间索引(在MyISAM上)

    创建空间索引时,需要设置 SPATIAL 参数。同样,必须说明的是,只有 MyISAM 类型表支持该类型索引。而且,索引字段必须有非空约束。

    【例】创建一个名称为 list 的数据表,并创建一个名为 listinfo 的空间索引,SQL语句如下:

    goods 字段上已经建立名称为 listinfo 的空间索引,其中 goods 字段必须不能为空,且数据类型是 GEOMETRY,该类型是空间数据类型。空间类型不能用其他类型代替,否则在生成空间素引时会产生错误且不能正常创建该类型索引。

    空间类型除了上述示例中提到的 GEOMETRY 类型外,还包括如 POINT、LINESTRING、POLYGON 等类型,这些空间教据类型在平常的操作中很少被用到。

    参考

    展开全文
  • 数据库的唯一索引

    千次阅读 2016-12-15 16:55:44
     当现有的数据中存在重复的键值,大多数数据库不允许把新创建唯一索引一起保存。数据库还可能防止添加在表创建重复键值的新数据。主键索引数据库经常有一列或列组合,其值唯一标识中的每一行。该列...
  • 创建数据表时添加主键约束: CREATE TABLE 表名( 字段1 数据类型 PRIMARY KEY, ... ); 创建数据表时添加多个主键约束: CREATE TABLE 表名( 字段1 数据类型 , ... 字段n 数据类型, ...
  • 主键和唯一索引

    2017-02-21 17:45:13
    主键和唯一索引 ...系统在创建该索引检查是否有重复的键值,并在每次使用 INSERT 或 UPDATE 语句添加数据时进行检查。 1、主键不允许有空值,唯一索引允许有空值(唯一索引不允许有重复,但 NULL 2、主键
  • mysql 如何创建索引

    2019-07-08 23:15:32
    前言 当数据量特别大,通常我们会对数据库...执行CREATE TABLE语句可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为增加索引。 ALTER TABLE 1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE ...
  • 第一,通过创建唯一索引,可以保证数据库中每一行数据唯一性。第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速之间的连接,特别是实现数据的参考完整性方面特别有...
  • 索引

    2019-06-13 23:08:18
    文章目录索引创建表时添加索引创建多列索引创建全文索引创建普通索引创建唯一索引添加索引已存在的表上创建索引删除索引实际应用创建一条包含50000条记录的表 索引 索引的创建和维护会耗费大量的时间和磁盘空间,...
  • 前言 昨天咱们简单介绍了MySQL索引的整体概述,让大家有一个初步的认识。...使用CREATE TABLE创建表时,除了可以定义列的数据类型,还可以定义主键约束、外键约束或者唯一性约束, 而不论创建那种约束.
  • 第一,通过创建唯一索引,可以保证数据库中每一行数据唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速之间的连接,特别是实现数据的参考完整性方面特别有...
  • 数据库索引

    2018-08-28 16:31:00
    当现有数据中存在重复的键值,大多数数据库不允许将新创建唯一索引一起保存。数据库还可能防止添加在表创建重复键值的新数据。例如,如果employee中职员的姓(lname)上创建唯一索引,则任何两个...
  • 唯一索引在创建唯一索引时要不能给具有相同的索引值。 主键索引:在我们给一个字段设置主键的时候,它就会自动创建主键索引,用来确保每一个值都是唯一的。 聚集索引:我们在添加数据的顺序,与我们创建的...
  • MySQL之索引

    2020-05-27 17:44:43
    索引普通索引创建索引修改结构(添加索引)创建表的时候直接指定删除索引的语法唯一索引创建索引修改结构创建表的时候直接指定MySQL索引优化策略 索引是存储引擎用于快速查找记录的一种数据结构。MySQL索引的建立...
  • MySQL 索引

    2017-05-15 14:13:28
     当现有的数据中存在重复的键值,大多数数据库不允许把新创建唯一索引一起保存。数据库还可能防止添加在表创建重复键值的新数据。主键索引数据库经常有一列或列组合,其值唯一标识中的每一行。该列...
  • 章节目录索引的好处索引的坏处什么情况下添加索引什么情况下不添加索引索引的添加方式1、索引的好处通过建立唯一索引可以保证每一行数据的唯一性可以大大增加数据的检索速度,也就是创建索引的最主要的原因可以加速...
  • mysql数据库索引

    2017-03-22 21:17:00
    索引是对数据库中一列或多列的值进行排序的一种...当现有数据中存在重复的键值,大多数数据库不允许将新创建唯一索引一起保存。数据库还可能防止添加在表创建重复键值的新数据。 主键索引: 数据库...
  • Oracle索引(1)

    2020-12-07 22:58:44
    创建索引时自动添加唯一性约束,通过使用唯一索引可以保证数据库中每一行数据唯一性. 通过索引可以加快之间连接, 使得数据库中进行多连接查询是速度明显增强. 使用索引后,分组和排序字句进行...
  • SQL Server 索引介绍

    2021-01-19 22:18:38
    一,索引的概述 1,概念: 数据库索引是对数据表中一个或多个列的值进行排序的结构,就像一本书的目录一样,索引提供了在行中快速查询特定行的能力. 2,优缺点: ...3,当向一个包含索引的列的数据表添加
  • 索引分为:一般索引、唯一索引、组合索引、全文索引、主键索引。其中全文索引只能数据库引擎是myisam且只能给字段是char,varcahr text上加全文索引。 创建索引的优点 大大加快了数据检索的速度 加快了...
  • 数据库-数据库的索引

    2020-03-12 19:10:46
    数据库索引是数据库管理...当现有数据中存在重复的键值,大多数数据库不允许将新创建唯一索引一起保存。数据库还可能防止添加在表创建重复键值的新数据。例如,如果employee中职员的姓(lname)上创...
  • 数据库索引存储结构

    千次阅读 2018-11-08 17:16:08
    数据库索引存储结构 主键索引(PRIMAY KEY):  一个中只能有一个主键,创建主键自动创建主键索引,该索引是唯一索引,...系统在创建该索引检查是否有重复的键值,并在每次使用INSERT或UPDATE语句添加...
  • 索引和约束

    2019-09-28 02:47:01
    2.创建索引时自动添加唯一性约束,确保每一条数据唯一性 3.可以加快之间的链接,提高多查询的速度 4.分组和排序子句进行数据汇总的时候,显著减少查询中分组和排序的时间。 每张都会有一个...
  • 每个InnoDB都有一个特殊的索引,称为聚簇...PRIMARY KEY上定义a ,InnoDB将其用作聚簇索引。为您创建的每个定义一个主键。如果没有逻辑唯一且非空的列或列集,请添加一个新的 自动递增 列,其值将自动填充...
  • sql索引

    2012-07-03 00:23:00
    一 .聚集索引聚集索引的页级别包含了索引键,还包含数据页,因此,关于 除了...SQL SERVER 中,所有的聚集索引都是唯一的,如果在创建聚集索引时没有指定UNIQUE 关键字,SQL SERVER 会在需要通过往记录中添加一个...
  • 唯一索引在创建唯一索引时不能具有相同的索引值。 主键索引:在我们给一个字段设置主键的时候,它就会自动创建主键索引,用来确保每一个值都是唯一的。 聚集索引:我们在添加数据的顺序,...
  • SQL--索引,DDL,DML,

    2018-05-25 22:41:28
    索引索引依赖于表建立的,其中注明了表的各个值所在的位置。 实际上,一个表的存储是由两部分组成的,一部分用来存放表的数据页面;... 当数据表中的记录被添加、删除、修改,数据库系统需要维护索...

空空如也

空空如也

1 2 3 4 5
收藏数 92
精华内容 36
关键字:

在创建数据表时添加唯一索引