Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 综合其它

使用accessSQL修改表的设计

时 间:2008-05-31 07:48:58
作 者:UMVsoft整理   ID:43  城市:江阴
摘 要:使用 Access SQL 修改表的设计
正 文:


创建并填充某个表后,您可能需要修改该表的设计。要执行此操作,请使用 Alter TABLE 语句。但请注意,修改现有表的结构可能会丢失某些数据。例如,更改某个字段的数据类型会导致数据丢失或舍入错误,具体取决于您使用的数据类型。同时还会破坏您的应用程序中可能引用更改字段的其他部分。修改现有表的结构之前,始终应特别小心。

使用 Alter TABLE 语句,可以添加、删除或更改列(或字段),还可以添加或删除约束。还可以声明字段的默认值;但是,一次只能更改一个字段。假设有一个发票数据库,您要向 Customers 表中添加字段。要使用 Alter TABLE 语句添加一个字段,请使用带有该字段的名称、其数据类型以及数据类型的大小(如果需要)的 ADD COLUMN 子句。

Alter TABLE tblCustomers
   ADD COLUMN Address TEXT(30)
 

要更改某个字段的数据类型或大小,请使用带有该字段的名称、所需的数据类型和所需的数据类型的大小(如果需要)的 Alter COLUMN 子句。

Alter TABLE tblCustomers
   Alter COLUMN Address TEXT(40)
 

如果要更改某个字段的名称,则必须删除该字段,然后重新创建。要删除某个字段,请使用仅带有该字段名称的 Drop COLUMN 子句。

Alter TABLE tblCustomers
   Drop COLUMN Address
 

请注意,使用此方法会删除该字段的现有数据。如果要保留现有数据,应使用 Access 用户界面的表设计模式更改字段的名称,或者编写代码将当前数据保留在临时表中并将其重新追加到重命名的表中。

默认值是任何时候向表中添加新记录并且没有为该特定列指定值时在字段中输入的值。要设置某个字段的默认值,请在 ADD COLUMN 或 Alter COLUMN 子句中声明字段类型后使用 DEFAULT 关键字。

Alter TABLE tblCustomers
   Alter COLUMN Address TEXT(40) DEFAULT Unknown
 

请注意,默认值不用单引号引起来。如果引起来,则引号也将插入记录中。也可以在 Create TABLE 语句中使用 DEFAULT 关键字。

Create TABLE tblCustomers (
   CustomerID INTEGER CONSTRAINT PK_tblCustomers
      PRIMARY KEY, 
   [Last Name] TEXT(50) NOT NULL,
   [First Name] TEXT(50) NOT NULL,
   Phone TEXT(10),
   Email TEXT(50),
   Address TEXT(40) DEFAULT Unknown)
 

  注释 
只能通过 Access OLE DB 提供程序和 ADO 执行 DEFAULT 语句。如果通过 Access SQL 视图用户界面使用该语句,则会返回一条错误消息。 

约束
约束可以用于建立主键和参照完整性,并且可以用于限制可插入到字段中的值。一般来说,约束可以用于保持数据库中数据的完整性和一致性。 

有两种约束:单字段或字段级约束以及多字段或表级约束。这两种约束都可以用于 Create TABLE 或 Alter TABLE 语句。

声明字段和数据类型之后,使用字段本身对单字段约束(也称为列级约束)进行声明。在本例中,使用 Customers 表并在 CustomerID 字段上创建一个单字段主键。要添加约束,请将 CONSTRAINT 关键字与字段名称一起使用。

Alter TABLE tblCustomers
   Alter COLUMN CustomerID INTEGER
   CONSTRAINT PK_tblCustomers PRIMARY KEY
 

请注意,约束的名称是给定的。可以使用快捷方式声明完全省略 CONSTRAINT 子句的主键。

Alter TABLE tblCustomers
   Alter COLUMN CustomerID INTEGER PRIMARY KEY
 

但是,使用快捷方式会导致 Access 随机生成约束名称,这样会使在代码中引用很困难。始终命名约束是一个好办法。

要删除约束,请将 Drop CONSTRAINT 子句与 Alter TABLE 语句一起使用,并提供约束的名称。

Alter TABLE tblCustomers
   Drop CONSTRAINT PK_tblCustomers
 

约束还可以用于限制字段的允许值。可以将值限制为 NOT NULL 或 UNIQUE,也可以定义检查约束,这是一种可应用于字段的业务规则。假设您要将名字和姓氏字段的值限制为唯一,这意味着表中任何两个记录的名字和姓氏组合绝不应该相同。因为这是一个多字段约束,所以它在表级声明,而不是在字段级声明。使用 ADD CONSTRAINT 子句并定义一个多字段列表。

Alter TABLE tblCustomers
   ADD CONSTRAINT CustomerID UNIQUE
   ([Last Name], [First Name])
&nbs

Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助