精华内容
下载资源
问答
  • MySQL 复合主键(Day02)

    千次阅读 2018-10-15 17:21:49
    主键约束是表中的某一,也可以是表中多个所构成的一个组合,其中有多一个列组合而成的主键称为复合主键 在MsSQL中,主键必须遵循以下规则: 1.每个表只能定义一个主键 2.唯一性原则,主键的值也成只为键值,...

    主键约束

    主键约束是表中的某一列,也可以是表中多个列所构成的一个组合,其中有多一个列组合而成的主键称为复合主键

    在MsSQL中,主键列必须遵循以下规则:

    1.每个表只能定义一个主键

    2.唯一性原则,主键的值也成只为键值,必须能够唯一标识表中的每一条记录,且不能为NULL,也就是说一张表中两个不同的行

    在主键上不能有相同的值。

    3.最小化规则.复合主键不能包含不必要的多余列,也就是说,当从一个复合主键中删除一列后,如果剩下的列构成的主键仍能够满足唯一性原则,那么这个复合主键是不正确的。

    4.一个列明在符合主键中只能出现一次。

     

    有多一个列组合而成的主键称为复合主键

    复合主键

    什么是主键约束:(在一个数据表中通过多个字段作为主键来确定一条记录,那么,多个字段组成的就是复合主键 )

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    (下文摘选自-作者:beautifulsarah ,应博主要求,转载请注明出处
    来源:CSDN 
    原文:https://blog.csdn.net/beautifulsarah/article/details/53502109?utm_source=copy )

    所谓的复合主键 就是指你表的主键含有一个以上的字段组成 
    比如 
    create table test 

       name varchar(19), 
       id number, 
       value varchar(10), 
       primary key (name,id) 
    )

    上面的name和id字段组合起来就是你test表的复合主键 
    它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 
    一般情况下,主键的字段长度和字段数目要越少越好
    --------------------- 

    为什么要使用主键约束:

    (以下内容摘选自-作者:南极娃娃鱼 )应博主要求,转载请注明出处

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    来源:CSDN 
    原文:https://blog.csdn.net/wangyuchun_799/article/details/49329649?utm_source=copy 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    最近学习一点数据库的基本知识,被一个问题困惑了许久:主键是唯一的索引,那么为何一个表可以创建多个主键呢?

    其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在表中创建了一个ID字段,自动增长,并设为主键,这个是没有问题的,因为“主键是唯一的索引”,ID自动增长保证了唯一性,所以可以。

    此时,我们再创建一个字段name,类型为varchar,也设置为主键,你会发现,在表的多行中你是可以填写相同的name值的,这岂不是有违“主键是唯一的索引”这句话么?

    所以我才说“主键是唯一的索引”是有歧义的。应该是“当表中只有一个主键时,它是唯一的索引;当表中有多个主键时,称为复合主键,复合主键联合保证唯一索引”。

    为什么自增长ID已经可以作为唯一标识的主键,为啥还需要复合主键呢。因为,并不是所有的表都要有ID这个字段啊哈哈,比如,我们建一个学生表,没有唯一能标识学生的ID,怎么办呢,学生的名字、年龄、班级都可能重复,无法使用单个字段来唯一标识,这时,我们可以将多个字段设置为主键,形成复合主键,这多个字段联合标识唯一性,其中,某几个主键字段值出现重复是没有问题的,只要不是有多条记录的所有主键值完全一样,就不算重复。
    --------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------

    创建主键约束有两种方法:

    1.create table tb_user(

    id int auto_increment primary key,

    user varchar (30)  not null,

    createtime daretime);

    方法二:

    create table tb_student(

    id int auto_increment,

    name varchar(30) not null,

    sex varchar(2),

    classid int not null,

    birthday date,

    PRIMARY KEY(id,classid)

    );

    如果表中仅由表中的某一列所构成,那么以上两种方法均可定义主键约束,如果主键有表中多个列所构成,那么只能用第二种方法来定义主键约束,另外,定义主键约束后,MySQL会自动为主键创建一个唯一索引,默认名为primary,也可以修改其他的名字。

    展开全文
  • mysql表的组合索引是由表的多字段的拼接成的主键,来形成唯一性。和以往单个的普通主键如id(自增长)的区别是一个字段主键和多个字段的区别。组合索引就是复合索引。如果一个表有id,name,sex,nunber三个字段,...

    mysql表的组合索引是由表的多列字段值的拼接成的主键,来形成唯一性。和以往单个列的普通主键如id(自增长)的区别是一个字段主键和多个字段的区别。

    组合索引就是复合索引。

    如果一个表有id,name,sex,nunber三个字段,那普通主键表的主键为id值区分唯一性。联合主键为name+number值来区别唯一性,或name+sex+number拼接的值来区分唯一性。

    组合索引

    1.新建表的设置create table test(

    id int(10) not null auto_increment,

    name varchar(20) not null,

    sex int(1) not null,

    primary key (id,name,sex)

    );

    ba514ebdee4fde24d4a81ed520245350.png

    2.已有表修改为组合索引alter table 表名 add index index_name (name,sex,number);

    *如果执行上面操作提示表不能有多个主键错误时,需要先清理主键约束,再执行添加。alter table 表名 DROP PRIMARY KEY add primary key (字段1,字段2,字段3);

    3.适用场景举例

    文章管理中的章节、小节、页码字段形成组合索引,索引先会找到章节再找到对应的小节,这样就提高了查询的效率。

    展开全文
  • mysql表的组合索引是由表的多字段的拼接成的主键,来形成唯一性。和以往单个的普通主键如id(自增长)的区别是一个字段主键和多个字段的区别。组合索引就是复合索引。如果一个表有id,name,sex,nunber三个字段,...

    mysql表的组合索引是由表的多列字段值的拼接成的主键,来形成唯一性。和以往单个列的普通主键如id(自增长)的区别是一个字段主键和多个字段的区别。

    组合索引就是复合索引。

    如果一个表有id,name,sex,nunber三个字段,那普通主键表的主键为id值区分唯一性。联合主键为name+number值来区别唯一性,或name+sex+number拼接的值来区分唯一性。

    组合索引

    1.新建表的设置create table test(

    id int(10) not null auto_increment,

    name varchar(20) not null,

    sex int(1) not null,

    primary key (id,name,sex)

    );

    ba514ebdee4fde24d4a81ed520245350.png

    2.已有表修改为组合索引alter table 表名 add index index_name (name,sex,number);

    *如果执行上面操作提示表不能有多个主键错误时,需要先清理主键约束,再执行添加。alter table 表名 DROP PRIMARY KEY add primary key (字段1,字段2,字段3);

    3.适用场景举例

    文章管理中的章节、小节、页码字段形成组合索引,索引先会找到章节再找到对应的小节,这样就提高了查询的效率。

    展开全文
  • mysql表的组合索引是由表的多字段的拼接成的主键,来形成唯一性。和以往单个的普通主键如id(自增长)的区别是一个字段主键和多个字段的区别。组合索引就是复合索引。如果一个表有id,name,sex,nunber三个字段,...

    mysql表的组合索引是由表的多列字段值的拼接成的主键,来形成唯一性。和以往单个列的普通主键如id(自增长)的区别是一个字段主键和多个字段的区别。

    组合索引就是复合索引。

    如果一个表有id,name,sex,nunber三个字段,那普通主键表的主键为id值区分唯一性。联合主键为name+number值来区别唯一性,或name+sex+number拼接的值来区分唯一性。

    组合索引

    1.新建表的设置create table test(

    id int(10) not null auto_increment,

    name varchar(20) not null,

    sex int(1) not null,

    primary key (id,name,sex)

    );

    2.已有表修改为组合索引alter table 表名 add index index_name (name,sex,number);

    *如果执行上面操作提示表不能有多个主键错误时,需要先清理主键约束,再执行添加。alter table 表名 DROP PRIMARY KEY add primary key (字段1,字段2,字段3);

    3.适用场景举例

    文章管理中的章节、小节、页码字段形成组合索引,索引先会找到章节再找到对应的小节,这样就提高了查询的效率。

    展开全文
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键。主...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL主键约束是一个或者...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键。主键...
  • MySQL主键

    2020-03-13 16:44:52
    “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者列的...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。 主键应该遵守下面的规则: 每个表只能定义一个...
  • Mysql 主键

    2019-05-20 09:59:00
    【1】主键 主键(PRIMARY KEY),也称“主键约束”。 MySQL主键约束是一个或者多个列的组合,其能唯一地标识表中的...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。 【3】主...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者列的组合,其能唯一地标识表中的每一行。...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该...
  • 定义:主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL主键约束是一个...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键。主键...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者列的组合,其能唯一地标识表中的每一行。...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该...
  • phpmyadmin主键能重复么主键(PRIMARY KEY)的完整称呼是“主键约束”。...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键...
  • 定义:主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL主键约束是一个...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键。主键...
  • 主键 主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL主键约束是一个或者列的组合,...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则: 每个表只能...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者列的组合,其能唯一地标识表中的每一行。...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者列的组合,其能唯一地标识表中的每一行。...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该...
  • Oracle数据库联合主键

    千次阅读 2018-09-13 01:25:03
     主键:在Oracle中,主键指能唯一标识一条记录单个数据表或联合数据表(联合主键|复合主键)。主键用到数据 表数据不能包含空值。而且,一张表只能包含一个主键。 2、作用:  数据表联合主键组合...
  • MySQL主键(PRIMARY KEY)

    2020-12-14 18:14:32
    MySQL主键约束是一个或者列的组合,其能唯一地标识表中的每一行。这样的一或多称为表的主键,通过它可以强制表的实体完整性。 1、在创建表时设置主键约束 在字段后面直接添加PRIMARY KEY 语法 PRIMARY KEY ...
  • 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列2. 如果Key是PRI, 那么该列是主键的组成部分3. 如果Key是UNI, 那么该列是一个唯一值索引的第一列(前导列),并别不能...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL主键约束是一个...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键。主键...
  • 〇、MySQL索引都有哪些分类?... 按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引)。一、按数据结构分类MySQL索引按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。-|...
  • “主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则:每个表只能定义一个主键。主键...
  • MySQL之主键约束(PRIMARY KEY语句)

    千次阅读 2019-08-26 16:32:19
    主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则: 每个表只能定义一个主键。 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在两行数...
  • 主键 主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个或者列的...主键可以是表中的某一或者多列的组合,其中由多组合的主键称为复合主键。主键应该遵守下面的规则: 每个表只能定义一...
  • 我正在寻找有关以下情况表/索引设计建议:我有一个大表(股票价格历史数据,InnoDB,3500万行和增长)与复合主键(assetid(int),日期(日期)).除了定价信息,我还有200个需要与每条记录对应.CREATE TABLE `...
  • 如果它们有用,则约定很好“SQL Anti...如果它是复合,这意味着列的值的每个组合必须是唯一>最小.这意味着,它不能被减少(即,如果它是复合,在不失去唯一性情况下不能省略)>单身.不能定义其他主键,每个...
  • 主键 (primary key) 是一个或者多个列的组合,其能唯一的标志表中的一行。主键的关键字primary key。 主键的条件 每个表只能定义一个主键 主键标识表中唯一的一行,该2行的内容不能为NULL。 多个可以组成...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

复合主键的组合列值