创建与管理数据库表

上传人:沈*** 文档编号:164568915 上传时间:2022-10-25 格式:PPT 页数:39 大小:587.50KB
收藏 版权申诉 举报 下载
创建与管理数据库表_第1页
第1页 / 共39页
创建与管理数据库表_第2页
第2页 / 共39页
创建与管理数据库表_第3页
第3页 / 共39页
资源描述:

《创建与管理数据库表》由会员分享,可在线阅读,更多相关《创建与管理数据库表(39页珍藏版)》请在装配图网上搜索。

1、第5章 管理与使用表1.表是重要数据库对象,是数据库的基本组成部分,是储存数据的逻辑载体 2.关系型数据库的表是二维的,表的一列称为一个字段;表的一行称为一个记录 3.SQL Server 2000中,一个表中最多允许1024列,表的行数没有限制,与磁盘存储空间有关 概述:概述:局部临时表:以开头以开头,仅可由创建者本人在创建后立即使用,一旦断开连接,该表被删除 全局临时表 以开头以开头,创建后可以由多个用户使用,当最后使用的用户断开连接最后使用的用户断开连接,该表被删除 表表永久表永久表permernet:表一旦创建将一直存储在硬盘上,除非被用户删除临时表临时表:用户退出时自动被系统删除te

2、mp5.1 数 据 类 型 系统提供的数据类型系统提供的数据类型 创建和删除用户定义的数据类型创建和删除用户定义的数据类型 选择数据类型的指导原则选择数据类型的指导原则 表的内容由列属性组成,数据类型是最重要的列属性,它决定了数据的存储格式(长度、精度、小数位数等)系统提供的数据类型 数值型数据 整型数据:存储整数 小数数据:包含存储在最小有效数上的数据bigint占占8 8个字节,值的范围为个字节,值的范围为 -2-263632 26363-1-1int占占4 4个字节,值的范围为个字节,值的范围为 -2-231312 23131-1-1smallint占占2 2个字节,值的范围为个字节,值

3、的范围为 -32768-3276832 76732 767tinyint占占1 1个字节,值的范围为个字节,值的范围为 0 0255255decimal(p,s)p p为精度,最大为精度,最大3838;s s为小数位数,为小数位数,0sp0spnumeric(p,s)在在SQL ServerSQL Server中,等价于中,等价于decimaldecimal 近似数字数据:表示浮点数据的近似数字注意:注意:存储的非精确值而只是近似值,在使用where进行查询时,避免使用数据类型为float和real的字段。另限制float和real的字段作和的比较float(n)从从 -1.79E+308-1

4、.79E+308 到到 1.79E+308 1.79E+308 之间的浮点数字数据;之间的浮点数字数据;n n 为为用于存储科学记数法尾数的位数,同时指示其精度和存储大用于存储科学记数法尾数的位数,同时指示其精度和存储大小,小,11nn5353real从从 3.40E+38 3.40E+38 到到 3.40E+38 3.40E+38 之间的浮点数字数据,存储大小之间的浮点数字数据,存储大小为为 4 4 字节;字节;SQL Server SQL Server 中,中,real real 的同义词为的同义词为 float(24)float(24)货币数据:表示正的或负的货币值注意:注意:货币数据使

5、用时,不需要用单引号货币数据使用时,不需要用单引号 括起来,但货括起来,但货币数币数 值之前一定要带有适当的货币符号。如:值之前一定要带有适当的货币符号。如:$78money占占8 8个字节,个字节,值的范围为值的范围为 -922 337 203 685 477.580 8-922 337 203 685 477.580 8+922 337 203+922 337 203 685 477.580 7685 477.580 7smallmoney占占4 4个字节,值的范围为个字节,值的范围为 -214 748.3648-214 748.3648 214 748.3647214 748.3647

6、日期和时间数据 字符数据和 Unicode 字符数据datetime占占8 8个字节,表示从个字节,表示从17531753年年1 1月月1 1日到日到 99999999年年1212月月3131日的日期日的日期smalldatetime占占4 4个字节,表示从个字节,表示从19001900年年1 1月月1 1日至日至20792079年年6 6月月6 6日的日期日的日期char(n)存储字符个数为存储字符个数为 0 08 0008 000varchar(n)存储字符个数为存储字符个数为 0 08 0008 000text存储字符个数为存储字符个数为 0 02GB2GBnchar(n)存储字符个数为

7、存储字符个数为 0 04 0004 000nvarchar(n)存储字符个数为存储字符个数为 0 04 0004 000ntext存储字符个数为存储字符个数为 0 01GB1GB可变长度Unicode采用两个字节编码,可以存储日文、韩文和汉字 二进制数据 其他binary(n)存储字节个数存储字节个数 0 08 0008 000varbinary(n)存储字节个数存储字节个数 0 08 0008 000image存储字节个数存储字节个数 0 02 G2 Gbit存储位数据存储位数据cursor存储对游标的引用存储对游标的引用rowversion(timestamp)时间戳时间戳sql_vari

8、ant可存储除可存储除 text、ntext、image、rowversion 之外的之外的其他类型其他类型table存储函数返回结果存储函数返回结果uniqueidentifier存储存储 GUID 以及以及 UUID 选择数据类型的指导原则选择数据类型的指导原则 若列值的长度相差很大,那么使用变长数据类型 例如某列存储的是人名,地址等 谨慎使用 tinyint 数据类型 虽然节省空间,但扩展性很小 对于小数数据来说,一般使用 decimal 数据类型 可以精确地控制精度 如果行的存储量 超过8 000字节,使用 text 或者 image 若不大于8 000字节,可使用char、varch

9、ar或者binary数据类型 对于货币数据,使用 money 数据类型 不要使用类型为 float 或者 real 的列作为主键 因为它们不精确,所以不适合用于比较创建和删除用户定义的数据类型创建和删除用户定义的数据类型 用户定义的数据类型(扩展SQL Server的基本数据类型)当多个表的列中要存储同样类型的数据,且想确保这些当多个表的列中要存储同样类型的数据,且想确保这些列具有完全相同的数据类型、长度和为空性时,可使用列具有完全相同的数据类型、长度和为空性时,可使用用户定义数据类型用户定义数据类型 注意:如果用户定义数据类型是在 modelmodel 数据库中创建的,它将作用于所有用户定义

10、的新数据库中。如果数据类型在用户定义的数据库中创建,则该数据类型只作用于此用户定义的数据库。创建用户定义的数据类型 企业管理器 系统存储过程语法语法 sp_addtype typename=type,phystype=system_data_type ,nulltype=null_type ,owner=owner_name 删除用户定义的数据类型sp_droptype sp_droptype 类型名 企业管理器创建用户定义函数企业管理器创建用户定义函数 展开服务器组,然后展开服务器。展开服务器组,然后展开服务器。展开展开 数据库数据库 文件夹,再展开要在其中创建用户定义的数据文件夹,再展开要

11、在其中创建用户定义的数据类型的数据库。类型的数据库。右击右击 用户定义数据类型用户定义数据类型,然后单击,然后单击 新建用户定义数据类新建用户定义数据类型型 命令。命令。输入新建数据类型的名称。输入新建数据类型的名称。在在 数据类型数据类型 列表中,选择基数据类型。列表中,选择基数据类型。如如 长度长度 处于活动状态,若要更改此数据类型可存储的最大处于活动状态,若要更改此数据类型可存储的最大数据长度,请键入另外的值。长度可变的数据类型有:数据长度,请键入另外的值。长度可变的数据类型有:binarybinary、charchar、ncharnchar、nvarcharnvarchar、varbi

12、nary varbinary 和和 varcharvarchar。若要允许此数据类型接受空值,请选择若要允许此数据类型接受空值,请选择 允许空值允许空值 命令。命令。在在 规则规则 和和 默认值默认值 列表中选择一个规则或默认值(若有)列表中选择一个规则或默认值(若有)以将其绑定到用户定义数据类型上以将其绑定到用户定义数据类型上用户自定义函数示例用户自定义函数示例(p350)A.创建不允许空值的用户定义数据类型创建不允许空值的用户定义数据类型 下面的示例创建一个名为 ssnssn(社会保险号)的用户定义数据类型,它基于 SQL Server 提供的 varcharvarchar 数据类型。ss

13、nssn 数据类型用于那些保存 11 位数字的社会保险号(999-99-9999)的列。该列不能为 NULL。USE master EXEC sp_addtype ssn,VARCHAR(11),NOT NULL 请注意,varchar(11)varchar(11)由单引号引了起来,这是因为它包含了标点符号(圆括号)。B.创建允许空值的用户定义数据类型创建允许空值的用户定义数据类型 下面的示例创建了一个名为下面的示例创建了一个名为 birthday birthday 的用户定的用户定义数据类型(基于义数据类型(基于 datetimedatetime),该数据类型允),该数据类型允许空值。许空值

14、。USE master EXEC sp_addtype birthday,datetime,NULL C.创建另外的用户定义的数据类型创建另外的用户定义的数据类型 下面的示例为国内及国际电话和传真号码另外创下面的示例为国内及国际电话和传真号码另外创建两个用户定义的数据类型建两个用户定义的数据类型 telephone telephone 和和 faxfax。USE master EXEC sp_addtype telephone,varchar(24),NOT NULL EXEC sp_addtype fax,varchar(24),NULL 例:首先创建一个例:首先创建一个birthday用户

15、定义数据类型,然后用户定义数据类型,然后在后面的操作中使用它,最后将它删除。在后面的操作中使用它,最后将它删除。-创建创建birthday用户定义数据类型,使用用户定义数据类型,使用datetime基本数据类型,允许基本数据类型,允许NULLuse sampleEXEC sp_addtype birthday,datetime,NULLGO-在数据表定义时使用在数据表定义时使用birthday用户定义数据类型用户定义数据类型CREATE TABLE 特殊数据特殊数据(char_data char(20),birthday_data birthday)GO-向数据表中添加几条记录向数据表中添加几

16、条记录INSERT INTO 特殊数据特殊数据VALUES(Sarah,02/22/1976)INSERT INTO 特殊数据特殊数据VALUES(Tina,04/15/1998)GO-检索检索SELECT*FROM 特殊数据特殊数据GO-删除删除birthday用户定义数据类型,首先要删除对定义数据类型的引用用户定义数据类型,首先要删除对定义数据类型的引用 DROP table 特殊数据特殊数据EXEC sp_droptype birthdaygo5.2 5.2 创创 建建 表表创建表有三种方法:创建表有三种方法:使用向导 使用企业管理器 使用T-SQL语句1 使用CREATE TABLE命

17、令创建表 在指定的数据库中创建表的基本语法格式如下页所示:CREATE TABLE database_name.owner .|owner.table_name (|column_name AS computed_column_expression|:=CONSTRAINT constraint_name|PRIMARY KEY|UNIQUE ,.n )说明:说明:1.database_name.owner .|owner.table_name:定义:定义表名表名table_name 可以选加数据库名可以选加数据库名database_name和表和表的所有者名的所有者名owner 2.表名不得

18、超过表名不得超过128个字符,临时表表名不得超过个字符,临时表表名不得超过116个字符个字符 :=column_name data_type COLLATE DEFAULT constant_expression|IDENTITY (seed,increment)3.column_name data_type:定义列:定义列 其中其中column_name为列名,为列名,data_type为数据类型为数据类型 4.NULL|NOT NULL:指定所定义的列是否可以取空值:指定所定义的列是否可以取空值 默认情况下默认情况下是是NULL 5.DEFAULT constant_expression:

19、指定列的默认值约束:指定列的默认值约束 当向表中当向表中插入一条记录时,如果本列插入的数据为空,则系统自动将默认值插入一条记录时,如果本列插入的数据为空,则系统自动将默认值填充到本列填充到本列 6.IDENTITY (seed,increment):定义标识列:定义标识列,也称自动编号列,也称自动编号列,一个表中只能定义一个标识列一个表中只能定义一个标识列 7.,.n:表示可以在表中设计:表示可以在表中设计n个列的定义,列间用逗号隔开个列的定义,列间用逗号隔开起始值T-Sql创建表示例创建表示例 例一、pubs 数据库中所创建的表jobs定义,其中包含所有的约束定义。CREATE TABLE

20、jobs(job_id smallint IDENTITY(1,1)PRIMARY KEY,job_desc varchar(50)NOT NULL DEFAULT New Position-title not formalized yet,min_lvl tinyint NOT NULL CHECK(min_lvl=10),max_lvl tinyint NOT NULL CHECK(max_lvl=250)例二、按如下要求在数据库例二、按如下要求在数据库companycompany中创建一个数据表中创建一个数据表(1)(1)表名:表名:project_back.project_back.(

21、2)(2)字段:项目编号,项目名称,级别,注册时间,预计工期。字段:项目编号,项目名称,级别,注册时间,预计工期。(3)(3)将项目编号设置为标识字段,种子为将项目编号设置为标识字段,种子为1 1,增量为,增量为1 1;项目名称;项目名称的默认值为的默认值为”UNKNOWN”;UNKNOWN”;预计工期为级别乘以预计工期为级别乘以2020。Use company go create table project_back(项目编号 int IDENTITY(1,1),项目名称 varchar(40)DEFAULT UNKNOWN,级别 int,注册时间 varchar(20),预计工期 as 级

22、别*20)2 使用企业管理器创建表返返 回回作业作业以下作业内容分别用企业管理器和以下作业内容分别用企业管理器和T-sql语言实现语言实现一、创建数据库一、创建数据库Group1Group1二、在二、在Group1Group1数据库中编写并执行创建用户自定义数据类型的语句,需数据库中编写并执行创建用户自定义数据类型的语句,需要创建的数据类型表格如下:该过程的脚本放在要创建的数据类型表格如下:该过程的脚本放在E:Microsoft SQL ServerMSSQLDatacreatyp1.sql中中数据类型数据类型数据描述数据描述CityCity最多最多1515个字节的字符数据,可以个字节的字符数

23、据,可以nullnullTelephoneTelephone2020个字符数据,可以为个字符数据,可以为nullnullRegionRegion最多最多1515个字节的字符数据,不可以个字节的字符数据,不可以nullnull三、使用语句创建如下表格,该过程的脚本放在三、使用语句创建如下表格,该过程的脚本放在E:Microsoft SQL ServerMSSQLDatacreatab1.sql中中列名列名数据类型数据类型允许空值允许空值Identity属性属性SIDint不允许种子=1增量=1SNamenvarchar(20)不允许无Ssexnchar(5)不允许无Sage int允许无SCit

24、yCityCityCity允许无TelephoneTelephoneTelephoneTelephone允许无RegionRegionRegionRegion允许无5.3 修修 改改 表表1 使用ALTER TABLE命令修改表结构命令格式:命令格式:ALTER TABLE table_name ALTER COLUMN column_name new_data_type NULL|NOT NULL|ADD column_name data_type NULL|DEFAULT|DROP COLUMN column_name ,.n Sql server规定:存规定:存在值约束或其他约束,在值约

25、束或其他约束,须先删除它们须先删除它们说明:说明:1.ALTER TABLE:该关键字表示本命令将修改表的结构 2.table_name:指定需要修改的表名3.ALTER COLUMN column_name:column_name指定需要修改的列名称命令关键字4.new_data_typeNULL|NOT NULL:新的:新的数据类型,可以修改其非空属性可以修改其非空属性 5.ADD column_name data_type NULL|DEFAULT:添加的列的名称及其数据类型,可添加添加的列的名称及其数据类型,可添加空值空值NULL或或DEFAULT缺省值缺省值 6.除除DROP 外,该

26、命令一次只允许更改表的一个属性或外,该命令一次只允许更改表的一个属性或修改一列修改一列 可删除多列举例:举例:CREATE TABLE doc_exb(column_a INT,column_b VARCHAR(20)NULL)GO ALTER TABLE doc_exb DROP COLUMN column_b GO 5.4 使用企业管理器修改表结构设计表设计表重新命名表重新命名表1用系统存储过程修改表的名称用系统存储过程修改表的名称 命令格式:sp_rename objname=object_name,newname=new_name 2使用企业管理器修改表的名称使用企业管理器修改表的名称自己做一下吧!返返 回回2 使用企业管理器查看表属性使用企业管理器查看表属性 返返 回回5.5 删 除 表使用使用T-SQL语句语句命令格式:DROP TABLE table_name 对于不再需要的表,可以通过对于不再需要的表,可以通过T-SQL语句或企语句或企业管理器删除业管理器删除说明:删除表的权力仅属于表的拥有者 不能使用DROP TABLE命令删除系统表 SQL Server禁止这样做,不是道德上的看下页返返 回回

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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