您好,欢迎访问三七文档
Version3.0SQLServer表管理第四章2回顾•SQLServer的功能、特点、版本和安装要求;•企业管理器、查询分析器和帮助系统的使用;•SQLServer的数据库和数据库对象;•SQLServer的数据库文件组织方式:–文件和文件组–数据日志文件和日志文件•在企业管理器中创建数据库和使用T-SQL创建数据库;•使用系统存储过程数据库特征的配置;3目标•理解SQLServer数据库表的数据组织方式;•理解SQLServer中的各种数据类型;•在SQLServer实现实体完整性约束、引用完整性约束和域完整性约束;•定义和使用主键、外键、检查约束;•使用T-SQL和企业管理器创建、更新和删除表;•理解与约束和约束对象有关的概念;4数据库和表航班管理数据库旅客信息表航班信息表机票信息表CREATEDATABASE5操作SQLServer表演示打开表、查看表结构等操作…6在企业管理器中创建数据库表7数据类型4-1•SQLServer的数据类型包括两类:–系统定义的数据类型:–用户定义的数据类型8数据类型4-2•系统定义数据类型charvarcharncharnvarchartextntextimagemoneysmallmoneybinaryvarbinaryUniqueidentifier(GUID)timestampsql_variantbitintsmallinttinyintbigintnumericdecimalfloatrealSQLServer2000数据类型Table9数据类型4-3•inttextimagebit•不能在设计时修改列宽10数据类型4–4:自定义删除创建EXECsp_addtypeCity,'nvarchar(15)',NULLEXECsp_addtypePostCode,'nvarchar(6)',NULLEXECsp_addtypeNCode,'nvarchar(18)',NULLEXECsp_droptypecity•用户定义数据类型基于系统数据类型,当多个表的列中要存储同样类型的数据,且想确保这些列具有完全相同的数据类型、长度和为空性时,可使用用户定义数据类型。11使用T-SQL创建表列名称CREATETABLECategories(CategoryIDCategoryNameDescriptionPicture数据类型intIDENTITY(1,1)nvarchar(15)ntextimage空或非空,NOTNULL,NULL,NULL)•CreateTableCREATETABLECategories(CategoryIDintIDENTITY(1,1),CategoryNamenvarchar(15)NOTNULL,DescriptionntextNULL,PictureimageNULL)12再论数据完整性3-1数据完整性可靠性准确性13再论数据完整性3-2域完整性实体完整性引用完整性14再论数据完整性3-3完整性类型SQLServer工具实体完整性1.主键约束2.唯一约束3.标识列域完整性1.默认值定义2.外键约束3.检查约束4.非空属性引用完整性1.外键约束2.检查约束用户定义的完整性1.规则2.存储过程3.触发器15实体完整性实现4-1唯一约束主键约束CREATETABLEjobs(Job_idsmallintPRIMARYKEY,job_descvarchar(50)NOTNULL)CREATETABLEjobs(Job_idsmallintUNIQUE)标识列CREATETABLEjobs(Job_idsmallintIDENTIRY(2,1)PRIMARYKEY)16•唯一约束–是一列或几列的组合,而且不是主键;–可以为表定义多个唯一约束,而只能为表定义一个主键约束;–该列允许为空值;–唯一约束可以定义在允许空值的列上,而主键约束只能定义在不允许为空值的列上;实体完整性实现4-217ALTERTABLE[表名]ADDCONSTRAINT约束名PRIMARYKEY(列名列表)ALTERTABLEReservationADDCONSTRAINTPK_constPRIMARYKEYPNR_NO)实体完整性实现4-318CREATETABLECustomer(CustIDuniqueidentifierNOTNULLDEFAULTNEWID(),CustNamechar(30)NOTNULL)实体完整性实现4-4Uniqueidentifier数据类型和NEWID函数INSERTCustomerVALUES(NEWID(),'ASB')19引用完整性实现2-1CREATETABLEABC(ABCNCHAR(5)FOREIGNKEYREFERENCESCustomers(CustomerID),ABCDCHAR(6)NOTNULL)使用约束方式实施引用在创建数据库表时设置外键ALTERTABLEdbo.OrdersADDCONSTRAINTFK_Orders_CustomersFOREIGNKEY(CustomerID)REFERENCESdbo.Customers(CustomerID)20子表记录如果数据项不在父表中添加父表如果导致子表产生孤立记录删除引用完整性实现2–221域完整性实现自定义数据类型数据类型约束外键约束非空约束默认和检查约束22表属性设置演示表属性设置、建立关系的操作…23使用T-SQL更新表结构ALTERTABLEMyTableALTERCOLUMNNullCOlNVARCHAR(20)NOTNULLALTERTABLEjobsADDHIRE_DATEDATETIMEALTERTABLEDoc_EDDROPCOLUMNColumn_BALTERTABLEDoc_EDWITHNOCHECKADDCONSTRAINTExd_CheckCHECK(Column_a1)24使用T-SQL删除表DROPTABLE[表名]DROPTABLEAirlines_Master演示在企业管理器内更改和删除表…25约束和完整性完整性类型约束类型域完整性DEFAULTCHECKFOREIGNKEY实体完整性PRIMARYKEYUNIQUE引用完整性FOREIGNKEYCHECK26约束对象5-1USENorthwindCREATETABLEABC(ASDintDefault8,ASDEvarchar(20)Default'UNKNOWN')•DEFAULT约束USENorthwindALTERTABLEdbo.CustomersADDCONSTRAINTDF_contactnameDEFAULT'UNKNOWN'FORContactName27约束对象5–2CREATETABLEABCD(ASDintCHECK(ASD100),ASDEvarchar(80)Default'UNKNOWN')•CHECK约束USENorthwindALTERTABLEEmployeesADDCONSTRAINTCK_birthdateCHECK(BirthDate'01-01-1900'ANDBirthDate’01-01-2010’)28约束对象5–3CREATETABLEAWC(ASDintCHECK(ASD100)PRIMARYKEY,ASDEvarchar(80)Default'UNKNOWN')•PRIMARYKEY约束USENorthwindALTERTABLECustomersADDCONSTRAINTPK_CustomersPRIMARYKEY(CustomerID)29约束对象5-4CREATETABLEAAC(ASDintCHECK(ASD100)PRIMARYKEY,ASDEintUNIQUE)•UNIQUE约束USENorthwindALTERTABLESuppliersADDCONSTRAINTU_CompanyNameUNIQUE(CompanyName)30约束对象5-5CREATETABLEACC(ASDintCHECK(ASD100)PRIMARYKEY,ASDEintFOREIGNKEYREFERENCESAAC(ASD))•FOREIGNKEY约束USENorthwindALTERTABLEOrdersWITHNOCHECKADDCONSTRAINTFK_Or_CuFOREIGNKEY(CustomerID)REFERENCESCustomers(CustomerID)31总结•数据库本身不直接保存数据,表是数据的容器;•SQLServer创建表的过程是规定数据列属性和规则的过程,同时也是实施数据完整性保证的过程;•使用T-SQL创建表的命令为:CREATETABLE;•数据完整性是指数据的可靠性和准确性,设计完整性规则是用来保持数据的一致性和正确性;•SQLServer为实体完整性、引用完整性和域完整性的实施提供了多种机制;•使用T-SQL修改表结构:ALTERTABLE;•在创建或者修改表结构的时候,都可以实施默认、检查、唯一、主键和外键约束。
本文标题:数据库培训课件4
链接地址:https://www.777doc.com/doc-3353074 .html