zoukankan      html  css  js  c++  java
  • Mysql的unique和primary key

    mysql数据库的使用过程中,uniqueprimary key 是我们比较常用的两种索引了,本文章主要对上述两种索引做一个简要的说明和总结.

    1.区别

    定义了UNIQUE约束的字段中不能包含重复值,可以为一个或多个字段定义UNIQUE约束UNIQUED 可空,可以在一个表里的一个或多个字段定义;
    unique就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用. 比如说,如果你有一个person_Info,并且表中有个身份证的column,那么你就可以指定该字段unique.

    PRIMARY KEY不可空不可重复,在一个表里可以定义联合主键;简单的说, primary key = unique + not null

    Unique : 唯一索引,不可重复,可以为空,一张表可以有多个.主要用在一些不可重复的字段上,比如用户名,身份证,之类...

    Primary key : 唯一索引,不可重复,一张表只能有一个 . 不可为空.主要用在表的主键id

    2.创建

    在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEXALTER TABLE来为表增加索引。

     

    2.1ALTER TABLE 对已有的表添加索引
    ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

    1 #创建普通索引
    (1.)ALTER TABLE table_name ADD INDEX index_name (column_list) 3 #创建UNIQUE索引 4 (2.)ALTER TABLE table_name ADD UNIQUE (column_list) 5 #创建PRIMARY KEY索引 6 (3.)ALTER TABLE table_name ADD PRIMARY KEY (column_list)

    其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。

     

    2.2CREATE INDEX
    CREATE INDEX可对表增加普通索引或UNIQUE索引。

    1  #创建普通索引
    (1)CREATE INDEX index_name ON table_name (column_list) 2 #创建UNIQUE索引 3 (2)CREATE UNIQUE INDEX index_name ON table_name (column_list)

    table_nameindex_namecolumn_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引

     

    2.3. CREATE TABLE

    索引也可以在创建表(CREATE TABLE)的同时创建。

     

    (1)创建新表的同时创建该表的主键.语法格式:

    CONSTRAINT PRIMARY KEY [索引类型] (<列名>,…)

     

    (2)在创建新表的同时创建该表的索引,语法格式:

    KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)

     

    (3)创建新表的同时创建该表的唯一性索引,语法格式:

    UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

    3.删除索引

    1 (1)DROP INDEX index_name ON talbe_name
    2 
    3 (2)ALTER TABLE table_name DROP INDEX index_name
    4 
    5 (3)ALTER TABLE table_name DROP PRIMARY KEY

    其中,前两条语句是等价的,删除掉table_name中的索引index_name
    3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。

     

    4.查看索引

     

    1 (1)show index from tblname;
    2 (2)show keys from tblname;

     

    本文引自:https://www.cnblogs.com/nyist-xsk/p/7283422.html

     

     

     

     

  • 相关阅读:
    sublime生成html快捷标签布局
    vue.js选项卡动态组件
    textarea内容限制字数
    60s验证等待
    vue.js显示隐藏
    CSS强制性换行
    Ultra Pull To Refresh下拉刷新
    Open经验库网址
    Fresco实例
    解决LinearLayout中控件不能居右对齐
  • 原文地址:https://www.cnblogs.com/Anonymity-zhang/p/12667276.html
Copyright © 2011-2022 走看看