1、第四章第四章 销售管理数据库数销售管理数据库数据表的创建和管理据表的创建和管理SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社技能目标技能目标u学会创建数据表;学会创建数据表;u学会创建和修改销售管理数据库中的数据表;学会创建和修改销售管理数据库中的数据表;u学会使用约束来保证数据的完整性。学会使用约束来保证数据的完整性。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社4.1.14.1.1表的基本概念表的基本概念 u表是组织和管理数据的基本单位表是组织和管理数据的基本单位,是数据库存储数据的是数据库存储数据的主要对
2、象。主要对象。u表是由行和列组成的二维结构。表是由行和列组成的二维结构。u表中的一行称为一条记录,表中的一列称为一个字段表中的一行称为一条记录,表中的一列称为一个字段订单号订单号客户代号客户代号产品号产品号单价单价数量数量订单日期订单日期10248VINET1114.0020 2006-07-0510248VINET429.8015 2006-07-0510249TOM2218.6010 2006-07-0610250JACK1114.0030 2006-07-0810250JACK4134.5025 2006-07-08字段字段/属性属性记录记录/元组元组SQL Server 2005数据库
3、应用技术数据库应用技术 清华大学出版社清华大学出版社表的性质:表的性质:数据类型规定了此字段数据的取数据类型规定了此字段数据的取值范围和存储格式值范围和存储格式SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社数据类型数据类型 u数字数据(整型,精确数值型,浮点数值型)数字数据(整型,精确数值型,浮点数值型)u字符数据字符数据u货币数据货币数据u日期和时间数据日期和时间数据u二进制和图像型二进制和图像型u其他数据类型其他数据类型 SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社&4.1.2 SQL Server 20
4、054.1.2 SQL Server 2005中的数据类型中的数据类型 精度精度:指数值型数据可以存储的十进制数字的:指数值型数据可以存储的十进制数字的总位数,包括小数点左侧的整数部分和小数点总位数,包括小数点左侧的整数部分和小数点右侧的小数部分。比如,右侧的小数部分。比如,1230.4561230.456的精度为的精度为7 7。小数位数小数位数:指数值型数据小数点右边的数字个:指数值型数据小数点右边的数字个数。比如,数。比如,513.15513.15的精度是的精度是5 5,小数位是,小数位是2 2。长度长度:指存储数据时所占用的字节数。数据类:指存储数据时所占用的字节数。数据类型不同,所占用
5、的字节数就不同。有些数据类型不同,所占用的字节数就不同。有些数据类型拥有固定的长度(例如:型拥有固定的长度(例如:intint,4 4字节;字节;datetimedatetime,8 8字节),而有些数据类型则根据用字节),而有些数据类型则根据用户的要求来决定长度(例如:户的要求来决定长度(例如:charchar)。)。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u1整数类型 (1 1)bigintbigint:数据范围为:数据范围为2632632632631 1。精度为。精度为1919,长度为长度为8 8个字节。个字节。(2 2)intint(in
6、tegerinteger):数据范围为):数据范围为2312312312311 1。精度为精度为1010,长度,长度4 4个字节。个字节。(3 3)smallint smallint:数据范围为:数据范围为2152152152151 1。精度。精度为为5 5,长度,长度2 2个字节。个字节。(4 4)tinyint tinyint:数据范围为:数据范围为0 0255255。精度为。精度为3 3,长度,长度1 1个字节。个字节。(5 5)bitbit:此类型数据相当于其他语言中的逻辑型数据,:此类型数据相当于其他语言中的逻辑型数据,它只存储它只存储0 0、1 1或或NULLNULL,长度一般为,
7、长度一般为1 1字节。字节。提示:整数型数据的存储结构效率较高,所以在选用数提示:整数型数据的存储结构效率较高,所以在选用数据类型时,应尽量采用这种类型。据类型时,应尽量采用这种类型。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u2精确数值型:由整数部分和小数部分构成,其所有:由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。的数字都是有效位,能够以完整的精度存储十进制数。decimaldecimal和和numericnumeric:数据的范围为:数据的范围为1038+11038+11038-11038-1的固定精度和小
8、数位数。可以提供小数所需要的实际存的固定精度和小数位数。可以提供小数所需要的实际存储空间,可以用储空间,可以用517517个字节来存储。使用命令创建表时个字节来存储。使用命令创建表时将其写为将其写为decimaldecimal(p p,s s)或者)或者numericnumeric(p p,s s)的形式。)的形式。其中其中p(1=P=38)p(1=P=38)为精度,为精度,s s为小数位数。为小数位数。例如:例如:decimaldecimal(8 8,3 3),表示共有),表示共有8 8位数,其中整数位数,其中整数5 5位,小数位,小数3 3位。位。注意:声明精确数值型数据时,其小数位数必须
9、小于精注意:声明精确数值型数据时,其小数位数必须小于精度。度。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u3浮点数据类型:用于存储十进制小数用于存储十进制小数 ,采用只入不舍的方式,采用只入不舍的方式 (1 1)floatfloat:其取值范围为:其取值范围为1.791.7910308103081.791.791030810308的浮点精度数的浮点精度数字。可以精确到第字。可以精确到第1515位小数,默认占用位小数,默认占用8 8个字个字节的存储空间节的存储空间(2 2)realreal:其取值范围为:其取值范围为3.403.40103810383
10、.403.4010381038的浮点精度数字,长度为的浮点精度数字,长度为4 4个字节。个字节。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u4货币数据类型(1 1)moneymoney:用于存储货币值,数值以一个正数部分和:用于存储货币值,数值以一个正数部分和一个小数部分存储在两个一个小数部分存储在两个4 4字节的整型值中,存储范围字节的整型值中,存储范围为为-922337213685377.5808 922337213685377.5808-922337213685377.5808 922337213685377.5808,精度为精度为1919,
11、小数位数为,小数位数为4 4,长度为,长度为8 8字节。字节。(2 2)smallmoneysmallmoney:其存储范围为:其存储范围为-213738.3368213738.3367213738.3368213738.3367,精度为精度为1010,小数位数为,小数位数为4 4,长度为长度为4 4字节。字节。由于由于moneymoney和和smallmoneysmallmoney数据类型的小数位数固定为数据类型的小数位数固定为4 4,因此若所使用的货币数据值的小数位超过因此若所使用的货币数据值的小数位超过4 4位,请改用位,请改用numericnumeric或或decimaldecimal
12、数据类型。数据类型。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u5日期和时间数据类型(1 1)datetimedatetime:占用:占用8 8个字节。个字节。用于存储日期和时间的结合体,可以存储从用于存储日期和时间的结合体,可以存储从公元公元17531753年年1 1月月1 1日零时起日零时起 公元公元99999999年年1212月月3131日日2323时时5959分分5959秒之间的所有日期和时间,秒之间的所有日期和时间,其精确度可达百分之三秒,即其精确度可达百分之三秒,即3.333.33毫秒。毫秒。(2 2)smalldatetimesmal
13、ldatetime:存储从:存储从19001900年年1 1月月1 1日日20792079年年6 6月月6 6日内的日期。长度为日内的日期。长度为4 4个字节。个字节。当存储当存储datetimedatetime数据类型时,默认的格式是:数据类型时,默认的格式是:MM DD YYYY hh:mm A.M/P.MMM DD YYYY hh:mm A.M/P.M。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社输入日期部分时可以采用的格式如下:英文数字格式:英文数字格式:Jan 3 1999Jan 3 1999、JAN 3 1999JAN 3 1999、Ja
14、nuary 3 1999January 3 1999、Jan 1999 3Jan 1999 3、1999 3 Jan1999 3 Jan和和1999 Jan 31999 Jan 3。数字加分隔符格式:数字加分隔符格式:允许使用允许使用/、-和和.作为作为不同时间单位间的分隔符,如不同时间单位间的分隔符,如 1999-1-31999-1-3或或1999/1/31999/1/3或或 1999.1.31999.1.3。输入时间部分时可以使用可以使用1212小时格式或小时格式或2424小小时格式。使用时格式。使用1212小时格式时需要加上小时格式时需要加上AMAM或或PMPM说明上午还是下午。说明上午
15、还是下午。1999-1-3 21999-1-3 2:3030:4545:20PM /1220PM /12小时制小时制1999-1-3 141999-1-3 14:3030:4545:20 /2420 /24小时制小时制SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u6字符数据类型用来存储汉字、英文字母、数字和特殊符号。在使用来存储汉字、英文字母、数字和特殊符号。在使用时需要在其前后加上英文单引号或者双引号。用时需要在其前后加上英文单引号或者双引号。(1 1)charchar(定长字符型定长字符型):用来存放固定长度的字:用来存放固定长度的字符数据,可用
16、符数据,可用n n来指定字符串的长度,字符串长度取来指定字符串的长度,字符串长度取值范围为值范围为1-80001-8000,不论用户输入的字符串有多长,不论用户输入的字符串有多长(不大于(不大于n n),长度均为),长度均为n n字节。当输入字符的长度字节。当输入字符的长度大于大于n n时,时,SQL ServerSQL Server给出错误信息拒绝接收数据。给出错误信息拒绝接收数据。对于像身份证号码、邮政编码等为固定长度的数据,对于像身份证号码、邮政编码等为固定长度的数据,使用使用charchar类型比较合适。类型比较合适。注意:一个中文文字占用注意:一个中文文字占用2 2个字节,因此要存放
17、三个个字节,因此要存放三个汉字,长度应取汉字,长度应取6 6字节。字节。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社(2 2)varcharvarchar(变长字符型)(变长字符型):可以存储长达:可以存储长达80008000个字符的可变长度字符串,和个字符的可变长度字符串,和charchar类型不类型不同,同,varcharvarchar类型根据输入数据的实际长度而变类型根据输入数据的实际长度而变化。化。当一个字段中的数值长度显著不同时,可以采当一个字段中的数值长度显著不同时,可以采用用varcharvarchar。与。与charchar类型相比,
18、它可以节省很多类型相比,它可以节省很多空间,但在处理速度上往往不及空间,但在处理速度上往往不及charchar。texttext:当一个字段中存储字符超过:当一个字段中存储字符超过80008000个时,个时,可以选择可以选择texttext类型。最大长度为类型。最大长度为2312311 1个字符。个字符。在定义在定义TextText数据类型时,不需要指定数据长度,数据类型时,不需要指定数据长度,SQL ServerSQL Server会根据数据的长度自动为其分配空会根据数据的长度自动为其分配空间。间。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社7.U
19、nicode字符型双字节数据类型UnicodeUnicode是是“统一字符编码标准统一字符编码标准”,用于支持国际,用于支持国际上非英语语种的字符数据的存储和处理。上非英语语种的字符数据的存储和处理。UnicodeUnicode数据类型包括三种:数据类型包括三种:ncharnchar、nvarcharnvarchar和和ntextntext数据类型。数据类型。ncharnchar(UnicodeUnicode定长字符型):用于存储固定长度定长字符型):用于存储固定长度的的UnicodeUnicode数据,所存放的字符数数据,所存放的字符数n n的取值范围为的取值范围为1 14000,4000,
20、长度为长度为2n2n。nvarcharnvarchar(UnicodeUnicode变长字符型):用于存储可变变长字符型):用于存储可变长度的长度的UnicodeUnicode数据。存储大小是所输入字符个数数据。存储大小是所输入字符个数的的2 2倍。倍。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社7.Unicode字符型双字节数据类型ntext(Unicodentext(Unicode文本型)文本型):当一个字段中存储字符超过当一个字段中存储字符超过40004000个时,且为可变长度的个时,且为可变长度的UnicodeUnicode文本数据,则应文本
21、数据,则应该选择该选择texttext类型。最多可以存放类型。最多可以存放230-1230-1个字符。个字符。注意:使用注意:使用unicodeunicode,由于用两个字节来存放一个字,由于用两个字节来存放一个字符,因此不管是一个英文字符还是一个汉字都将占用符,因此不管是一个英文字符还是一个汉字都将占用2 2字节。字节。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u8二进制数据类型和图像型u(1 1)binarybinary:u其定义形式为其定义形式为binarybinary(n n),数据的存储长度是固定的,),数据的存储长度是固定的,即即n n
22、个字节。二进制数据类型的最大长度(即个字节。二进制数据类型的最大长度(即n n的最大值)的最大值)为为80008000,常用于存储图像等数据。,常用于存储图像等数据。u(2 2)varbinaryvarbinaryu其定义形式为其定义形式为varbinaryvarbinary(n n),数据的存储长度是变化),数据的存储长度是变化的,它为实际所输入数据的长度。的,它为实际所输入数据的长度。u(3 3)imageimage:如果字段要存储超过:如果字段要存储超过80008000字节且为可变长字节且为可变长度的二进制数据,应采用度的二进制数据,应采用imageimage数据类型。用于存储照数据类型
23、。用于存储照片、目录图片或者图画。长度为片、目录图片或者图画。长度为2312311 1个字节。个字节。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u9其他数据类型(较少使用)(1 1)sql_variantsql_variant:用于存储除文本、图形数据和:用于存储除文本、图形数据和timestamptimestamp类型数据外的其它任何合法的类型数据外的其它任何合法的SQL ServerSQL Server数数据。据。(2 2)tabletable:用于存储对表或者视图处理后的结果集。:用于存储对表或者视图处理后的结果集。一般只用在编程环境中,就像
24、一个临时的表格。一般只用在编程环境中,就像一个临时的表格。(3 3)timestamptimestamp:也称作时间戳数据类型。是一种自:也称作时间戳数据类型。是一种自动记录时间的数据类型,主要用于在数据表中记录其动记录时间的数据类型,主要用于在数据表中记录其数据的修改时间。它提供数据库范围内的惟一值。一数据的修改时间。它提供数据库范围内的惟一值。一个表中只能有一个个表中只能有一个timestamptimestamp类型的字段。类型的字段。(4 4)uniqueidentifieruniqueidentifier:也称作惟一标识符数据类型:也称作惟一标识符数据类型,是一个是一个1616字节长的
25、二进制数据。字节长的二进制数据。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社4.1.3 SQL Server4.1.3 SQL Server的主要列属性的主要列属性u1 1允许空(允许空(NULLNULL或或NOT NULLNOT NULL)u该属性定义在输入数据时指定列是否可以该属性定义在输入数据时指定列是否可以为空。在为空。在SQL ServerSQL Server中,列的默认属性为中,列的默认属性为“允许空允许空”,例如,例如,StudentStudent表中的表中的SsexSsex列和列和SageSage列。当某列不允许为空时,只需列。当某列
26、不允许为空时,只需要在该列的要在该列的“允许空允许空”选项中取消复选框选项中取消复选框就行了,如就行了,如SnoSno列。列。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u很多表中使用编号列来标识表中的记录。设置成功后,很多表中使用编号列来标识表中的记录。设置成功后,插入数据时,用户并不需要指定编号列的值,每插入一插入数据时,用户并不需要指定编号列的值,每插入一条记录,系统都会根据增量值自动为该列生成新数据。条记录,系统都会根据增量值自动为该列生成新数据。u定义标识列需要指定两个值:种子值和增量值。这样,定义标识列需要指定两个值:种子值和增量值。这样
27、,表中第一行记录的表中第一行记录的IDENTITYIDENTITY列的值就是种子值,其他行列的值就是种子值,其他行的的IDENTITYIDENTITY列的值是在前一行值的基础上增加一个增量列的值是在前一行值的基础上增加一个增量值得到的。值得到的。u标识列必须定义为整型标识列必须定义为整型(bigint(bigint、intint、smallintsmallint或或tinyinttinyint)或精确数类型()或精确数类型(decimal(P,0)decimal(P,0)和和numeric(P,0)numeric(P,0)),但通常将标识列的类型定义为),但通常将标识列的类型定义为intint
28、或或bigintbigint。2标识规范(IDENTITY)SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社u由于由于的,所以一般情况的,所以一般情况下下而且,而且,如果删除了这些列中的部分数据,还会造成标识符序列如果删除了这些列中的部分数据,还会造成标识符序列空缺空缺已删除的标识符值是不能重用的,系统不会自已删除的标识符值是不能重用的,系统不会自动补充这部分数据值。动补充这部分数据值。u解决办法:解决办法:u使用使用SET IDENTITY_INSERT 语句将标识列设置为语句将标识列设置为可以插入数据的状态。该语句的基本格式为:可以插入数据的状态。该
29、语句的基本格式为:其中,其中,ON表示可以插入数据,OFF表示拒绝插入数据。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社4.2 4.2 创建销售管理数据库的数据表创建销售管理数据库的数据表 u 使用使用Management Studio Management Studio 【练习】在销售管理数据库中,利用【练习】在销售管理数据库中,利用Management Management Studio Studio 创建客户表。创建客户表。u使用使用CREATE TABLECREATE TABLE语句语句 【练习】在销售管理数据库中,利用【练习】在销售管理数据
30、库中,利用 Create TableCreate Table语句,创建部门表和商品表。语句,创建部门表和商品表。u使用模板使用模板SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社4.3 4.3 销售管理数据库数据的完整性销售管理数据库数据的完整性 u实体完整性实体完整性:要求数据库中的每一条记录都是:要求数据库中的每一条记录都是惟一的,即表中没有重复的记录。即要求主键惟一的,即表中没有重复的记录。即要求主键属性的值不能为空值,并且必须是唯一的。属性的值不能为空值,并且必须是唯一的。u参照完整性(引用完整性)参照完整性(引用完整性):外键属性的值必:外键属
31、性的值必须与它所引用的主键属性的值保持一致。须与它所引用的主键属性的值保持一致。u用户自定义完整性(域完整性)用户自定义完整性(域完整性):要求存入字:要求存入字段中的数据必须符合特定的条件来保证数据的段中的数据必须符合特定的条件来保证数据的完整性。完整性。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社约束概述约束概述 u约束定义:是约束定义:是 SQL ServerSQL Server提供的自动保持数据提供的自动保持数据库完整性的一种方法库完整性的一种方法 。u约
32、束分类约束分类u空值(空值(NULL)约束)约束u主键约束主键约束(Primary Key Constraint)u唯一键约束唯一键约束(Unique Constraint)u外键约束外键约束(Foreign Key Constraint)u检查约束检查约束(Check Constraint)u默认约束默认约束(Default Constraint)SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社主键约束主键约束 u一个表通常可以通过一个字段(或多个字段的组合)一个表通常可以通过一个字段(或多个字段的组合)的数据来惟一地确定表中的每一条记录,这个字段的数
33、据来惟一地确定表中的每一条记录,这个字段(或字段组合)被称为表的主键。(或字段组合)被称为表的主键。u每个表都应该有主键,且只能有一个主键。每个表都应该有主键,且只能有一个主键。u主键不能取空值。主键约束可以保证实体的完整性。主键不能取空值。主键约束可以保证实体的完整性。u使用使用Management Studio Management Studio 创建主键约束创建主键约束 u在创建表同时主键约束在创建表同时主键约束u在一张现有表上添加主键约束在一张现有表上添加主键约束SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社外键约束外键约束u外键约束主要用来维
34、护两个表之间数据的一致性。外键约束主要用来维护两个表之间数据的一致性。u如果希望一个表中的字段(或字段组合)与其他表中如果希望一个表中的字段(或字段组合)与其他表中的主键字段相关,这个字段(或字段组合)就成为前的主键字段相关,这个字段(或字段组合)就成为前一个表中的一个表中的外键外键。u创建外键字段与主键字段的数据类型匹配,字段长度创建外键字段与主键字段的数据类型匹配,字段长度应当相等,字段名称可以相同也可以不同,两个表必应当相等,字段名称可以相同也可以不同,两个表必须位于同一个数据库内。须位于同一个数据库内。u具有主键约束或惟一性约束的表为主键表,另一个则具有主键约束或惟一性约束的表为主键表
35、,另一个则为外键表。为外键表。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社外键约束外键约束 u使用使用Management Studio Management Studio 创建外键约束创建外键约束u使用使用Transact-SQL Transact-SQL 语句定义外键语句定义外键 语法格式:语法格式:CREATE TABLE CREATE TABLE (列名列名 数据类型数据类型 为空性为空性 FOREIGN KEY REFERENCES ref_table FOREIGN KEY REFERENCES ref_table(ref_column)
36、(ref_column))其中,参数说明如下。其中,参数说明如下。uREFERENCES:参照:参照 uref_table:主键表名,要建立关联的被参照表的名:主键表名,要建立关联的被参照表的名称称 uref_column:主键列名:主键列名 SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社唯一键约束唯一键约束 u唯一键唯一键约束用于指定一个或多个列的组合值具有唯一约束用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。性,以防止在列中输入重复的值。u唯一键约束与主键约束的区别唯一键约束与主键约束的区别 。u唯一键唯一键性约束指定的列可以有
37、NULL 属性。但主键约束所在的列则不允许;u一个表中可以包含多个唯一键唯一键约束,而主键约束则只能有一个;u创建唯一键约束创建唯一键约束u创建表的同时创建UNIQUE约束u在现有的表中添加唯一键唯一键约束SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社检查约束检查约束u检查约束(检查约束(CHECKCHECK约束)定义约束)定义 实际上是验证字段输入内容的规则,表实际上是验证字段输入内容的规则,表示一个字段的输入内容必须满足示一个字段的输入内容必须满足CHECK约约束的条件,若不满足,则数据无法正常输入。束的条件,若不满足,则数据无法正常输入。可以对每
38、个列设置可以对每个列设置CHECK约束。约束。u 创建检查约束创建检查约束u使用使用Management studio u使用使用Transact-SQL 语句语句 SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社检查约束检查约束语法结构:语法结构:CONSTRAINT 约束名约束名 CHECK (logical_expression),n【练【练习】在销售管理数据库中的商品表中,为了习】在销售管理数据库中的商品表中,为了保证数据的质量,确保商品的价格为大于保证数据的质量,确保商品的价格为大于0的数,库存量和已销售量数据为非负数。的数,库存量和已销售量数
39、据为非负数。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社默认值约束默认值约束 默认值约束(默认值约束(DEFAULTDEFAULT)用于确保域完整性,它提)用于确保域完整性,它提供了一种为数据表中任何一列提供默认值的手段。供了一种为数据表中任何一列提供默认值的手段。创建默认值约束:创建默认值约束:1 1、使用、使用Management studio Management studio 创建默认值创建默认值 2 2、使用、使用Transact-SQL Transact-SQL 语句创建默认值定义语句创建默认值定义语法:语法:CONSTRAINT 约束名
40、约束名 DEFAULT constant_expression FOR 列名列名【练习】在销售管理数据库中的员工表中,新员工如【练习】在销售管理数据库中的员工表中,新员工如果不到特定部门工作的话,新员工全部到果不到特定部门工作的话,新员工全部到“销售部销售部”工作工作 SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社4.4 4.4 用用SQLSQL命令创建数据表命令创建数据表基本语法如下:基本语法如下:CREATE TABLE CREATE TABLE 表名表名(列名列名1 1 数据类型和长度数据类型和长度1 1 列属性列属性1,1,列名列名2 2 数据
41、类型和长度数据类型和长度2 2 列属性列属性2,2,列名列名n n 数据类型和长度数据类型和长度n n 列属性列属性n n)在在CREATE TABLECREATE TABLE语句中需要指出的元素与在表设计器中相语句中需要指出的元素与在表设计器中相同,包括表名、列名、列的数据类型以及列属性等。同,包括表名、列名、列的数据类型以及列属性等。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社使用默认值 一个字段的默认值的建立可以通过如下两一个字段的默认值的建立可以通过如下两种方式实现:种方式实现:在定义表或修改表时,定义默认值约束;在定义表或修改表时,定义默认
42、值约束;先定义默认对象,然后将该对象绑定到表先定义默认对象,然后将该对象绑定到表的相应字段。的相应字段。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社创建默认值创建默认值u1.1.使用使用T-SQLT-SQL语句创建默认值语句创建默认值CREATE DEFAULT default_nameCREATE DEFAULT default_nameAS default_descriptionAS default_descriptionu其中:其中:default_namedefault_name为默认值对象的名称为默认值对象的名称default_descri
43、ptiondefault_description为默认值表达式,可以是任意数为默认值表达式,可以是任意数据类型的常量、内置函数或数学表达式。其中字符和据类型的常量、内置函数或数学表达式。其中字符和日期常量用单引号(日期常量用单引号()括起来。)括起来。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社捆绑默认值u将默认值捆绑到列或用户自定义数据类型上,将默认值捆绑到列或用户自定义数据
44、类型上,它就可以为列和用户自定义数据类型提供默它就可以为列和用户自定义数据类型提供默认值。认值。u默认值和表列或用户自定义数据类型的绑定默认值和表列或用户自定义数据类型的绑定可以通过可以通过sp_bindefaultsp_bindefault系统存储过程和图形系统存储过程和图形工具的方法实现。工具的方法实现。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社使用系统存储过程使用系统存储过程sp_bindefaultsp_bindefault绑定绑定usp_bindefault default,object_namesp_bindefault default
45、,object_nameSQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社删除默认值删除默认值u1.1.使用系统存储过程使用系统存储过程sp_unbindefaultsp_unbindefault解除默解除默认值与用户自定义数据类型或者列的捆绑关认值与用户自定义数据类型或者列的捆绑关系:系:Sp_unbindefault Sp_unbindefault 对象名对象名u删除默认值删除默认值drop default default,drop default default,SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社
46、使用规则u规则是一组使用规则是一组使用T-SQLT-SQL书写的条件语句,它可书写的条件语句,它可以和列或者用户自定义数据类型捆绑在一起。以和列或者用户自定义数据类型捆绑在一起。当用户向绑定有规则的数据列上插入数据或修当用户向绑定有规则的数据列上插入数据或修改数据时,需要验证一个数据库中的数据是否改数据时,需要验证一个数据库中的数据是否遵循规则。如果违反了规则,这一操作就会失遵循规则。如果违反了规则,这一操作就会失败。败。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社创建规则uCREATE RULE rule_nameCREATE RULE rule_
47、nameAS AS Rule_descriptionRule_description其中,规则表达式为一个条件表达式,可以是其中,规则表达式为一个条件表达式,可以是wherewhere子句中的有效表达式,可以包含比较运子句中的有效表达式,可以包含比较运算符和算术运算符,但不能包括数据库对象名算符和算术运算符,但不能包括数据库对象名或表的列名。被绑定的列在规则表达式中使用或表的列名。被绑定的列在规则表达式中使用参数表示,参数前要加参数表示,参数前要加“”符号。符号。SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社SQL Server 2005数据库应用技术
48、数据库应用技术 清华大学出版社清华大学出版社SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社绑定规则 绑定规则就是将定义好的规则绑定在数据库绑定规则就是将定义好的规则绑定在数据库表的列上,使该列具有规则指定的完整性条件。表的列上,使该列具有规则指定的完整性条件。绑定规则的语法为绑定规则的语法为:exec exec sp_bindrule sp_bindrule 规则名规则名,对象名对象名SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学
49、出版社解除规则解除规则u解除规则的语法为解除规则的语法为Exec Exec sp_unbindrulesp_unbindrule,对象名对象名SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社删除规则删除规则u删除规则的语法为删除规则的语法为 Drop ruleDrop rule 规则名规则名 SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社销售管理数据库的数据表管理销售管理数据库的数据表管理 u查看表结构查看表结构 u查看数据表的属性 u查看表结构u查看表中数据u修改数据表修改数据表 u使用Management S
50、tudio u使用Alter Table 语句u删除数据表删除数据表u重命名数据表重命名数据表 SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社修改表结构修改表结构u使用使用ALTER TABLEALTER TABLE语句修改表结构语句修改表结构 u 添加列添加列u 修改列属性修改列属性u 删除列删除列 u 修改列名和表名修改列名和表名u添加约束添加约束u删除约束删除约束SQL Server 2005数据库应用技术数据库应用技术 清华大学出版社清华大学出版社添加列添加列 :【例【例4.1】在部门表中新增一列】在部门表中新增一列“联系电话联系电话”,列允许