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]
则无效。
?字符顺序 [ ] 忽略不计,被看作零长度字符串 (“”)。
---
本文章使用博客内容管理MyBlogWriter发布