ACCESS SQL语法参考
=================
一. 基础概念
可以使用的数据类型如下:
1. TEXT:文本型(指定长度时),备注型(不指定长度时);
2. CHAR,NCHAR,VARCHAR,NVARCHAR:文本型,可以指定长度,否则默认值为255!
3. BYTE,TINYINT:数字-字节,不要指定长度和精度,否则会报错!
4. SMALLINT,SHORT:数字-整型,不要指定长度和精度,否则会报错!
5. INT,INTEGER,LONG:数字-长整型,不要指定长度和精度,否则会报错!
6. NUMERIC,DECIMAL:数字-小数,可以指定长度和精度,如只指定长度,那精度默认为0,如都不指定,那么默认长度18,默认精度0;
7. SINGLE,REAL:数字-单精度型,不要指定长度和精度,否则会报错!
8. DOUBLE,FLOAT,NUMBER:数字-双精度型,不要指定长度和精度,否则会报错!
9. MEMO:备注型,不要指定长度,否则会报错!
10. BINARY:二进制型,可以指定长度,否则默认长度为510!
11. BIT:位型,可用格式(yes/no, true/false, on/off)
12. MONEY,CURRENCY:货币型,不要指定长度和精度,否则会报错!
13. DATETIME:日期时间型,不要指定长度,否则会报错!
14. IMAGE,OLEOBJECT: OLE OBJECT型,不要指定长度,否则会报错!
推荐使用的数据类型如下:
1. 文本类型请使用:TEXT(长度)或 MEMO
2. 数值类型(整数)请使用:SHORT 或 LONG
3. 数值类型(小数)请使用:DECIMAL(长度,精度)
4. 日期类型请使用:DATETIME
参考如下MICROSOFT官方资料:
数据类型 存储大小 说明
BINARY 每字符一个字节 任何类型的数据都可存储在这种类型的字段中。
BIT 1 个字节 Yes/No(TURE/FALSE, ON/OFF,-1/0)只包含两值之一的字段。
TINYINT 1 个字节 介于 0 到 255 之间的整型数。
MONEY 8 个字节 介于 – 922,337,203,685,477.5808 到922,337,203,685,477.5807 之间。
DATETIME 8 个字节 介于 100 到 9999 年的日期或时间数值。
UNIQUEIDENTIFIER 128 个位 用于远程过程调用的唯一识别数字。
REAL 4 个字节 单精度浮点数
FLOAT 8 个字节 双精度浮点数
SMALLINT 2 个字节 介于–32,768 到 32,767 的短整型数。
INTEGER 4 个字节 介于–2,147,483,648 到 2,147,483,647 的长整型数。
DECIMAL 17 个字节 你可以定义精度 (1 - 28) 和符号 (0 - 定义精度)。缺省精度和符号分别是18和0。
TEXT 每字符2字节 从0到最大2,14GB字节。
IMAGE 视实际需要而定 从0到最大2,14GB字节。用于 OLE 对象。
CHARACTER 每字符2字节 长度从 0 到 255个字符。
二. DDL
1.创建表:
1)CREATE TABLE XCUST (CUSTNO SHORT NOT NULL,CUSTNAME TEXT(40) NOT NULL,ADDRESS TEXT(60),PRICE DECIMAL(15,4) NOT NULL,SITE DATETIME,TELNO TEXT(30),FAXNO TEXT(30))
2)SELECT * INTO XCUST2 FROM XCUST WHERE CITY NOT LIKE ’中国江西九江’
2.修改表:
1)增加列:ALTER TABLE XCUST ADD COLUMN CITY TEXT(30)
2)删除列:ALTER TABLE XCUST DROP COLUMN CITY
3)修改列:ALTER TABLE XCUST ALTER COLUMN CITY TEXT(40)
三. DML
1.插入数据:
1)INSERT INTO XCUST (CUST, CITY) VALUES (‘0659’, ’中国上海’)
2)INSERT INTO XCUST VALUES (‘0619’, 18, ’2007-09-22’, ’中国南京’)
3)INSERT INTO XCUST SELECT * FROM XCUST1 WHERE CITY LIKE ‘美国%’
2.修改数据:
1)改日期:UPDATE XCUST SET NDATE='2007/07/17' WHERE CUST='0659'
2)改数值:UPDATE XCUST SET CAGE=33 WHERE CUST='0659'
3)改文本:UPDATE XCUST SET CUST=’0699’ WHERE CUST='0659'
四. 字符串比较中使用通配符
仅当使用 Microsoft® Jet 4.X 版和 Microsoft OLE DB Provider for Jet 时,ANSI SQL 通配符 (%) 和 (_) 才可用。若使用 Microsoft Access 或 DAO,则将其视为原义字符。
在样式中的字符 在表达式中的匹配
? or _(下划线) 任何单一字符
* or % 零个或多个字符
# 任何单一数字(0 — 9)
[字符列表] 任何在字符列表中的单一字符
[!字符列表] 任何不在字符列表中的单一字符
用括在括号 ([ ]) 中的一组字符(字符表)来匹配表达式中任何的单一字符,而且字符表中几乎可以包含 ANSI 字符集中的任何字符,包括数字。事实上特殊字符,如左括号 ([ )、问号(?)、井字号(#)和星号(*),当它们括在括号内时,可以直接和它们自己匹配。一组字符内的右括号 ( ]) 不能匹配它自己,但是如果它是一组之外的单一字符,就能用来匹配。除了括在括号内的字符的简单表列,字符表可以指定一字符范围,用连字符号 (-) 来隔开范围的上下界。例如,在样式中使用 [A-Z] ,可在包含从 A 到 Z 的任何大写字母的表达式内,找出相应的字符位置。可以在括号之中包含多个范围且不需要在范围间划上界线。例如,[a-zA-Z0-9] 指任何符合文数值的字符。
样式匹配的重要的规则还有:
•在字符表开头的惊叹号(!),意味着在表达式中寻找那些不包括在字符表中的字符。若惊叹号(!)在括号之外,它只匹配它自己。
•如果连字符(-)在字符表的开头(如果有惊叹号,则紧跟在惊叹号之后),或在字符表的末尾,则它匹配连字符(-)自己。否则它被视为 ANSI 字符范围的标识。
•当您指定一个字符范围时,首尾字符必须以升序的顺序出现(A-Z 或 0-100)。例如,[A-Z] 是有效的,而 [Z-A] 则无效。
•字符顺序 [ ] 忽略不计,被看作零长度字符串 (“”)。