Access中的SQL语言
- 格式:doc
- 大小:124.00 KB
- 文档页数:10
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'使用谓词InUse 企业销售管理系统Select * from 订购单where 职工号in('zg1', 'zg2', 'zg11', 'zg15')在Select语句中,还支持In与Not结合使用。
access查询sql语句SQL(StructuredQueryLanguage)是用来访问和操纵数据库的语言,它是一种被广泛使用的标准数据库查询和编程语言。
Access查询SQL语句是一种通用的面向数据库的抽象语言,通过它可以实现对多种类型的数据库的查询。
本文将主要介绍Access查询SQL语句的基本结构,SQL语句的基本语法以及一些常用的SQL语句。
一、Access查询SQL语句的基本结构Access查询SQL语句的基本结构由四个部分组成,即SELECT、FROM、WHERE和ORDER BY,其中在实际应用中可以包含其他子句。
SELECT:SELECT子句用于指定该查询中包含哪些字段,可以指定单个字段或多个字段,也可以指定全部字段。
FROM:FROM子句指定查询中使用的表。
WHERE:WHERE子句用于筛选符合条件的记录,主要是通过比较运算符(如=、>、)实现的。
ORDER BY:ORDER BY子句用于指定查询结果的排序方式,可以按照字段值升序排列或者降序排列。
二、SQL语句的基本语法SQL语句一般由命令关键字、表达式、语法结构符号等组成,其中命令关键字是主体,其他部分与之结合构成语句。
SQL语句中的关键字:SELECT:从数据库中检索数据的关键字,后跟字段列表,表示要检索的字段;FROM:指定数据来源,后紧跟表名;WHERE:从表中筛选记录的关键字;ORDER BY:排序的关键字,用于指定排序字段及排序顺序;GROUP BY:统计汇总的关键字,用于指定统计汇总的字段;HAVING:筛选统计汇总结果的关键字。
运算符:=:等于;>:大于;小于;>=:大于等于;<=:小于等于;<>:不等于。
逻辑运算符:AND:表示“并且”;OR:表示“或”;NOT:表示“非”。
函数:在SQL语句中,可以使用一些种类繁多的函数,用于实现复杂查询。
三、常用的SQL语句(1)查询表中全部记录:SELECT * FROM名(2)查询指定字段记录:SELECT段1,字段2 FROM名(3)条件查询:SELECT段1,字段2 FROM名 WHERE件(4)按照指定字段排序:SELECT段1,字段2 FROM名 ORDER BY 段1(5)统计汇总:SELECT SUM(字段1) FROM名(6)关联查询:SELECT段1,字段2 FROM名1,表名2 WHERE 名1.字段1 =名2.字段1Access查询SQL语句是一种面向数据库的抽象语言,在实际应用中,可以使用它实现对各种类型数据库的查询和操作。
第一讲上面是Access数据库中所涉及的两个表下面我们介绍Access数据库中用于查询数据的语句:1、SELECT 语句SELECT语句是数据库中使用频率最高的语句,就是我们通常说的查询语句。
其格式如下:SELECT+需要查询的对象+FROM+表名+WHERE+条件。
例1、查询上表中所有男性职工的“工号”“姓名”“部门”和“应发工资”。
SELECT 工号,姓名,部门,应发工资FROM rsda where 性别=”男”注意事项:1):写查询语句时英文部分不区分字母大小写。
2):除汉字外,所有字符标点和数字都必须使用半角英文状态下输入。
3):SELECT查询语句中如果没有条件限制,“WHERE+条件”部分可以省略。
4):需要查询的项目在表中必须存在。
5):如果要输出表中所有项目可以用“*”代替。
例如:查询上表中所有人员的姓名,出生年月及部门SELECT 姓名,出生年月,部门FROM rsda;显示表中的所有信息Select * from rsda;显示表中所有女性职工的信息Select * from rsda where 性别=”女”;要求:查询表中所有“未婚”男性职工的信息。
Select * from rsda where (性别=”男”)and(婚否=no);有两个知识点需要掌握:1):运算符:A、算术运算符:加(+)、减(-)、乘(*)、除(/)、和取模(%)。
算术运算符可以完成对两个表达式的数学运算。
B:赋值运算符:等号(=)C:比较运算符:等于(=)、大于(>)、大于或等于(>=)、小于(<)、小于或等于(<=)、不等于(<>或!=)、不小于(!<)、不大于(!>).D:逻辑运算符:与(and)、或(or)和非(not)。
对于AND运算,只有当运算符两端的表达式的值都为真时,结果才返回真,只要有一股表达式的值为假,结果就是假;对于or 运算,只要运算符两端的表达式的值有一个位真,结果就返回真,只有两个表达式的值都是假,结果才为假;NOT运算是对表达式的值取反。
access批量操作的代码逻辑摘要:一、批量操作的概念与意义二、Access批量操作的常用方法1.使用SQL语句2.使用VBA编程3.使用Access内置功能三、实例演示1.批量插入记录2.批量更新记录3.批量删除记录四、注意事项与技巧1.数据验证2.性能优化3.错误处理正文:一、批量操作的概念与意义在Access数据库管理中,批量操作指的是对大量数据进行集中处理,以提高数据处理的效率。
批量操作不仅能减轻系统负担,提高处理速度,还能降低出错概率,确保数据的一致性和准确性。
对于职业写手来说,掌握批量操作的代码逻辑至关重要。
二、Access批量操作的常用方法1.使用SQL语句SQL(结构化查询语言)可用于执行批量操作。
例如,向数据表中批量插入数据,可以使用以下SQL语句:```sqlINSERT INTO 表名(字段1, 字段2, 字段3)VALUES("值1", "值2", "值3"),("值4", "值5", "值6"),("值7", "值8", "值9");```2.使用VBA编程VBA(Visual Basic for Applications)是Access的编程语言,可用于编写批量操作的自动化脚本。
以下是一个批量插入记录的VBA示例:```vbaSub 批量插入记录()Dim RS As RecordsetDim SQL As StringDim strPath As String" 设置SQL语句SQL = "INSERT INTO 表名(字段1, 字段2, 字段3) VALUES ("值1", "值2", "值3")"" 设置数据源路径strPath = "C:数据文件.accdb"" 创建记录集Set RS = CreateObject("ADODB.Recordset")RS.Open SQL, strPath, 1, ADODB.CursorTypeDynamic" 执行批量插入While Not RS.EOFRS.MoveNextWend" 释放资源Set RS = NothingEnd Sub```3.使用Access内置功能Access内置了批量操作的功能,如“导入外部数据”和“导出数据”。
ACCESS中使用SQL语句应注意的地方及几点技巧(一) 以下SQL语句在ACCESS XP的查询中测试通过建表: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中更新多表的UPDATE语句:UPDATE Tab1SET = FROM Tab1 a,Tab2 bWHERE a.ID = b.ID;同样功能的SQL语句在ACCESS中应该是UPDATE Tab1 a,Tab2 bSET = WHERE a.ID = b.ID;即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.上例中如果Tab2可以不是一个表,而是一个查询,例:UPDATE Tab1 a,(Select ID,Name From Tab2) bSET = 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=password;] 其中的DRIVER=driver可以在注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\。
access sql查询操作方法Access SQL查询操作方法Access是微软公司开发的一款关系型数据库管理系统,它提供了SQL查询语言的功能,可以帮助用户快速有效地从数据库中检索所需数据。
本文将介绍Access SQL查询的基本操作方法,帮助读者更好地掌握和使用这一功能。
一、基本语法在使用Access SQL查询之前,我们首先需要了解一些基本的语法规则。
SQL查询语言由一系列的关键字、函数、操作符和表达式组成,用于从数据库中检索和过滤数据。
下面是一些常见的语法元素:1. SELECT语句:用于指定要检索的列和表。
2. FROM子句:用于指定要从中检索数据的表。
3. WHERE子句:用于指定检索条件。
4. ORDER BY子句:用于指定返回结果的排序方式。
5. GROUP BY子句:用于将结果按照指定的列进行分组。
6. HAVING子句:用于指定分组后的过滤条件。
二、基本查询1. 检索所有数据要检索表中的所有数据,可以使用如下的SELECT语句:SELECT * FROM 表名;这条语句将返回指定表中的所有列和行。
2. 检索指定列如果只需要检索表中的特定列,可以使用如下的SELECT语句:SELECT 列名1,列名2 FROM 表名;这条语句将只返回指定列的数据。
3. 检索符合条件的数据要检索符合某些条件的数据,可以使用WHERE子句。
例如,要检索年龄大于18岁的学生信息,可以使用如下的SELECT语句:SELECT * FROM 学生表 WHERE 年龄 > 18;这条语句将返回年龄大于18岁的学生的所有信息。
三、进阶查询1. 排序查询结果要按照某个列的值对查询结果进行排序,可以使用ORDER BY子句。
例如,要按照学生的年龄对查询结果进行升序排序,可以使用如下的SELECT语句:SELECT * FROM 学生表 ORDER BY 年龄 ASC;这条语句将返回按照年龄升序排列的学生信息。
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'使用谓词InUse 企业销售管理系统Select * from 订购单 where 职工号 in('zg1', 'zg2', 'zg11', 'zg15')在Select语句中,还支持In与Not结合使用。
ACCESS中的SQL语句我们学ACCESS的时候不可避免的要用到SQL语言,因此有些初学者就会问学ACCESS是不是要再学SQL 这个语言啊其实我们可以不学SQL语言照样用ACCESS做出一个不错的软件 ,但是我们如果学了SQL将会做得更好.事实上在ACCESE中用到SQL相对简单我们只要了解了SQL语法就完全可以了,下面我们详细的讲一下关于ACCESS中需要我们掌握SQL的知识.SQL语言是目前关系式数据库的标准操作语言,其实当我们用ACCESS的QBE(就是我们用查询向导生成查询的那个窗口)视窗建立查询物件后,Access最后将产生SQL语言,只不过用QBE视窗.可提供使用者一个简单的关于SQL的操作界面(这也是为什么我们不学SQL照样可以做出不错的ACCESS软件的地方),SQL语言的组成主要分三个部分(1.资料定义语言DDL;2资料操作语言DML;3.资料控制语言DCL.)一. SQL常用语句一般可以用下面的SQL语句完成:SELECT 栏位名称1[AS 栏位别名1][,栏位名称2[AS 栏位别名2]] [,...[...]]FROM 资料名称1,[,资料名称2....][WHERE...][GROUP BY....][HAVING...][ORDER BY......]解释如下:1.SELECT用语将资料从一个或者多个资料表中选择出来 ;2.栏位名称表示你要选取的栏位的名称,如果你要选取所有的栏位,你可以使用"*"或者"资料表名称.*"来表示;3.WHERE主要用于我们要筛选的条件:GROUP BY主要用于将相同值的记录组合成单一记录;4.HAVING与WHERE相似.用语于决定选取哪些记录.注意当我们使用GROUP BY群组记录后 ,我们要使用HAVING 来决定条件筛选所要显示的记录;5.ORDER BY指定排序的子句.用语指定一个或多个栏位作为递增或者递减排序的依据.如果订单明细是我们要查找的表,订单编号,数量,单价是表的栏位我们可以做一个下面的查询:SELECT 订单明细.订单编号,SUM([数量]*[单价]) AS 订单金额总计FROM 订单明细GROUP BY 订单明细.订单编号HAVING ((订单明细.订单编号)=[请输入您要查找的日期]);二.JOINJOIN用于连接资料表,共有INNER JOIN,LEFT JOIN,RIGHT JOIN三种,INNER JOIN仅显示两个资料表对应栏位中值相同的栏位;LEFT JOIN串联两个资料表中对应栏资料时,以资料表1的资料为主.若资料存在与资料1.但资料2没有对应值时候仍然显示资料表1的资料;RIGHT JOIN正好相反就不在叙述.如:供应商名称来自供应商资料表产品名称来自产品资料表两个资料表串接栏位为供应商编号(供应商)与供应商(产品),我们SQL语句如下:SELECT [供应商].[供应商名称],[产品].[产品名称]FROM 供应商LEFT JOIN 产品ON [供应商].[供应商编号]=[产品].[供应商]三.ALL,DISTINCT,DISTINCTROW与TOP语法为:SELECT {ALL/DISTINCT/DISTICNTROW/TOP}栏位名称1 [AS 栏位别名1][,栏位名称2[AS 栏位别名2][,...]]FROM 资料表名称1[,资料表名称2...][WHERE ...]...ALL显示所有记录,此为默认值可以省略;DISTINCT表示重复的值只显示一次;DISTINCTROW表示对于重复的记录(注意不是值)仅显示一次;TOP n 显示记录中记录顺序为前N笔记录;TOP n PERCENT 显示记录中记录顺序为前百分之N的记录.其他的还有BETWEEN AND条件还有运算子(=,<,>,<=,>=,<>(不等于)),AND和OR的区别等等相对简单就不在详细叙述,我们在ACCESS主要就要掌握这些,至于我们要详细的熟悉SQL语法可以看一些关于SQL方面的书(这里推荐SQL自学21天这本书关于语法确实讲的很不错。
access将字母转为数字sql语句-概述说明以及解释1.引言1.1 概述概述:在许多实际应用中,我们经常需要将字母转换为数字。
这可能是为了简化数据处理、加密算法或将字母表示的属性与数字相关联等等。
而在Access数据库中,我们可以使用SQL语句来实现字母转数字的功能。
本文将介绍如何使用SQL语句在Access数据库中进行字母转数字的操作,以及该方法的应用前景。
通过SQL语句实现字母转数字的方法是通过利用数据库管理系统的内置函数来完成的。
这些内置函数提供了一种简单而有效的方式来处理字符和字符串,并将它们转换为数字表示。
使用这些函数,我们可以将字符转换为对应的ASCII码值或任意其他数字系统中的数字值。
本文将重点介绍在Access数据库中使用SQL语句实现字母转数字的具体操作步骤和示例。
首先,我们将学习如何使用内置函数来获取字符的ASCII码值,并将其存储为数字类型的数据。
然后,我们将探讨如何使用这些转换函数来处理字符串中的每个字符,并将其转换为数字表示。
最后,我们将提供一些实际应用的示例,展示如何将字母转数字的功能应用于数据库查询和数据处理中。
通过阅读本文,读者将能够了解如何使用SQL语句在Access数据库中进行字母转数字的操作,并理解该方法在实际应用中的意义和潜在应用前景。
无论是在数据处理、编程算法还是信息安全等领域,字母转数字的功能都具有重要的应用价值。
1.2 文章结构文章结构是指文章的组织框架,包括引言、正文和结论三个主要部分。
通过良好的结构可以使读者更好地理解文章的内容和逻辑关系。
在本篇文章中,文章结构主要包括以下几个部分:1. 引言:介绍文章的主题和目的,引发读者的兴趣。
2. 正文:2.1 字母转数字的背景:介绍为什么需要将字母转化为数字,以及这种需求在实际应用中的应用场景。
可以从字母与数字的关系、计算机编程中的应用、数据处理等方面进行论述,以便读者对字母转数字的背景有更深入的了解。
在Access中多表内联,可以使用传统的where条件逐行筛选,如:
SELECT SNAME,CNAME,DEGREE FROM STUDENT,COURSE,SCORE where stu dent.sno = score.sno and o = o
其中SCORE表是中间表,他用来连接STUDENT表和COURSE表
在只有三个表的时候这样写还可以,但是随着表的增多,这样写会越来越复杂,因此我们还可以使用inner join方法,如:
SELECT SNAME,CNAME,DEGREE FROM (STUDENT inner join score on stude nt.sno = score.sno) inner join course on o = o
四个表就变成:
FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号五个表:
FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号
以此类推。
access select语句select 语句是 SQL 语言中用于从数据库中检索数据的命令之一,它可以用来选择数据库表中的数据,以便进一步处理。
以下是一些示例:1. 选择所有列:```SELECT * FROM table_name;```2. 选择特定列:```SELECT column1, column2 FROM table_name;```3. 选择特定条件下的行:```SELECT * FROM table_name WHERE condition;```4. 选择特定列的某些值:```SELECT column1 FROM table_name WHERE column1 = "value1" AND column1 = "value2";```5. 按条件分组选择:```SELECT column1, column2, COUNT(*) FROM table_name WHERE condition GROUP BY column1, column2;```6. 选择聚合数据:```SELECT column1, SUM(column2) AS total_column2 FROMtable_name WHERE condition;```7. 选择连接表格的表:```SELECT * FROM table1 JOIN table2 ON table1.column = table2.column;```8. 选择特定列的不同值:```SELECT column1, COUNT(*) FROM table_name WHERE column1 IN ("value1", "value2", "value3") GROUP BY column1;```这些只是 select 语句的一些示例,实际上,select 语句可以根据具体需求进行更复杂的操作。
access where的用法
"access where" 是一个在制作 SQL 查询语句时常用的语法。
"where" 是一个用在 SQL 查询语句中的关键词,用于筛选出相应的数据,而 "access" 是 Microsoft Access 软件中的一种 SQL 实现语言。
以下是 "access where" 的基本用法:
```sql。
SELECT column_name FROM table_name。
WHERE condition;。
```。
在这个语法中,"access where" 用于指明查询的条件,它可以包括
一个或多个列以及一个或多个条件。
例如:
```sql。
SELECT * FROM Customers。
WHERE Country='USA';。
```。
这个查询将返回所有位于美国的客户记录。
另外,"access where" 还可以用于更新和删除查询语句中。
例如:
```sql。
UPDATE Customers。
SET City='New York'。
WHERE CustomerID=1;。
```。
这个查询将修改客户记录中 ID 为1的客户的城市为 New York。
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#)看看能不能执行上述三条命令,若不能,请说明原因。