Cocktail学习目标1、了解SQLServer2005中的常用数据类型。2、掌握表的创建,表定义的修改方法。3、掌握表数据的插入、删除和修改。4、掌握各类数据完整性约束的实现方法。5、学会使用SQLServer2005向导工具导入导出数据。6、解决任务引入中提出的问题,通过实训项目巩固知识。表的创建和管理都可以使用ManagementStudio和Transact-SQL语句两种方法实现知识框架第5章表表的概念数据类型创建和管理表操作表数据数据插入数据删除数据修改导入导出操作表数据主键约束唯一性约束检查约束默认约束外键约束任务引入•在上一章中我们学会了建立数据库,那么数据库相当于一个容器,我们要向中间填塞数据,这些数据以什么样的形式存在呢,答案是“表”,那么怎样向表中填塞数据呢?表保存的数据之间有什么关系吗?有关系的话,这些关系如何在数据库中实现才不至于产生乱七八糟的数据或者一些无用的数据?5.1表•5.1.1表的基本概念表是数据库基本的逻辑存储单位,在关系数据库中都表现为二维表,由行和列组成,如下表所示。在数据库中实际建表之前,要充分考虑到以下几点:(1)数据库中应该有哪些基本表(2)表中有哪些列,列的名字,每列的数据类型和长度,该列能否为空等.(3)表中哪些列需要约束等(4)表中的哪些列的数据有效范围需要限定5.1.2数据类型SQLServer2005提供了一系列系统定义的数据类型,它是数据库对象的一个属性,选择正确的数据类型,是筛选进入表中的数据的第一层约束。•数据类型主要有下面几部分构成。•1、数据类别,例如字符类型,数据类型或二进制类型•2、数据值的宽度和长度大小,如允许输入的字符最大值为20个字符•3、数值的精度,比如商品价格一般小数部分是2或3位,整数部分几位由具体情况而定。5.1表SQLServer2005的常用数据类型见表1留意下边的【注意】!!1.decimal和numeric带固定精度和小数位数的数值数据类型。2.近似数字数据类型用于表示浮点数值数据的大致数值数据类型。3.使用数值日期格式时,可在字符串中使用斜杠(/)、连字符(-)或句点(.)作为分隔符指定月、日和年。4.如果列数据项的大小一致,则使用binary。5.1.3创建表学生成绩管理系统是针对学生选课和成绩管理设计的,依据第二章的关系模型我们可以得到该数据库至少包含学生表Student、学校的课程表Course、成绩登记表Score和班级信息表Class。创建表的方法主要有两种,使用ManagementStudio创建和使用Transact-SQL语句创建,下面分别来介绍这两种方法表5-1学生表Student字段类型长度是否能为空约束学号StuNonvarchar10否主键姓名StuNamenvarchar50否惟一性别Sexchar2否值在“男”,“女”中选班级名称ClaNamenvarchar20是外键,对应班级表中列籍贯Citynvarchar20是备注Notesnvarchar200是所有列都添加好后结果如图5-32.使用T-SQL语句创建表创建表的基本语法格式如下:CREATETABLEtable_name(Columnnamecol_propertiesColumnnamecol_properties[,…])说明:table_name:定义表名Columnname:列名col_properties列属性,包括列的数据类型,是否为空,约束等等【例5.3】用T-SQL语句创建班级表Class。字段类型长度是否能为空约束班级编号ClaNoSmallintIDENTITY否从“001”开始自动生成班级名ClaNamenvarchar20否主键所在系部Departmentnvarchar20否班级人数Numbersmallint大于或等于0编辑SQL语句完成建表;UseCJGLGo--创建班级表Class--CreateTableClass(ClaNosmallintIDENTITY(001,1)NOTNULL,--班级编号从“001”开始自动生成ClaNamenvarchar(20)NOTNULL,Departmentnvarchar(20)NULL,NumbersmallintNULL)IDENTITY标识列【注意】IDENTITY属性的一般语法格式如下IDENTITY[(seed,increment)]参数seed装载到表中的第一个行使用的值。increment与前一个加载的行的标识值相加的增量值。必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值(1,1)。【思考练习】以下给出选课表Score的逻辑模型如下表5-4所示。读者试着自己给出相应的T-SQL脚本语句。字段类型长度是否能为空约束学号StuNonvarchar10否外键主键课程号CouNonvarchar10否外键分数Gradesmallint取值大于0管理表ALTERTABLEtable--修改的表名称{ALTERCOLUMNcolumn_name--修改已有的列名{new_data_type[(precision[,scale])]--新的数据类型|ADD--添加新列{[column_definition]--添加列的定义|DROP--删除列COLUMNcolumn}[,...n]--要删除列的列名}5.2表数据操作1.向表中插入数据a.使用INSERTINTO…语句插入数据INSERT[INTO]object[(column_list)]//表名(列1,列2,列3,…)VALUES({DEFAULT|NULL|expression}[,...n])b.使用INSERT…SELECT…语句输入数据【例5.9】c.使用SELECTINTO…子句插入数据到临时表•SELECTcolumn1,column2,…•INTOnewtable•FROMtablename•WHEREspec•……2.修改表中数据修改数据的T-SQL语句的一般语法格式如下:•UPDATEtable_name•SETcolumn_name={expression|DEFAULT|NULL}--修改原来的值为新值、默认值或空值•FROMtable_source[,...n]]•WHEREsearch_condition--选择部分满足条件的记录•【例5.11】【例5.12】3.删除表中数据DELETE语句的简单语法格式如下:•DELETEtable•WHEREsearch_condition•【例5.13】使用TRUNCATE语句删除数据TRUNCATETABLEName【比较】TRUNCATE与DELETE语句比较5.3表数据完整性的实现约束主要有五种类型,包括主键约束、唯一性约束、检查约束、默认约束和外键约束(参照性约束)。5.3.2主键约束(PRIMARYKEY)【例5.17】ALTERTABLEScoreADDCONSTRAINTPK_ScorePRIMARYKEY(StuNo,CouNo)5.3表数据完整性的实现CREATETABLEScore([StuNo][nvarchar](10)NOTNULL,[CouNo][nvarchar](10)NOTNULL,[Grade][smallint]NULL,CONSTRAINTPK_ScorePRIMARYKEY(StuNo,CouNo))【思考】如果在定义列后直接写上“PRIMARYKEY”(如5.3.1节综合实例中)和上面两种有何区别。5.3.3唯一性约束(UNIQUE)【例5.18】ALTERTABLECourseADDCONSTRAINTUN_CouNameUNIQUE(CouName);删除该约束的语句ALTERTABLECourseDROPCONSTRAINTUN_CouName;【思考】添加了唯一性约束的列,该列允许取空值吗?如果可以,那么可以取多少个空值呢?5.3.4检查约束(CHECK)【例5.20】ALTERTABLEStudentADDCONSTRAINTCK_SexCHECK(Sex='男'ORSex='女');【注意】CHECK关键字后的表达式一定要跟上小括号,否则要出错。ALTERTABLECourseADDCONSTRAINTCK_CreditCHECK(Credit=0ANDCredit=10)自学【例5.21】5.3.5默认约束(DEFAULT)DEFAULT(expression|null)FORcolumn_name【例5.23】ALTERTABLEStudentADDCONSTRAINTDE_SexDEFAULT('男')FORSex【例5.24】ALTERTABLEScoreADDCONSTRAINTDE_GradeDEFAULT(NULL)FORGrade5.3.6外键约束(FOREIGNKEY)在弹出的窗口中设置主键和外键关系,重点是设置主键表和外键表5.3.6外键约束(FOREIGNKEY)创建外键的一般语法格式如下:•ALTERTABLEtable1_name•ADDCONSTRAINTconstraint_nameFOREIGNKEY(col1_name)•REFERENCEStable2_name(col2_name)•参数:•table1_name外键表名•constraint_name约束名称•col1_name外键列名•table2_name主键表名•col2_name主键列名5.3.6外键约束(FOREIGNKEY)【例5.26】ALTERTABLEScoreADDCONSTRAINTFK_Score_CourseFOREIGNKEY(CouNo)REFERENCESCourse(CouNo)【例5.27】•--添加职工表的外键关系•ALTERTABLEEmploye•ADDCONSTRAINTFK_Employe_EmployeFOREIGNKEY(ManagerNo)•REFERENCESEmploye(EmpNo);5.4本章小结本章主要介绍表的相关操作,读者要重点掌握表的创建,表的修改,表数据的操作包括插入、删除和更新,表数据完整性的实现包括五种约束的实现,主键约束、唯一性约束、CHECK约束、默认约束和外键约束。PowerBar中国专业PPT设计交流论坛本模板作品由PowerBar模板组成员创作,部分图片素材来源于互联网,如有侵犯您的权利请即通知,立刻处理您可以自由:复制、发行、展览、表演、放映、广播或通过信息网络传播本作品;创作演绎作品惟须遵守下列条件:您必须按照作者或者许可人指定的方式对作品进行署名;不得以盈利为目的对本模板进行出售、收费下载或者做非实质性改动之后进行类似的行为本模板作品由PowerBar模板组成员创作,部分图片素材来源于互联网,如有侵犯您的权利请即通知,立刻处理您可以自由:复制、发行、展览、表演、放映、广播或通过信息网络传播本作品;创作演绎作品惟须遵守下列条件:您必须按照作者或者许可人指定的方式对作品进行署名;不得以盈利为目的对本模板进行出售、收费下载或者做非实质性改动之后进行类似的行为作者:findygirl