
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型的可自增的列,这样在编程的时候,很容易区分数据。
参考资料来源:百度百科-主键约束
参考资料来源:百度百科-约束
以上就是关于如何在数据库表中添加多个主键约束全部的内容,包括:如何在数据库表中添加多个主键约束、数据库的外键约束建立、建数据库表时 为字段指定约束条件都需要注意些什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)