资源预览内容
第1页 / 共141页
第2页 / 共141页
第3页 / 共141页
第4页 / 共141页
第5页 / 共141页
第6页 / 共141页
第7页 / 共141页
第8页 / 共141页
第9页 / 共141页
第10页 / 共141页
亲,该文档总共141页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,知识目标,掌握表的基础知识和数据类型 掌握数据完整性的基本概念 掌握约束的基本概念,技能目标,能够使用SQL Server Management Studio创建、查看、修改和删除表及其约束 能够使用T-SQL语句创建、查看、修改和删除表及其约束 能够使用SQL Server Management Studio和T-SQL语句创建、捆绑、解绑和删除默认值和规则 能够熟练应用Insert、Update、Delete语句,4.1 表的基础知识 4.2 数据类型 4.3 创建表 4.4 数据完整性基本概念 4.5 约束 4.6 默认值 4.7 规则 4.8 修改表,4.9 查看表 4.10 删除表 4.11 更新表数据 4.12 实训 数据库表的设计与管理 4.13 实训 数据库数据完整性应用,4.1 表的基础知识 表是用来存储和操作数据的一种逻辑结构,数据在表中是按行和列的组织形式存储的,每行用来保存一条记录,每一列代表记录中的一个字段。如图4-1所示为学生成绩表,每一行为一条记录,代表某个学生的成绩信息,每一列为一个字段,表示学生的学号、课程编号、成绩等信息。,图4-1 学生成绩表,4.2 数据类型 4.2.1 系统数据类型 数据类型就是定义每个列所能存放的数据值和存储格式。例如,学生成绩表的课程编号列数据类型为字符型,成绩列的数据类型为整数型等。 在讨论数据类型之前,先介绍在数据类型中经常使用的三个术语:精度、小数位数和长度。 精度:指数值型数据可以存储的十进制数字的总位数,包括小数点左侧的整数部分和小数点右侧的小数部分。比如,1234.567的精度为7。,小数位数:指数值型数据小数点右边的数字个数。比如,125.985 的精度是 6,小数位数是3。 长度:指存储数据时所占用的字节数。数据类型不同,所占用的字节数就有所不同。 SQL Server 提供了丰富的系统数据类型,以下分别进行简单介绍。,1. 整数型(表4-1) 表4-1 整数类型,SQL Server 2005中还有一种数据类型称为bit,也存放整数。Bit称为位数据类型,它是一种表示逻辑关系的数据类型,可以取值为0、1或NULL 。当为bit型数据赋值时,赋0,其值为0;赋非0时,其值为1。,2. 带固定精度和小数位数的数值数据型(表4-2) 表4-2 小数类型,3. 货币型数据类型(表4-3) 表4-3 货币类型,4. 近似浮点数值型(表4-4) 表4-4 浮点类型,5. 日期时间型(表4-5) 表4-5 日期类型,输入日期部分时可以采用英文数字格式、数字加分隔符格式或纯数字格式。采用英文数字格式时,月份可用英文全名或缩写形式,不分大小写。例如,2003年8月16日这个日期就可以有下列几种输入格式: Aug 16 2003 /英文数字格式 2003-8-16 /数字加分隔符格式 20030816 /纯数字形式,输入时间部分时可以使用12小时格式或24小时格式。使用12小时格式时加上AM或PM说明上午还是下午。在秒与毫秒之间用半角冒号(:)作为分隔符。 例如,要表示2003年8月16日下午2点30分45秒20毫秒,可用以下两种形式来输入: 2003-8-16 2:30:45:20 PM /12小时格式 2003-8-16 14:30:45:20 /24小时格式,6. 字符型(表4-6) 表4-6 字符类型,一个中文文字占用2字节,因此要想存放3个汉字,则长度应取6字节。,7. Unicode字符型(表4-7) 表4-7 unicode类型,每个Unicode字符占用两个字符的存储空间。使用Unicode数据类型时,由于用两个字节来存放一个字符,因此不管是一个英文字符还是一个汉字都将占用2字节。当采用nchar(3)(或nvarchar(3)时,可存放“abc“、“交学院“、“AB型“ 等,它们的长度均为6字节(字符数的2倍)。,8. 二进制数据(表4-8) 表4-8 二进制类型,9其他数据类型 SQL Server 2005还包括cursor、timestamp、sql_variant、uniqueidentifier、table及xml等数据类型。 cursor:变量或存储过程OUTPUT参数的一种数据类型,这些参数包含对游标的引用。注意,对于CREATE TABLE语句中的列,不能使用cursor 数据类型。, timestamp:公开数据库中自动生成的唯一二进制数字的数据类型。timestamp通常用作给表行加版本戳的机制。每个数据库都有一个计数器,当对数据库中包含timestamp列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个timestamp列。 sql_variant:用于存储SQL Server 2005支持的各种数据类型(不包括text、ntext、image、timestamp和sql_variant)的值。例如,定义为sql_variant的列可以存储int、binary 和char值。, uniqueidentifier:该数据类型可存储16字节的二进制值,其作用与全局唯一标识符(GUID)一样。GUID是唯一的二进制数,世界上的任何两台计算机都不会生成重复的GUID值。GUID主要用于在拥有多个结点、多台计算机的网络中,分配必须具有唯一性的标识符。 table:这是一种特殊的数据类型,用于存储结果集以进行后续处理。主要用于临时存储一组行,这些行是作为表值函数的结果集返回的。 xml:该数据类型使用户能够在SQL Server 数据库中存储XML文档和片段。,4.2.2 用户自定义数据类型 用户自定义数据类型是在SQL Server系统数据类型基础上创建的,它并不是真正的数据类型,只是提供了一种加强数据库内部元素和基本数据类型之间一致性的机制。创建自定义数据类型时应提供名称、新数据类型所依据的系统数据类型、为空性(数据类型是否允许空值)等参数。 1使用 SQL Server Management Studio创建用户自定义数据类型 (1)在SQL Server Management Studio的“对象资源管理器”中,找到“学生图书管理系统可编程性类型”,右击类型,选择“新建用户定义数据类型”命令,打开如图4-2所示的窗口。,图4-2 新建用户定义数据类型窗口,(2)在“新建用户定义数据类型窗口”中,输入用户数据类型的名称“编号”,在数据类型下拉框中选择基于的系统数据类型int;若是decimal或numeric类型,需要设置其精度;选中“允许为空”复选框,则用户数据类型可以为空,不选,则不能为空。单击“确定”,完成创建。 2使用 T-SQL语句创建用户自定义数据类型 可以使用系统存储过程sp_addtype来创建用户自定义数据类型。 语法格式如下: sp_addtype type_name,system_typeNULL|NOT NULL |NONULL-默认为NULL,参数说明: type_name为用户定义数据类型名,这个名称在数据库中必须是惟一的。 system_type为用户定义的数据类型所基于的系统数据类型,可以包括数据的长度、精度等。当系统数据类型中包括标点符号(例如括号、逗号)时,应用引号括起来。 NULLNOT NULL :指定此类型是否允许空值。若未指定,则默认值为NULL。 【例4.1】使用T-SQL语句,在“学生图书管理系统”中创建一个用户定义数据类型“号码”,要求类型为varchar(8),不允许为空。,【例4.1】使用T-SQL语句,在“学生图书管理系统”中创建一个用户定义数据类型“号码”,要求类型为varchar(8),不允许为空。 创建代码如下: USE 学生图书管理系统 EXEC sp_addtype 号码,varchar(8),not null,4.3 创建表 设计完数据库后就可以创建数据库中用于存储数据的表,表存储于数据库文件中,任何拥有所需权限的用户都可以对其进行操作,除非已将所要操作的表删除。 4.3.1 使用 SQL Server Management Studio创建表 (1)打开SQL Server Management Studio的“对象资源管理器”,找到“数据库学生图书管理系统表”节点,右击,选择“新建表”命令,打开如图4-3所示的新建表窗口。,图4-3 新建表窗口,(2)在“列名”栏中键入字段名称。每个表至多可定义 1024个字段。字段的命名要遵守标识符的规定,在同一表中字段名必须是惟一的,但不同表可使用相同的字段名。 (3)在“数据类型”栏中选择一种数据类型,数据类型是一个下拉列表框。对于字符型数据(包括Unicode字符型数据),如果需要修改数据类型的长度,比如char类型,默认为char(10),如果想修改为char(8),则可直接在数据类型框进行修改或在“列属性”框中,修改数据类型的长度即可。对于decimal或numeric数据类型的字段,则在“精度”和“小数位数”栏中各输入一个数字,用以指定该字段的精度和小数位数,此精度值决定了该类型数据存储时所占用的长度。,(4)在“允许空”栏指定是否可以为空(NULL),打勾说明允许为空,空白说明不允许为空,默认状态下是允许为空。用户可以通过单击鼠标或按空格键来进行设置。 NULL值不等于数值0,也不等于字符空白或长度为零的字符串。所谓字段能否允许NULL值,是指该字段中的数据是否可以是未知的。如果字段允许NULL,则代表该字段中的数据可以是未知的;如果字段不允许为NULL,则代表该字段中的数据不可以是未知的,那么在插入或输入记录时不给此字段输入数据,保存时就会出现错误信息,而且拒绝接收数据。,(5)设置字段的默认值。默认值其实就是一个常量。打开要修改的表,选择要指定默认值的列,在“列属性”选项卡中的“常规”项下的“默认值或绑定”属性中输入默认值。如果字段设置了默认值,则在插入记录时,如果未指定该字段的值,则默认值将成为该字段的内容。例如:对于“图书信息”表的“是否借出”字段,类型为bit型(其值为0时,表示未借出,为1则表示已借出),若设置其默认值为0,则将光标定位在“是否借出”字段行上,在下面的属性框的“默认值或绑定”栏中输入0即可。插入记录时,用户可以不输入“是否借出”字段信息,保存时这些记录的值将都为0。,(6)设置标识列。当向表中添加新记录并希望某列自动生成存储于列中的序列号时,则应设置该列的标识属性。具有标识属性的列包含系统生成的连续值,它唯一地标识表中的每一行。每个表只能设置一个列的标识属性。只能为数据类型为decimal、numeric、bigint、int、smallint、tinyint的列设置标识属性,并且该列不允许空。比如新建一个表,其中有一个字段名为“编号”(其他字段自定),数据类型为decimal,“精度”栏输入5,“小数位数”栏输入0,不允许为空。在列属性中,点开“标识规范”前的“+”号,在“是标识”栏选“是”,“标识种子”栏输入100000,“标识增量”栏输入1。则输入记录时,此列不允许手工输入,而自动在第1条记录填入100000,第2条记录填入100001,第3条记录填入100002,以此类推。,(7)设置主键。选中要作为主键的列,并单击工具栏上的“设置主键”按钮(注意:此按钮显示的是一个钥匙图标,当光标在此按钮上停留时,它的提示信息为“设置主键”),主键列的前方将显示钥匙标记。设置主键,是为了保证每条记录的惟一性。如果要求表中的一个字段(或多个字段的组合)具有不重复的值,并且不允许为NULL,则应将这个字段(或字段组合)设置为表的主键。 (8)单击工具栏中的 按钮,打开“选择名称”对话框,输入表名称“图书信息”,单击“确定”按钮,如图4-4所示
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号