缺省值

假设有一个存储地址信息的表，这个表的字段包括街道、城市、州、邮政编码和国家。如果你预计地址的大部分是在美国，你可以把这个值作为country字段的缺省值。

为了在创建一个表时指定缺省值，你可以使用表达式DEFAULT。请看下面这个在创建表时使用缺省值的例子：

CREATE TABLE addresses (street VARCHAR(60) NULL,

city VARCHAR(40) NULL,

state VARCHAR(20) NULL

zip VARCHAR(20) NULL,

country VARCHAR(30) DEFAULT

‘USA’)

在这个例子中，字段country的缺省值被指定为美国。注意单引号的使用，引号指明这是字符型数据。为了给非字符型的字段指定缺省值，不要把该值扩在引号中：

CREATE TABLE orders(price MONEY DEFAULT $38.00,

quantity INT DEFAULT 50,

entrydate DATETIME DEFAULT GETDATE())

在这个CREATE TABLE语句中，每个字段都指定了一个缺省值。注意DATETIME型字段entrydate所指定的缺省值,该缺省值是函数Getdate()的返回值,该函数返回当前的日期和时间。

标识字段

每个表可以有一个也只能有一个标识字段。一个标识字段是唯一标识表中每条记录的特殊字段。例如，数据库pubs中的表jobs包含了一个唯一标识每个工作标识字段：

job_id job_desc

…………………………………………………………….

> > > > New Hire Job not specified

> > > > Chief Executive officer

> > > > Bushness Operations Manager

> > > > Chief Financial Officier

> > > > Publisher

字段job_id为每个工作提供了唯一的一个数字。如果你决定增加一个新工作，新增记录的job_id字段会被自动赋给一个新的唯一值。

为了建立一个标识字段，你只需在字段定义后面加上表达式IDENTITY即可。你只能把NUMERIC型或INT型字段设为标识字段，这里有一个例子：

CREATE TABLE visitorID (theID NUBERIC(18) IDENTITY,name VARCHAR(40))

这个语句所创建的表包含一个名为theid的标识字段。每当一个新的访问者名字添加到这个表中时，这个字段就被自动赋给一个新值。你可以用这个表为你的站点的每一个用户提供唯一标识。

技巧

建立一个标示字段时，注意使用足够大的数据类型。例如你使用TINYINT型数据，那么你只能向表中添加255个记录。如果你预计一个表可能会变得很大，你应该使用NUMERIC型数据。

标识字段的存在会使你想尝试许多不可能的事情。例如，你也许想利用标识字段来对记录进行基于它们在表中位置的运算。你应该抛弃这种意图。每个记录的标识字段的值是互不相同的，但是，这并不禁止一个标识字段的标识数字之间存在间隔。例如，你永远不要试图利用一个表的标识字段来取出表中的前十个记录。这种操作会导致失败，比如说６号记录和7号记录根本不存在。