文档视界 最新最全的文档下载
当前位置:文档视界 › Access中的SQL语言

Access中的SQL语言

Access中的SQL语言
Access中的SQL语言

Access中的SQL语言

1.SQL概述

结构化查询语言(Structured Query Language SQL 读成“sequel”)自1974年提出,1975年IBM公司在RDBMS(关系型DBMS)Syatem R上实现以来,由于它功能丰富、使用方便、简洁易学,倍受用户和计算机工业界的欢迎,经不断修改、扩充和完善,现已成为RDBMS的标准语言。众多的RDBMS中实现了SQL语言,当然各数据库厂家在各自的RDBMS 中的SQL语言与ISO颁布的标准SQL语言都或多或少有些差别。

SQL语言包括了对数据库的所有操作,主要可分为三个部分①数据定义语言(DDL Data Definition Language),用以定义数据库的逻辑结构,包括定义基本表、索引和视图。②数据操纵语言(DML Data Manipulation Language),用以对数据的查询和更新,数据更新操作中包括插入、删除和修改三种操作。③数据控制语言(DCL Data Control Language),用以对基本表和视图的授权即指定具体用户可使用哪些表或视图。

SQL语言的特点:

(1)语言风格统一:尽管有不同功能的DDL、DML和DCL,但语言风格相同,再SQL语言既能独立地使用于联机交互方式,又能嵌入到高级程序设计语言如C、

C++等语言中,而且在两种不同地使用方式下的SQL语句的语法基本一样;

(2)面向集合的操作方式:因为RDB的结构是关系,即记录的集合,也是SQL语言的操作对象,所以操作速度比其他语言快;

(3)语言简洁,易学易用:尽管SQL的功能很强,但它的核心语句只有九条(CREATE、ALTER、DROP、SELECT、INSERT、DELETE、UPDATE、GRANT和REVOKE),

加之它的结构化特性,非常便于学习和使用。

2.在Access中使用SQL语句

SQL语句的输入:打开一个已有的Access数据库,在“对象”栏中选中“查询”,在“列表框”内选定“在设计视图中创建查询”命令,双击之,或按“设计”

按钮,系统将显示一个查询窗口和一个“显示表”对话框,关闭“显示

表”对话框,在不关闭查询窗口的情况下,①Access窗口的菜单栏上才

会出现查询菜单,该查询菜单下有“SQL特定查询”子菜单、②视图菜

单中会出现“SQL视图”命令、③同时原来显示在菜单栏下的数据库工

具栏自动被切换为“查询设计”工具栏,其中的左上角会有一个视图切

换按钮。无论用上述三种方法的哪一种,均可在Access窗口中显示供输

入SQL语句的“查询”窗口。

注意:①在该窗口中只能输入一条SQL语句!但可分行输入,系统会把分号“;”

作为命令的结束标志,但一般在输入命令时,不必人为地输入分号。当

需要分行输入时,不能把Sql语言的关键字或字段名分在不同行。

②Sql语句中所有的标点符号和运算符号均为ASCII字符!

③每两个单词之间至少要有一个空格或有必要的逗号!

SQL语句的保存:关闭“SQL语句输入”窗口,命名为一个查询

SQL语句的执行:在“SQL语句输入”窗口中输入一个完整的SQL语句后,按“查询设计工具栏”中的运行按钮“!”,或在数据库窗口中双击已被保存的相应查询。

I.数据表定义语句

前面我们是使用Access窗口中菜单命令的方式建立数据表的。现在,我们开始学习用SQL

语言来创建数据表。首先打开图书管理数据库文件“图书管理.mdb”,且按上述方法打开输入SQL语句的“查询”窗口。

输入Sql语句:

CREATE TABLE 图书(总编号CHAR(6) PRIMARY KEY,分类号CHAR(6) NOT NULL,

书名CHAR(20),作者CHAR(15),出版社CHAR(10),单价SINGLE)

运行该Sql语句后,在数据库窗口中打开数据表图书的设计视图,可核对一下用Sql语句和用窗口菜单命令建表的区别。

说明:在Microsoft Access 2000 中的Sql语言是通过Microsoft Jet数据库引擎来支持Sql 语言的,而Microsoft Jet SQL语言与标准SQL语言有若干的差别。

①Microsoft Jet SQL语言所支持的SQL数据类型

CHAR(n) or TEXT(n) 文本型

MEMO 备注型

INT or INTEGER 数字(长整型)介于–2,147,483,648到2,147,483,647的长整型数 SMALLINT or SHORT 数字(短整型)介于–32,768 到32,767 的短整型数 BYTE 数字(字节)介于0 到255 的整型数 REAL or SINGLE 数字(单精度)默认有四位小数

FLOA T or DOUBLE 数字(双精度)

DA TE or TIME 日期/时间型

CURRENCY or MONEY 货币型

COUNTER(n) 自动编号型(从整数n起)

YESNO 是/否型

②若字段名中有空格或除了汉字外的非字母性字符,则应用一对方括号[ ]将字段名括起

来,如[First Name]

③数据完整性约束条件:它是用来定义数据表之间的关联关系和数据表内的字段应满足的

条件的,当用户操作数据表时,DBMS会自动检查操作是否违背已定义的完整性约束条件。

同一个完整性约束条件如果涉及到一个表中的多个字段,则该约束条件必须定义在表级,否则,一般定义在字段级(即列级)。

完整性约束条件主要有下列三种:

实体完整性约束条件:

NOT NULL ····································不能为空,NULL的含义是无意义,不能与空字

符或数值0等同

UNIQUE ········································唯一性,即表中各记录的该字段值各不相同

PRIMARY KEY ······························主键或称主码(同时,具有上两约束条件)参照完整性约束条件:

REFERENCES <表名> (<字段名>) ··该字段所取值应来自指定表内的指定字段的值用户定义完整性约束条件:不能在Access的Sql中使用,只能在表的设计视图中的字段

有效性规则中输入

IS NULL

[NOT] Between <表达式> And <表达式>

如:Between 0 And 100 ·············可取0到100之间的数

[NOT] In (<表达式列表>)

如:In(’法律’ ,’经济法’,’刑事司法’)仅可取表达式列表中所指定的有限个值

由此可见,

(1)创建基表的Sql命令格式为:

CREA TE TABLE <表名>(<字段名> <数据类型> [<字段级完整性约束条件>]

[,<字段名> <数据类型> [<字段级完整性约束条件>]]

…………

[,<表级完整性约束条件>]

)

类似地,我们可以根据

读者( 借书证号字符型长度为5 非空每位读者的借书证号均不相同姓名字符型长度为4

性别字符型长度为1

部门字符型长度为5

职称字符型长度为5)

建立读者数据表。请同学们自己完成。

那么对于流通数据表

流通(总编号字符型长度为6 主键,且来自于图书实体

借书证号字符型长度为5 非空,且来自于读者实体

借阅日期日期型)

还是请同学们自己完成。

注意:由于流通表的建立要参照图书表与读者表,所以必须待图书表与读者表建立后方可建立流通表。同理,必须在主表中有记录后,才能在相关表中输入记录。

我们现在在图书表中开始输入记录:

INSERT INTO 图书V ALUES(‘100001’,’ww001’,’橘子红了’,’郑重王要’,’人民文学出版社’,31.8)

INSERT INTO 图书(总编号,分类号,书名,单价) V ALUES('100002','ww002','追忆似水年华(上)',68)

可见,插入一条具体录的Sql语句为:

INSERT INTO <表名> [(<字段名列表>)] V ALUES (<字段值列表>)

当插入的记录中有部分字段值不确定时,可以仅输入部分字段值,但必须指明相应的字段名,而未指明的字段值为NULL。

故上述第二条记录插入命令等价于

INSERT INTO 图书V ALUES('100002','ww002','追忆似水年华(上)',NULL,NULL,68)

请再输入以下三条命令

INSERT INTO 图书V ALUES('100002','ww003','追忆似水年华(下)',NULL,NULL,68) INSERT INTO 图书V ALUES(NULL,'ww003','追忆似水年华(下)',NULL,NULL,68)

INSERT INTO 流通V ALUES('100002','90002',#02/14/98#)

看看能不能执行上述三条命令,若不能,请说明原因。

通过上述对创建表命令和插入记录命令的学习,我们可以大致了解到

Sql命令的基本格式为:

<命令动词> [<子句列表>]

其中<命令动词>是指明该命令的功能,子句可以有多种,

如:标识子句TABLE <表名>、INDEX <表名>、VIEW <视图名>

目标子句INTO <表名>

字段(值)列表子句<字段名列表> | V ALUES (<字段值列表>)

完整性约束条件子句

…………

以后,还将学到更多的子句。

(2)修改表结构

增加字段:ALTER TABLE <表名> ADD <字段名> <数据类型> [<字段级完整性约束

条件>][,<字段名> <数据类型> [<字段级完整性约束条

件>]……

修改字段类型:ALTER TABLE <表名> ALTER <字段名> <数据类型>[,<字段

名> <数据类型> [<字段级完整性约束条件>]……

删除字段:ALTER TABLE <表名> DROP <字段名列表>

注意:在对数据表的结构进行修改前,必须关闭该表!

请同学自己先在读者数据表中增加两个字段,字段名依次为联系电话和年龄,数据类型分别为长整型和短整型,并观察每个命令执行后的效果。

再将联系电话字段的数据类型改为有8个字符的字符型,年龄字段的类型改为字节型数字。再删除联系电话字段

(3)删除表

DROP TABLE <表名列表>

II.数据更新

前面,我们已经学会了在数据表中插入记录的命令,对数据的更新还包括修改数据,删除记录等操作。

注意:若我们对已经同其它数据表建立了关联关系的数据表中的记录的关联字段值进行更新(修改或删除)时,为了保持数据的一致性(即相容性),系统一般会拒绝此操作。那么,若要坚持更新,又能保持保持数据的一致(即被关联数据表中的外码——关联字段——的值也会自动更新,则必须要预先在关系(即关联)窗口中,编辑关系具有级联更新和级联删除功能(参考7.3.1用ACCESS建立关系型数据库的步骤5)

(1)修改表记录

UPDA TE <表名> SET <字段名>=<表达式> [,<字段名>=<表达式>……] [WHERE <条件>]

啊呀,不好。我在输入读者数据表时,不小心将所有读者的姓名都输入反了,即应该是男的,却输入了女,而应该是女的,反到输入了男。我曾经先后用下面两条命令

UPDA TE 读者SET 性别=’女’ WHERE性别=’男’

UPDA TE 读者SET 性别=’男’ WHERE性别=’女’

命令倒没错,但,结果却不符合本意。请同学帮帮忙:

再在读者数据表中输入每位读者的年龄,并添加下列三记录(不一定要用SQL语句)。99001、张三郎、null、null、null、62

99002、黄阿三、null、null、null、66

99002、黄海、null、null、null、66

在读者表中将姓黄且单名的同志的年龄减1岁

UPDA TE 读者SET 年龄=年龄-1 WHERE姓名LIKE ’黄?’

在读者表中将姓名中带有“三”字的同志的性别设为男

UPDA TE 读者SET 性别=’男’ WHERE姓名LIKE ’*三*’

在读者表中将年龄为62或66的职工的部门字段值设为“退休”

UPDA TE 读者SET 部门=’退休’ WHERE年龄IN (62,66)

通过上述练习,我们对Sql命令中的条件子句应该有了基本的理解

条件子句格式为:WHERE <条件表达式>,其中条件表达式经运算后得到真(YES)或假(NO) 而条件表达式常为:<字段名><条件运算符><表达式>

条件运算符一般有①比较运算符:=、>、<、>=、<=、!=、<>

②[NOT ]BETWEEN <表达式1> AND <表达式2>:判断字段值是否落在指定的范围(<表达式1>,<表达式2>)中。

③[NOT ]IN(<表达式列表>):判断字段值是否等于指定的若干个值之一。

④[NOT ]LIKE <可带有通配符的字符串表达式>:判断字符型字段值中是否与指定的字符串相匹配,通配符有?表示一个非空字符、*表示0个或连续的任意多个字符。(例如,Like "Smith"),或用通配符来指定前两个字符为Sm的字符串(例如,Like "Sm*")。

⑤[NOT ]IS NULL:判断字段值是否为空。

(2)删除表记录

DELETE FROM <表名> [WHERE <条件> ]

那么,删除读者数据表中职称字段值为空的记录的Sql命令应该如何书写?

III.数据查询

数据查询是用户根据需要从数据库中提取所需的数据,这也是建立数据库的最主要目的之一,所以,数据查询是对数据库最为常规的操作。

数据查询语句的一般格式为:

SELECT [ALL |DISTINCT ]<目标表达式表>

FROM <基表名|视图名列表>

[WHERE <记录过滤条件表达式>]

[GROUP BY <列名表>]

[HA VING <组过滤条件表达式>]

[ORDER BY <列名>[ASC|DESC]][, <列名>[ASC|DESC]]……]对此,暂时我们先不作过多的解释,为了便于在操作中理解SELECT语句的使用,这里我们先建立了一个名为“选课管理.mdb”的数据库,且其中已有下列三个数据表:数据表S ,结构为Sno(学号) 文本型6个字符主键

Sname(姓名) 文本型4个字符不能为空值

Ssex(性别) 文本型1个字符

Sage(年龄) 字节型

Sdept(专业) 文本型10个字符

数据表 C ,结构为Cno(课程号) 文本型2个字符主键

Cname(课程名) 文本型8个字符非空且各不相同

Cpno(先修课程号) 文本型2个字符参照本表中的Cno

Ctime(课时数) 字节型

Ccredit(学分) 字节型

数据表SC ,结构为Sno(学号) 文本型6个字符非空且参照S表中的Sno

Cno(课程号) 文本型2个字符非空且参照C表中的Cno

Grade(成绩) 字节型

其中Sno和Cno一起为主键

其中,建立表C的命令为:

CREA TE TABLE C(Cno char(2) Primary Key,Cname char(8) not null unique,

Cpno char(2) references C(Cno),Ctime byte,Ccredit byte)

建立表SC的命令为:

CREA TE TABLE SC(Sno text(6) not null references S(Sno),

Cno text(2) not null references C(Cno),Grade byte,

Primary Key(Sno,Cno))

注①:当表中要用多个属性值组成主键时,必须在建表语句中单独成为一个子句,如:Primary Key (Sno,Cno),即它是数据表级的完整性条件!

注②:若数据表中有字段有对本表中另一字段的参照完整性约束条件,则要注意记录输入的先后顺序,被参照的记录要先输入,参照其它记录的记录要后输入!

且三个数据表中已有若干条记录

表S为:

Sno Sname Ssex Sage Sdept

99001 张敏男20 MA

99002 刘丰男21 IS

99003 王翔男19 CS

99004 陆逸女18 MA

99005 李明女23 CS

表C为:

Cno Cname Cpno Ctime Ccredit

2 高等数学108 6

6 数据处理54 3

7 C语言 6 72 3

5 数据结构7 72 4

1 数据库 5 7

2 4

3 信息系统 1 5

4 3

4 操作系统 6 72 4

表SC为:

Sno Cno Grade Sno Cno Grade

99001 2 82 99001 6 69

99001 7 94 99002 6 50

99002 7 63 99003 7 56

99003 5 51 99003 1 75

99004 7 87 99004 5 94

99004 3 88 99004 1 92

现在开始数据查询,先在一个表中进行数据的查询

单表查询

1.在S表中查询全体学生的全部属性

命令为:SELECT * FROM S

2.在S表中查询全体学生的姓名、学号和年龄

命令为:SELECT Sname,Sno,Sage FROM S

3.在S表中查询全体学生的姓名、性别和专业

命令为:

4.在S表中查询全体学生的姓名和出生的年份

命令为:SELECT Sname, 2005-Sage FROM S

或用命令:SELECT Sname, 2005-Sage AS [BirhYear]FROM S

两者在效果上有何区别?

5.在C表中查询每门课程的1个学分相当的课时数

命令为:

6.在SC表中查询有学生选修的课程号

命令为:SELECT Cno FROM SC

若用命令:SELECT DISTINCT Cno FROM SC

两者在效果上有何区别?从而理解单词DISTINCT的作用

7.在SC表中查询出参加选修的学生的学号(一位学生可能选修多门课程)。

可用命令:

8.在S表中查询所有年龄不超过20岁的女生的姓名和专业

命令为:SELECT Sname, Sdept FROM S Where Sage<=20 and Ssex=’女’

9.在C表中查询课时数大于90和小于60的课程名和课时数

可用命令:SELECT Cname, Ctime FROM C Where Ctime NOT BETWEEN 60 AND 90还可用命令:SELECT Cname, Ctime FROM C Where

10.在SC表中查询选修了1号或5号或7号课程的学生的学号及选修的课程号。

可用命令:SELECT Sno FROM SC Where Cno in (‘1’,’5’,’7’)

还可用命令:

11.在SC表中查询1号或5号或7号课程均不选修的学生的学号

可否用命令:SELECT Sno FROM SC Where Cno NOTin (‘1’,’5’,’7’)

12.在S表中查询姓刘的学生的记录

可用命令:SELECT FROM Where Sname like ‘刘*’

13.在S表中查询姓名的第二个字为‘明’的学生的姓名和性别

可用命令:SELECT FROM Where Sname like ‘?明*’

14.在C表中查询课程名以“数据”开头的记录

可用命令:

15.在C表中查询课程名中有“数”字的课程号、课程名和课时数

可用命令:

16.在C表中查询课程名中第三、四个汉字为“系统”的课程号、课程名和课时数

可用命令:

17.在C表中查询所有课程的记录,并以学分由少到多的升序排序

可用命令:SELECT * FROM C ORDER BY Ccredit DESC

注:查询所得的临时表在显示时,还可将临时表中的记录按某些属性的值排序,升序的关键字为ASC(默认值,即可省略),降序的关键字为DESC

18.在C表中查询课程名中有“数”字的课程名、课时数和学分,并按学分升序、若学

分相同则按课时数降序排序

可用命令:

集函数与分组查询

1.在SC表中查询出选修的总人次、最高分、最低分和平均分。

可用命令:SELECT COUNT(*),MAX(Grade), MIN(Grade),A VG(Grade) FROM SC 2.查询出选修7号课程的总分、最高分、最低分和平均分。

可用命令:

3.查询出选修各门课程的课程号、学生数、最高分、最低分和平均分。

可用命令:SELECT Cno,COUNT(*),MAX(Grade), MIN(Grade),A VG(Grade) FROM SC GROUP BY Cno

若查询的结果表达式或条件中有集函数(又称统计函数),则一般要对记录按某个属性值进行分组,属性值相同的记录归并在同一个组中,属性值不同的记录在不同的组,分组后,查询操作的对象就不再是一条一条的记录,而是一个个的组了!

对于组,可以取到属性值相同的字段(一般是分组依据字段),而对于属性值不同的字段只能用集函数取到统计结果而再也无法取到具体一条记录的字段值!

4.查询出选修各门课程的课程号、学生数、最高分、最低分和平均分,并按课程号降序排

列。

可用命令:

5.查询出至少选修满3门课程的学生的学号。

可用命令:

6.查询出每门选修课成绩均及格的学生的学号及平均成绩。

可用命令:

7.查询出既有不及格成绩又有及格成绩的学生的学号。

可用命令:

8.查询出至少有2门课程不及格的学生的学号。

可用命令:

连接查询

(1)什么时候需要用连接查询

当查询的结果表达式,或查询的记录过滤条件中包含有来自两个或两个以上数据表的字段,这时,必须打开多个数据表,表与表之间必定会根据一定的连接条件进行连接,在内存中形成一个临时表(又称中间表),以后的所有查询操作

......都是针对这个临时表进行的。

(2)系统执行内连接的过程

若同时打开表S和SC,且有连接条件S.Sno=SC.SNO,即命令中有源子句如下:

FROM S INNER JOIN SC ON S.Sno=SC.SNO,则系统对两表的连接如下图

(3)系统执行查询命令的过程

①若是多表查询,则首先根据连接条件进行连接形成一个中间表;

②若有记录的过滤条件,则先对记录进行过滤(又称筛选);

③若查询的结果表达式或条件中有集函数(又称统计函数),则一般要再对记录按某

个属性值进行分组;

④若有组过滤条件,则对组进行过滤,只有满足组过滤条件的组才会在最后的查询目

标中生成一条记录;

⑤根据查询的目标表达式生成查询目标表中的一条条记录;

⑥若有排序要求,则最后对查询目标表中的记录进行排序。

1.找出每个学生的学号、姓名、选修课程号和该门选修课的成绩。

可用命令:SELECT S.sno, S.sname, https://www.docsj.com/doc/173096915.html,o, SC.grade

FROM S INNER JOIN SC ON S.Sno=SC.SNO

注意:由于是多表查询,所以在引用其中一个表的字段时,必须写明引用的是具体哪一个表的字段,引用的格式为<表名>.<属性名>

2.找出选修了“数据结构”课程的学生的学号和成绩。

可用命令:SELECT SC.sno,https://www.docsj.com/doc/173096915.html,ame, SC.grade

Where

3.找出选修了“数据结构”课程的学生的姓名和成绩。

可用命令:SELECT S.Sname, https://www.docsj.com/doc/173096915.html,AME, SC.grade

FROM (S INNER JOIN SC ON S.sno=SC.sno)

INNER JOIN c ON https://www.docsj.com/doc/173096915.html,o=https://www.docsj.com/doc/173096915.html,O

WHERE https://www.docsj.com/doc/173096915.html,ame='数据结构'

嵌套查询(子查询)

1.查询选修了1号课程的学生的姓名及性别。

可用命令:SELECT S.sname,S.ssex From S

Where Sno in (select Sno from SC where Cno=’1’)

其中,“(select Sno from SC where Cno=’1’)”称为子查询,

若查询命令中有子查询,则系统总是先执行子查询,将子查询所得的结果表达式作为二次查询中记录的过滤条件或分组过滤条件中的内容,再执行二次查询。

当然,本例题也可用有记录过滤条件的连接查询命令:

2.查询出与“陆逸”同学相同专业的学生的姓名(设只有一个学生名为“陆逸”)。

可用命令:

3.查询出既不选修3号课程又不选修5号课程的学生的学号。

SELECT DISTINCT snoFROM sc

WHERE sno not in

(select distinct sno from sc where cno in ('3','5'))

4.查询出所有选修课成绩中获得最高成绩的学生的学号及其最高成绩。

SELECT sno, gradeFROM sc

WHERE grade= (select max(grade) from sc )

5.查询出平均成绩高于所有成绩的平均分的学生的学号

SELECT sno

FROM sc

GROUP BY sno

HA VING avg(grade)> (select avg(grade) from sc )

Access中的SQL语言

Access中的SQL语言 1.SQL概述 结构化查询语言(Structured Query Language SQL 读成“sequel”)自1974年提出,1975年IBM公司在RDBMS(关系型DBMS)Syatem R上实现以来,由于它功能丰富、使用方便、简洁易学,倍受用户和计算机工业界的欢迎,经不断修改、扩充和完善,现已成为RDBMS的标准语言。众多的RDBMS中实现了SQL语言,当然各数据库厂家在各自的RDBMS 中的SQL语言与ISO颁布的标准SQL语言都或多或少有些差别。 SQL语言包括了对数据库的所有操作,主要可分为三个部分①数据定义语言(DDL Data Definition Language),用以定义数据库的逻辑结构,包括定义基本表、索引和视图。②数据操纵语言(DML Data Manipulation Language),用以对数据的查询和更新,数据更新操作中包括插入、删除和修改三种操作。③数据控制语言(DCL Data Control Language),用以对基本表和视图的授权即指定具体用户可使用哪些表或视图。 SQL语言的特点: (1)语言风格统一:尽管有不同功能的DDL、DML和DCL,但语言风格相同,再SQL语言既能独立地使用于联机交互方式,又能嵌入到高级程序设计语言如C、 C++等语言中,而且在两种不同地使用方式下的SQL语句的语法基本一样; (2)面向集合的操作方式:因为RDB的结构是关系,即记录的集合,也是SQL语言的操作对象,所以操作速度比其他语言快; (3)语言简洁,易学易用:尽管SQL的功能很强,但它的核心语句只有九条(CREATE、ALTER、DROP、SELECT、INSERT、DELETE、UPDATE、GRANT和REVOKE), 加之它的结构化特性,非常便于学习和使用。 2.在Access中使用SQL语句 SQL语句的输入:打开一个已有的Access数据库,在“对象”栏中选中“查询”,在“列表框”内选定“在设计视图中创建查询”命令,双击之,或按“设计” 按钮,系统将显示一个查询窗口和一个“显示表”对话框,关闭“显示 表”对话框,在不关闭查询窗口的情况下,①Access窗口的菜单栏上才 会出现查询菜单,该查询菜单下有“SQL特定查询”子菜单、②视图菜 单中会出现“SQL视图”命令、③同时原来显示在菜单栏下的数据库工 具栏自动被切换为“查询设计”工具栏,其中的左上角会有一个视图切 换按钮。无论用上述三种方法的哪一种,均可在Access窗口中显示供输 入SQL语句的“查询”窗口。 注意:①在该窗口中只能输入一条SQL语句!但可分行输入,系统会把分号“;” 作为命令的结束标志,但一般在输入命令时,不必人为地输入分号。当 需要分行输入时,不能把Sql语言的关键字或字段名分在不同行。 ②Sql语句中所有的标点符号和运算符号均为ASCII字符! ③每两个单词之间至少要有一个空格或有必要的逗号! SQL语句的保存:关闭“SQL语句输入”窗口,命名为一个查询 SQL语句的执行:在“SQL语句输入”窗口中输入一个完整的SQL语句后,按“查询设计工具栏”中的运行按钮“!”,或在数据库窗口中双击已被保存的相应查询。 I.数据表定义语句 前面我们是使用Access窗口中菜单命令的方式建立数据表的。现在,我们开始学习用SQL

ACCESS数据库中常见的SQL语句汇总教程

ACCESS数据库的SQL语句教学 1、查询所有记录:Select *通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资 from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select 姓名, 职工号,工资 from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from 职工号 where(仓库号='wh1' or 仓库号='wh2') And not 性别='女' and 工资>=1300 and 工资<=2100 在这里一定要注意,(仓库号='wh1' or仓库号='wh2')一定要加括号,否则就不是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。

使用Or运算符 Select * from 订购单 where 职工号='zg1' or 职工号='zg2' Or 职工号='zg11' or 职工号='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单 where 职工号 in('zg1', 'zg2', 'zg11', 'zg15') 在Select语句中,还支持In与Not结合使用。假设显示职工号不为zg1, zg2, zg11, zg15的订购单信息,具体代码如下: 使用Or运算符 Select * from 订购单 where 职工号!='zg1' or 职工号!='zg2' Or 职工号!='zg11' or 职工号!='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单 where 职工号 not in('zg1', 'zg2', 'zg11', 'zg15') 5、模糊Like查询:有的时候,我们不清楚所要查询的信息,如显示职工信息,但不能确定该职工的姓名,只知道他姓名中含有“王”字,那该如何查找呢?SQL中提供了Like关键字,使用Like进行了查询时,还要指定通配符。 通配符及其含义

Access中使用SQL语句应掌握的几点技巧

Access中使用SQL语句应掌握的几点技巧 今天为大家详细讲述了Access中使用SQL语句应掌握的几点技巧。以下SQL语句在ACCESS XP的查询中测试通一、建表:Create Table Tab1 (ID Counter, Name string, Age integer, [Date] DateTime);技巧:自增字段用Counter 声明。字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行。 ?二、建立索引: ?1、下面的语句在Tab1的Date列上建立可重复索引:Create Index iDate ON Tab1 ([Date]);完成后ACCESS中字段Date索引属性显示为- 有(有重复)。 2、下面的语句在Tab1的Name列上建立不可重复索引:Create Unique Index iName ON Tab1 (Name);完成后ACCESS中字段Name索引属性显示为- 有(无重复)。 3、下面的语句删除刚才建立的两个索引:Drop Index iDate ON Tab1; Drop Index iName ON Tab1; ?三、Access与SQL Server中的Update语句对比 ?SQL Server中更新多表的Update语句:Update Tab1 SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, FROM Tab1 a,Tab2 b Where a.ID = b.ID; ?同样功能的SQL语句在Access中应该是:Update Tab1 a,Tab2 b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, Where a.ID = b.ID; ?即:ACCESS中的Update语句没有FROM子句,所有引用的表都列在Update关键字后。 ?上例中如果Tab2可以不是一个表,而是一个查询,例: ?Update Tab1 a,(Select ID,Name From Tab2) b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, Where a.ID = b.ID;访问多个不同的ACCESS数据库-在SQL中使用In子句:Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID;上面的

Microsoft Access数据库中SQL语句大全

ACCESS数据库的SQL语句教学 引子:如何找到ACCESS数据库的SQL视图: 1) 单击下图左侧的: 2)单击上图顶部的,弹出如下图对话框: 5)单击“关闭”,此时在菜单中的文件菜单下面出现一个SQL的下拉框;6)

在“SQL”下拉框中选择如下图所示中的“SQL视图即可”。 1、查询所有记录:Select *通常用于快速查瞧表中的记录。当对表的结构无法确切记忆时,或要快速查瞧表中的记录时,使用Select *就是很方便的。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select姓名, 职工号,工资from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from职工号where(仓库号=’wh1’ or仓库号=’wh2’) And not 性别=’女’ and 工资>=1300 and 工资工资<=2100 在这里一定要注意,(仓库号=’wh1’ or仓库号=’wh2’)一定要加括号,否则就不就是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。使用Or运算符 Select * from订购单where 职工号=’zg1’ or职工号=’zg2’’) Or职工号=’zg11’ or职工号=’zg15’

ACCESS执行SQL语句

请问大家: 如何用一个按钮执行写出来的SQL语句? 我的目的是用一个按钮执行sql语句生成一个新表,执行完了之后给个提示信息(已经生成新表).下面是我的SQL语句. SELECT id AS 序号, part AS partNo, (select qty from b where part=a.part) AS QTY INTO 新表 FROM a WHERE ID BETWEEN 1 AND 170; 那位老大给个详细点的步骤,因为俺是菜鸟!!! 还有一个问题,我现在做了一个查询窗体,打印的时候他把整个窗口都打印出来,请问只如何打印查询的结果(也就是子窗体中的数据). docmd.runsql "SELECT id AS 序号, part AS partNo, (select qty from b where part=a.part) AS QTY INTO 新表 FROM a WHERE ID BETWEEN 1 AND 170" CurrentDb.Execute "SELECT id AS 序号, part AS partNo, (select qty from b where part=a.part) AS QTY INTO 新表 FROM a WHERE ID BETWEEN 1 AND 170;" 做一个报表用以下命令打开报表 DoCmd.OpenReport strReport, acViewPreview, , FiltStr 'strreport 报表名称 'acViewPreview 打印报表 'FiltStr 不带where的where语句.即你查询出来的数据的依据.

ACCESS数据库常用SQL语句

ACCESS 数据库常用SQL 语句 SELECT 语句 指示 Microsoft Jet 数据库引擎从数据库返回一组记录信息。 语法 SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...] [IN externaldatabase] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION] SELECT 语句包含以下部分: 部分 说明 predicate 这些谓词之一:ALL 、DISTINCT 、DISTINCTROW 或 TOP 。可以使用谓词来限定返回记录的数量。如果没有指定谓词,默认值为 ALL 。 * 指定选择所指定的表的所有字段。 table 表的名称,该表包含了其记录被选择的字段。 field1,field2 字段名,这些字段包含了要检索的数据。如果包括多个字段,将按它们的排列顺序对其进行检索。 alias1, alias2 用作列标题的名称,不是 table 中的原始列名。 tableexpression 其中包含要检索的数据的表的名称。 externaldatabase 如果 tableexpression 中的表不在当前数据库中,则使用该 参数指定该数据库名。 说明 若要执行此项操作,Microsoft? Jet 数据库引擎会搜索指定的表,并提取出选定的列,再选择出符合条件的列,然后按指定的顺序对得到的行进行排序或分组。 SELECT 语句不会更改数据库中的数据。 SELECT 通常是 SQL 语句中的第一个词。大多数 SQL 语句是 SELECT 或 SELECT...INTO 语句。

Microsoft Access数据库中SQL语句大全

ACCESS数据库的SQL语句教学引子:如何找到ACCESS数据库的SQL视图: 1)单击下图左侧的 : 2)单击上图顶部的 ,弹出如下图对话框: 5)单击“关闭”,此时在菜单中的文件菜单下面出现一个SQL的下拉框

;6)在“SQL”下拉框中选择如下图所示中的“SQL视图即可”。 1、查询所有记录:Select *通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资 from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select姓名, 职工号,工资 from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from职工号 where(仓库号=’wh1’ or仓库号=’wh2’) And not 性别=’女’ and 工资>=1300 and 工资工资<=2100 在这里一定要注意,(仓库号=’wh1’ or仓库号=’wh2’)一定要加括号,否则就不是原题的意思。

4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。 使用Or运算符 Select * from订购单 where 职工号=’zg1’ or职工号=’zg2’’) Or职工号=’zg11’ or职工号=’zg15’ 使用谓词In Use 企业销售管理系统 Select * from订购单 where 职工号 in(’zg1’, ’zg2’, ’zg11’, ’zg15’)在Select语句中,还支持In与Not结合使用。假设显示职工号不为zg1, zg2, zg11, zg15的订购单信息,具体代码如下: 使用Or运算符 Select * from订购单 where 职工号!=’zg1’ or职工号!=’zg2’’) Or职工号!=’zg11’ or职工号!=’zg15’ 使用谓词In Use 企业销售管理系统 Select * from订购单 where 职工号 not in(’zg1’, ’zg2’, ’zg11’, ’zg15’) 5、模糊Like查询:有的时候,我们不清楚所要查询的信息,如显示职工信息,但不能确定该职工的姓名,只知道他姓名中含有“王”字,那该如何查找呢?SQL中提供了Like关键字,使用Like进行了查询时,还要指定通配符。 通配符及其含义 通配符含义 %包含0个或多个字符 _(下画 包含一个字符 线) []指定范围(如[a-z] [^]不属于指定范围([^a-z]) 在SQL语句中,还支持Like与Not结合使用。假设显示姓名中不含 有“王”字的职工信息,具体代码如下:

access常用的SQL语句整理

基本SQL语句 查询表 1、Select * from 职工 2、 Select 职工号,姓名,工资from 职工 And 、 and not Select * from 职工号where(仓库号='wh1' or 仓库号='wh2') And not 性别='女' and 工资>=1300 and 工资<=2100 Or in Select * from 订购单where 职工号='zg1' or 职工号='zg2' Or 职工号='zg11' or 职工号='zg15' Select * from 订购单where 职工号in('zg1', 'zg2', 'zg11', 'zg15') Select * from 订购单where 职工号!='zg1' or 职工号!='zg2' Or 职工号!='zg11' or 职工号!='zg15' Select * from 订购单where 职工号not in('zg1', 'zg2', 'zg11', 'zg15') 模糊查询通配符: % _ [] [^] Select * from 职工where 姓名not like'王%' Select * from 职工where 姓名not like'王%_' 空值null查询 Select * from 职工where 姓名is null Between …and Select * from 职工where 工资 not between 1300 and 1900

显示无重复的数据 Select distinct 工资 from 职工表单表嵌套查询 多级嵌套查询

在ACCESS中如何使用SQL语句建表

以下SQL语句在ACCESS XP的查询中测试通过 建表: Create Table Tab1 ( ID Counter primary key, Name string(20), Age integer, [Date] DateTime); 技巧: 自动增加字段用 Counter 声明. 字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行. 建立主键:primary key 建立索引: 下面的语句在Tab1的Date列上建立可重复索引

Create Index iDate ON Tab1 ([Date]); 完成后ACCESS中字段Date索引属性显示为 - 有(有重复). 下面的语句在Tab1的Name列上建立不可重复索引 Create Unique Index iName ON Tab1 (Name); 完成后ACCESS中字段Name索引属性显示为 - 有(无重复). 下面的语句删除刚才建立的两个索引 Drop Index iDate ON Tab1; Drop Index iName ON Tab1; ACCESS与SQLSERVER中的UPDATE语句对比: SQLSERVER中更新多表的UPDATE语句: UPDATE Tab1 SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, FROM Tab1 a,Tab2 b

WHERE a.ID = b.ID; 同样功能的SQL语句在ACCESS中应该是 UPDATE Tab1 a,Tab2 b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; 即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后. 上例中如果Tab2可以不是一个表,而是一个查询,例: UPDATE Tab1 a,(Select ID,Name From Tab2) b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; 访问多个不同的ACCESS数据库-在SQL中使用In子句: Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID;

ACCESS中使用SQL语句

ACCESS中使用SQL语句 以下SQL语句在ACCESS XP的查询中测试通过 1、建表: Create Table Tab1 ( ID Counter, Name string, Age integer,[Date] DateTime); 技巧: 自增字段用 Counter 声明.字段名为关键字的字段用方括号[]括起来,数字也可作字段名。 2、建立索引: 下面的语句在Tab1的Date列上建立可重复索引 Create Index iDate ON Tab1 ([Date]); 完成后ACCESS中字段Date索引属性显示为 - 有(有重复). 下面的语句在Tab1的Name列上建立不可重复索引 Create Unique Index iName ON Tab1 (Name); 完成后ACCESS中字段Name索引属性显示为 - 有(无重复). 下面的语句删除刚才建立的两个索引 Drop Index iDate ON Tab1; Drop Index iName ON Tab1; ACCESS与SQLSERVER中的UPDATE语句对比: SQLSERVER中更新多表的UPDATE语句: UPDATE Tab1 SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, FROM Tab1 a,Tab2 b WHERE a.ID = b.ID; 同样功能的SQL语句在ACCESS中应该是 UPDATE Tab1 a,Tab2 b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; 即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后. 上例中如果Tab2可以不是一个表,而是一个查询,例: UPDATE Tab1 a,(Select ID,Name From Tab2) b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; 访问多个不同的ACCESS数据库-在SQL中使用In子句: Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID; 上面的SQL语句查询当前数据库中Tab1和db2.mdb(当前文件夹中)中Tab2以ID为关联的所有记录. 缺点-外部数据库不能带密码. 在ACCESS中访问其它ODBC数据源,下例在ACCESS中查询SQLSERVER中的数据 SELECT * FROM Tab1 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;] 外部数据源连接属性的完整参数是: [ODBC;DRIVER=driver;SERVER=server;DATABASE=database;UID=user;PWD=pass(wo rd);] 其中的DRIVER=driver可以在注册表中的 HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI 中找到ACCESS支持子查询,ACCESS支持外连接,但不包括完整外部联接,如支持 LEFT JOIN 或 RIGHT JOIN ,但不支持FULL OUTER JOIN 或 FULL JOIN,ACCESS中的日期查询 注意:ACCESS中的日期时间分隔符是#而不是引号 Select * From Tab1 Where [Date]>#2002-1-1#; 在DELPHI中我这样用 SQL.Add(Format( 'Select * From Tab1 Where [Date]>#%s#;', [DateToStr(Date)]));

ACCESS中基本的SQL语句格式

常用sql语句格式 数据定义语句 一、建表结构:Create Table 表名(字段名类型[(大小)][,…]) 二、修改表结构: 1、添加字段:Alter Table 表名 Add Column 字段名类型[(大小)] 2、删除字段:Alter Table 表名 Drop Column 字段名 3、改字段类型:Alter Table 表名 Alter 字段名新类型[(大小)] 三、删除表:Drop Table 表名 数据操作语句 四、添加记录 1、添加一条记录并将指定的值填入指定字段 Insert Into 表名[(字段名表)] Values(值列表) 注:若所有字段都要填入字段且字段顺序与值的顺序一致则省略字段名表,否则必须加上 2、将某查询结果追加到指定的一个已有表末(对应设计视图创建的“追加查询”) Insert Into 表名[(字段名表)] Select_Sql语句 五、修改表数据(对应设计视图创建的“更新查询”) Update 表名 Set 字段名=表达式[Where 条件] 注:若所有记录均要修改则省略[Where 条件],否则必须加上 六、删除表记录(对应设计视图创建的“更新查询”) Delete From 表名[Where 条件] 注:若删除所有记录则省略[Where 条件],否则必须加上

七、SELECT数据查询语句格式 Select [Top N [Percent]][Distint 字段名] * | 字段名表 [Into 新表名] From 表名1 [ Inner Join 表名2 On 联接条件] [Where 筛选条件[And][联接条件]] [Group By 分组字段[Having 组筛选条件]] [Order By 排序字段1 [Asc|Desc][,排序字段1 [Asc|Desc]][,…]] 按功能分解格式(格式在应用时:汉字换成具体的内容,不再写格式中的方括号和尖括号等): 1、查看表中全部数据 Select * From 表名 2、查看表中前n条记录 Select Top N * From 表名 3、查看表中前百分之n条记录 Select Top N Percent * From 表名 4、查看表中某字段的值有哪些(不重复) Select Distinct 字段 From 表名 5、查看表中指定字段的值 Select 字段名1,字段名2[,…] From 表名 6、查看表中符合条件的记录内容 Select * From 表名 Where 筛选条件 7、查看表中符合条件的记录复制到新表中 Select * Into 新表名 From 表名 Where 筛选条件 8、按某字段升序查看表中的记录内容 Select * From 表名 Order By 排序字段 Asc 注:Asc可以省略 9、按某字段降序查看表中的记录内容 Select * From 表名 Order By 排序字段 Desc 10、按某字段降序再按另一字段升序查看表中的记录内容 Select * From 表名 Order By 排序字段1 Desc,排序字段2 11、按某字段分组统计表中的数据 Select 分组字段名,计算表达式1 As 新列名[,…] From 表名 Group By 分组字段 12、按某字段分组统计表中的数据,并显示符合条件的组 Select 分组字段名,计算表达式1 As 新列名[,…] From 表名 Group By 分组字段 Having 组筛选条件 13、查看两表中的符合条件的数据 Select 表名.字段名1, 表名.字段名1[,…] From 表名1 Inner Join 表名2 On 表名1.关联字段=表名2.关联字段 Where 筛选条件 或:Select 表名.字段名1, 表名.字段名1[,…] From 表名1 , 表名2 Where 表名1.关联字段=表名2.关联字段 And 筛选条件 注: 表名1.关联字段=表名2.关联字段为联接条件

MicrosoftAccess数据库中SQL语句大全

ACCESS数据库的SQL语句教学 引子:如何找到ACCESS数据库的SQL视图: 1)单击下图左侧的: 2)单击上图顶部的,弹出如下图对话框: 5)单击“关闭”,此时在菜单中的文件菜单下面出现一个SQL的下拉框;6)在“SQL”下拉框中选择如下图所示中的“SQL视图即可”。 1、查询所有记录:Select *通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。 use 企业销售管理系统 Select * from 职工

2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select姓名, 职工号,工资from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from职工号where(仓库号=’wh1’ or仓库号=’wh2’) And not 性别=’女’ and 工资>=1300 and 工资工资<=2100 在这里一定要注意,(仓库号=’wh1’ or仓库号=’wh2’)一定要加括号,否则就不是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个O r运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where 子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。 使用Or运算符

ACCESS中的SQL语句

ACCESS数据库的SQL语句教学 2009-07-0120:50:47作者:来源:互联网浏览次数:229文字大小:【大】【中】【小】 引子:如何找到ACCESS数据库的SQL视图: 1)单击下图左侧的: 2)单击上图顶部的,弹出如下图对话框: 5)单击“关闭”,此时在菜单中的文件菜单下面出现一个SQL的下拉框;

6)在“SQL”下拉框中选择如下图所示中的“SQL视图即可”。 1、查询所有记录:Select*通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select*是很方便的。 use企业销售管理系统 Select*from职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select职工号,姓名,工资from职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select姓名,职工号,工资from职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select*from职工号where(仓库号=’wh1’or仓库号=’wh2’) And not性别=’女’and工资>=1300and工资工资<=2100 在这里一定要注意,(仓库号=’wh1’or仓库号=’wh2’)一定要加括号,否则就不是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个O r运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where 子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。

如何在Access中执行SQL语句和access采用sql语句与sql的区别

如何在Access中执行SQL语句和access采用sql语句与sql 的区别 2010-03-18 17:35:04| 分类:ACCESS,SQL,OFFIC | 标签:|字号大中小订阅 很多小程序都是用的ACCESS 的数据据,就是方便不需要到服务器上装什么软件直接就可以运行,但有时需要直接对ACCESS直行操作好像ACCESS中没有看到执行SQL语句的地方。 但是可以用以下步骤在AC中执行SQL. 选择“查询”->“新建”->“关闭”->左上角的“SQL” 就可以写SQL语句了。 记录一条SQl语句 update html set str10='' where len(str10)>20 清空长度大于20的字段内容 access采用sql语句与sql的区别 Access中提供查询对象,在设计时可以采用设计视图和SQL视图,非常方便,SQL视图中的SQL语句可以在SQL SERVER中使用,但是否完全可用呢?答案是否定的,表中总结了Microsoft Access 和 Microsoft SQL Servers 的SQL 语法的重要区别。 表1

以northwind数据库为例,若要得到相同查询结果,SQL语句作相应变化。主要是通配符的变化 Access: SELECT * FROM Products where productname like 'c*'; SELECT * FROM Products where productname like 'c?ang'; SQL Server: SELECT * FROM Products WHERE productname LIKE 'c%' SELECT * FROM Products WHERE productname LIKE 'c_ang'

ACCESS数据库中常见的SQL语句汇总教程

ACCESS数据库得SQL语句教学 1、查询所有记录:Select *通常用于快速查瞧表中得记录。当对表得结构无法确切记忆时,或要快速查瞧表中得记录时,使用Select *就是很方便得。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列得数据都显示出来。投影查询就就是允许用户显示所需要得列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资from 职工 在Select查询中,还可以按照实际得需要或自己得喜好安排显示列得顺序,如果要把姓名放到第一列,则代码如下: Select 姓名, 职工号,工资from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间得职工信息。具体操作如下: Select * from 职工号where(仓库号='wh1' or 仓库号='wh2') And not 性别='女' and 工资>=1300 and 工资<=2100 在这里一定要注意,(仓库号='wh1' or仓库号='wh2')一定要加括号,否则就不就是原题得意思。 4、谓词In查询:在查找特定条件得数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条得记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解得嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15得订购单信息为例具体讲解一下。 使用Or运算符 Select * from 订购单where 职工号='zg1' or 职工号='zg2' Or 职工号='zg11' or 职工号='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单where 职工号in('zg1', 'zg2', 'zg11', 'zg15') 在Select语句中,还支持In与Not结合使用。假设显示职工号不为zg1, zg2, zg11, zg15得订购单信息,具体代码如下: 使用Or运算符 Select * from 订购单where 职工号!='zg1' or 职工号!='zg2' Or 职工号!='zg11' or 职工号!='zg15' 使用谓词In

access sql语句查询

access sql语句查询、修改、删除 查询时生成序号 SELECT (SELECT Count([xlh].[aa]) AS AutoNum FROM xlh WHERE (((xlh.aa)<=xlh_Alias.aa));) AS 序号, xlh.aa FROM xlh AS xlh_Alias INNER JOIN xlh ON xlh_Alias.aa=xlh.aa ORDER BY xlh.aa; 多表sql查询 SELECT test.aa AS 第一个字段, test1.bb AS 第二个字段, https://www.docsj.com/doc/173096915.html, FROM test, test1 WHERE test.aa=test1.aa; 多表sql查询1 SELECT a.aa, b.bb, https://www.docsj.com/doc/173096915.html,, https://www.docsj.com/doc/173096915.html,*100 AS 合计 FROM test AS a, test1 AS b WHERE a.aa=b.aa; 多表sql查询排序 SELECT a.aa, b.bb, https://www.docsj.com/doc/173096915.html, AS 第三个字段 FROM test AS a, test1 AS b WHERE a.aa=b.aa ORDER BY https://www.docsj.com/doc/173096915.html,; 查询例子 SELECT a.dhhm FROM xl11a AS a, xl919 AS b WHERE a.dhhm=b.dhhm and aa<>"1"; 日期时间分隔符是#而不是引号 Select * From Tab1 Where [Date]>#2002-1-1#; 两个表关联修改多个字段 UPDATE chhl AS a, jbsj AS b SET a.fzr = b.fzr, a.gh = b.gh WHERE a.dhhm=b.dhhm; update chhl set (fzr,gh)= (SELECT b.fzr, b.gh FROM chhl AS a, jbsj AS b WHERE a.dhhm=b.dhhm); 如果Tab2可以不是一个表,而是一个查询 UPDATE Tab1 a,(Select ID,Name From Tab2) b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; UPDATE Tab1 a,Tab2 b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID;

Access_SQL语句实例

1、查询所有记录:Select *通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资 from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select姓名, 职工号,工资 from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from职工号 where(仓库号=’wh1’ or仓库号=’wh2’) And not 性别=’女’ and 工资>=1300 and 工资工资<=2100 在这里一定要注意,(仓库号=’wh1’ or仓库号=’wh2’)一定要加括号,否则就不是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。 使用Or运算符 Select * from订购单 where 职工号=’zg1’ or职工号=’zg2’’) Or职工号=’zg11’ or职工号=’zg15’ 使用谓词In Use 企业销售管理系统 Select * from订购单 where 职工号 in(’zg1’, ’zg2’, ’zg11’, ’zg15’) 在Select语句中,还支持In与Not结合使用。假设显示职工号不为zg1, zg2, zg11, zg15的订购单信息,具体代码如下: 使用Or运算符 Select * from订购单 where 职工号!=’zg1’ or职工号!=’zg2’’) Or职工号!=’zg11’ or职工号!=’zg15’ 使用谓词In Use 企业销售管理系统 Select * from订购单 where 职工号 not in(’zg1’, ’zg2’, ’zg11’, ’zg15’) 5、模糊Like查询:有的时候,我们不清楚所要查询的信息,如显示职工信息,但不能确定该职工的姓名,只知道他姓名中含有“王”字,那该如何查找呢?SQL中提供了Like关键字,使用Like进行了查询时,还要指定通配符。 通配符及其含义 通配符含义

ACCESS中使用SQL语句应注意的地方及几点技巧

ACCESS中使用SQL语句应注意的地方及几点技巧 建表: Create Table Tab1 ( ID Counter, Name string, Age integer, [Date] DateTime); 技巧: 自增字段用Counter 声明. 字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行. 建立索引: 下面的语句在Tab1的Date列上建立可重复索引 Create Index iDate ON Tab1 ([Date]); 完成后ACCESS中字段Date索引属性显示为- 有(有重复). 下面的语句在Tab1的Name列上建立不可重复索引 Create Unique Index iName ON Tab1 (Name); 完成后ACCESS中字段Name索引属性显示为- 有(无重复). 下面的语句删除刚才建立的两个索引 Drop Index iDate ON Tab1; Drop Index iName ON Tab1; ACCESS与SQLSERVER中的UPDATE语句对比: SQLSERVER中更新多表的UPDA TE语句: UPDA TE Tab1 SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, FROM Tab1 a,Tab2 b WHERE a.ID = b.ID; 同样功能的SQL语句在ACCESS中应该是 UPDA TE Tab1 a,Tab2 b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; 即:ACCESS中的UPDA TE语句没有FROM子句,所有引用的表都列在UPDA TE关键

字后. 上例中如果Tab2可以不是一个表,而是一个查询,例: UPDA TE Tab1 a,(Select ID,Name From Tab2) b SET https://www.docsj.com/doc/173096915.html, = https://www.docsj.com/doc/173096915.html, WHERE a.ID = b.ID; 访问多个不同的ACCESS数据库-在SQL中使用In子句: Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID; 上面的SQL语句查询出当前数据库中Tab1和db2.mdb(当前文件夹中)中Tab2以ID为关联的所有记录. 缺点-外部数据库不能带密码. 在ACCESS中访问其它ODBC数据源 下例在ACCESS中查询SQLSERVER中的数据 SELECT * FROM Tab1 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;] 外部数据源连接属性的完整参数是: [ODBC;DRIVER=driver;SERVER=server;DATABASE=database;UID=user;PWD=passwo rd;] 其中的DRIVER=driver可以在注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ 中找到 ACCESS支持子查询 ACCESS支持外连接,但不包括完整外部联接,如支持LEFT JOIN 或RIGHT JOIN 但不支持FULL OUTER JOIN 或FULL JOIN

相关文档
相关文档 最新文档