




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1chSQLServer数据表管理数据表管理4.1 表的基本概念和特点4.2 数据类型4.3 创建表 4.4 表的管理和维护4.5 表中数据的添加、修改和删除4.6 数据完整性与使用约束 第1页/共32页学号姓名性别出生日期家庭住址所在班级0502410101朱富宝女1986-3-14山东聊城241010502410102蔡志赫男1986-3-19内蒙古包头241010502410103曹洋园女1986-3-28山西太原241010502410104孟健笋男1986-4-2山东济南241010502410105董保燕男1986-4-8山东济宁241010502410106安洪壮男1986
2、-1-29江苏徐州24101第2页/共32页第3页/共32页类类 型型范范 围围存储存储bigint-2-26363(-9,223,372,036,854,775,808)(-9,223,372,036,854,775,808)到到2 26363- -1 1(9,223,372,036,854,775,807)(9,223,372,036,854,775,807)的整型数字。的整型数字。8 字节字节intint-2-23131 (-2,147,483,648) (-2,147,483,648)到到2 23131-1 (2,147,483,647)-1 (2,147,483,647)的整型数字。
3、的整型数字。4 4 字节字节smallintsmallint-2-21515 (-32,768) (-32,768) 到到 2 21515-1 (32,767)-1 (32,767) 的整型数字。的整型数字。2 2 字节字节tinyint0 0 到到 255255的整型数字。的整型数字。1 字节字节bit0或或1的整型数字的整型数字,字符串值字符串值 TRUE TRUE 和和 FALSE FALSE 可以转换为以下可以转换为以下 bit bit 值:值:TRUE TRUE 转换为转换为 1 1,FALSE FALSE 转换为转换为 0 0。 根据需要根据需要1-2字节字节decimal从从-1
4、038+1到到1038-1的定精度与有效位数的数字。的定精度与有效位数的数字。5-17字节字节numericdecimal的同义词。的同义词。5-17字节字节money从从-922,337,203,685,477.5808到到922,337,203,685,477.5807的货币的货币数据,精确到万分之一。数据,精确到万分之一。8字节字节smallmoney从从-214,748.3648到到214,748.3647的货币数据,精确到万分之一。的货币数据,精确到万分之一。4字节字节第4页/共32页数据类型范 围存 储float-1.79E + 308 至 -2.23E - 308、0 以及 2.
5、23E - 308 至 1.79E + 308取决于 n 的值real-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 384字节第5页/共32页数据类型范 围精确度datetime1753 年 1 月 1 日到 9999 年 12 月 31 日3.33 毫秒smalldatetime1900 年 1 月 1 日到 2079 年 6 月 6 日1 分钟第6页/共32页说明:如果列数据项的大小一致,则使用char。如果列数据项的大小差异相当大,则使用varchar。如果列数据项大小相差很大,而且大小可能超过8,000字节,则使用varchar
6、(max)。第7页/共32页说明:如果没有在数据定义或变量声明语句中指定n,则默认长度为1。如果没有使用CAST函数指定n,则默认长度为30。如果列数据项的大小可能相同,则使用 nchar。如果列数据项的大小可能差异很大,则使用 nvarchar。第8页/共32页说明:如果未在数据定义或变量声明语句中指定n,则默认长度为 1。如果未使用CAST 函数指定n,则默认长度为30。如果列数据项的大小一致,则使用binary。如果列数据项的大小差异相当大,则使用varbinary。当列数据条目超出 8,000字节时,请使用varbinary(max)。第9页/共32页说明:如果列数据项的大小一致,则使
7、用char。如果列数据项的大小差异相当大,则使用varchar。如果列数据项大小相差很大,而且大小可能超过8,000字节,则使用varchar(max)。第10页/共32页【例4-1】创建一个用户定义的数据类型ssn,其基于的系统数据类型是变长为11的字符,不允许空。EXEC sp_addtype ssn, varchar(11) , not null是用户定义的数据类型的名称,在同一数据库中唯一。是系统提供的数据类型,例如:decimal、int、char 等等。表示该数据类型是如何处理空值的,必须使用单引号引起来,例如:null、not null或者no null。【例4-2】创建一个用户
8、定义的数据类型 birthday,其基于的系统数据类型是datetime,允许空。EXEC sp_addtype birthday,datetime,null【例4-3】删除用户自定义类型ssn。EXEC sp_droptype ssn第11页/共32页学号姓名性别出生日期家庭住址所在班级0502410101朱富宝女1986-3-14山东聊城241010502410102蔡志赫男1986-3-19内蒙古包头241010502410103曹洋园女1986-3-28山西太原241010502410104孟健笋男1986-4-2山东济南241010502410105董保燕男1986-4-8山东济宁2
9、41010502410106安洪壮男1986-1-29江苏徐州24101第12页/共32页表4-5 学生信息表(Student)结构定义列名列类型(长度)列属性列描述StuIDChar(13)主键学号StuNameNvarchar(8)姓名StuSexNvarchar(8)性别StuBirsmalldatetime出生日期StuAddrNvarchar(30)家庭住址ClaIDChar(10)外键所在班级第13页/共32页列名:指定字段(属性)的名称(表中唯一)。数据类型:指定字段的数据类型及长度。允许空:指定字段是否可以设定为空值(NULL)第14页/共32页新表的名称。表名称必须符合标识符
10、规则。table_name在数据库中必须是唯一的。table_name最多可包含128个字符。data_type 指定列的数据类型。数据的完整性约束(详见4.6 )表中列的名称。列名称必须符合标识符规则,并且在表中必须是唯一的。表中列的名称。列名称必须符合标识符规则,并且在表中必须是唯一的。 【例4-3】 在学生数据库Stud中创建用于学生信息管理的表Student,具体信息如表4-5所示。USE StudCREATE TABLE Student(SduID char(13) PRIMARY KEY, SduName nvarchar(8), SduBir samlldatetime, Sdu
11、Sex nvarchar(2), SduAddr nvarchar(30), Cla_ID char(10) )第15页/共32页表的属性信息包括常规的表的连接属性、表的存储属性及权限等,查看表属性的步骤如下: 在对象资源管理器中,展开“数据库”项,展开要查看表的数据库,例如“Stud”。 选择要查看的表,如“Student”后右击选择“属性”命令,如图4-4所示。 打开属性窗口如图4-5所示。查看表中的数据是最经常使用的操作之一,具体步骤如下: 在对象资源管理器中,打开要查看数据库,例如“Stud”。 展开表选择要查看的表,例如选择表“Student”后右击并选择“打开表”命令。 打开表st
12、udent窗口如图4-6所示。某些数据库对象依赖于其他数据库对象的存在,例如,视图或存储过程依赖于基础表提供数据;或为了保证数据完整性而存在的依赖关系,例如,成绩表中学生的学号依赖学生表中的学号。在更改或删除对象前,使用对象资源管理器查看依赖关系。使用SQL Server Management Studio查看表的依赖关系步骤如下: 在对象资源管理器中,打开要查看数据库,例如“Stud”。 展开表选择要查看的表,例如选择表“Student”后右击并选择“查看依赖关系”命令,如图4-7所示。 打开属性窗口如图4-8所示,可以选择查看依赖关系和被依赖关系。【例4-3】使用sp_help查看表Stu
13、dent的定义信息。在查询编辑器中输入下面命令并执行,结果如图4-9所示。USE StudGOsp_help Student第16页/共32页在SQL Server Management Studio中修改数据库Stud表步骤如下: 在对象资源管理器中,打开数据库“Stud”展开表选择要修改的表,例如选择表“Student”后右击并选择“修改”命令,如图4-10所示。 出现表设计对话框和新建表相同,如图4-11所示,将学生家庭地址的长度修改为50。 修改完成后单击工具栏的“保存”按钮保存即可。使用命令修改数据表的语法格式为:ALTER TABLE table_namewith no check
14、 ALTER COLUMN column_name new_date_type new constraintADD column_name data_type constraint DROP COLUMN column_name其中:table_name 要修改的表名,它必需存在于数据库中。 ADD 增加新列。 ALTER 修改已存在的列。 DROP 删除已存在的列。 column_name 在操作中要增加、修改或删除的列名。new_date_type 指定与该列相兼容的新数据类型。第17页/共32页【例4-5】删除表Student。USE StudDROP TABLE Student在数据库
15、引擎查询窗口执行该命令后,显示“命令已成功完成”信息。说明数据表Student被成功地删除。第18页/共32页在SQL Server Management Studio中向表中添加数据步骤如下: 在对象资源管理器展开数据库“Stud”展开表右击表“Student”选择“打开表”命令,打开表如图4-14所示。 此时可以根据表4-1所示内容依次向表中插入记录。 关闭窗口或点击工具栏“!”按钮,输入记录被保存。使用INSERT语句向表中插入数据基本语法如下:INSERT INTO table_name (column1,column2)VALUES (value1,value2)或 INSERT I
16、NTO table_name (column1,column2)SELECT column1,column2FROM another_tablenameWHERE searchcondition 另一张表的名称,可以从another_tablename所指定的表中取出一条或多条记录插入到table_name指定的表中。(关于SELECT语句,详见第5章)。 要插入字段的名称。 插入字段的值。 指定插入数据表名称。【例4-6】将表4-1所示的姓名为“曹洋园”的所有信息插入Student表。USE StudINSERT INTO Student VALUES(0502410103, 曹洋园, 女,
17、 1986-3-28, 山西太原, 24101)【例4-7】将表4-1所示的姓名为“孟健笋”的学号、姓名、班级号插入表Student。USE StudINSERT INTO Sdudent (stuID,stuname,CLsID)VALUES (0502410104, 孟健笋, 24101)第19页/共32页 指定要更新数据的表名。指定要更新的列及该列改变后的值。 指定要更新的列及该列改变后的值。 第20页/共32页 依据上面添加数据的方法打开表,将鼠标移至表的左边行首位置,点击鼠标选中要删除的行(也可以鼠标和“Shift”键配合选中连续多行,鼠标和“Ctrl”配合选中不连续的多行)。 右击
18、鼠标,在快捷菜单中选择“删除”命令,如图4-15所示。或直接按键盘的“delete”键。 系统出现确认对话框如图4-16所示,点击“是”按钮将永久删除所选的行。DELETE语句语法格式如下:DELETE FROM table_name WHERE condition要删除数据的表名。要删除数据的条件 第21页/共32页实体完整性将行定义为特定表的唯一实体。也就是说,表中不允许存在完全相同的两行记录。实体完整性通过索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性来实现。 域完整性指特定列的项的有效性。例如学生的成绩应在0到100之间。强制域完整性方法有限制类型(通过使用数
19、据类型)、限制格式(通过使用CHECK约束和规则)或限制可能值的范围(通过使用FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则)。输入或删除记录时,引用完整性用来保持表之间已定义的关系。在 SQL Server 2005中,引用完整性通过FOREIGN KEY和CHECK约束,以外键与主键之间或外键与唯一键之间的关系为基础。引用完整性确保键值在所有表中一致。这类一致性要求不引用不存在的值,如果一个键值发生更改,则整个数据库中,对该键值的所有引用要进行一致的更改。例如:学生所在班级应为存在的班级。定义引用完整性后,禁止用户进行以下操作:当主表没有关联记录
20、时,将记录添加到相关表中。更改主表中的值导致相关记录独立。从主表中删除记录,但仍存在与该记录匹配的相关记录。用户定义完整性可以定义不属于其他任何完整性类别的特定业务规则。所有完整性类别都支持用户定义完整性。这包括CREATE TABLE中所有列约束和表约束、存储过程以及触发器。 约束不指定名称时,系统会给定一个名称。在定义完整性约束时必须指定完整性约束的类型。 第22页/共32页【例4-11】建立一个Student表,定义StuID为主键。USE StudCREATE TABLE Student(StuID char(13) CONSTRAINT S_PRIM PRIMARY KEY,Stun
21、ame varchar(8),Stusex char(2)【例4-12】建立一个Result表,定义StuID+CouID为SC的主键。USE StudCREATE TABLE Result(StuID char(13) NOT NULL,CouID char(5) NOT NULL,Result numeric(3),CONSTRAINT SC_PRIM PRIMARY KEY(StuID, CouID)第23页/共32页【例4-13】建立一个Student1表,定义Stuname为唯一键。USE StudCREATE TABLE Student1(StuID char(13),Stunam
22、e varcahr(8) CONSTRAINT SN_UNIQ UNIQUE,Stusex char(2)其中:SN_UNIQ为指定的约束名称,约束名称可以省略,如下例:USE StudCREATE TABLE Student2(StuID char(13),Stuname varchar(8) UNIQUE,Stusex char(2)【例4-14】建立一个Student3表,定义Stuname+Stusex为唯一键。USE StudCREATE TABLE Student3(StuID char(13),Stuname varchar(8),Stusex char(2),CONSTRAIN
23、T S_UNIQ UNIQUE(Stuname, Stusex)系统为Stuname+Stusex建立唯一索引,确保同一性别的学生没有重名 第24页/共32页第25页/共32页第26页/共32页【例4-17】建立一个Student5表,对Stuname字段进行NOT NULL约束。USE StudCREATE TABLE Student5(StuID char(13),Stuname varchar(8) NOT NULL,Stusex char(2),Dept char(20)说明:当插入、修改记录时,若Stuname为空,系统给出错误信息,无NOT NULL约束时,系统缺省为NULL。第27页/共32页列级FOREIGN KEY约束语法格式为: CONSTRAINT FOREIGN KEY (列名) REFERENCES ()表级FOREIGN KEY约束语法格式为: CONSTRAINT FOREIGN KEY (,) REFERENCES (,)【例4-18】建立一个Result表,定义StuID、CouID为Result表的外键,分别参考表Student的StuID列和表Course的CouID列。USE StudCREATE T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村住宅购买合同
- 2025农业科技租赁合同范本
- 2025年乡镇药房考试题及答案
- 物体压强题目及答案高中
- 2025餐厅转让合同样本
- 营销渠道专业知识培训课件
- 营销案例知识培训
- 2025年甾体药物项目建议书
- 物料仓库培训试题及答案
- 2024人教版七年级生物上册期末复习知识点提纲(填空版+答案版)
- 九年级《道德与法治》(上册)教学计划及教学进度
- 商场租户撤场协议书范本
- DB3301T 0461-2024 电动自行车停放充电场所消防安全管理规范
- 九年级上册英语书译林版单词表
- 车库业主与租赁者安装充电桩协议书
- JT-T-1344-2020纯电动汽车维护、检测、诊断技术规范
- 基本医疗卫生与健康促进法
- 教育研习手册
- 办公设备(电脑、一体机、投影机等)采购 投标方案(技术方案)
- 园林工程竣工验收与养护期
- 儿童感觉统合能力发展评定量表
评论
0/150
提交评论