欢迎来到天天文库
浏览记录
ID:35960105
大小:141.50 KB
页数:23页
时间:2019-04-28
《数据库笔记sql-(31134)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、管理数据库表7.1创建数据库表表是由行和列组成的,创建表的过程主要就是定义表的列的过程,为此应先了解表的列的属性。7.1.1列的属性表的列名在同一个表中具有惟一性,同一列的数据属于同一种数据类型,除了用列名和数据类型来指定列的属性外,还可以定义其它属性NULL或NOTNULL属性和IDENTITY属性。1NULL或NOTNULL如果表的某一列被指定具有NULL属性,那么就允许在插入数据时省略该列的值,反之如果表的某一列被指定具有NOTNULL属性,那么就不允许在没有指定列缺省值的情况下插入省略该列值的数据行。在SQL
2、Server中列的缺省属性是NOTNULL。2IDENTITYIDENTITY属性可以使表的列包含系统自动生成的数字,这种数字在表中可以惟一标识表的每一行,即表中的每一行数据在指定为IDENTITY属性的列上的数字均不相同。指定了IDENTITY属性的列称为IDENTITY列,当用IDENTITY属性定义一个列时可以指定一个初始值和一个增量,插入数据到含有IDENTITY列的表中时初始值。在插入第一行数据时使用以后就由SQLServer根据上一次使用的IDENTITY值加上增量得到新的IDENTITY值,如果不指定初
3、始值和增量值则其缺省值均为1。7.1.2用CREATETABLE命令创建表用CREATETABLE命令创建表例7-1创建一个商品信息表createtablemydb.dbo.products3(p_idsmallintidentity(1000,1),/*商品序列号自动增长*/p_namechar(10)notnull,pricemoneydefault0.01,/*商品单价缺省值为0.01元*/quantitysmallintnull,sumvalueasprice*quantity/*商品总价值=单价*数量*/)
4、on[primary]7.2创建和使用约束约束Constraint是MicrosoftSQLServer提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。有关数据完整性的介绍请参见第9章。在SQLServer中有5种约束主关键字约束PrimaryKeyConstraint,外关键字约束ForeignKeyConstraint,惟一性约束UniqueConstraint,检查约束CheckConstraint和缺省约束DefaultConstraint。7.2.1主关键字约束主关键字约
5、束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录每个表中只能有一列被指定为主关键字。且IMAGE和TEXT类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL属性。7.2.2外关键字约束外关键字约束定义了表之间的关系,当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。这样当在定义主关键字约束的表中更新列值时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用
6、还体现在当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时系统会拒绝。插入数据与主关键字相同不能使用一个定义为TEXT或IMAGE数据类型的列创建外关键字,外关键字最多由16个列组成。7.2.3惟一性约束惟一性约束指定一个或多个列的组合的值具有惟一性,以防止在列中输入重复的值。惟一性约束指定的列可以有NULL属性,由于主关键字值是具有惟一性的因此主关键字列不能再设定惟一性约束,惟一性约束最多由16个列组成。7.2.4检查约束检查约束对输入列或整个表中的值设置检查条件以限制输入值,
7、保证数据库的数据完整性。可以对每个列设置符合检查。7.2.5缺省约束缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列来指定列的缺省值。SQLServer推荐使用缺省约束而不使用定义缺省值的方式来指定列的缺省值。7.3自定义数据类型除了使用系统提供的数据类型外,用户还可以根据需要用自定义的数据类型来定义表的列或声明变量。7.3.2用系统存储过程Sp_addtype创建用户自定义数据类型系统存储过程为用户提供了命令方式创建自定义数据类型的途径例7-9定义生日数据类型execsp_addtypebirthday
8、,datetime,'notnull'运行结果如下(1row(s)affected)Typeadded.例7-10定义身份证号码数据类型execsp_addtypecardid,'char(18)','notnull'运行结果如下(1row(s)affected)Typeadded.例7-11定义地址数据类型execsp_addtypeaddr
此文档下载收益归作者所有