如何在数据库表中添加多个主键约束

如何在数据库表中添加多个主键约束,第1张

1(SQL

方式)

ALTER

TABLE

表名

ADD

CONSTRAINT

主键

PRIMARY

KEY

(以","分隔的属性列表)

2( *** 作方式)

在表设计器中选中两个字段再设为主键

什么时候添加都行。(你的标题意思不正确,说成数据库中表的外键约束就对了)

主键作用:用以标识唯一一条记录,也就是说用来区分行数据的标志。做数据库里的一张数据表时,一般只要定义了列属性,数据表就算是建立完成了。类似于/创建StudentsInfo表/

use Moonfox_db

if exists(select from sysobjects where name='StudentsInfo')

drop table StudentsInfo

create table StudentsInfo

(

SName nvarchar(10) not null,--姓名

SID int identity (10000,1)primary key,--学号,主键

Gender nchar(2) not null check(Gender='男' or Gender='女'),--性别,添加限制

SClass nvarchar(10) not null,--班级

SBirthday datetime not null,--出生日期

SNative nvarchar(10),--籍贯

SPhoto image,--照片

Remarks nvarchar(200)--简历

) 这些就是一张表里的属性,也就是我们通常意义上的列,只要把它做好了,表里的数据你想什么时候添加都行。

1约束主要有一下几种:

NOT NULL : 用于控制字段的内容一定不能为空(NULL)。

UNIQUE : 控件字段内容不能重复,一个表允许有多个 Unique 约束。

PRIMARY KEY: 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。

FOREIGN KEY: FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束 2 也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CHECK: 用于控制字段的值范围。

DEFAULT: 用于设置新记录的默认值。

3 not null : 用于控制字段的内容一定不能为空(NULL)。

用法 :Create table MyTable

(

id varchar(32) not null,

name varchar (32)

)

4 Primary Key :也是用于控件字段内容不能重复,但它在一个表只允许出现一个。

在Sql Server、Orcale、MS Access 支持的添加Primary Key语法:

Create table myTB1

(

id nvarchar(32) not null primary key,

name nvarchar(32)

)

数据库约束是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具。\x0d\一般来说有以下几种实现方式:\x0d\1、检查约束:\x0d\通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。\x0d\比如以下的表定义:\x0d\CRATE TABLE student(\x0d\id serial,\x0d\name varchar(10),\x0d\scrore integer CHECK (scrore > 0));\x0d\定义分数不能小于0。\x0d\也可以在表级定义:\x0d\CHECK (字段1 秘字段2之间的关系)\x0d\2、非空约束:\x0d\这个大家应该很熟悉了。直接在字段后面加上:NOT NULL。\x0d\3、唯一约束:\x0d\定义一个唯一约束但是它并不包括NULL值。直接在字段定义后加入UNIQUE即可定义一个唯一约束。\x0d\4、主键约束:\x0d\SQL 92建议在建立一个表时定义一个主键:它其实就是:唯一约束+非空约束。\x0d\5、外键:\x0d\所有约束里数这个约束最有意思了:比如说有这样一件事,你需要做一个学生查询的网页。那么为了方便,你将建立三个数据表:\x0d\一个是学生情况表:\x0d\CREATE TABLE student(\x0d\id serial primary ke,\x0d\name varchar(10),\x0d\\x0d\);\x0d\一个表是记录所开的课程\x0d\CREATE TABLE class(\x0d\class_id varchar(5) primary key,\x0d\describe varchar(20)\x0d\\x0d\);\x0d\一个表是记录学生成绩的表:\x0d\CREATE TABLE score(\x0d\id integer references student,\x0d\class_id varchar(5) references class,\x0d\score integer CHECK (score > 0)\x0d\);\x0d\\x0d\这个时候你会发现以下几件事:\x0d\如果你在成绩表里输入不存在的学生和课程,数据系统将拒绝。如果你要删除一个学生,但是他已经在成绩表里有记录,数据库将拒绝删除这个学生的记录。\x0d\那么我们现在来看,前面一个对我们是有利的,因为谁都不想一个学生无缘无故的有了一个成绩的记录,但是在删除的时候就会比较麻烦了,有时候我的确是想删除这个学生。那么我总不能在应用程序里照顾得那么周到吧。不要紧我们在定义数据表的时候只在外键那一样加入以下控制就OK了,我们来重新定义数据表 score\x0d\CREATE TABLE score(\x0d\id integer references student ON UPDATE CASCADE ON DELETE CASCADE, //我们希望在学生记录改变时自动改变分数记录,在删除学生级联删除分数记录\x0d\class_id varchar(5) references class ON UPDATE CASCADE ON DELETE\x0d\RESTRICT, //我们希望在改变课程时自动改变分数记录表里关于课程的引用,但是不希望删除课程时级联删除分数。\x0d\\x0d\);\x0d\\x0d\这样我们就可以很好做到数据完整了。

主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。

唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。

检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。

默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。

外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。

扩展资料

主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。

(非空,唯一)

例如:

alter table member

add

constraint PK_member_member_no primary key clustered (member_no)

主键列的数据类型不限,但此列必须是唯一并且非空。

如该表中已有主键为1000的行,则不能再添加主键为1000。

人工或程序不好控制的时候,也可以设置主键列为自动增长列。

主键主要用在查询单调数据,修改单调数据和删除单调数据上。做程序的时候,都将表的主键设置为int型的可自增的列,这样在编程的时候,很容易区分数据。

参考资料来源:百度百科-主键约束

参考资料来源:百度百科-约束

以上就是关于如何在数据库表中添加多个主键约束全部的内容,包括:如何在数据库表中添加多个主键约束、数据库的外键约束建立、建数据库表时 为字段指定约束条件都需要注意些什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9533156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存