一个表可以没有主键吗
答案:1 悬赏:50 手机版
解决时间 2021-03-09 13:49
- 提问者网友:不要迷恋哥
- 2021-03-09 07:20
一个表可以没有主键吗
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-03-09 08:30
问题一:SQL中的每一张表都必须设有主键吗 当然不一定咯。。
设置不设置主键嘛。。。要看你的业务或者需求来说。。。
如果你就是简单的对单表操作的话,实在没有必要。
对多张没有关联的表操作的话,不设置也没有什么影响
主键只是说对一种表和表关系的关联而已,还有就是在建主键的时候会自动添加个索引,某些情况下可以增加查询速度问题二:数据库 建表 有主键 跟没有主键的区别~ 主键是惟一的,但是主键可以是个集合,比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学耿和课程号的属性组是一个主键问题三:数据库表可以没有主键吗 可以没有。
但是不推荐,因为那样会使查询效率低下 如果数据量不大的话可以不加问题四:数据库表可否没有主键 可以,但是不推荐,因为那样会使查询效率低下
如果数据量不大的话可以不加问题五:一个表可以没有主键吗 在数据库表中 只有设置一个int类型的字段为主键,才可以设这个字段为标识列,标识列的作用就是一个可以自动增长的数字,如消息id,唯一并且不重复,是消息唯一标识问题六:SQL数据库表可以没有主键吗? 傻孩子,当然可以没有咯!你可以在页面里添加的啊。添加id这一列啊!嘿嘿问题七:access中一个表内必须有主键吗 如果你不打算删除记录,可以不用设置主键。主键用于防止产生重复记录。问题八:sql server 主键可以为空吗 什么是主键:
数据库主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。
主键的作用:
1、 从上面的定义可以看出,主键是用于唯一标识数据库表中一行数据的。
2、 作为一个可以被外键有效引用的对象。
主键的设计原则:
1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。
2、 唯一性,这个原则就不用多说了。
3、 非空性:主键的值是不可重复的,也不可以为空。
4. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
5. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
6. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
--在创建表时就可以对字段加上约束: create table Student ( StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性) StudentName nvarchar(15) not null, --加非空约束,不加not null 默认为:可以为空 StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名) StudentAge int DEFAULT ((0)), --加默认值约束 StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加检查约束,格式:check (条件表达式) )测试添加删除主键
--删除主键alter table Stu_PkFk_S drop constraint PK_Sgo
--增加主键alter table Stu_PkFk_S add constraint PK_S primary key (sno)go问题九:oracle一个表中没有主键怎么设置主键 5分1.先清理现有的数据并规划只能一个主键,或者考虑组合主键(即ID列与另一个关键列组合成主键)
2.通过SQL增加主键:alter table tabname add constraint tabname_pk primary key (id) enable validate;
组合键:alter table tabname add constraint tabname_pk primary key (id,另一列名) enable validate;问题十:用SQL Server2005建表时,可否建一个只有外键没有主键的表?这样的表式符合规范的吗? 建立的话,可以建立,规范的化应该不符合。你可以先了解下约束。
设置不设置主键嘛。。。要看你的业务或者需求来说。。。
如果你就是简单的对单表操作的话,实在没有必要。
对多张没有关联的表操作的话,不设置也没有什么影响
主键只是说对一种表和表关系的关联而已,还有就是在建主键的时候会自动添加个索引,某些情况下可以增加查询速度问题二:数据库 建表 有主键 跟没有主键的区别~ 主键是惟一的,但是主键可以是个集合,比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学耿和课程号的属性组是一个主键问题三:数据库表可以没有主键吗 可以没有。
但是不推荐,因为那样会使查询效率低下 如果数据量不大的话可以不加问题四:数据库表可否没有主键 可以,但是不推荐,因为那样会使查询效率低下
如果数据量不大的话可以不加问题五:一个表可以没有主键吗 在数据库表中 只有设置一个int类型的字段为主键,才可以设这个字段为标识列,标识列的作用就是一个可以自动增长的数字,如消息id,唯一并且不重复,是消息唯一标识问题六:SQL数据库表可以没有主键吗? 傻孩子,当然可以没有咯!你可以在页面里添加的啊。添加id这一列啊!嘿嘿问题七:access中一个表内必须有主键吗 如果你不打算删除记录,可以不用设置主键。主键用于防止产生重复记录。问题八:sql server 主键可以为空吗 什么是主键:
数据库主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。
主键的作用:
1、 从上面的定义可以看出,主键是用于唯一标识数据库表中一行数据的。
2、 作为一个可以被外键有效引用的对象。
主键的设计原则:
1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。
2、 唯一性,这个原则就不用多说了。
3、 非空性:主键的值是不可重复的,也不可以为空。
4. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
5. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
6. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
--在创建表时就可以对字段加上约束: create table Student ( StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性) StudentName nvarchar(15) not null, --加非空约束,不加not null 默认为:可以为空 StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名) StudentAge int DEFAULT ((0)), --加默认值约束 StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加检查约束,格式:check (条件表达式) )测试添加删除主键
--删除主键alter table Stu_PkFk_S drop constraint PK_Sgo
--增加主键alter table Stu_PkFk_S add constraint PK_S primary key (sno)go问题九:oracle一个表中没有主键怎么设置主键 5分1.先清理现有的数据并规划只能一个主键,或者考虑组合主键(即ID列与另一个关键列组合成主键)
2.通过SQL增加主键:alter table tabname add constraint tabname_pk primary key (id) enable validate;
组合键:alter table tabname add constraint tabname_pk primary key (id,另一列名) enable validate;问题十:用SQL Server2005建表时,可否建一个只有外键没有主键的表?这样的表式符合规范的吗? 建立的话,可以建立,规范的化应该不符合。你可以先了解下约束。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯