使用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群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)