数据库原理及应用第04章第2部分_第1页
数据库原理及应用第04章第2部分_第2页
数据库原理及应用第04章第2部分_第3页
数据库原理及应用第04章第2部分_第4页
数据库原理及应用第04章第2部分_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章数据库表的操作(二)

回顾

(1)创建表CREATETABLE<表名>(列名1列的数据类型及宽度等特征,列名2列的数据类型及宽度等特征,…)回顾

(2)数据完整性:域完整性(Notnull、Default、Check)实体完整性(Primarykey、Unique)参考完整性(Foreignkey)回顾(3)数据完整性控制(约束):默认约束:ConstraintDF_表名default<约束表达式>[for<列名>]检查约束:ConstraintCK_表名check(逻辑表达式)主键约束:ConstraintPK_表名primarykey(约束列1,约束列2,…)唯一性约束:ConstraintUQ_表名unique(约束列)外键约束:ConstraintFK_表名_参照表名foreignkey(约束列)references<关联表名><外键(列)名>ALTER命令增加表的字段ALTER命令修改表的字段ALTER命令删除表的字段ALTER命令的增加表的约束ALTER命令删除表的约束ALTER命令启用和暂停约束数据库中表的数据插入、修改和删除本章(2)目标ALTERTABLE命令的语法如下:ALTERTABLE<表名>

{ADD{<列定义>〈列约束>}[,...n]

|[WITHCHECK|WITHNOCHECK]ADD{<列约束>}[,...n]

|DROP{COLUMN列名|[CONSTRAINT]约束名}[,...n]|ALTERCOLUMN列名{新数据类型[(新数据宽度[,新小数位数])]}

|[CHECK|NOCHECK]CONSTRAINT{ALL{约束名[,...n]}}ALTERTABLE命令增加列增加列约束启用或禁止约束新添加的外键或检查约束独立增加约束删除列删除约束修改列启用或禁止约束创建数据库表(GoodsInfo)以T-SQL语句建立商品类别表(GoodsClass)和商品信息表(GoodsInfo)。任务2-1创建数据库表(GoodsInfo)CREATETABLEGoodsInfo(

GoodsID varchar(50)PRIMARYKEY,

ClassID varchar(10)NOTNULL,

GoodsName varchar(250)NOTNULL,

BarCode varchar(20)NOTNULL,

StoreNum

int

)主键对象类型表名列名列的数据类型及宽度创建数据库表(GoodsClass)CREATETABLEGoodsClass(

ClassID varchar(10)PRIMARYKEY,

ClassName varchar(50))增加列ALTERTABLEGoodsInfo

ADDGoodsUnitvarchar(4),Pricemoney注意点:(1)读者常犯的错误是将addGoodsUnitvarchar(4)书写成:addcolumn

GoodsUnit

varchar(4),多了column部分,这是因为删除列的格式是这样的:dropcolumn

<列名>。(2)向表中增加一列时,应使新增加的列有默认值或允许为空值,否则表为应没有数据可增加空值。不能有!修改命令修改对象类型(表)修改表名增加列类型及宽度增加关键字修改列ALTERTABLE

GoodsInfoALTERCOLUMN

BarCode

char(13)ALTERTABLE

GoodsInfoALTERCOLUMN

GoodsName

varchar(100)注意点:(1)不允许能对主键列进行修改。(2)只能修改列的数据类型和宽度及列值可否为空,默认情况下,列是被设置为允许空值的,将一个原来允许为空的列设置为不允许为空,必须在列中没有存放空值的记录和在列上没有创建索引都能满足的前提下才能成功;不能修改列名,如果要修改列名、数据类型及宽度,则需要先删除该列,然后再添加这列。(3)不能同时修改两列。不能少!不能少!删除列ALTER

TABLE

GoodsInfoDROP

COLUMN

BarCode注意点:(1)T-SQL命令不能为:altertableGoodsInfo

drop

BarCode。(2)不能删除主键列GoodsID。(3)在删除非普通列,例如具有约束的列或为其他列所依赖的列时,需要先删除相应的约束或依赖信息,再删除该列。例如,假如某列具有默认约束,则需先删除默认约束,再删除该列。

不能少!ALTERTABLEGoodsInfoADDCONSTRAINTFK_GoodsInfo_ClassID

FOREIGNKEY(ClassID)REFERENCESGoodsClass(ClassID),CONSTRAINTCK_GoodsInfo_BarCode

check(BarCodeLIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),CONSTRAINTUQ_GoodsInfo_BarCode

UNIQUE(BarCode),DEFAULT0FORPrice, DEFAULT0FORStoreNum

对表(GoodsInfo)添加约束不能少!唯一键约束外键约束名外键约束检查约束默认约束注意点:(1)我们在书中任务中创建的表时,列Goodsinfo是允许为空的,这样在创建主键约束时就不能创建,因此,在创建主键约束,该列(或组合列)不能为空。(2)在对GoodsInfo表的列GoodsID创建外键约束时,必须保证该列与参照表(GoodsClass)表中的列ClassID类型及宽度要保持一致,否则不予创建。(3)增加约束时,如果表中原有的数据和新增的约束冲突,将导致异常,终止命令执行。如果想忽略对原有数据的约束检查,可在命令中使用WITHNOCHECK选项,使新增加的约束只对以后更新或插入的数据起作用。系统默认自动使用WITHCHECK选项,即对原有数据进行约束检查。注意,不能将WITHCHECK或WITHNOCHECK作用于主键约束和唯一性约束。对表(GoodsInfo)添加约束为供应商表(SupplierInfo)添加默认约束、检查约束,删除创建的默认约束、检查约束。序号列名数据类型长度列名含义说明1SupplierIDvarchar20供应商编号主键2SupplierNamevarchar250供应商名称非空供应商表如表4.13所示。任务2-6删除约束ALTERTABLE

SupplierInfo

DROP

CONSTRAINT

DF_SupplierInfo_Address,

CK_SupplierInfo_E_Mail,

CK_SupplierInfo_PostCode,COLUMN

Address,EMail,PostCode删除约束删除约束T-SQL语句命令为:ALTERTABLE<表名>

DROPCONSTRAINT<约束名>

删除的列,以逗号分开逗号分开!自定义约束名不能少!示例:altertableGoodsInfo

nocheckconstraintall启用或暂停约束启用和暂停约束的T-SQL命令语法:altertableGoodsInfo[check|nocheck]constraint<约束名|all>使用说明:all表示所有约束。All仅代表外键和检查约束,对其他约束无效。约束关键字约束名或all暂停约束不能少!T-SQL管理平台中表数据的插入图4.31打开GoodsInfo图4.32向表中插入、修改、删除数据T-SQL管理平台中表数据的插入!符号标志,表示还没有保存!数据插入行T-SQL命令INSERT语法如下:INSERT

[INTO]

<表名或视图名>

[列名列表>VALUES(数据列表)T-SQL语句命令插入数据使用INSERT命令向商品类别表(GoodsClass)插入一条记录。如表4.14所示。T-SQL语句命令插入数据任务3-2表4.14GoodsClass(商品类别表)ClassIDClassNameSPLB06汽车SPLB07房产INSERTINTOGoodsClass(ClassID,ClassName)VALUES('SPLB07','汽车')INSERTINTOGoodsClass(ClassID,ClassName)VALUES('SPLB08','房产')T-SQL语句命令插入数据插入命令,into可省略表名插入值关键字,单词必须加S后缀注意单引号、逗号、括号和数字的颜色使用INSERT命令向商品信息表(GoodsInfo)插入表三条记录。如表4.15所示。GoodsIDClassIDGoodsNameBarCodeGoodsUnitPriceG050003SPLB05长虹空调892031978832332300G050004SPLB05长虹电视机892031978832435000G050005SPLB05长虹电扇89203197883253400任务3-4表4.15GoodsInfo表中的三条记录数据INSERTINTO

GoodsInfo(GoodsID,ClassID,GoodsName,BarCode,GoodsUnit,Price)VALUES('G050003','SPLB05','长虹空调','8920319788323','3',2300)INSERTINTO

GoodsInfo(GoodsID,ClassID,GoodsName,BarCode,GoodsUnit,Price)VALUES('G050004','SPLB05','长虹电视机','8920319788324','3',5000)INSERTINTOGoodsInfo(GoodsID,ClassID,GoodsName,BarCode,GoodsUnit,Price)VALUES('G050005','SPLB05','长虹电扇','8920319788325','3',400)插入部分列数据插入值关键字插入命令,into可省略插入列表,用逗号分开注意单引号、逗号、括号和数字的颜色向供应商表(SupplierInfo)中插入含有默认值和null值数据记录。如表4.16所示。SupplierIDSupplierNameAddressPostcodeEMailHomePageGYS0008淮安五星电器DEFAULT223001hawx@163.comhttp://GYS0009淮安三星电器NULL223002hasx@126.comhttp://GYS0010淮安格力专卖店承德南路23号223003hagl@163.comhttp://任务3-4表4.16SupplierInfo表中的三条记录数据INSERTinto

supplierInfo(SupplierID,SupplierName,Address,PostCode,EMail,HomePage)values('GYS0008','淮安五星电器',DEFAULT,'223001','hawx@163.com','http://')INSERTintoSupplierInfo(SupplierID,SupplierName,Address,PostCode,EMail,HomePage)values('GYS0009','淮安三星电器',NULL,'223002','hasx@126.com','http://')INSERTintoSupplierInfo(SupplierID,SupplierName,Address,PostCode,EMail,HomePage)values('GYS0010','淮安格力专卖店','承德南路号','223003','hagl@163.com','http://')T-SQL命令UPDATE语法如下:UPDATE

<表名或视图名>

SET

<更新的名>=<新的表达式值>[,...n][WHERE<逻辑表达式>]更新数据UPDATESupplierInfoSETSupplierName='楚州三星电器',Address='西长街号'WHERESupplierName='淮安三星电器'UPDATESupplierInfoSETSupplierName='淮安格力电器',Address=DEFAULT,PostCode=NULLWHERESupplierName='淮安格力专卖店'更新数据对供应商表(SupplierInfo)中的记录进行修改。任务3-5UPDATESupplierInfoSETSupplierName='楚州三星电器',Address='西长街号‘WHERESupplierName='淮安三星电器'UPDATESupplierInfoSETSupplierName='淮安格力电器',

Address=DEFAULT,PostCode=

温馨提示

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

最新文档

评论

0/150

提交评论