资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 表的建立与维护,3.1.1 什么是表,表类型: 普通表: 分区表: 临时表: 系统表: 表需要包含的列,每列的数据类型、精度 表中哪些列允许空值或不允许空值 表中是否设置主键,在何处设置主键 表中是否设置约束、默认值、规则 表中是否设置外键以及在何处设置 表中是否设置索引、在何处设置以及设置什么样的索引,实体与记录,3.1.2 表的数据类型,3.1.3 创建表,1.使用SSMS创建表,use xscj go create table student (学号 char(10) not null, 姓名 varchar(8) not null, 性别 char(2) not null, 专业 varchar(30), 出生日期 smalldatetime not null, 简历 text ),例:在xscj数据库下创建student表,2.使用T-SQL命令创建表,use xscj go alter table student add 少数民族否 bit go,例:在xscj数据库下修改student表,增加少数民族否一列,为bit类型。然后在此表中删除此列.,3.6 修改表,alter table student drop column 少数民族否 go,3.6.1 使用SSMS图形修改表,3.6.2 使用T-SQL命令修改表,use xscj go alter table student alter column 姓名 varchar(10) go,例:在xscj数据库下修改student表,将姓名长度由原来的8修改为10;将出生日期由原来的smalldatetime修改为date;,alter table student alter column 出生日期 date go,Drop table student go,例:在xscj数据库下删除student表,3.7 删除表,3.7.1 使用SSMS图形删除表,3.7.2 使用T-SQL命令删除表,3.2 列的数据类型,3.2.1 数据类型的分类,3.2.2 数字数据类型,3.2.3 字符数据类型,char类型存储字符数据时,每一个字符占一个字节大小。使用char类型时,应该给定数据的最大长度,定义格式为:char(n) 如果没有指定n的大小,默认值是1,最长可以容纳8000个字符; 如果实际数据的字符长度大于给定的最大长度时,超过的字符将会被截断;若实际数据的字符长度小于给定的最大长度时,多余的字节被系统使用空格填充。 varchar的使用方式与char基本相同。它们的区别在于:当列中字符长度基本一致时(如学号、姓名等),可以使用char类型;当数据长度相差较大时(如备注),使用varchar类型可以节省存储空间;,当数据有可能涉及到英语外其他语言时,应该使用Unicode字符编码。每一个Unicode字符需要两个字节存储,因此,Unicode格式比ANSI格式有更大的字符集范围:ANSI字符集仅有256个字符,Unicode字符集有65536个不同的字符。使用Unicode字符可以在表的一个列中同时出现中文、英文、法文等,而不会出现编码冲突。通常使用以下方式来表示Unicode字符: NUnicode字符 nchar和nvarchar分别用于存储固定长度和可变长度的Unicode字符数据; text和ntext,分别对应存储长度很大的ANSI字符和Unicode字符数据。微软公司建议,用户应该避免使用text和ntext数据类型,而使用varchar和nvarchar存储大文本数据。,3.2.4 日期时间数据类型,datetime型数据长度为8字节,其中前4个字节用于存储日期,后4个字节用于存储时间。由于历史原因的限制,datetime支持的日期范围从1753年1月1日至9999年12月31日,时间精确度是3.33毫秒; 由于存在各种各样的表示日期的习惯,输入datetime数据的值是一件比较棘手的事情。如11/10/01对于不同的人有不同的理解方式。当将其作为datetime型数据输入时,SQL Server将根据当前系统的语言设置进行转换。系统的语言由登录SQL Server时的默认语言决定,也可以使用SET DATEFORMAT语句,指定字符D、M和Y的组合。 设置格式为:SET DATEFORMAT format | format _var; 参数format或format_var 是指日期的顺序。有效的形式包括 MDY、DMY、YMD、YDM、MYD 和 DYM,其中Y表示年,M表示月,D表示日。在默认情况下,日期格式为MDY; 在SQL Server 2008中,可以使用的时间格式是HH:MI:SS.mmm。其中HH表示小时,MI表示分钟,SS表示秒,mmm表示千分之一秒; 存在一种标准输入格式,不受DATEFORMAT设置的影响,不会产生歧义。它的中间部分没有分隔符,形式为:YYYYMMDD HH:MI:SS.mmm。如:20111001、111001和20111001 20:50:30.988都是这种格式的应用。在输入datetime类型数据时,我们推荐使用这种格式。,在SQL Server 2008系统中,日期时间数据类型的最大转变就是在datetime和smalldatetime两种类型的基础上又引入了4种日期时间数据类型,分别为date、time、datetime2和datetimeoffset。下面分别介绍: date数据类型只存储日期型数据类型,不存储时间数据,取值范围从0001-01-01到9999-12-31。引入date类型,克服了datetime类型中既有日期又有时间的缺陷,使对日期的查询更加方便; time数据类型与date数据类型类似,如果只想存储时间数据而不需要存储日期部分就可以利用time数据类型,取值范围从00:00:00.0000000到23:59:59.9999999; datetime2数据类型是一种日期时间混合的数据类型,不过其时间部分秒数的小数部分可以保留不同位数的值,比datetime数据类型的取值范围要广,可以存储从公元元年1月1日到9999年12月31日的日期。用户可以根据自己的需要设置不同的参数来设定小数位数,最高可以设定到小数点后七位(参数为7),也可以不要小数部分(参数为0),以此类推; datetimeoffset数据类型用于存储与特定的日期和时区相关的日期和时间。这种数据类型的日期和时间存储为协调世界时(Coordinated Universal Time,UTC)的值,然后,根据与该值有关的时区,定义要增加或减去的时间数。datetimeoffset类型是由年、月、日、小时、分钟、秒和小数秒组成的时间戳结构。小数秒的最大小数位数为7。,3.2.5 二进制数据类型,二进制数据类型用于表示位数据流,包括binary(固定长度)、varbinary(可变长度)和image三种。 binary用于存储固定长度的二进制数据; varbinary用于存储可变长度的二进制数据,若存储的二进制大于8000字节,就必须使用varbinary(max)数据类型; image数据类型用于存储图像信息,在SQL Server 2008中,只有在数据的字节数超过了8KB的情况下,才使用image数据类型,其他情况应使用varbinary(max)代替,其中max最大可以达到231-1字节; 当二进制数据存储到表中时,可以使用SELECT语句来检索。但是,检索结果以16进制数据格式来显示。,3.2.6 其他数据类型,timestamp时间戳数据类型与时间、日期无任何关系。timestamp值是二进制,表明数据库中的数据修改发生的相对顺序。实现timestamp数据类型最初是为了支持SQL Server恢复算法。每一个数据库都有一个时间戳计数器,当对该数据库中包含timestamp列的表执行插入或更新操作时,计数器值就会增加。这样,可以轻易地确定表中的某个数据行的值是否在上次读取后发生了更新:如果发生了更新,则该时戳计数器的值也发生了变化。可以使用DBTS函数返回数据库的时戳值; sql_variant类型:用于存储SQL Server 2008支持的各种数据类型(不包括text、ntext、image、timestamp和sql_variant类型)的值。数据列类型为sql_variant的列可能包含不同类型的行,一般在不能准确确定将要存储的数据类型时,使用这种数据类型。该数据类型可以用在列、变量、用户定义的函数等返回值中;,uniqueidentifier唯一标识符类型,是一个具有16字节的全局唯一性标志符,用来确保对象的唯一性。可以在定义列或者变量时使用该数据类型,主要目的是在合并复制和事务复制中确保表中数据行的唯一性。例如,在客户标识号列使用这种数据类型可以区别不同的客户。uniqueidentifier数据类型的初始值可以通过NEWID函数得到; xml类型:xml数据类型可以用来保存整个XML文档,允许用户存储和处理XML数据。用户可以像使用int数据类型一样使用xml数据类型。另外,xml数据类型还提供一些高级功能,比如借助Xquery语法执行搜索。,3.3列的其他属性,3.3.1 默认约束 3.3.2 空值约束,3.5 查看表,3.5.1 查看表中相关信息,3.5.2 查看表中存储的数据,3.5.3 查看表与其他数据对象的依赖关系,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号