零点起飞学Oracle之使用约束课件

上传人:无*** 文档编号:242852475 上传时间:2024-09-08 格式:PPTX 页数:65 大小:1.03MB
返回 下载 相关 举报
零点起飞学Oracle之使用约束课件_第1页
第1页 / 共65页
零点起飞学Oracle之使用约束课件_第2页
第2页 / 共65页
零点起飞学Oracle之使用约束课件_第3页
第3页 / 共65页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2013/2/2,#,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020/9/14,#,第,11,章 使用约束,约束是用来束缚表中的数据的,使表中的数据满足某种条件。我们可以通过约束保证数据库数据的完整性和可靠性。,Oracle,的主要约束包括主键约束、外键约束、唯一性约束、检查约束、默认值约束、非空约束。本章主要学习,Oracle,中约束的创建,并深入理解这些约束的使用。,11.1,使用主键约束,主键约束用来标识表中一个列,一个表中的主键约束只有一个,但是可以在一个主键约束中包含多个列,也成为联合主键。本节将着重讲述主键的创建、使用及相关操作。,11.1.1,为什么要使用主键,主键约束是,Oracle,数据库的最常用约束,也是数据库设计者最需要注意的约束。主键可以像普通数据库对象那样进行创建、修改、删除等操作。在数据表设计时,数据表一般要求满足,BCNF,范式。这要求数据表至少含有一个候选码(可看作唯一性约束)。而其中一个候选码又被选为主码。这里的主码,可以看做数据表的主键。,除了数据表设计的一般规则之外,主键的出现还有以下现实意义。,1,实现记录的唯一性,实体完整性,2,检索有利,3,支持外键,11.1.2,什么是主键,主键用来唯一地标识表中的一行数据,它规定在主键列上的数据不能重复,并且不能为空。如果在某个列上指定了主键约束,那么就不需要在该列上再指定,not null,约束和,unique,约束。创建主键时,有以下注意事项。,主键列的数据类型:我们设置主键时,主键列的数据类型不一定是数值型,也可以使其他的,如字符型。,主键不一定只有一列:在表的设计视图中,选择可以要定义为主键的一个或多个字段。,自增的数值型主键:设置主键时,可以采用自增的列作为主键,实现自动编号,速度快,对于检索非常有利。,11.1. 3,创建主键约束,主键约束在每一个数据表中只有一个。创建主键约束可以在创建表时与表的列描述同时进行,也可以在表创建成功之后,手动进行添加。,1,创建表的同时,定义主键约束,我们在创建表时定义主键约束。对于单列主键来说,可以在列的描述之后使用,primary key,关键字将该列指定为主键列。其语法形式如下所示。,create table,表名,(,列名,1,数据类型,1,primary key,列名,2,数据类型,2,列名,3,数据类型,.),其中,关键字,primary key,紧跟在列,1,的描述之后,那么列,1,将作为数据表的主键列。该表也将拥有一个主键约束。,11.1. 3,创建主键约束,【,示例,11-1】,重新创建表,employeenew,,并为表建立主键,主键列为,employee_id,。,【,示例,11-2】,对于单列主键,可以在列的描述中定义主键。但是对于多列主键,则必须将主键描述与列的描述并列进行。例如,在表,employeenew,中,希望将,employee_id,、,last_name,两列作为主键。,11.1. 3,创建主键约束,2,创建表后,添加主键约束,在示例,11-1,和示例,11-2,中,我们总是将表首先删除,然后再重新创建数据表,并在重建过程中创建主键约束。此外,我们还可以不删除表,为已存在的表添加主键约束。此时可以利用,alter table,命令。,利用,alter table,命令为表添加主键的语法形式如下所示。,alter table,表名,add,primary key(,列名,1,列名,2),其中,,alter table,命令用于修改表的属性;,primary key(,列名,1,列名,2),则指定主键被建立在哪些列之上,各列名之间使用逗号进行分隔。,【,示例,11-4】,例如,为表,employeenew,添加主键。,11.1. 3,创建主键约束,3,为主键命名,主键是约束的一种,可以利用为表添加约束的方式来显式命名约束,从而实现命名主键。其语法形式如下所示。,alter table,表名,add,constraint,约束名称,primary key(,列名,1,列名,2),其中,,alter table,命令用于修改表的属性;,add constraint,用于为表添加约束,并指定约束名称;,primary key(,列名,1,列名,2),指定约束的详细定义。,【,示例,11-5】,在,SQL Deveploper,中创建主键约束,并为约束显式命名。,11.1. 3,创建主键约束,4,测试主键的作用,当在一个表上创建主键之后,向表中添加数据就有了约束。此时,输入数据时表中所有数据在主键列上的值(或值的组合)不能重复,并且主键列上的值不能为空。,【,示例,11-6】,尝试向表,employeenew,中插入已存在的,id,的记录,,Oracle,将抛出错误提示,并禁止用户的插入操作。,【,示例,11-7】,除不能向表,employeenew,中插入,employee_id,冲突的数据之外,同样不能插入,iemployee_id,为空的数据。,11.1. 3,创建主键约束,【,示例,11-8】,单列主键约束要求主键列值不能重复,而联合主键要求主键列值的组合不能重复。例如,可以将表,employeenew,的,主键修改为,列,employee_id,与,列,last_name,的联合主键,并测试主键的作用。,【,示例,11-9】,对于联合主键中的任意一列,其值均不可为空。例如,尝试向表,employeenew,中,插入,employee_id,为,空的数据,,Oracle,同样会抛出错误。,11.1. 4,修改主键约束,主键约束创建之后,可以对其进行属性修改。修改主键约束主要包括两方面的内容:禁用,/,启用主键和重命名主键。,1,禁用,/,启用主键,在,Oracle,中,对于任何已经创建好的约束,可以使用,ENABLE,或者是,DISABLE,来启用约束或者是禁用约束。禁用的约束好像并没有创建约束一样,并没有达到创建约束的目的,但是通过,ENABLE,子句,可以随时启用约束。禁用,/,启用数据表主键的语法如下所示。,alter table,表名,disable primary key,其中,,disalbe,primary key,用于禁用数据表主键,因为数据表的主键的唯一性,因此,无需指定主键名称。,11.1. 4,修改主键约束,【,示例,11-10】,表,employeenew,的,主键,pk_employeenew,的当前状态为可用,那么不允许,插入,employee_id,与,last_name,与已有记录冲突的数据。现禁用该主键,并再次尝试插入数据。,【,示例,11-11】,当启用主键约束时,,Oracle,仍然会检查数据表中现有数据是否违反了主键约束。如果违反,那么主键的启用也将失败。,11.1. 4,修改主键约束,2,重命名主键,如果需要修改已有主键的名称,则需要使用到重命名主键策略。重命名主键的语法如下所示。,alter table,表名,rename constraint,原主键名称,to,新主键名称,其中,,rename,constraint,用于重命名约束,主键是约束的一种,因此,该选项同样适用于重命名主键;,to,关键字则用于指定新的主键名称。,【,示例,11-12】,重命名主键最常用的场合为修改系统自动生成的主键名称。,11.1. 5,主键与索引,索引可以使用户快速找到表中的特定信息。当用户在数据表的某列(或某些列)上创建了主键、而在检索数据时又使用了该索引列,,Oracle,可以很快的捕获符合条件的记录。而不必采用全表逐条扫描的方式。有关索引的详细信息,将在以后的章节讲解。,11.1. 5,主键与索引,【,示例,11-13】,在,Oracle,中,创建了主键之后,都会存在一个建立在主键列上的索引。例如,表,employeenew,的主键,pk_employeenew,建立在列,employee_id,上。我们可以通过视图,user_indexes,获得表,employeenew,上索引的详细信息。,【,示例,11-14】,虽然索引名称不会随着主键的重命名而重命名,但是却会随着主键的删除而被删除。,【,示例,11-15】,当,Oracle,创建主键时,会首先查看主键列上是否已经创建了索引。如果未创建,则自动创建;如果已创建,,Oracle,直接创建主键,而不会进行索引创建。已存在的索引也和主键没有任何连带关系,因此,当删除主键时,不会触发索引的任何动作。,11.1. 5,主键与索引,下表总结了本节的主要内容,并概括了主键的特点。,主键特点,说明,数据库操作和相关视图,约束,主键值约束的一种,user_constraints,、,user_ind_columns,主键的唯一性,主键是主码的体现,删除主键时,无需提供主键名称,主键的值不能为空,无法通过,id=null,的条件获得记录,禁止向主键列插入空值,null,主键与唯一性约束,主码来源于码,禁止向主键列中插入重复数据(或组合),主键与索引,主键将保证主键列上有索引,user_indexs,、,user_ind_columns,11.2,使用外键约束,主键的作用是保证数据完整性,即保证数据的唯一性。外键约束可以保证使用外键约束的列与所引用的主键约束的列一致。主键可以看做表中数据之间的区分。而外键约束则适用于不同的表之间的相互参照关系。,11.2.1,为什么要使用外键,外键的主要作用是保证数据的参照完整性。最终保证数据库的完整性。本小节将讲述参照完整性的定义,并阐述外键定义及使用。,1,参照完整性,在两个表之间,一个表中的记录依附于另一个表的记录而存在,称为表之间的参照完整性。参照完整性总是存在着真实的业务背景。例如,在,employeenew,表中,存储了每位员工的信息;在,jobs,表中存储了员工职位信息。,employeenew,中的每条记录都依附于,jobs,表中记录的存在而存在,即建立了两个表之间的参照完整性。,11.2.1,为什么要使用外键,2,外键的必要性,参照完整性的设计是必要的。当人工输入的,employeenew,表的数据信息时,很难保证输入者精确地输入所有数据。更为严重的是,即使输入错误,获取错误数据的具体位置也是一件费力的工作。在数据库中,有规范而统一的解决方案,参照完整性。,外键是实现参照完整性的手段,因此,在一个数据库中,外键的存在是非常必要的。,11.2.2,什么是外键,外键实际是一个引用。一个数据表有自己的主键,而向外部其他数据表的引用,则称作外键。外键实际隐含了对外部引用的限制,必须获得外部数据表的唯一记录。,11.2.3,创建外键约束,外键是约束的一种,外键约束创建后即可在数据字典中获得相应信息。,1,创建外键约束,创建外键约束的语法如下所示。,alter table,表名,add constraint,约束名,foreign key(,外键列名,),references,主表,(,主表主键列,),其中,,alter table,用于修改从表的属性;,add constraint,用于为表添加约束;,foreign key,指定约束的具体类型,外键;,references,主表(主表主键列)用于指定外键引用的另一端,主表及主表的主键列。,【,示例,11-16】,外键约束必然存在主表与从表。对于,employeenew,表和,jobs,的主从关系,我们首先创建表,employeenew,和表,jobs,,上一节中已经创建,employeenew,。在此处需创建,jobs,表。,11.2.3,创建外键约束,2,查看外键信息,同样可以在视图,user_constraints,和,user_cons_columns,中获取外键的详细信息。,【,示例,11-17】,在视图,user_cosntraints,中获取表,employeenew,的约束信息。,11.2.3,创建外键约束,3,验证外键约束的作用,当尝试向表,employeenew,中插入数据,可以验证外键约束的作用。,【,示例,11-18】,向表,employeenew,中插入新的数据。,【,示例,11-19】,再次向表,employeenew,尝试插入信息。,【,示例,11-20】,当然,除了插入操作之外,数据修改操作同样会受到外键约束的限制。,11.2.4,级联更新与级联删除,当需要修改主表和从表中的数据时,主表的操作,将连带影响到从表的操作,这就是级联更新与级联删除问题。,所谓级联更新,是指当主表中的主键列进行修改时,子表的外键列也应该进行相应的修改。级联删除是指当主表中的记录删除时,子表中与之相关的记录也应该同时删除。,外键约束之所以会限制父表与子表的更新,是因为数据完整性校验无法通过。该校验有两种类型,即时校验(,immediate,)和延迟校验(,deferred,)。默认为即时校验,即每执行一条语句,都会进行校验;而延迟校验可以指定校验的时机。,11.2.4,级联更新与级联删除,1,级联更新,Oracle,外键只有级联删除没有级联更新,但是有时候系统中可能需要这样的功能,我们可以通过延迟校验的策略来实现级联更新。延迟约束表示不会再刚进行修改的时候进行约束查看,只有提交的时候才会检查。创建延迟校验的外键约束的语法如下所示。,alter table,表名,add constraint,外键名称,foreign key(,外键列,) references,主表名,(,主表主键列,) deferrable initially deferred,其中,,deferrable initially deferred,表示新建约束使用了延迟校验机制。,【,示例,11-21】,我们可以首先删除表,employeenew,的原有外键约束,并重建该约束,在重建过程中指定延迟校验规则。,11.2.4,级联更新与级联删除,2,级联删除,Oracle,为级联删除提供了直接的处理方式,在创建外键时直接指定。相应的语法如下所示。,alter table,表名,add constraint,外键名称,foreign key(,外键列,) references,主表名,(,主表主键列,) on delete cascade,其中,,on delete cascade,指定外键采用级联删除机制。此处的级联删除是指,当用户删除主表中的某条记录时,,Oracle,会自动搜索并删除从表中的相关记录。当然,这里的相关性是由外键约束的引用来提供的。,【,示例,11-22】,对于表,employeenew,,可以首先删除现有外键,并为其创建级联删除外键。,11.2.5,外键的相关操作,外键是约束的一种,外键的相关操作包括,重命名、禁用,/,启用、是否校验已有数据的参照完整性、删除外键。,1.,重命名,重命名一个外键,应该使用,rename,选项。,【,示例,11-23】,将表,employeenew,的外键,EM_JOBS_FK,重命名为,E_JOBS_FK,。,11.2.5,外键的相关操作,2.,禁用,/,启用外键,有时,用户需要插入特殊数据,此时需要禁用现有的外键约束。禁用外键约束是指,将外键约束的校验功能暂时关闭,如同外键不存在一样,直至再次打开。禁用外键应该使用,disable,选项。,【,示例,11-24】,禁用表,employeenew,的外键约束,E_JOBS_FK,。,11.2.5,外键的相关操作,3.,是否校验已有数据的参照完整性,由于数据完整性校验失败,所以导致无法启用主键约束。此时,应该采用忽略已有数据参照完整性的策略,来启用外键约束。,【,示例,11-25】,忽略已有数据的参照完整性校验,应该使用,novalidate,选项。以无法正常启用的外键,E_JOBS_FK,为例。,11.2.5,外键的相关操作,4,删除外键,当一个外键约束没有存在的必要,则需要及时删除。删除外键应该使用,drop,constraint,选项。,11.2.6,外键使用总结,外键是建立在两个表的参照的基础上,用以描述两个表之间的主从关系。对于外键约束,应该注意以下两点。,1,严格遵守主从关系的数据表应该使用外键,在数据库中,如果要求两个表严格遵守主从关系,那么应该使用外键约束。外键约束是主从关系的最佳保障方案。不要求助于应用程序来代替这一策略。,11.2.6,外键使用总结,2.,不能过多使用外键,合理使用外键可以有效增强应用系统的健壮性。但是,不能过分使用外键。首先,使用过多的外键,会增加数据库复杂度。另外,过分使用外键,有可能影响应用系统的效率。,综上所述,使用外键的原则为,需要严格遵守主从关系的数据表应该使用外键,否则,不应使用外键约束。,11.3,使用唯一性约束,在数据表中,唯一性约束是用来表示一个列中的输入值是唯一的。这个约束与前面学习的主键非常相似。不同的就是唯一,约束,在一个表中可以有多个,而主键约束在一个表中只能有一个。唯一性约束与主键约束一样,也是建立在一个或多个列之上,从而实现数据在该列或者列组合上的唯一性。,11.3.1,为什么要使用唯一性约束,使用唯一性约束可以保证在非主键列中不输入重复值,对于唯一性约束中的列,表中不允许有两行包含相同的非空值。,11.3.2,什么是唯一性约束,唯一性约束和主键有一定的相似性。同时也是主键约束的有益补充。本小节将通过比较二者的异同来介绍唯一性约束。,1,二者的相同点,2,二者的不同点,11.3.3,创建唯一性约束,可以利用创建约束的一般语法来新建唯一性约束。在创建成功之后,同样可以利用数据字典获取其详细信息。,1,创建唯一性约束,创建唯一性约束的语法如下所示。,alter table,表名,add constraint,约束名称,unquie,(,列名,1,、列名,2),其中,unique,表示该约束是一个唯一性约束;小括号内指定唯一性约束创建在哪些列之上,多列之间使用逗号进行分隔。,11.3.3,创建唯一性约束,2,查询唯一性约束的详细信息,对于唯一性约束,同样可以在视图,user_constraints,及,user_cons_columns,中获取其信息。,11.3.3,创建唯一性约束,3.,验证唯一性约束的有效性,唯一性约束创建之后,要求在约束列上的值(或值的组合)保持一致。例如,对于表,employeenew,,该表具有一个建立在列,email,之上的唯一性约束。,【,示例,11-26】,查看表,employeenew,中的现有记录。,尝试向其中插入新的数据,新纪录的,email,值与,id,是,208,的员工重复,【,示例,11-27】,值得注意的是,唯一性约束列允许空值存在,我们可以将列,email,的数据置为空,再次进行验证。,11.3.4,修改唯一性约束,唯一性约束创建之后,可以对其进行删除、重命名、禁用,/,启用等操作。,1,删除唯一性约束,一个表中可以包含多个唯一性约束。对于不再需要的唯一性约束,同样可以使用,drop constraint,选项进行删除。,【,示例,11-28】,假设,随着业务的需求和发展,表,employeenew,上的唯一性约束,uk_employeenew,不再需要,那么可以利用如下,SQL,语句进行删除。,11.3.4,修改唯一性约束,2,重命名唯一性约束,已经创建的约束可以将其重命名。其语法形式如下所示。,alter table,表名,rename,constraint,原约束名,to,目标约束名,【,示例,11-29】,例如,将表,employeenew,上创建的唯一性约束,uk_employeenew,重命名为,uk_em,,那么,可以利用,rename,选项进行重命名。,11.3.4,修改唯一性约束,4,禁用,/,启用唯一性约束,成功创建的约束,可以对其进行禁用,/,启用操作。唯一性约束一旦禁用,当数据表状态发生改变时,,Oracle,不再利用该约束进行校验。但是,当启用时,将对表中所有数据进行校验。禁用,/,启用唯一性约束的语法遵循统一语法。,alter table,表名,disable/enable,constraint,约束名称,【,示例,11-30】,对于表,employeenew,,首先禁用其唯一性约束,uk_em,。,11.4,使用检查约束,检查约束能够规定每一个列输入的值,保证数据的正确性。前面讲的主键约束、外键约束与唯一性约束都有同一个特点,那就是它们都体现记录之间的相互关系,如,下表,所示。,约束名称,主要作用,作用描述,主键,实体完整性,同一表中的记录的唯一性标识,外键,参照完整性,两个表中的记录的主从关系,唯一性约束,记录唯一性,同一表中不同记录的区分,11.4.1,为什么要使用检查约束,检查约束用来约束表中列的输入值的范围。比如在输入性别时,要求在数据库中只能输入男或者女,就可以使用检查约束来约束该列。,检查约束实质是一个布尔表达式。一旦在数据表上创建了检查约束,那么该检查约束将在数据更新时计算布尔表达式的值。一个检查约束可以用来限制某列的取值范围,还可以用来限制多列之间的关系。,11.4.2,创建检查约束,我们可以使用,PL/SQL,语句创建检查约束,在成功创建之后还可以查询其详细信息。,1,创建检查约束,创建检查约束时需要将约束的具体类型定义为,check,,如下所示。,alter table,表名,add constraint,约束名,check,(,布尔表达式,),其中,,alter table,命令用于修改表的属性;,add constraint,用于添加约束;,check,选项指定新建约束为一个检查约束;小括号内的布尔表达式代表检查约束的定义。,在表,employeenew,中,列,salary,代表员工薪资。我们需要限制薪资是大于,0,的,那么应该为表,employeenew,添加检查约束。,11.4.2,创建检查约束,2,查询检查约束的详细信息,可以利用数据字典,user_constraints,与,user_cons_columns,查看检查约束的详细信息。,11.4.2,创建检查约束,3,验证检查约束的作用,在成功创建检查约束,ck_sa,之后,可以尝试向其中插入非法数据,以验证其作用。,11.4.2,创建检查约束,4,多条件检查约束,检查约束可以对多个条件同时进行校验。这些条件使用逻辑运算符进行联接。,【,示例,11-31】,在表,employeenew,中,含有列,hire_date,与列,department_id,,都不可以为空,可以为该表创建一个检查约束,该检查约束含有这两种检查条件,分别用来保证各自列不为空。,11.4.3,修改检查约束,检查约束创建之后,可以对检查约束进行重命名、删除和禁用,/,启用等操作。,1,重命名检查约束,检查约束的重命名与其他约束的重命名具有完全相同的语法,即利用,rename,选项。例如,将检查约束,ck_sa,重命名为,ck_salary,。,11.4.3,修改检查约束,2,禁用,/,启用检查约束,检查约束的禁用,/,启用操作应当使用,disable/enable,选项。,11.4.3,修改检查约束,3,删除检查约束,检查约束的删除操作应当使用,drop,选项。例如,删除检查约束,ck_hire_de,。,11.5,使用默认值约束,在前面章节中讲述了主键约束、外键约束、唯一性约束和检查约束,我们可以利用下表进行概括。本节主要讲解默认值约束。默认值约束是针对记录的列本身进行约束。,约束名称,主要作用,作用描述,主键,实体完整性,同一表中的记录的唯一性标识,外键,参照完整性,两个表中的记录的主从关系,唯一性约束,记录唯一性,同一表中不同记录的区分,检查约束,列的取值限制,同一记录中列的取值范围或列之间的关系,11.5.1,为什么要使用默认值约束,创建数据表之后,为了避免在插入语句中为其显式赋值,可以为该列指定默认值。当用户在插入数据时,不对该列显式赋值,从而减少了用户的工作量,提高了工作效率。,在创建数据库表时,我们可以指定一个,DEFAULT,值(即默认值)。对数据库字段使用默认值有助于将数据库设计问题。当没有设定默认值约束时,我们可以将列的默认值看做空,即,null,;当显式设定默认值时,列的默认值发生改变。因此,我们可以认为列的默认值总是存在的。,11.5.2,创建默认值约束,创建默认值约束之后,还是可以使用相应的数据字典获得默认约束的相关信息。,1,创建默认值约束,默认值约束是作为列的属性存在。因此,创建默认值约束实际是通过修改列属性的途径来实现的。创建默认值约束应该使用,modify,选项,并指定约束类型为,default,(默认值)。,【,示例,11-32】,例如,指定表,employeenew,的列,hire_date,的默认值为系统的当天日期。,11.5.2,创建默认值约束,2,查看默认值约束的信息,默认值约束并不是作为表的属性,而是作为列的属性而存在的。,user_constraints,中的约束都是针对表而言,因此,无法在数据字典,user_constraints,中获得其信息。而数据字典,user_tab_columns,包含了所有用户列的信息。,11.5.3,修改默认值约束,默认值约束的创建之后,可以对其进行删除。删除默认值约束的方式为将其设置为,null,。,【,示例,11-34】,在表,employeenew,中,删除列,hire_date,的默认值。,11.6,使用非空约束,非空约束同样是针对表的列所进行的约束。非空约束用于限制列值不能为空。非空约束可以实现数据的域完整性。,11.6.1,为什么要使用非空约束,一般在默认情况下,数据表的列值允许为空。但是,有时候,并不允许用户忽略列值。所以,必须使用非空约束保证列值不为空。前面章节已经详细讲解了主键约束、唯一性约束、检查约束、默认值约束。本小节主要讲解非空约束的创建与使用,以及非空约束与其它约束的比较。,11.6.1,为什么要使用非空约束,1.,非空约束与检查约束,检查约束可以限制数据表中的某列的取值范围。当这个取值范围被限定为非空(,is not null,)时,要求列值不能为空。,非空约束总是针对数据表的列。一旦为某列添加了非空约束,那么,要求该列的列值不能为空,(is not null),。这相当于在列上添加了一个检查约束,这个特殊的检查约束的条件是,列值不能为空。当然,这里是指非空约束与某个特殊的检查约束有相同的效果,二者仍然是两种不同的约束。,11.6.1,为什么要使用非空约束,2.,非空约束与主键,主键值不能为空。在创建主键约束的同时,为主键列添加非空约束。非空约束与主键索引一样,都会作为主键生成时的附属产物而生成。,11.6.2,创建非空约束,创建非空约束,应该使用修改列属性的方式进行。创建非空约束之后,同样可以在数据字典中获取其相关信息。,1.,创建非空约束,创建非空约束的语法形式如下所示。,alter table,表名,modify (,列名,not null);,其中,,not null,,即指定当前列非空。,【,示例,11-34】,对于表的列来说,默认情况下允许为空。例如,对于表,employeenew,,利用,desc,命令查看表结构及相关信息。,11.6.2,创建非空约束,2.,查看非空约束,【,示例,11-35】,在数据字典,user_tab_columns,中可以查看其相关信息。,3.,非空约束的作用,【,示例,11-36】,非空约束要求列值不能为空。在表,employeenew,中,列,first_name,具有非空约束。因此,可以向其中插入新的数据以验证非空约束的作用。,11.6.2,创建非空约束,4.,默认值约束与非空约束,在数据表中,为列指定默认值约束,可以解决非空约束必须输入的限制。,【,示例,11-37】,表,employeenew,的,first_name,列不允许为空,那么,可以为其添加默认值约束。,5.,非空约束与主键约束,主键约束在创建时,会自动为主键列配置非空约束。,在表,employeenew,中,将列,first_name,置为主键。,11.6.3,修改非空约束,非空约束创建之后,可以对其进行删除操作。删除列的非空约束,只需将列的属性指定为,null,即可。,【,示例,11-39】,现欲删除表,employeenew,中,列,first_name,的非空约束。,64,写在最后,成功的基础在于好的学习习惯,The foundation of success lies in good habits,结束语,当,你尽了自己的最大努力,时,,,失败,也是伟大,的,所以不要放弃,坚持就是正确的。,When You Do Your Best, Failure Is Great, So DonT Give Up, Stick To The,End,演讲,人:,XXXXXX,时,间:,XX,年,XX,月,XX,日,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!