表的建立与维护

上传人:tia****nde 文档编号:253006654 上传时间:2024-11-27 格式:PPT 页数:44 大小:2.14MB
返回 下载 相关 举报
表的建立与维护_第1页
第1页 / 共44页
表的建立与维护_第2页
第2页 / 共44页
表的建立与维护_第3页
第3页 / 共44页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 表的建立与维护,主讲教师:卫琳,3.1.1,什么是表,表类型:,普通表:,分区表:,临时表:,系统表:,表需要包含的列,每列的数据类型、精度,表中哪些列允许空值或不允许空值,表中是否设置主键,在何处设置主键,表中是否设置约束、默认值、规则,表中是否设置外键以及在何处设置,表中是否设置索引、在何处设置以及设置什么样的索引,一个单词,一个字母,一个数字,一个日期,一个,NULL,值,它表示该单元中没有数据,一个单元可以包含以下内容中的一个:,实体与记录,行,(,记录,),列,设计数据库实际上就是设计数据库中的表。在设计表时,要使用尽可能少的表数量,在达到设计要求的前提下,使每个表中包含的列的数量尽可能地少。合理的表结构,可以大大提高整个数据库数据的查询效率。,为了提高数据库的效率,设计出高质量的存储数据的表,在设计表时,应该从整体上考虑下面,7,个因素。,在设计表时应该考虑的因素,1.,因素一:考虑表将要存储哪些数据对象,绘制出,ER,图,ER,图是描述数据库中所有实体以及实体之间关系的图形,是辅助设计关系模型的工具。,表就是关系模型,也对应着模型中的实体,是存储数据的对象。,在设计表时,应该综合考虑这些问题:,数据库中将要包含哪些数据?,数据库中应该包含多少表?,每一个表将要包含哪些数据?,表和表之间是否存在关系?如果存在关系,那么存在什么样的关系?,2024年11月27日,第,6,页,2.,因素二:考虑表中将要包含的列以及这些列的数据类型、精度等属性。,确定了表之后,就要确定表的内容。每一个表包含多个列,每一个列都有一个数据类型,数字数据类型的列还需要确定列的精度和约度,这些都是设计表时必不可少的因素。,数字列应该使用数字数据类型,字符列应该使用字符数据类型,日期列应该使用日期数据类型。,对于数字列,需要认真考虑其精度和约度,对于字符列,应该考虑其是否使用定长字符列和字符长度。,考虑这些因素的目标是:使得表中的列的数量尽可能地少。如果列的数量过多,应该考虑将该表分解成两个表或多个表。,2024年11月27日,第,7,页,3.,因素三:考虑列的属性,例如哪些列允许空值,哪些列不允许空值,列允许空值,表示该列可以不包含任何的数据,空值既不是数字,0,,也不是空字符,而是表示未知。如果允许列包含空值,表示可以不为该列输入具体的数据;如果不允许列包含空值,在输入数据时必须为该列提供数据。,例如,在包含订单的,orders,表中,订单代码、产品代码、客户代码等列不允许空置,但是订单描述列则可以包含空值。,考虑这个因素的目标是,尽可能地不使用允许空值的列,因为空值列有可能带来意想不到的查询效果。如果不得不允许某些列为空,那么应该使得这些列的数量最少。,2024年11月27日,第,8,页,4.,因素四:考虑表是否使用主键,如果使用则在何处使用主键,主键是唯一确定每一行数据的方式,是一种数据完整性对象。,主键往往是一个列或多个列的组合。一个表中最多只能有一个主键。,一般地,应该为每一个表都指定主键,借此可以确定行数据的唯一性。,2024年11月27日,第,9,页,5.,因素五:考虑是否使用约束、默认值、规则,以及在何处使用这些对象。,约束、默认值、规则等都是数据完整性对象,用来确保表中的数据质量。,对表中数据的查询操作,只能在满足定义的约束、默认值、规则等条件下,才能执行成功。,这些因素的考虑往往与表中数据的商业特性相关。,2024年11月27日,第,10,页,6.,因素六:考虑是否使用外键,在何处使用外键,在,ER,图中,需要绘制出实体之间的关系。在表的设计时,实体之间的关系需要借助主键,外键对来实现。因此,该因素也是确保,ER,图完整实施的一个重要内容。只有通过这种关系,才能确保表和表之间强制的商业性关系。,2024年11月27日,第,11,页,7.,因素七:考虑是否使用索引,在何处使用索引,使用什么样的索引?,索引也是一种数据库对象,是加快对表中数据检索的手段,是提高数据库使用效率的一种重要方法。,在哪些列上使用索引,在哪些列上不使用索引,是使用聚集索引,还是使用非聚集索引,是否使用全文索引,等等。,对这些因素的认真考虑和实现,也是对表质量的更高的要求。,2024年11月27日,第,12,页,3.1.2,表的数据类型,种 类,数 据 类 型,数字,整数,int,bigint,smallint,tinyint,精确数值,decimal,numeric,近似数值,float,real,货币,money,smallmoney,日期和时间,datetime,smalldatetime,字符,Non-Unicode,char,varchar,varchar(max),text,Unicode,nchar,nvarchar,nvarchar(max),ntext,二进制,binary,varbinary,varbinary(max),图像,image,全局标识符,uniqueidentifier,XML,xml,特殊,bit,cursor,timestamp,sysname,table,sql_variant,3.1.3,创建表,1.,使用,SSMS,创建表,使用SQL Server Management,Studio创建表,多媒体:创建表,在这个交互式多媒体中,你可以了解如何使用SQL Server Management Studio创建表,请注意你需要为表指定一个自动增长的列作为ID,同时另外一列将拥有默认值。,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,命令创建表,创建,students,表,2024年11月27日,第,18,页,创建,orders,表,2024年11月27日,第,19,页,在创建表中使用计算列,2024年11月27日,第,20,页,计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。例如,在,AdventureWorks,示例数据库中,,Sales.SalesOrderHeader,表的,TotalDue,列具有以下定义:,TotalDue AS Subtotal+TaxAmt+Freight,。,一般情况下,,计算列是未实际存储在表中的虚拟列。每当在查询中引用计算列时,都将重新计算它们的值。数据库引擎在,CREATE TABLE,和,ALTER TABLE,语句中使用,PERSISTED,关键字来将计算列实际存储在表中。,如果在计算列的计算更改时涉及任何列,将更新计算列的值。,使计算列中的数据物理化,2024年11月27日,第,23,页,PERSISTED,指定 SQL Server 数据库引擎将在表中物理存储计算值,而且,当计算列依赖的任何其他列发生更新时对这些计算值进行更新。,创建全局临时表,2024年11月27日,第,25,页,临时表,临时表,在数据库,顾名思义就是起到建立一个临时性的存放某数据集的作中。,临时表一般分为:事务临时表的管理、会话临时表,事务临时表的话,当事务结束的时候,就会清空这个事务临时表。所以,当我们在数据库临时表中插入数据后,只要事务没有提交的话,该表中的数据就会存在。但是,当事务提交以后,该表中的数据就会被删除。而且,这个变化不会在重做日志中显示。,会话临时表,顾名思义,是指数据只在当前会话内有效的临时表。关闭当前会话或者进行新的连接之后,数据表中的内容就会被清除。,局部临时表和全局临时表,局部临时表只能被当前登录用户使用,全局临时表可以被不同登录用户使用。其实从局部和全局两个词就能知道。,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,数据类型的分类,种 类,数 据 类 型,数字数据类型,int,bigint,smallint,tinyint,decimal,numeric,float,real,money,smallmoney,bit,字符数据类型,char,varchar,nchar,nvarchar,ntext text,日期和时间,datetime,smalldatetime,date,time,datetime2,datetimeoffset,二进制数据类型,binary,varbinary,image,其他数据类型,uniqueidentifier,xml,timestamp,sql_variant,3.2.2,数字数据类型,数字数据类型,表示符号,用途,精确数字类型,整数数据类型,int,、,bigint,、,smallint,、,tinyint,存储数字数据,直接进行数据运算,位数据类型,bit,用于一些条件逻辑判断,货币数据类型,money,、,smallmoney,存储货币数据,近似数字类型,十进制小数型,decimal,、,numeric,存储带固定精度和位数的小数,浮点数据类型,float,、,real,存储范围非常大的数字,用于表示指定数的大致数据值,3.2.3,字符数据类型,字符类型,表示符号,用法,ANSI,字符,char,存储指定长度的字符串,varchar,存储可变长度字符,text,存储大量非,Unicode,字符,Unicode,字符,nchar,用于存储,Unicode,字符,nvarchar,与,varchar,类似,存储可变长度,Unicode,字符,ntext,与,text,类似,存储大量,Unicode,字符数据,char,类型存储字符数据时,每一个字符占一个字节大小。使用,char,类型时,应该给定数据的最大长度,定义格式为:,char,(,n,),如果
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!