当前位置:文档之家› 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#)看看能不能执行上述三条命令,若不能,请说明原因。

相关主题