MySQL数据库基础-进阶

52 阅读1分钟

概要

查询语句用法进阶

主键 PRIMARY KEY

外键 FOREIGN KEY

  1. 外键指向的列,要求是primary key也可以是unique
  2. 外键类型要和主键类型一致 长度可以不同
  3. 外键字段的值,必须在主键字段中出现过
  4. 外键字段可以是 NULL(前提是字段允许为NULL
  5. 一旦建立主外键关系,数据不能随意删除(因为存在已关联主外键的数据)
  6. CHECK 约束数据范围
    CREATE TABLE [tablename](
        [columnname] VARCHAR(6) CHECK (sex IN("man","woman"))
        [columnname] DOUBLE CHECK (sal > 1000 AND sal < 2000)
    )

索引

    -- 查询表是否有索引
    SHOW INDEX FROM [tablename];
    SHOW INDEXES FROM [tablename];
    SHOW KEYS FROM [tablename];
    
    --唯一索引
    CREATE UNIQUE INDEX [index_name] ON [tablename] ([columnname]);
    --普通索引
    CREATE INDEX [index_name] ON [tablename] ([columnname]);

    ALTER TABLE [tablename] ADD INDEX [index_name] ([columnname])
    
    --删除索引
    DROP INDEX [index_name] ON [tablename]
    --删除主键索引
    ALTER TABLE t26 DROP PRIMARY KEY
  1. 主键索引,主键自动的为主索引(类型为PRIMARY KEY
  2. 唯一索引(UNIQUE)
  3. 普通索引(INDEX),值可以重复
  4. 全文索引(FULLTEXT)试用于MyISAM,一般开发不使用mysql自带的索引,而是使用全文索引框架,Solr 和 ElasticSearch (ES)