Access中的SQL语言
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
目标子句 INTO <表名>
字段(值)列表子句 <字段名列表> | VALUES (<字段值列表>) 完整性约束条件子句 ………… 以后,还将学到更多的子句。 (2) 修改表结构
增加字段:ALTER TABLE <表名> ADD <字段名> <数据类型> [<字段级完整性约束 条件>][,<字段名> <数据类型> [<字段级完整性约束条 件>]……
SQL 语言的特点: (1) 语言风格统一:尽管有不同功能的 DDL、DML 和 DCL,但语言风格相同,再
SQL 语言既能独立地使用于联机交互方式,又能嵌入到高级程序设计语言如 C、 C++等语言中,而且在两种不同地使用方式下的 SQL 语句的语法基本一样; (2) 面向集合的操作方式:因为 RDB 的结构是关系,即记录的集合,也是 SQL 语 言的操作对象,所以操作速度比其他语言快; (3) 语言简洁,易学易用:尽管 SQL 的功能很强,但它的核心语句只有九条(CREATE、 ALTER、DROP、SELECT、INSERT、DELETE、UPDATE、GRANT 和 REVOKE), 加之它的结构化特性,非常便于学习和使用。
是/否型
2 若字段名中有空格或除了汉字外的非字母性字符,则应用一对方括号[ ]将字段名括起
来,如[First Name]
3 数据完整性约束条件:它是用来定义数据表之间的关联关系和数据表内的字段应满足的
条件的,当用户操作数据表时,DBMS 会自动检查操作是否违背已定义的完整性约束条
件。
同一个完整性约束条件如果涉及到一个表中的多个字段,则该约束条件必须定义在表
数字(字节)介于 0 到 255 的整型数
REAL or SINGLE
数字(单精度)默认有四位小数
FLOAT or DOUBLE
数字(双精度)
DATE or TIME
日期/时间型
CURRENCY or MONEY
货币型
COUNTER(n)
自动编号型(从整数 n 起)
YESNO
2. 在 Access 中使用 SQL 语句
SQL 语句的输入:打开一个已有的 Access 数据库,在“对象”栏中选中“查询”,在“列 表框”内选定“在设计视图中创建查询”命令,双击之,或按“设计” 按钮,系统将显示一个查询窗口和一个“显示表”对话框,关闭“显示 表”对话框,在不关闭查询窗口的情况下,①Access 窗口的菜单栏上才 会出现查询菜单,该查询菜单下有“SQL 特定查询”子菜单、②视图菜 单中会出现“SQL 视图”命令、③同时原来显示在菜单栏下的数据库工 具栏自动被切换为“查询设计”工具栏,其中的左上角会有一个视图切 换按钮。无论用上述三种方法的哪一种,均可在 Access 窗口中显示供输 入 SQL 语句的“查询”窗口。
注意:①在该窗口中只能输入一条 SQL 语句!但可分行输入,系统会把分号“;” 作为命令的结束标志,但一般在输入命令时,不必人为地输入分号。当 需要分行输入时,不能把 Sql 语言的关键字或字段名分在不同行。
②Sql 语句中所有的标点符号和运算符号均为 ASCII 字符! ③每两个单词之间至少要有一个空格或有必要的逗号! SQL 语句的保存:关闭“SQL 语句输入”窗口,命名为一个查询 SQL 语句的执行:在“SQL 语句输入”窗口中输入一个完整的 SQL 语句后,按“查询设计
立流通表。同理,必须在主表中有记录后,才能在相关表中输入记录。
Fra Baidu bibliotek
我们现在在图书表中开始输入记录: INSERT INTO 图 书 VALUES(‘100001’,’ww001’,’ 橘 子红 了’,’郑 重 王 要’,’ 人 民文 学 出版 社’,31.8) INSERT INTO 图书(总编号,分类号,书名,单价) VALUES('100002','ww002','追忆似水年华 (上)',68) 可见,插入一条具体录的 Sql 语句为: INSERT INTO <表名> [(<字段名列表>)] VALUES (<字段值列表>) 当插入的记录中有部分字段值不确定时,可以仅输入部分字段值,但必须指明相应的字段名, 而未指明的字段值为 NULL。 故上述第二条记录插入命令等价于 INSERT INTO 图书 VALUES('100002','ww002','追忆似水年华(上)',NULL,NULL,68) 请再输入以下三条命令 INSERT INTO 图书 VALUES('100002','ww003','追忆似水年华(下)',NULL,NULL,68) INSERT INTO 图书 VALUES(NULL,'ww003','追忆似水年华(下)',NULL,NULL,68) INSERT INTO 流通 VALUES('100002','90002',#02/14/98#) 看看能不能执行上述三条命令,若不能,请说明原因。 通过上述对创建表命令和插入记录命令的学习,我们可以大致了解到 Sql 命令的基本格式为: <命令动词> [<子句列表>] 其中<命令动词>是指明该命令的功能,子句可以有多种, 如:标识子句 TABLE <表名>、INDEX <表名>、VIEW <视图名>
姓名
字符型 长度为 4
性别
字符型 长度为 1
部门
字符型 长度为 5
职称
字符型 长度为 5)
建立读者数据表。请同学们自己完成。
那么对于流通数据表
流通(总编号
字符型 长度为 6 主键,且来自于图书实体
借书证号
字符型 长度为 5 非空,且来自于读者实体
借阅日期
日期型)
还是请同学们自己完成。
注意:由于流通表的建立要参照图书表与读者表,所以必须待图书表与读者表建立后方可建
用窗口菜单命令建表的区别。
说明:在 Microsoft Access 2000 中 的 Sql 语言是通过 Microsoft Jet 数据库引擎来支持 Sql
语言的,而 Microsoft Jet SQL 语言与标准 SQL 语言有若干的差别。
1 Microsoft Jet SQL 语言所支持的 SQL 数据类型
工具栏”中的运行按钮“!”,或在数据库窗口中双击已被保存的相应查询。
I. 数据表定义语句 前面我们是使用 Access 窗口中菜单命令的方式建立数据表的。现在,我们开始学习用 SQL
语言来创建数据表。首先打开图书管理数据库文件“图书管理.mdb”,且按上述方法打开输
入 SQL 语句的“查询”窗口。
再在读者数据表中输入每位读者的年龄,并添加下列三记录(不一定要用 SQL 语句)。 99001、张三郎、null、null、null、62 99002、黄阿三、null、null、null、66 99002、黄海、null、null、null、66 在读者表中将姓黄且单名的同志的年龄减 1 岁 UPDATE 读者 SET 年龄=年龄-1 WHERE 姓名 LIKE ’黄?’ 在读者表中将姓名中带有“三”字的同志的性别设为男 UPDATE 读者 SET 性别=’男’ WHERE 姓名 LIKE ’*三*’ 在读者表中将年龄为 62 或 66 的职工的部门字段值设为“退休”
Access 中的 SQL 语言
1. SQL 概述
结构化查询语言(Structured Query Language SQL 读成“sequel”)自 1974 年提出, 1975 年 IBM 公司在 RDBMS(关系型 DBMS)Syatem R 上实现以来,由于它功能丰富、使用 方便、简洁易学,倍受用户和计算机工业界的欢迎,经不断修改、扩充和完善,现已成为 RDBMS 的标准语言。众多的 RDBMS 中实现了 SQL 语言,当然各数据库厂家在各自的 RDBMS 中的 SQL 语言与 ISO 颁布的标准 SQL 语言都或多或少有些差别。
有效性规则中输入
IS NULL
[NOT] Between <表达式> And <表达式>
如:Between 0 And 100············可取 0 到 100 之间的数
[NOT] In (<表达式列表>)
如:In(’法律’ ,’经济法’,’刑事司法’)仅可取表达式列表中所指定的有限个值
由此可见,
修改字段类型:ALTER TABLE <表名> ALTER <字段名> <数据类型>[,<字段 名> <数据类型> [<字段级完整性约束条件>]……
删除字段:ALTER TABLE <表名> DROP <字段名列表> 注意:在对数据表的结构进行修改前,必须关闭该表! 请同学自己先在读者数据表中增加两个字段,字段名依次为联系电话和年龄,数据类型分别 为长整型和短整型,并观察每个命令执行后的效果。 再将联系电话字段的数据类型改为有 8 个字符的字符型,年龄字段的类型改为字节型数字。 再删除联系电话字段 (3) 删除表 DROP TABLE <表名列表> II. 数据更新 前面,我们已经学会了在数据表中插入记录的命令,对数据的更新还包括修改数据,删 除记录等操作。 注意:若我们对已经同其它数据表建立了关联关系的数据表中的记录的关联字段值进行 更新(修改或删除)时,为了保持数据的一致性(即相容性),系统一般会拒绝此操作。那么, 若要坚持更新,又能保持保持数据的一致(即被关联数据表中的外码——关联字段——的值 也会自动更新,则必须要预先在关系(即关联)窗口中,编辑关系具有级联更新和级联删除功 能(参考 7.3.1 用 ACCESS 建立关系型数据库的步骤 5) (1) 修改表记录 UPDATE <表名> SET <字段名>=<表达式> [,<字段名>=<表达式>……] [WHERE <条 件>] 啊呀,不好。我在输入读者数据表时,不小心将所有读者的姓名都输入反了,即应该是男的, 却输入了女,而应该是女的,反到输入了男。我曾经先后用下面两条命令 UPDATE 读者 SET 性别=’女’ WHERE 性别=’男’ UPDATE 读者 SET 性别=’男’ WHERE 性别=’女’ 命令倒没错,但,结果却不符合本意。请同学帮帮忙:
输入 Sql 语句:
CREATE TABLE 图书(总编号 CHAR(6) PRIMARY KEY,分类号 CHAR(6) NOT NULL,
书名 CHAR(20),作者 CHAR(15),出版社 CHAR(10),单价 SINGLE)
运行该 Sql 语句后,在数据库窗口中打开数据表图书的设计视图,可核对一下用 Sql 语句和
(1) 创建基表的 Sql 命令格式为:
CREATE TABLE <表名>(<字段名> <数据类型> [<字段级完整性约束条件>]
[,<字段名> <数据类型> [<字段级完整性约束条件>]]
…………
[,<表级完整性约束条件>]
)
类似地,我们可以根据
读者( 借书证号 字符型 长度为 5 非空
每位读者的借书证号均不相同
SQL 语言包括了对数据库的所有操作,主要可分为三个部分①数据定义语言(DDL Data Definition Language),用以定义数据库的逻辑结构,包括定义基本表、索引和视图。②数 据操纵语言(DML Data Manipulation Language),用以对数据的查询和更新,数据更新操作 中包括插入、删除和修改三种操作。③数据控制语言(DCL Data Control Language),用以对 基本表和视图的授权即指定具体用户可使用哪些表或视图。
级,否则,一般定义在字段级(即列级)。
完整性约束条件主要有下列三种:
实体完整性约束条件:
NOT NULL······························· 不能为空,NULL 的含义是无意义,不能与空字
符或数值 0 等同
UNIQUE··································· 唯一性,即表中各记录的该字段值各不相同
PRIMARY KEY·························· 主键或称主码(同时,具有上两约束条件)
参照完整性约束条件:
REFERENCES <表名> (<字段名>)··该字段所取值应来自指定表内的指定字段的值
用户定义完整性约束条件:不能在 Access 的 Sql 中使用,只能在表的设计视图中的字段