1、为了方便大家理解,使用一个例子来帮助大家理解。意思大概就是通过引用表二中的字段完成对表一字段的约束。方法:
2、这里一共两个表,先创建外键表,因为先有外键,主键才能引用。首先创建数据库,新建查询。
3、新建外键表【teacher】,输入命令:create table teacher。添加需要的字段teacher_xingming并设置它为【主键】。输入命令:teacher_xingming nchar(10) primary key,
4、选中需要执行的命令行,单击【执行】,下方会有是否成功的提示。现在对表进行刷新 *** 作后,会发现已经成功创建了一个新表【teacher】。
5、接下来就要创建学生表了,create table student(\tstudent_xingming nchar(10) primary key not null,——该程序段意思为创建一个【student】表,表中新建一个主键【student_xingming字段,类型为nchar(10) ,并不允许为空。】
6、继续写,输入:student_banji nchar(10) not null,——表中新建一个【student_banji字段,类型为nchar(10) ,并不允许为空。】
7、创建外键,输入命令student_jiaoshi nchar(10) foreign key references teacher(teacher_xingming)看起来很长,实际意思很简单:表中新建一个【student_jiaoshi字段】,它是外键,nchar(10)类型,它来至 teacher_xingming中的内容。
8、选中,点击【执行】,没有错误,就说明成功了。刷新一下表,看看是不是多了一个表【student】?所有约束已经创建好了。
9、来试一下看看是否真正实现所说的功能。打开【teacher表】,填写“刘老师”。打开【student表】,前面任意填,最后填写“刘老师”,没有错误说明没问题。
10、如何想测试约束是否真的有效,填写其他内容,看看是否成功,只要不是【teacher】字段中的内容,他就会报错。
数据库的主键指的是一个列或多个列组合,其值能唯一标注表中的每一行,通过他可以强制表的实体完整性。主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。
主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。
主键作用:
1、保证实体的完整性;
2、加快数据库的 *** 作速度;
3、在表中添加记录时,DBMS会自动检查记录的主键值,不允许该值与其他值重复。
扩展资料
数据库中主键、主码、主属性、关键字、候选关键字、码的区别:
主码=主键=主关键字,关键字=候选码 候选关键字=候选码中除去主码的其他候选码。
码:唯一标识实体的属性或属性组合称为码。
候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组)
主属性:候选码包含的属性(一个或多个属性)。
主码(主键、主关键字):若一个关系有多个候选码,选择其中一个为主码。
关键字就是为了方便编程人员在打开数据库的时候知道每个表所代表的值是什么。主要起到注释作用。
索引可以提高查询的速度。
其实主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中,主键一般都要建,主要是用来避免一张表中有相同的记录,索引一般可以不建,但如果需要对该表进行查询 *** 作,则最好建,这样可以加快检索的速度 。
以将两个字段设为主键为例:
第一步、首先打开sql server数据库,进行设计表,按住ctrl键,选中两个要设置为主键的字段,如下图所示:
第二步、选中之后,鼠标右键,点击设置主键,如下图所示:
第三步、可以看到两个字段都设置为主键了,如下图所示:
第四步、我们也可以使用代码来设置主键,alter table Table_1 add constraint pk_name primary key (id,name)设置Table_1表的id,name为主键,如下图所示:
第五步、点击执行之后,就成功设置两个字段为主键了,如下图所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)