数据库数据类型设置.ppt
、用ALTERTABLE语句修改表结构SQL修改表结构语句ALTERTABLE的语法格式:ALTERTABLE表名add列名数据类型[(长度)][null|notnull][default’默认值’]|altercolumn列名数据类型[(长度)][null|notnull]|dropcolumn字段名[,…n]|addconstraint{约束名约束类型定义}列约束定义[,…n][FOR列名]|dropconstraint约束名[,…n]|nocheckconstraint约束名|checkconstraint约束名|Disabletrigger触发器名|Enabletrigger触发器名注意:ALTERTABLE语句中只能使用单个子句,即各个子句不能组合使用。1、使用add子句添加列ALTERTABLE表名add字段名数据类型[(长度)][null|notnull][default‘默认值’]l新增加字段时可以同时设置空值约束、默认值约束。l?若不允许为空时则必须给新增加的列指定默认值,否则语句执行错误。【例4-7】向《供货商表》添加一个“联系电话”字段,数据类型为定长字符型char(13),长度13,不允许为空(必须设置默认值)。代码如下:USEdiannaoxsALTERTABLE供货商表add联系电话char(13)notnulldefault注意:添加的字段若不允许为空则必须设置默认值,如果不允许为空又不需要默认值,可在添加字段时先允许为空,再用altercolumn子句修改为不允许为空,则没有默认值。2、使用altercolumn子句修改字段属性使用altercolumn子句可修改字段的数据类型、长度、是否允许为空值等属性,其语法格式为:ALTERTABLE表名altercolumn字段名数据类型[(长度)][null|notnull]l?将一个原来允许为空值的列改为不允许为空时,必须保证表中已有记录中该列没有空值,而且该列没有创建索引。l?改变数据类型时,如果原来设置了默认值约束,一般应解除或删除约束后再修改,否则很容易发生错误。【例4-8】将《供货商表》的“联系电话”字段,数据长度改为20,允许为空(null可以省略)。代码如下:USEdiannaoxsALTERTABLE供货商表altercolumn联系电话char(20)3、用addconstraint子句添加列约束使用addconstraint子句可一次向表的不同字段添加一个或多个约束,其语法格式:ALTERTABLE表名addconstraint约束名{约束类型及定义[FOR列名]}[,…n]l该语句添加约束必须指定约束名,而且必须是惟一的,不能与数据库已定义的其他规则对象、默认值等对象同名。l?若约束类型及定义中没有指定列名时,必须用FOR指定列名(如默认值约束);若约束类型及定义中已包含了列名,则不允许使用FOR子句。l?如果只允许有一个约束的列已经设置了约束(检查约束除外),则原有约束未解除不能添加新的约束。l??使用一个约束名可以为不同字段添加多个约束:u??设置主键约束:primarykey(列名)u?设置惟一约束:unique(列名)u?设置外键约束:foreignkey(列名)references引用表名(引用列名)u??设置检查约束:check(检查表达式)u??设置默认值约束:default默认值【实例练习4-10】为《供货商表》的“供货商”添加约束“惟一厂家”,代码如下:USEdiannaoxsALTERTABLE供货商表addconstraint惟一厂家unique(供货商)注意:约束定义中已使用了字段名,若再使用“FOR供货商”会产生错误。运行后显示“命令已成功完成。”,“惟一厂家”的惟一约束添加成功。【例4-9】为《供货商表》