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

全面掌握MS ACCESS SQL(06)

时 间:2017-12-26 10:53:46
作 者:Big Young   ID:252  城市:襄阳
摘 要:    ACCESS SQL 数据类型及用SQL创建数据库表。
正 文:

第二节 用SQL创建数据库表

一、完整的Create TABLE(创建表)语句

ACCESS中,要创建一个新表,其SQL命令语句为Create TABLE,其完整的语法结构如下:

Create TABLE table (field1 type [(size)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, …]] [, CONSTRAINT multifieldindex [, …]])

    语句中的相关内容说明:

项目

说明

table

将要被创建的表的名字上。

field1, field2

要在新表中创建的字段的名字,至少要创建一个字段。

type

新表中字段的数据类型。

size

字段所用的字符数(只用于TextBinary字段)

index1, index2

CONSTRAINT子句定义的单字段索引。

multifieldindex

CONSTRAINT子句定义的多字段索引。

使用Create TABLE语句定义一个新表和字段及字段的约束,如果一个字段被指定了NOT NULL属性,则添加新记录时此字段就必须输入有效的数据内容。

CONSTRAINT子句在一个字段上建立约束条件,同时也能创建主键。也可以用Create INDEX语句来为已有的表创建主键或额外的索引。

可以用NOT NULL在单个字段上或与一个命名CONSTRAINT子句一起来为一个单一字段或多字段创建命名约束。不管怎样,NOT NULL一次只能对一个字段应用约束,试图将此一约束一次应用于多个字段上时会产生一个运行时错误。

WITH COMPRESSION属性只能应用于CHARACTERMEMO(也称为TEXT)数据类型及它们的同义词。

由于Unicode字符表示格式发生的更改,属性WITH COMPRESSION被添加到CHARACTER列上。Unicode字符中每个字符一律需要两个字节,对于现有的包含了主要字符数据的MS Jet数据库,这可能意味着当转换为Access数据库引擎格式时,数据库文件大小几乎会增大到两倍。然而,许多以前称为单字节字符集(SBCS)的字符集的Unicode表示法能够被轻易地压缩成为单字节。如果使用该属性定义CHARACTER列,在该列中存储数据时,数据会自动进行压缩;从该列检索数据时,数据会自动解压缩。

MEMO列也能定义为以压缩的格式来存储数据。但是,这样做是有限制的。进行压缩时,只有MEMO列实例的大小在4096字节以内,它才会被压缩。所有其他MEMO列实例仍然保持为未压缩格式。这意味着,对于指定表中的一个给定的MEMO列,一些数据可能被压缩,而一些数据则可能是未压缩的。

二、用SQL语句创建一个简单的表

下面我一创建一个名为员工的新表,表中包含“员工号”,我们想用它来作为主关键字来区分记录,还包括姓名性别出生日期、“部门”和备注,其中“出生日期”为日期时间型,“备注为注释型,其它为字符型。SQL命令如下:

Create TABLE 员工

(

  员工号   SMALLINT PRIMARY KEY,

  姓名     CHAR(4) NOT NULL,

  性别     CHAR(1),

  出生日期 DATE,

  部门     CHAR(20),

  备注 MEMO WITH COMPRESSION

);

    这里我们用“SMALLINT”指定“员工号”字段的数据类型为整型,用“PRIMARY KEY”为字段添加主键约束;对于“姓名”、性别部门字段使用“CHAR”关键字指定这几个字段的数据类型为字符型号,并指定所点字符的个数,另外还为姓名字段设置子不为空的属性约束,即:“NOT NULL”,就是必须赋值。对备注字段用“MEMO”指定其为备注类型的数据,并且用“WITH COMPRESSION”限制其存储时压缩。

    实际上在SQL查询视图中输入“Create TABLE TEMP;”是可以正确执行的,它创建了一个没有字段的表,只是这个表不能打开使用,只能在设计视图中重新设计,指定了字段后表才有意义,才能实际应用了。不过需要说明的是,这样的语句不是没有用,如果在编程中,我们可以先用此SQL语句创建一个空表,然后再使用“Alter TABLE”语句对表增加字段,进行修改。

    三、表中的字符型字段的运用

    字段的数据类型是一组应用于该字段包含的所有值且规定其所具有不同于其它类型的特性集合。例如,存储在文本字段中的值仅可包含字母、数字和有限的标点字符,并且文本字段仅可包含最多255个字符。ACCESS SQL支持10多种类型,我们可以归纳为几个大类,文本类型是其中最重要的一种类型。

    ACCESS SQL中,文本类型的大致说来有两种,一种是短文本,一种是长文本。使用短文本数据类型存储如名称、地址和任何不需计算的数字,如电话号码、部件编号或者邮政编码等。短文本字段能存储最多255个字符,字段大小属性控制可以输入短文本字段的最大字符个数。

如果需要存储超过255个字符,应使用长文本,ACCESS中称为备注数据类型。备注最多可以存储65,536个字符。新版的ACCESS备注字段支持带格式的文本。

文本类型的数据类型字段存储输入到一个字段中的值;不存储字段中没用的部分的空白字符。可以对短文本或者备注字段进行分组和排序,但Access只使用备注字段的前255个字符进行分组和排序。

    下面我们来看一个创建只有文本字段的表的示例语句:

    Create TABLE 文本类型示例

(

  短文本1   CHAR(20),

  短文本2   VARCHAR(4) WITH COMP,

  短文本3   TEXT(1),

  长文本1   TEXT,

  长文本2   LONGTEXT,

  长文本3   MEMO

);

    上面这个语句创建一个名为文本类型示例的表,表中包含了6个字段,前三个是短文本,后三个是长文本。从这个语句可以看出,在SQL中定义字段类型的关键字的多个同义词,其实功能是一样的,下面来一个较完整的同义词示例。

Create TABLE 文本类型同义词示例

(

  短文本1    CHAR(10),

  短文本2    VARCHAR(4),

  短文本3    TEXT(2),

  短文本4    ALPHANUMERIC(12),

  短文本5    STRING(3),

  短文本6    CHARACTER VARYING(5),

  短文本7    NCHAR,

  短文本8    NATIONAL CHARACTER(58),

  短文本9    NATIONAL CHAR,

  短文本10   NATIONAL CHARACTER VARYING,

  短文本11   NATIONAL CHAR VARYING,

  长文本1    TEXT,

  长文本2    LONGTEXT,

  长文本3    LONGCHAR,

  长文本4    MEMO,

  长文本5    NOTE,

  长文本6    NTEXT

);



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

常见问答:

技术分类:

相关资源:

专栏作家

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