您好,欢迎访问三七文档
11第6章数据表的创建与管理22本章内容6.1数据表的建立6.2数据表的修改336.1数据表的建立数据类型SQLServer支持4种基本数据类型:字符和二进制数据类型、日期时间数据类型、逻辑数据类型、数字数据类型,用于各类数据值的存储、检索和解释。1.系统数据类型(1)精确数值类型精确数值数据类型用于存储有小数点且小数点后位数确定的实数。格式:decimal[(p[,s])]numeric[(p[,s])](2)近似数值类型用于表示浮点数值数据的近似数值数据类型。446.1数据表的建立(3)日期和时间类型日期时间数据类型用于存储日期和时间数据。SQLServer支持两种日期时间数据类型:datetime和smalldatetime。(4)字符串类型字符数据类型用于存储汉字、英文字母、数字符号和其他各种符号。char数据类型varchar数据类型text数据类型556.1数据表的建立(5)Unicode字符串类型SQLServer允许使用多国语言,采用Unicode标准字符集。为此SQLServer提供多字节的字符数据类型:nchar(n)、nvarchar(n)和ntext。(6)二进制字符串类型SQLServer二进制数据类型用于存储二进制数或字符串。SQLServer的3种有效二进制数据类型:binary数据类型varbinary[(n)]数据类型image数据类型666.1数据表的建立(7)其他数据类型1)cursor。游标是变量或存储过程参数OUTPUT的一种数据类型,这些参数包含对游标的引用。2)sql_variant:可变数据类型。该类型的变量可用来存放大部分SQLServer数据类型的值,最大长度为8016字节,不支持text、ntext、timestamp和sql_variant类型。3)table:表类型。这是一种特殊的数据类型,存储供以后处理的结果集。4)Timestamp:时间戳数据类型,用于自动记录插入或删除操作的时间。注意:服务器不允许用户指定时间戳值。5)uniqueidentifier:GUID类型(GlobalUniqueIDentifier,全局惟一标识符)。2.用户定义数据类型776.1数据表的建立使用图形工具创建数据表使用Transact-SQL语句创建表语法格式:CREATETABLE[database_name.[schema_name].|schema_name.]table_name({column_definition}table_constraint][,...n])886.1数据表的建立【例6.1续】利用Transact-SQL创建教学数据库中的三张表。CREATETABLEstudent(SNOCHAR(4)PRIMARYKEY,SNAMENCHAR(10)NOTNULL,SEXCHAR(1),AGESMALLINT,CHECK(SEX=ꞌFꞌORSEX=ꞌMꞌ),CHECK(AGEBETWEEN18AND25))CREATETABLEcourse(CNOCHAR(4),CNAMECHAR(10)NOTNULL,CREDITSMALLINT,PRIMARYKEY(CNO),CHECK(CREDIT1AND10))996.1数据表的建立CREATETABLEs_c(SNOCHAR(4),CNOCHAR(4),GRADESMALLINT,PRIMARYKEY(SNO,CNO),FOREIGNKEYSNOREFERENCESstudent(SNO),FOREIGNKEYCNOREFERENCEScourse(CNO),CHECK(GRADE0AND100))10106.2数据表的修改查看数据表【例6.2】查看系统当前所有对象的信息。单击工具栏上【新建查询】按钮,输入以下代码:USEmasterGOEXECsp_helpGO【例6.3】查看教学数据库中学生表的信息。USEteachingGOEXECsp_help'student'GO11116.2数据表的修改使用图形工具修改数据表使用Transact-SQL语句修改表语法格式:ALTERTABLE[database_name.[schema_name].|schema_name.]table_name{ALTERCOLUMNcolumn_name{[type_schema_name.]type_name[({precision[,scale]|max})][NULL|NOTNULL]}|[WITH{CHECK|NOCHECK}]|ADD{column_definition|table_constraint}[,...n]|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn_name}[,...n]}[;]12126.2数据表的修改【例6.4】为教学数据库中的表student添加一个允许空值的列PLACE,而且没有通过DEFAULT定义提供的值。在该新列中,每一行都将有NULL值。USEteachingGOALTERTABLEstudentADDPLACEVARCHAR(20)NULLGOEXECsp_helpstudentGO13136.2数据表的修改【例6.5】修改表student以删除列PLACE。USEteachingGOALTERTABLEstudentDROPCOLUMNPLACEGOEXECsp_helpstudentGO14146.2数据表的修改【例6.6】将表student中列PLACE的数据类型由VARCHAR(20)更改为VARCHAR(10)。USEteachingGOALTERTABLEstudentALTERCOLUMNPLACEVARCHAR(10)GOEXECsp_helpstudentGO15156.2数据表的修改【例6.7】为表student添加一个包含UNIQUE约束的新列SCARDID。USEteachingGOALTERTABLEstudentADDSCARDIDCHAR(18)NULLCONSTRAINTmy_constraintUNIQUEGOEXECsp_helpstudentGO16166.2数据表的修改【例6.8】从表student中删除UNIQUE约束。USEteachingGOALTERTABLEstudentDROPCONSTRAINTmy_constraintGOEXECsp_helpstudentGO17176.2数据表的修改使用图形工具删除数据表使用Transact-SQL语句删除表语法格式如下:DROPTABLE[database_name.[schema_name].|schema_name.]table_name[,...n][;]其中,table_name是要删除的表名。注意:(1)定义有外键约束的表必须先删除外键约束,才能删除。(2)系统表不能使用DROPTABLE语句删除。18186.2数据表的修改【例6.9】从当前数据库中删除test1表及其数据和索引。DROPTABLEtest1【例6.10】删除teaching数据库中的test2表。DROPTABLEteaching.dbo.test21919本章小结(1)表的相关概念:表是数据库中数据的实际存储处所,每个表代表一个实体。表由行和列组成,每行标识实体的一个个体,每列代表实体的一个属性。(2)数据类型:数据类型描述并约束了列中所能包含的数据的种类、所存储值的长度或大小、数字精度和小数位数(对数值数据类型)。(3)空值:未对列指定值时,该列将出现空值。空值不同于空字符串或数值零,通常表示未知。空值会对查询命令或统计函数产生影响,应尽量少使用空值。(4)约束:约束是数据库自动保持数据完整性的机制,它是通过限制列中数据、行中数据和表之间数据来保持数据完整性。SQLServer2005支持NotNull、Default、Check、PrimaryKey、ForeignKey、Unique6种约束。(5)可以使用图形工具和Transact-SQL语句创建表并对表进行维护,包括修改和删除等操作。
本文标题:数据表的创建与管理
链接地址:https://www.777doc.com/doc-3550667 .html