您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 课程名称:数据库系统概论课时:72.
PrincipleandApplicationofDatabaseSystemAnQingTeachersCollegeDepartmentofComputer&Information数据库原理与应用PrincipleandApplicationofDatabasesystem安庆师范学院计算机与信息学院PrincipleandApplicationofDatabaseSystem13.1在表中定义及删除默认值约束1.默认值约束的定义1)定义表结构时定义字段的默认值约束语法格式:CREATETABLEtable_name/*指定表名*/(column_namedatatypeNOTNULL|NULL[DEFAULTconstraint_expression]/*默认值约束表达式*/[,…n])/*定义列名、该列的数据类型、是否空值及默认值约束*/PrincipleandApplicationofDatabaseSystem例1对于school数据库,定义studentx表时定义ssex字段的默认值约束为男。CREATETABLEstudentx(snochar(5)PRIMARYKEY,snamechar(8),ssexchar(2)DEFAULT'男',sbirthdaydatetime,classchar(5))PrincipleandApplicationofDatabaseSystem2)修改表添加一个字段的同时定义相应的约束语法格式:ALTERTABLEtable_name/*指定表名*/ADDcolumn_namedatatypeNOTNULL|NULLCONSTRAINTconstraint_name/*指定约束名*/DEFAULTconstraint_expressionWITHVALUES/*默认值约束表达式*/PrincipleandApplicationofDatabaseSystemWITHVALUES:仅用在对表添加新字段的情况下,若使用了WITHVALUES,则将为表中各现有行添加的新字段提供默认值;如果没有使用WITHVALUES,那么每一行的新列中都将为NULL值。PrincipleandApplicationofDatabaseSystem例2在修改表时添加一个字段,并定义默认值约束。USEschoolALTERTABLEstudentADDnationchar(16)NULLCONSTRAINTAddnationDEFAULT'中国'WITHVALUESPrincipleandApplicationofDatabaseSystem3)对表中指定的列定义默认值语法格式:ALTERTABLEtable_nameADDCONSTRAINTconstraint_nameDEFAULTconstraint_expressionFORcolumnPrincipleandApplicationofDatabaseSystem例6.3USEschoolALTERTABLEstudentADDCONSTRAINTdef_ssexDEFAULT'男'FORssexPrincipleandApplicationofDatabaseSystem2.默认值约束的删除默认值约束可在企业管理器中删除。如果已知一个默认值约束的约束名,也可在查询分析器中执行SQL命令删除例6.4USEschoolALTERTABLEstudentDROPCONSTRAINTdef_ssexPrincipleandApplicationofDatabaseSystem13..2默认值对象的定义、使用与删除1.通过企业管理器定义和绑定DEFAULT默认值对象1)通过企业管理器定义DEFAULT默认值对象(1)进入企业管理器,并连接到school数据库;展开school数据库文件夹,选择“默认”图标右击,出现快捷菜单,如图所示,选择“新建默认”,进入默认属性定义窗口;(2)在窗口中输入默认值对象名“def_ssex”及默认值‘男’,选择“确定”后即定义了一个默认值对象。定义默认值对象的快捷菜单选择此项进入默认值对象定义窗口PrincipleandApplicationofDatabaseSystem13..2默认值对象的定义、使用与删除2)通过企业管理器将一个字段绑定到一个DEFAULT默认值对象上面已定义了默认值对象“def_ssex”,下面将student表中的ssex字段绑定到该对象上,步骤如下:(1)在企业管理器中打开student表设计器;(2)将光标移至ssex字段,从默认值对象下拉表中选择其对应的默认值对象即可,如图所示。1.将光标移至ssex字段2.在默认值下拉框中选择需绑定的默认值对象def_ssex将字段绑定到默认值对象的窗口PrincipleandApplicationofDatabaseSystem13.2默认值对象的定义、使用与删除2.通过SQL语句定义和绑定DEFAULT默认值对象(1)通过SQL命令定义DEFAULT默认值对象定义DEFAULT默认值对象的命令如下。语法格式:CREATEDEFAULTdefaultASconstant_expression(2)通过系统存储过程绑定DEFAULT默认值对象创建默认值对象后,要使其起作用,应使用sp_bindefault存储过程将其绑定到列或用户定义数据类型。语法格式:sp_bindefault[@defname=]'default',[@objname=]'object_name'[,[@futureonly=]'futureonly_flag']PrincipleandApplicationofDatabaseSystemfutureonly_flag仅在将默认值对象绑定到用户定义数据类型时才使使用,当futureonly_flag的值为futureonly时,表示在此之前,该数据类型关联的列不继承该默认值。PrincipleandApplicationofDatabaseSystem例6.5在school数据库中定义def_ssex的默认值对象,然后将其绑定到student表的ssex字段。USEschoolGOCREATEDEFAULTdef_ssexAS'男'GOEXECsp_bindefault'def_ssex','student.ssex'PrincipleandApplicationofDatabaseSystem例6.6在school数据库中定义名为birthday_date的数据类型,然后定义默认值对象birthday并将其绑定到用户定义的数据类型birthday_date中。USEschoolGOEXECsp_addtype'birthday_date','datetime','NULL'GOCREATEDEFAULTbirthdayAS'1979-2-10'GOEXECsp_bindefault'birthday','birthday_date'PrincipleandApplicationofDatabaseSystem13.2默认值对象的定义、使用与删除3.默认值对象的删除如果要删除一个默认值对象,首先应解除默认值对象与用户定义类型及表字段的绑定关系,然后才能删除该默认值对象。(1)利用sp_unbindefault解除绑定关系语法格式:sp_unbindefault[@objname=]'object_name'[,[@futureonly=]'futureonly_flag'](2)删除默认值对象解除默认值对象与用户定义类型及表字段的绑定关系后,即可用DROP语句删除默认值对象。语法格式:DROPDEFAULT{default}[,...n]PrincipleandApplicationofDatabaseSystemfutureonly_flag仅在将默认值对象绑定到用户定义数据类型时才使使用,当futureonly_flag的值为futureonly时,现有的属于该数据类型的列默认值不变。PrincipleandApplicationofDatabaseSystem例6.7解除默认值birthday与school数据库中用户定义数据类型birthday_date的绑定关系,然后删除名为birthday的默认值对象。USEschoolGOEXECsp_unbindefault'birthday_date'GODROPDEFAULTbirthdayPrincipleandApplicationofDatabaseSystem13.3数据完整性的分类域完整性又称为列完整性,指列数据输入的有效性。1.域完整性USEschoolCREATETABLEscore1(snochar(5)NOTNULL,cnochar(10)NOTNULL,degreenumeric(18,1)CHECK(degree=0ANDdegree=100)NULL,PRIMARYKEY(sno,cno))GO例6.8定义表score1的同时定义degree字段的约束条件:PrincipleandApplicationofDatabaseSystem2.实体完整性snosnamessexsbirthdayclass101李军男1976-2-2095033103陆君男1974-6-395031105匡明男1975-10-295031107王丽女1976-1-2395033108曾华男1976-9-195033109王芳女1975-2-1095031实体完整性又称为行的完整性,要求表中有一个主键,其值不能为空且能唯一地标识对应的记录。3.参照完整性参照完整性又称为引用完整性。参照完整性保证主表中的数据与从表中数据的一致性。snocnodegree1013-105641016-166851033-105921033-245861053-105881053-245751073-105911076-166791083-105781086-166811093-105761093-24568PrincipleandApplicationofDatabaseSystem13.3.1域完整性的实现1.CHECK约束的定义与删除CHECK约束实际上是字段输入内容的验证规则,表示一个字段的输入内容必须满足CHECK约束的条件,若不满足,则数据无法正常输入。1)通过企业管理器创建与删除CHECK约束PrincipleandApplicationofDatabaseSystem2)利用SQL语句在创建表时创建CHECK约束语法格式:CREATETABLEtable_name/*指定表名*/(column_namedatatypeNOTNULL|NULL[DEFAULTconstraint_expression]/*默认值约束表达式*/[[check_name]CHECK(logical_expression)]/*CHECK约束表达式*/[,…n])/*定义列名、数据类型、标识列、是否空值及定义缺省值约束、CHECK约束*/PrincipleandApplicationofDatabaseSystemUSEschoolCREATETABLEscore1(snochar(5)NOTNULL,cnochar(10)NOTNULL,degreenumeric(18,1)CHECK(degree=0ANDdegree=100)NULL,PRIMARYKEY(sno,cno))GOPrincipleandApplicationofDatabaseSystem3)利用SQL语句在修改表时创建CHECK约束语法格式:ALTERTABLEtable_nameADDCONSTRAINTcheck_nameCHECK(logical_expression)PrincipleandApplicationofDatabaseSystem例6.9通过修改school数据库score
本文标题:课程名称:数据库系统概论课时:72.
链接地址:https://www.777doc.com/doc-3821756 .html