




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、制作:荆州职业技术学院 彭岚第四章第四章 数据表对象的创建与管理数据表对象的创建与管理制作:荆州职业技术学院 彭岚本章学习目标本章学习目标1、学习目标l掌握SQL Server2008数据表的基本概念;l理解约束、默认和规则的含义并学会运用;l熟练掌握利用SQL Server Mangement Studio对象资源管理器和T-SQL语句两种方法进行数据表的创建、查看、修改、重命名及删除操作;l熟练掌握利用SQL Server Mangement Studio对象资源管理器和T-SQL语句两种方法进行数据表中数据的增、删、改操作;l熟练掌握利用SQL Server Mangement Stud
2、io对象资源管理器和T-SQL语句两种方法进行数据表的约束的设置操作;2. 学习要点lSQL Server 2008表结构的创建、修改; lSQL Server 2008的表数据的增、删、改操作; l约束的创建及管理。 制作:荆州职业技术学院 彭岚4.1.14.1.1数据类型数据类型 所谓数据类型就是以数据的表现方式和存所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。储方式来划分的数据的种类。 在在SQL Server SQL Server 中每个变量、参数、表达式等中每个变量、参数、表达式等都有数据类型。都有数据类型。 制作:荆州职业技术学院 彭岚(一)(一) 整数数据类型整数
3、数据类型 1. INT 1. INT (INTEGERINTEGER)说明:(1)(1)取值范围:取值范围: -2 31(-2 147483448) 2 31 -1 (2147 483447)之间的所有正负整数。(2)(2)存储大小存储大小: 4个字节,其中1位表示整数值的正负号,其它31 位表示整数值的长度和大小。例: declare a int declare a int -定义一个整型局部变量定义一个整型局部变量a a select a=-12345 select a=-12345 -为该局部变量赋值为为该局部变量赋值为-12345-12345 select a select a -在屏
4、幕上输出该局部变量的值在屏幕上输出该局部变量的值 go go -整个程序段结束整个程序段结束制作:荆州职业技术学院 彭岚2. SMALLINT2. SMALLINT说明:(1 1)取值范围:)取值范围:-2 15(-32768) 2 15 -1(32767)之间的所有正负整数。 (2 2)存储大小:)存储大小:2个字节,其中1位表示整数的正负号,其它15位表示整数值的长度和大小 制作:荆州职业技术学院 彭岚3. TINYINT3. TINYINT说明:(1 1)取值范围:)取值范围: 0 255 之间的所有正整数。(2 2)存储大小:)存储大小:1 个字节例: declare b tinyin
5、t set b=12345 select b go结果:出错制作:荆州职业技术学院 彭岚4. BIGINT4. BIGINT 说明:(1 1)取值范围:)取值范围: -243 (-9223372034854775807) 243-1( 9223372034854775807)之间的所有正负整数。(2 2)存储大小:)存储大小:每个BIGINT 类型的数据占用8个字节的存储空间。 制作:荆州职业技术学院 彭岚(二)浮点数据类型(二)浮点数据类型 ( (一一) )近似数值类型:指在其范围内不是所有的近似数值类型:指在其范围内不是所有的数都能精确表示数都能精确表示 REAL REAL 数据类型数据类
6、型: : REALREAL数据类型以指数形式表示时可精确到第数据类型以指数形式表示时可精确到第7 7 位小数,位小数,(1)(1)取值范围:从取值范围:从-3.40E+38 -3.40E+38 到到3.40E +383.40E +38。(2)(2)存储大小:占用存储大小:占用4 4 个字节个字节的存储空间的存储空间。(3)(3)若以小数点表示,则可精确到小数点后第(若以小数点表示,则可精确到小数点后第(8-8-整数位)整数位)位;位;(4)(4)当整数位达到当整数位达到8 8位时,系统自动以指数形式表示位时,系统自动以指数形式表示 制作:荆州职业技术学院 彭岚 2. FLOAT FLOAT:说
7、明:(1)(1)取值范围:取值范围:可精确到第15 位小数,其范围为从-1.79E +308 到1.79E +308。 (2)(2)存储大小存储大小:占用8 个字节的存储空间。(3)(3)当整数位数达到16位时,系统自动以指数形式表示。制作:荆州职业技术学院 彭岚(三)精确小数: 1. DECIMALDECIMAL说明:(1)(1)取值范围:取值范围:存储从-1038+1到1038-1的固定精度和范围的数值型数据;(2)(2)存储大小存储大小:217个字节不等;(3)(3)可用格式可用格式: DECIMALDECIMAL(p p,ss) P指范围是小数点左右所能存储的数字的总位数,不包括小数点
8、; S是精度,小数点右边存储的数字的位数,缺省为0。例如:例如:decimal(15decimal(15,5)5),表示共有,表示共有15 15 位数,其位数,其中整数中整数10 10 位,小数位,小数5 5位。位。制作:荆州职业技术学院 彭岚 2. NUMERIC2. NUMERIC NUMERIC数据类型与DECIMAL数据类型完全相同。注意:注意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。但可以通过使用命令来改变默认精度 .制作:荆州职业技术学院 彭岚(四)(四) 二进制数据类型二进制数据类型 1 1 . BINARYBINARY:固定长度的二进
9、制数据类型。(1 1) 格式:格式:BINARYBINARY( n n), n 表示数据的长度,取值为1 到8000 ,必须指定BINARY 类型数据的大小。 注:注:输入数据时必须在数据前加上字符“0X” 作为二进制标识,且数据输入时为十六进制数字,若输入的数据过长将会截掉其超出部分,若输入的数据位数为奇数,则会在符号“0X ”后添加一个0。制作:荆州职业技术学院 彭岚 2 .2 . VARBINARYVARBINARY: 可变长度的二进制数据类型 (1)(1) 格式:格式:VARBINARYVARBINARY(n n)。 n 的取值也为1 到8000, (2)(2) 存储大小:存储大小:实
10、际数值长度+4个字节制作:荆州职业技术学院 彭岚(五)逻辑数据类型(五)逻辑数据类型 BITBIT (1 1) 存储大小存储大小:占用1 个字节的存储空间; (2 2)取值范围:)取值范围:0 或1 ,如果输入0 或1以外的值,将被视为1 (3 3)说明:)说明: BIT 类型不能定义为NULL 值(所谓NULL 值是指空值或无意义的值)。例:declare a bit -定义局部变量a为BIT型 set a=2 -为a赋值为2 select a -输出结果为1制作:荆州职业技术学院 彭岚(六)字符数据类型(六)字符数据类型 1. CHAR1. CHAR: 固定长度的非UNICODE字符 (1
11、 1) 定义形式定义形式:CHAR (n) ; (2 2)存储大小)存储大小:字符串中每个字符和符号占一个字节的存储空间,汉字占2个字节的空间n 表示所有字符占的总存储空间,n 的取值为1 8000, 即可容纳8000 个ANSI 字符。 (3 3) 说明说明:省略N系统默认值为1, 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。制作:荆州职业技术学院 彭岚2 . VARCHAR2 . VARCHAR: 可变长度的非Unicode字符(1)1) 定义形式定义形式:VARCHAR (n) ,n 的取值为1 到8000(2)2) 存储大
12、小存储大小:实际数值长度,若输入数据的字符数小于n ,则系统不会在其后添加空格来填充空间。制作:荆州职业技术学院 彭岚 . NCHAR. NCHAR: 固定长度的UNICODE字符 (1)(1)定义形式定义形式:NCHAR NCHAR (n n) 。 (2)(2)存储大小存储大小:字符串中每个字符、符号和汉字均占每个字符、符号和汉字均占两个字节两个字节的存储空间,n表示总存储空间,取值为14000。 (3)(3)说明说明:(字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱)Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,
13、它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。 制作:荆州职业技术学院 彭岚. NVARCHAR:. NVARCHAR:可变长度的UNICODE字符 (1)(1) 定义形式定义形式:NVARCHAR NVARCHAR (n n) 。 它与VARCHAR 类型相似。不同的是,NVARCHAR数据类型采用UNICODE 标准字符集(Character Set), n 的取值为1 到4000。(2 2) 存储大小存储大小:实际数值长度实际数值长度, ,超出N的部分截去,不足N的部分不补空格。 制作:荆州职业技术学院 彭岚(七)(七) 文本和图形数据类型文本和图形数据类型 1 1、TEX
14、TTEXT:用于存储大量文本数据(1)(1) 容量:容量:理论上为1231 1(2147483447)个字节,实际应用时需要视硬盘的存储空间而定。(2)(2) 说明说明:SQL SERVER存储此类数据时,将TEXT 和IMAGE 类型的数据直接存放到表的数据行中,而不是存放到不同的数据页中。 这就减少了用于存储TEXT 和IMAGE 类型的空间,并相应减少了磁盘处理这类数据的I/O 数量。 制作:荆州职业技术学院 彭岚 2 2 、NTEXTNTEXT NTEXT数据类型与TEXT类型相似,不同的是NTEXT 类型采用UNICODE 标准字符集(Character Set), 因此其理论容量为
15、230-1(1, 073, 741, 823)个字节。制作:荆州职业技术学院 彭岚3 3、 IMAGEIMAGE IMAGE数据类型用于存储大量的二进制数据B i n a r y D a t a 。 其 理 论 容 量 为 2 3 1 -1(2,147,483,447)个字节。 通常用来存储图形等OLE (Object Linking and Embedding,对象连接和嵌入)对象,该类型不指定长度,可用来输入任何二进制数据。在输入数据时必须在数据前加上字符“0X”作为二进制标识 制作:荆州职业技术学院 彭岚(八)(八) 日期和时间数据类型日期和时间数据类型 1. DATETIME1. DA
16、TETIME (1)日期范围:日期范围:从 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期;(2) (2) 存储大小:存储大小:每个数值要求 8 个字节的存储空间。(3) (3) 说明:说明:如果省略了日期部分,则系统将1900 年1 月1 日作为日期缺省值。 制作:荆州职业技术学院 彭岚 2. SMALLDATETIMESMALLDATETIME (1) (1) 日期范围:日期范围:从1900年1月1日到2079年6月6日的日期和时间数据; (2) (2) 存储大小:存储大小:使用4 个字节存储数据。 (3) (3) 日期输入格式日期输入格式: 允许用斜杠(斜杠(/
17、/)、连接符)、连接符(- -)和小数点()和小数点(. .)作为用数字表示的年、月、日之间的分隔符。如: YMD:2000/4/22 2000-4-22 2000.4.22 MDY:3/5/2000 3-5-2000 3.5.2000 DMY:31/12/1999 31-12-1999 31.12.2000 制作:荆州职业技术学院 彭岚(2 2)时间输入格式:)时间输入格式: 顺序为“小时、分钟、秒、毫秒小时、分钟、秒、毫秒”,中间用冒号“:”隔开,秒和毫秒之间可用小数点“. .”隔开,隔开后的第一位数字代表十分之一秒,第二位数字代表百分之一秒,第三位数字代表千分之一秒。Am表示午前12小时
18、 、PM表示午后12小时,默认情况为AM。AM 与PM 均不区分大小写。如:3:5:7.2pm-下午3 时5 分7 秒200 毫秒10:23:5.123Am-上午10 时23 分5 秒123 毫秒制作:荆州职业技术学院 彭岚(九)(九) 货币数据类型货币数据类型 货币数据类型用于存储货币值。在使用货货币数据类型用于存储货币值。在使用货币数据类型时,应在数据前加上货币符号,系币数据类型时,应在数据前加上货币符号,系统才能辨识其为哪国的货币,如果不加货币符统才能辨识其为哪国的货币,如果不加货币符号,则默认为号,则默认为“¥” 制作:荆州职业技术学院 彭岚1 MONEY1 MONEY(1)(1) 精
19、确值:货币单位的万分之一,即精确值:货币单位的万分之一,即4 4 位小位小数数( 2 ) ( 2 ) 取 值 范 围 :取 值 范 围 : - 2- 2 43 43( - -9 2 2 3 3 7 2 0 3 4 8 5 4 7 7 . 5 8 0 8 2 9 2 2 3 3 7 2 0 3 4 8 5 4 7 7 . 5 8 0 8 2 4 34 3 - 1 - 1(+922337203485477.5807+922337203485477.5807)。)。(3)(3) 存储大上:使用存储大上:使用8 8个字节个字节存储。存储。制作:荆州职业技术学院 彭岚2. SMALLMONEY2. SM
20、ALLMONEY 类似于类似于MONEY MONEY 类型,存储的货币值范围较小类型,存储的货币值范围较小. .(1)(1)取值取值: :从从-214,748.3448-214,748.3448到到+214,748.3447+214,748.3447,(2)(2)存储空间存储空间:4 :4 个字节个字节 制作:荆州职业技术学院 彭岚(十)特定数据类型(十)特定数据类型 1 TIMESTAMP1 TIMESTAMP 提供数据库范围内的惟一值,此类型相当于提供数据库范围内的惟一值,此类型相当于BINARY8BINARY8或或VARBINARYVARBINARY(8 8),但当它所定义的),但当它所
21、定义的列在更新或插入数据行时,此列的值会被自动列在更新或插入数据行时,此列的值会被自动更新,一个计数值将自动地添加到此更新,一个计数值将自动地添加到此TIMESTAMPTIMESTAMP数据列中。每个数据库表中只能有数据列中。每个数据库表中只能有一个一个TIMESTAMPTIMESTAMP数据列。如果建立一个名为数据列。如果建立一个名为“TIMESTAMPTIMESTAMP”的列,则该列的类型将被自动设的列,则该列的类型将被自动设为为TIMESTAMPTIMESTAMP数据类型数据类型 制作:荆州职业技术学院 彭岚UNIQUEIDENTIFIERUNIQUEIDENTIFIER 存储一个存储一
22、个14 14 位的二进制数字。此数字称为位的二进制数字。此数字称为(GUIDGlobally Unique Identifier GUIDGlobally Unique Identifier ,即全,即全球惟一鉴别号)。球惟一鉴别号)。 此数字由此数字由SQLServer SQLServer 的的NEWIDNEWID函数产生的函数产生的全球惟一的编码,在全球各地的计算机经由全球惟一的编码,在全球各地的计算机经由此函数产生的数字不会相同此函数产生的数字不会相同 制作:荆州职业技术学院 彭岚4.1.2 常量的表示及输入方法常量的表示及输入方法 字符串类型字符串类型:用单引号来标识。若串中出现单:用
23、单引号来标识。若串中出现单引号本身,则连写两个表示一个。引号本身,则连写两个表示一个。unicodeunicode型型要在前边加大写的要在前边加大写的N N,比如:,比如:N NABCDABCD。二进制常量二进制常量:以:以0 x0 x开头的开头的1616进制符号来表示;进制符号来表示;bit型常量型常量:只有:只有0 0和和1 1两个值;两个值;日期类型常量日期类型常量:用引号括起来。:用引号括起来。2000-04-2000-04-1212,2000.04.152000.04.15,2000-5-12 14:202000-5-12 14:20。货币常量货币常量:以:以$开头表示。开头表示。$
24、15,$23.12; 制作:荆州职业技术学院 彭岚4.1.34.1.3用户自定义数据类型用户自定义数据类型 1 1、 功能:功能: (1 1) 自定义数据类型创建成功后,用户可以自定义数据类型创建成功后,用户可以像使用系统自身的数据类型一样使用自定义数像使用系统自身的数据类型一样使用自定义数据类型。据类型。 (2 2) 在在modelmodel数据库中创建的用户自定义数数据库中创建的用户自定义数据类型将出现在所有以后新建的数据库中。但据类型将出现在所有以后新建的数据库中。但在用户数据库中创建的则只能在本数据库类使在用户数据库中创建的则只能在本数据库类使用。用。 制作:荆州职业技术学院 彭岚2.
25、 创建过程创建过程 (1 1)T-SQLT-SQL语言创建语言创建 格式:格式:sp_addtype sp_addtype type_nqmetype_nqme,phystype-(length) | phystype-(length) | (precision,scale)(precision,scale) , , null| not null| not null|identitynull|identity 中文格式:中文格式:sp_addtype sp_addtype 自定义数据类型名自定义数据类型名, ,系统数据类型名系统数据类型名( (长度长度)|()|(总位数,小数位数总位数,小数位
26、数) ),空值空值| |非空值非空值| |标识列性质标识列性质 默认为not null,不允许为空值。 制作:荆州职业技术学院 彭岚例:定义一个可变长度非unicode字符类型的自定义数据类型,类型名为username1,长度为10,不允许为空值。sp_addtype username1sp_addtype username1,varchar(10)varchar(10), ,not not nullnull 制作:荆州职业技术学院 彭岚 (2 2) 使用管理器创建使用管理器创建步骤如下:进入指定数据库,选择步骤如下:进入指定数据库,选择“可编程可编程性性”“类型类型”-“用户定义数据类型用户
27、定义数据类型” 1 1、查看特征、查看特征:sp_help sp_help 自定义数据类型名自定义数据类型名 例例: :sp_help username1sp_help username1 2 2、重命名、重命名:sp_rename sp_rename 旧自定义数据类型名,旧自定义数据类型名,新自定义数据类型名新自定义数据类型名 例:例:sp_rename username1,username2sp_rename username1,username2制作:荆州职业技术学院 彭岚 5 5、 删除用户自定义数据类型删除用户自定义数据类型: sp_droptype sp_droptype 用户自定
28、义数据类型名。用户自定义数据类型名。 注:此时不能删除正被表或其他数据库对象调用的类注:此时不能删除正被表或其他数据库对象调用的类型,此时应先将调用对象的类型换成其他类型后再删型,此时应先将调用对象的类型换成其他类型后再删除。除。制作:荆州职业技术学院 彭岚现场操作 1 1 使用使用T-SQLT-SQL语言创建一个自定义数据类型语言创建一个自定义数据类型addressaddress,长,长度为度为4040,可变,可变UNICODEUNICODE字符型,不允许为空;字符型,不允许为空; 2 2 创建成功后,查看该类型特征;创建成功后,查看该类型特征; 3 3 将数据类型名更改为将数据类型名更改为
29、home_addrhome_addr; 4 4 声明一个类型为声明一个类型为home_addrhome_addr的变量的变量A A,观察执行结果;,观察执行结果; 5 5 完成后删除。完成后删除。 6 6 再次声明一个类型为再次声明一个类型为home_addrhome_addr的变量的变量B B,观察执行结,观察执行结果。果。制作:荆州职业技术学院 彭岚运算符及优先级运算符及优先级 1. 1. 算术运算符算术运算符包括:包括:+ +(加)、(加)、(减)、(减)、* *(乘)、(乘)、/ /(除)、(除)、% %(取余)(取余): :返回两个整数除法的余数,返回两个整数除法的余数, 例如:例如
30、:12%5=212%5=22. 2. 比较运算符比较运算符 包括:包括: (大于)、(大于)、 =(大于等于)、(大于等于)、=(小于等于)、(小于等于)、(不等(不等于)、于)、制作:荆州职业技术学院 彭岚3. 3. 逻辑运算符逻辑运算符包括:包括:ANDAND(与)、(与)、OROR(或)、(或)、NOTNOT(非)(非) 结果为布尔型结果为布尔型4. 4. 连接运算符连接运算符:使用加号(:使用加号(+ +)将两个字符串连)将两个字符串连接成一个字符串,加号作为字符串连接符。接成一个字符串,加号作为字符串连接符。例如,例如,abc +123abc +123结果为结果为abc123abc1
31、23 制作:荆州职业技术学院 彭岚(1 1)字符串常量使用()字符串常量使用( )作为定界符。)作为定界符。 A A、单引号、单引号 B B、双引号、双引号 C C、方括号、方括号 D D、花括号、花括号(2 2)下列常数中,属于)下列常数中,属于UnicodeUnicode字符串常量的是(字符串常量的是( )。)。 A A、123 B123 B、123 C123 C、N 123 DN 123 D、abcabc(3 3)表达式)表达式123123+ +454454的结果是(的结果是( )。)。 A A、579 B579 B、579 579 C C、123454 D123454 D、123123
32、(4 4)下列函数中,返回值数据类型为)下列函数中,返回值数据类型为intint的是(的是( )。)。 A A、LEFT LEFT B B、LEN LEN C C、LTRIM LTRIM D D、SUNSTRINGSUNSTRING制作:荆州职业技术学院 彭岚42 表的创建表的创建 表定义为列的集合,数据在表中是按表定义为列的集合,数据在表中是按行和列的组织形式排列的。每行代表惟一行和列的组织形式排列的。每行代表惟一的一条记录,每列代表记录中的一个数据的一条记录,每列代表记录中的一个数据项,一个表最多个创建项,一个表最多个创建1024列,一个行最列,一个行最多可容纳多可容纳8092字节的用户数
33、据。字节的用户数据。 编号姓名性别成绩101小齐男95102琳达女80制作:荆州职业技术学院 彭岚2几个与表结构设计相关的概念几个与表结构设计相关的概念(1) NULL或或NOT NULLNULL:空值,其不等于:空值,其不等于0、空白或零长度的字、空白或零长度的字符串,而是表示没有输入,符串,而是表示没有输入,NULL的存在通常的存在通常表明值未知或未定义。表明值未知或未定义。若表的某一列被指定具有若表的某一列被指定具有NULL属性,则允许在属性,则允许在插入数据时省略该列的值插入数据时省略该列的值反之若指定具有反之若指定具有NOT NULL属性,则不允许在没属性,则不允许在没有指定默认值的
34、列上省略该列的数据行。有指定默认值的列上省略该列的数据行。 制作:荆州职业技术学院 彭岚任务:在电脑配件管理系统数据库中创建名为任务:在电脑配件管理系统数据库中创建名为Ware的数据表,结构如下表所示:的数据表,结构如下表所示:表表4-1 Ware表表(货物表货物表)结构结构字段名称字段名称数据类型数据类型长度长度空值空值说明说明Ware_Idnvarchar4否否货号货号Ware_Namenvarchar16是是货名货名Specnvarchar12是是规格规格Unitnvarchar2是是单位单位利用对象资源管理器创建制作:荆州职业技术学院 彭岚利用对象资源管理器创建制作:荆州职业技术学院
35、彭岚注意:注意:IDENTITY(标识列)(标识列) v 含义:含义: IDENTITY惟一地标识表中的一行,惟一地标识表中的一行,其值由上一行的其值由上一行的IDENTITY列值和为该列列值和为该列定义的步长自动生成。定义的步长自动生成。 v 生成值说明:生成值说明: 插入数据到含有插入数据到含有IDENTITY列的表中列的表中时,初始值在插入第一行数据时使用,以时,初始值在插入第一行数据时使用,以后由后由SQL根据上一行使用的根据上一行使用的IDENTITY值值加上增量得到。加上增量得到。 编号123n有有序序的的自自动动增增长长或或递递减减制作:荆州职业技术学院 彭岚v定义说明:定义说明
36、: 定义列时需给出一个初始值和一个步长值定义列时需给出一个初始值和一个步长值(增量),若未定义则默认初始值为(增量),若未定义则默认初始值为1 1,步长,步长值为值为1 1。 每张表只允许有一个每张表只允许有一个IDENTITYIDENTITY列;列; IDENTITYIDENTITY列值不能被更新、不允许有空值,其列值不能被更新、不允许有空值,其值只允许是值只允许是INTINT、SMALLINTSMALLINT、TINYINTTINYINT、NUMERICNUMERIC(小数部分为(小数部分为0 0)、)、DECIMALDECIMAL(小数部(小数部分为分为0 0);); 通过函数通过函数i
37、dent_seed(表名表名)可获得初始值,可获得初始值,通过函数通过函数ident_incr(表名表名)可获得步长值,可获得步长值,使用全局变量使用全局变量identity可返回标识列的数据。可返回标识列的数据。 制作:荆州职业技术学院 彭岚使用使用T-SQL语创建表语创建表 1、格式、格式:Create table table_nameCreate table table_name( (字段名字段名1 1 数据类型数据类型 null|not null|identitynull|not null|identity(初始(初始值,步长值)值,步长值) ,.N )制作:荆州职业技术学院 彭岚2
38、2、说明:、说明:(1)table_name:新创建的表的名字;:新创建的表的名字;(2)column:列名;:列名;(3)data_type:指定列的数据类型和宽度:指定列的数据类型和宽度(4)null|not null|identity:指定该列是否允:指定该列是否允许为空或是否是标识列;许为空或是否是标识列;(5),.N:可创建多个这样的字段。:可创建多个这样的字段。 制作:荆州职业技术学院 彭岚示例:示例:任务三:创建任务三:创建Sell(销售表)(销售表)制作:荆州职业技术学院 彭岚任务:创建任务:创建Ware(货物表),结构如下表所示:(货物表),结构如下表所示:表表4-1 War
39、e表表(货物表货物表)结构结构字段名称字段名称数据类型数据类型长度长度空值空值说明说明Ware_Idnvarchar4否否货号货号Ware_Namenvarchar16是是货名货名Specnvarchar12是是规格规格Unitnvarchar2是是单位单位制作:荆州职业技术学院 彭岚4.3.14.3.1使用对象资源管理器修改表的结构使用对象资源管理器修改表的结构 43 表结构的修改表结构的修改 制作:荆州职业技术学院 彭岚4 43 32 2 使用语句修改表结构使用语句修改表结构1、格式:、格式:ALTER TABLE table_nameALTER TABLE table_name ALTE
40、R COLUMNALTER COLUMN column_name new_data_type(length)| column_name new_data_type(length)| (precision,scale) null|not null|identity(precision,scale) null|not null|identity - - 修改列的结构修改列的结构| |ADDADD |, |,.N.N 添加新列添加新列|DROP COLUMN drop_name|,.N 删除指定表中的列删除指定表中的列 制作:荆州职业技术学院 彭岚说明:说明: column_namecolumn_n
41、ame:要修改的列名;:要修改的列名; new_data_typenew_data_type:要修改列的新数据类型;:要修改列的新数据类型; lengthlength、precisioinprecisioin、scalescale:分别表示数据:分别表示数据长度、总位数和小数位数;长度、总位数和小数位数; add_column_nameadd_column_name:新添加到表中的列名:新添加到表中的列名 add_data_typeadd_data_type:新添加到表中的列的数据类:新添加到表中的列的数据类型;型; drop_colum_namedrop_colum_name:要从表中删除的
42、列名;:要从表中删除的列名; ,.N:可以有多个列可以有多个列 制作:荆州职业技术学院 彭岚任务六:修改任务六:修改SellSell表表( (销售表销售表) ),给,给SellSell表增加一个备注表增加一个备注字段,类型为字段,类型为texttext类型。类型。ALTER TABLE sellALTER TABLE sellAdd notation textAdd notation textGoGo任务七:修改任务七:修改SellSell表表( (销售表销售表) ),删除备注字段。,删除备注字段。ALTER TABLE sellALTER TABLE sellDrop column nota
43、tion Drop column notation GoGo任务八:修改任务八:修改SellSell表表( (销售表销售表) ),将,将Ware_Id Ware_Id 字段类型改字段类型改为为charchar型,长度为型,长度为5 5。ALTER TABLE sellALTER TABLE sellAlter column Ware_Id char(5)Alter column Ware_Id char(5)GoGo制作:荆州职业技术学院 彭岚表的重命名与删除表的重命名与删除 1、使用、使用T-SQLT-SQL语言进行:语言进行: 重命名:重命名:EXEC SP_RENAME table_ol
44、d_name, table_new_nameEXEC SP_RENAME table_old_name, table_new_name 删除表:删除表:DROP TABLE table_name 制作:荆州职业技术学院 彭岚2、使用企业管理器:、使用企业管理器: 在企业管理器的数据库列表中,选在企业管理器的数据库列表中,选择用户所在数据库择用户所在数据库/表,右击要删除或重表,右击要删除或重命名的表,在弹出菜单中,分别单击命名的表,在弹出菜单中,分别单击“重命名表重命名表”或或“删除表删除表”即可。即可。 制作:荆州职业技术学院 彭岚数据完整性的实现数据完整性的实现制作:荆州职业技术学院 彭岚
45、为什么要使用数据完整性为什么要使用数据完整性编号编号姓名姓名年龄年龄成绩成绩性别性别1张三张三25-145男男1张三张三25-145男男2李四李四24085男男3王五王五2675女女出现重复记录出现重复记录数据超出正常范围数据超出正常范围制作:荆州职业技术学院 彭岚数据完整性概念数据完整性概念 数据完整性:指数据的正确性、完备性和数据完整性:指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准,一致性,是衡量数据库质量好坏的重要标准,它反映了现实世界中事物的本来面貌。如一个它反映了现实世界中事物的本来面貌。如一个人的身高人的身高15M,年龄,年龄300岁等就是完整性受到岁等就是完整性
46、受到破坏的例子。破坏的例子。主要分为:主要分为: 域完整性、实体完整性和参照完整性。域完整性、实体完整性和参照完整性。 制作:荆州职业技术学院 彭岚1 1域完整性:域完整性: 域完整性域完整性:也可称为列的完整性,指表中一个也可称为列的完整性,指表中一个列的输入有效性(即列数据必须满足所定义的列的输入有效性(即列数据必须满足所定义的数据类型,且值必须在有效的范围内)。数据类型,且值必须在有效的范围内)。制作:荆州职业技术学院 彭岚 强制域完整性的方法有强制域完整性的方法有:限定类型:主要在建表时设置;限定类型:主要在建表时设置;限定格式:主要通过限定格式:主要通过CHECKCHECK约束和规则
47、;约束和规则;限定可能值的范围:通过外键约束、检查限定可能值的范围:通过外键约束、检查约束、缺省定义、非空定义和规则设置约束、缺省定义、非空定义和规则设置 制作:荆州职业技术学院 彭岚2 2实体完整性:实体完整性: 实体完整性实体完整性也称为表的完整性,指表中必须有也称为表的完整性,指表中必须有一个主关键字,用来惟一地标识表中的每一行,一个主关键字,用来惟一地标识表中的每一行,且不允许为空值。且不允许为空值。 制作:荆州职业技术学院 彭岚强制域完整性的主法有强制域完整性的主法有:索引索引uniqueunique约束约束primary keyprimary key约束约束identityiden
48、tity属性。属性。 制作:荆州职业技术学院 彭岚3.参照完整性:参照完整性: 参照完整性参照完整性也称为引用完整性,是对表与表之也称为引用完整性,是对表与表之间的联系而言的。间的联系而言的。 主要用于保证主关键字和外部关键字之间的参主要用于保证主关键字和外部关键字之间的参照关系,确保主键值和外键值在所有表中的一照关系,确保主键值和外键值在所有表中的一致。致。 它涉及两个或两个以上表数据的一致性维护。它涉及两个或两个以上表数据的一致性维护。 制作:荆州职业技术学院 彭岚数据完整性实施方法:数据完整性实施方法: (1 1)声明型数据完整性:)声明型数据完整性:在对象创建时定义,在对象创建时定义,
49、这种数据完整性是在通过数据库说明的一部分这种数据完整性是在通过数据库说明的一部分在语法中实现。在语法中实现。 (2)过程型数据完整性:)过程型数据完整性:指由某个过程引发指由某个过程引发而实施的数据完整性。这种数据完整性由默认、而实施的数据完整性。这种数据完整性由默认、规则和触发器具体实现,由视图和存储过程支规则和触发器具体实现,由视图和存储过程支持。一般先写出实施条件,再写出强制该条件持。一般先写出实施条件,再写出强制该条件所执行的用于保证数据完整性的脚本。所执行的用于保证数据完整性的脚本。 制作:荆州职业技术学院 彭岚3 3约束约束 (一)约束简介(一)约束简介 概念:概念:是是SQLSQ
50、L强制实行的应用规则,它能强制实行的应用规则,它能够限制用户存放到表中数据的格式和可够限制用户存放到表中数据的格式和可能值,建立和使用约束的目的是保证数能值,建立和使用约束的目的是保证数据的完整性。据的完整性。 目的:目的:使用约束的目的在于防止列中出使用约束的目的在于防止列中出现非法数据,可以自动维护数据库中数现非法数据,可以自动维护数据库中数据完整性。据完整性。 制作:荆州职业技术学院 彭岚约束的类型:约束的类型: 非空约束非空约束(not null) 缺省约束缺省约束(Default constraints) 检查约束检查约束(Check Constraints) 主键约束(主键约束(P
51、rimary Key Constraints) 惟一约束惟一约束(Unique Key Constraints) 外键约束外键约束(Foreign Key Constraints) 制作:荆州职业技术学院 彭岚约束的类型与数据完整性的关系约束的类型与数据完整性的关系 域完整性:域完整性:非空约束、非空约束、DEFAULTDEFAULT、CHECKCHECK 实体完整性:实体完整性:PRIMARY KEYPRIMARY KEY、UNIQUEUNIQUE 参照完整性:参照完整性:FOREIGN KEYFOREIGN KEY制作:荆州职业技术学院 彭岚(二)使用(二)使用T-SQLT-SQL语言创建
52、、管理约束语言创建、管理约束CREATE TABLE CREATE TABLE 表名表名( (列名列名 类型类型 约束)约束)约束格式如下:约束格式如下:PRIMARY KEYPRIMARY KEY|UNIQUE |UNIQUE |REFERENCES |REFERENCES 外键对应的主表名外键对应的主表名(外键列名外键列名)|DEFAULT |DEFAULT 缺省表达式缺省表达式|CHECK (限定范围的逻辑表达式)(限定范围的逻辑表达式),n 制作:荆州职业技术学院 彭岚说明:说明: 可在已有的表中创建、修改、删除约束;可在已有的表中创建、修改、删除约束; 可在应用程序中创建错误检查逻辑
53、,测试是否可在应用程序中创建错误检查逻辑,测试是否违反约束;违反约束; 在给表添加约束时,在给表添加约束时,SQLSQL将验证表中已有数据将验证表中已有数据是否满足正在添加的约束,若不满足则约束创是否满足正在添加的约束,若不满足则约束创建不成功。建不成功。 给已有表添加各种约束的语法:给已有表添加各种约束的语法: 制作:荆州职业技术学院 彭岚1 1、缺省约束:、缺省约束: DEFAULT CONSTRAINTSDEFAULT CONSTRAINTS 指当向数据库中的表插入数据时,如果用户没指当向数据库中的表插入数据时,如果用户没有明确给出某列的值,有明确给出某列的值,SQL SERVERSQL
54、 SERVER自动为该列自动为该列输入默认值输入默认值 格式:格式: ALTER TABLE ALTER TABLE 表名表名 ADD CONSTRAINT ADD CONSTRAINT 缺省约束名缺省约束名 DEFAULTM DEFAULTM 缺省值缺省值 FOR FOR 列名列名制作:荆州职业技术学院 彭岚说明:说明: DEFAULTDEFAULT只用于只用于INSERTINSERT语句;语句; 不能用于具有不能用于具有timestamptimestamp数据类型、数据类型、identity identity 属性、现有属性、现有DEFAULTDEFAULT定义或绑定默认值的列;定义或绑定
55、默认值的列; 若列中已有默认值,必须除去旧默认值后才能若列中已有默认值,必须除去旧默认值后才能添加新默认值。添加新默认值。 每列只能有一个每列只能有一个DEFAULT约束。约束。制作:荆州职业技术学院 彭岚为数据库为数据库CPMSCPMS中表中表WorkerWorker的的SEXSEX字段创建一个缺字段创建一个缺省约束,缺省值为省约束,缺省值为1 1(男)。(男)。 alter table workeralter table worker add constraint default_sexadd constraint default_sex default 1 for sexdefault
56、1 for sex gogo制作:荆州职业技术学院 彭岚 例例2:为:为Restock(进货表进货表)中的进货日期设置默中的进货日期设置默认值为系统当前的日期认值为系统当前的日期 例例3:设置默认:设置默认Users表中的用户类型默认为表中的用户类型默认为“普通用户普通用户”制作:荆州职业技术学院 彭岚2 2、检查约束:、检查约束: CHECK ConstraintsCHECK Constraints 限制插入列中的值的范围,主要用于实现域完限制插入列中的值的范围,主要用于实现域完整性。它是当对数据库中的表执行插入或更新整性。它是当对数据库中的表执行插入或更新操作时,检查新行中的列值必须满足的
57、约束条操作时,检查新行中的列值必须满足的约束条件件 格式:格式: ALTER TABLE ALTER TABLE 表名表名 ADD CONSTRAINT ADD CONSTRAINT 检查约束名检查约束名 CHECK (范围表达式)(范围表达式) 制作:荆州职业技术学院 彭岚例 : 为例 : 为 R e s t o c k ( 进 货 表进 货 表 ) 中 的 进 货 数 量中 的 进 货 数 量(Res_number)设置必须)设置必须=2ALTER TABLE Restock ADD CONSTRAINT CK_ BesNum CHECK( Res_Number =2)制作:荆州职业技术学
58、院 彭岚3、主键约束主键约束:Primary Key Constraints 用来保证某一列或一组列中的数据相对于用来保证某一列或一组列中的数据相对于表中的每一行都是惟一的,这些列就是该表的表中的每一行都是惟一的,这些列就是该表的主键,不允许在创建主键约束的列上有空值。主键,不允许在创建主键约束的列上有空值。 格式:格式: ALTER TABLE ALTER TABLE 表名表名 ADD CONSTRAINT ADD CONSTRAINT 主键约束名主键约束名 PRIMARY KEY clustered|nonclustered(主键所主键所在的列名在的列名) 制作:荆州职业技术学院 彭岚考虑
59、因素:考虑因素: 每个表有且仅有一个主键,该主键不允许为空每个表有且仅有一个主键,该主键不允许为空值;值; 参照约束使用它作为维护参照完整性的参考点;参照约束使用它作为维护参照完整性的参考点; 创建主键时,在创建主键的列上创建了一个惟创建主键时,在创建主键的列上创建了一个惟一索引,可以是聚簇索引(默认),也可以是一索引,可以是聚簇索引(默认),也可以是非聚簇索引非聚簇索引 制作:荆州职业技术学院 彭岚例:为用户表设置主键例:为用户表设置主键; ;ALTER TABLE Users ADD CONSTRAINT PK_ UName PRIMARY KEY ( UserName ) 制作:荆州职业
60、技术学院 彭岚4 4、惟一约束:、惟一约束: Unique ConstraintsUnique Constraints 限制表中指定列上所有非空值必须惟一,即表限制表中指定列上所有非空值必须惟一,即表中任意两行在指定列上都不允许有相同的值,中任意两行在指定列上都不允许有相同的值,与主键不同的是,在与主键不同的是,在UniqueUnique字段中允许出现字段中允许出现NULLNULL值,但为了保持惟一性,最多只能出现一值,但为了保持惟一性,最多只能出现一次次NULLNULL值值 格式:格式: ALTER TABLE ALTER TABLE 表名表名 ADD CONSTRAINT ADD CONS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025智能设备采购委托项目管理合同》
- 2025合同范本食品供应合同
- 2025年委托借款合同模板
- 2025便利店店面转让合同范本
- 2025标准化的苗木购销合同
- 2025版商品房购买合同范本
- 2025年上海市农产品买卖合同示范文本
- 《年级魅力》课件
- 2025授权合同范本(标准)
- 《金融市场概述》课件
- 2025年陕西省普通高中学业水平合格考试模拟卷(五)历史试题(含答案)
- 2025年有关“我为群众办实事”主题日活动工作方案
- 油气管道输送试题及答案
- 铁路雨季三防培训课件
- 2025-2030中国非邻苯二甲酸酯类增塑剂行业市场发展趋势与前景展望战略研究报告
- 2025年台球理论测试题及答案
- 虚拟电厂接入配电网电力系统调度优化
- 用户能耗监测的智能插座原型设计
- 新能源汽车废旧动力电池综合利用行业规范条件(2024年本)
- 分子生物学知到智慧树章节测试课后答案2024年秋上海海洋大学
- 【MOOC】粮油储藏学(A)-河南工业大学 中国大学慕课MOOC答案
评论
0/150
提交评论