美文网首页mysql学习
mysql--一些关键字

mysql--一些关键字

作者: 井湾村夫 | 来源:发表于2018-09-30 16:20 被阅读47次

primary key 和unique key

  在实际工作中,查看表设计总能看到这样的情况,一个primary,一个unique,还有一个key;

 CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` char(50) NOT NULL DEFAULT '' COMMENT 'uid',
  `type` mediumint(1) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `type` (`type`),
  UNIQUE KEY `uid` (`uid`)
)

primary key 是主键的意思,那unique和key是什么意思呢?于是上网查了查,具体是这样说的。

  1. 先说key
    如果只是key的话,就是普通索引;mysql的key和index多少有点令人迷惑,单独的key和其它关键词结合的key(primary key)实际表示的意义是不同,这实际上考察对数据库体系结构的了解的。
    key 是数据库的物理结构,它包含两层意义和作用:
    一是约束(偏重于约束和规范数据库的结构完整性),
    二是索引(辅助查询用的)。
    包括primary key, unique key, foreign key 等。
  2. primary key
    有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个主键索引;PRIMARY KEY 约束:唯一标识数据库表中的每条记录;主键必须包含唯一的值; 主键列不能包含 NULL 值;每个表都应该有一个主键,并且每个表只能有一个主键。(PRIMARY KEY 拥有自动定义的 UNIQUE 约束)
  3. 'unique key '
    也有两个作用,一是约束作用(constraint),规范数据的唯一性,但同时也在这个key上建立了一个唯一索引;
    UNIQUE 约束:唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。注意: (每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束)
  4. foreign key
    也有两个作用,一是约束作用(constraint),规范数据的引用完整性,但同时也在这个key上建立了一个index;
    由此而知,key 是有两种作用,一种是constraint,另一种又建立了index,只不过index使用的就是这个constraint或key

index

  index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。索引要分类的话,分为前缀索引、全文本索引等;
  因此,索引只是索引,它不会去约束索引的字段的行为(那是key要做的事情)。如,create table t(id int,index inx_tx_id (id));

总结,最后的释疑:

(1)我们说索引分类,分为主键索引(必须指定为“PRIMARY KEY”,没有PRIMARY Index)、唯一索引(unique index,一般写成unique key)、
普通索引(index,只有这一种才是纯粹的index)等,也是基于是不是把index看作了key。比如 create table t(id int, unique indexinx_tx_id (id));--index当作了key使用
(2)最重要的也就是,不管如何描述,需要理解index是纯粹的index(普通的key,或者普通索引index),还是被当作key(如:unique index、unique key和primary key),若当作key时则会有两种意义或起两种作用。

相关文章

  • mysql--一些关键字

    primary key 和unique key   在实际工作中,查看表设计总能看到这样的情况,一个primary...

  • MySQL--启动和关闭MySQL服务

    原文地址: MySQL--启动和关闭MySQL服务 1.Windows下 启动服务 mysqld --consol...

  • [MySQL] [ERR] 2006 - MySQL serve

    发生原因: 内存过小 解决方案: Navicat --> 工具-->服务器监控-->MySQL-->变量 找到ma...

  • mysql--字符串连接之concat、concat_ws、gr

    mysql--字符串连接之concat()、concat_ws()、group_concat() 字符串连接包含三...

  • robotframework框架学习(一)

    常用关键字的学习 一些是Builtln关键字,一些是selenium2Library关键字 1. Log功能是打印...

  • Mysql--字符集和比较规则

    Mysql--字符集和比较规则 具体细节 请去掘金购买《MySQL 是怎样运行的:从根儿上理解 MySQL》 字符...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • MySQL--进阶

    数据库设计 需求分析 需求设计 概要设计 抽取实体:业务模型->实体模型(类) 数据库设计:业务模型/实体模型->...

  • mysql--索引

    来源:http://www.cnblogs.com/tgycoder/p/5410057.html https:/...

  • MySql--练习

    mysql练习 涉及到的表: 员工表: 部门表: 工资等级表: 1.取得每个部门最高薪水的人员名称 2.求出薪水在...

网友评论

    本文标题:mysql--一些关键字

    本文链接:https://www.haomeiwen.com/subject/eprwoftx.html