SQL语言在ACCESS数据库中的应用

上传人:彩*** 文档编号:74935311 上传时间:2022-04-14 格式:DOCX 页数:71 大小:306.26KB
收藏 版权申诉 举报 下载
SQL语言在ACCESS数据库中的应用_第1页
第1页 / 共71页
SQL语言在ACCESS数据库中的应用_第2页
第2页 / 共71页
SQL语言在ACCESS数据库中的应用_第3页
第3页 / 共71页
资源描述:

《SQL语言在ACCESS数据库中的应用》由会员分享,可在线阅读,更多相关《SQL语言在ACCESS数据库中的应用(71页珍藏版)》请在装配图网上搜索。

1、.Access 开发人员参考SELECT语句 (Microsoft Access SQL)指示 Microsoft Access数据库引擎将数据库中的信息作为一组记录返回。语法SELECTpredicate * | table.*| table.field1AS alias1,table.field2AS alias2, .FROM tableexpression , . INexternaldatabaseWHERE. GROUPBY. HAVING. ORDER BY. WITH OWNERACCESS OPTIONSELECT语句包含以下部分:部分说明下列谓词之一: ALL、DISTIN

2、CT、DISTINCTROW或 TOP。可以使用谓词来限定返回记录的数量。如predicate果没有指定谓词,则默认值为ALL 。*指定选择指定表中的所有字段。table表的名称,该表包含从中选择记录的字段。field1、field2字段名,这些字段包含了要检索的数据。如果包括多个字段,将按它们的排列顺序对其进行检索。alias1和用作列标题的名称,不是table中的原始列名。alias2tableexpression表名称,其中包含要检索的数据。externaldatabas如果 tableexpression中的表不在当前数据库中,则使用该参数指定该数据库名。e说明若要执行此项操作, Mi

3、crosoft? Jet 数据库引擎会搜索指定的表,并提取选定的列,再选择符合条件的行,然后按指定的顺序对得到的行进行排序或分组。SELECT语句不会更改数据库中的数据。SELECT通常是 SQL 语句中的第一个词。大多数SQL 语句都是 SELECT 或 SELECT.INTO 语句。SELECT语句最简化的语法为:SELECT fields FROM table可以通过星号(*)来选择表中所有的字段。以下的示例选择在Employees表中的所有字段:SELECT * FROM Employees;.专业资料 .如果一个字段名包括于FROM 子句的多个表中,请在该字段前面加上表名和. (圆点

4、)号。在下面的示例中, Department 字段同时存在于 Employees 表和 Supervisors 表中。 SQL 语句从 Employees 表中选择出部门并从 Supervisors 表中选择出主管名:SELECT Employees.Department, Supervisors.SupvNameFROM Employees INNER JOIN SupervisorsWHERE Employees.Department = Supervisors.Department;创建 Recordset对象时, Microsoft Jet数据库引擎将使用表的字段名作为Recordse

5、t对象中的Field对象名。如果需要其他字段名或者名称不适合用来生成该字段的表达式,请使用AS 保留字。以下示例使用标题Birth来命名生成的Recordset对象中的返回Field对象:SELECT BirthDateAS Birth FROM Employees;只要使用的聚合函数或查询返回的是不明确的或重复的Field对象名称,就必须使用AS 子句为该Field 对象另外提供一个替代名称。 以下示例使用标题 HeadCount 来命名生成的 Recordset 对象中的返回 Field 对象:SELECT COUNT(EmployeeID)AS HeadCount FROM Employ

6、ees;可以在 SELECT 语句中使用其他子句进一步约束和组织所返回的数据。有关详细信息, 请参阅相应子句的帮助主题。示例下面的一些示例假定 Employees 表中存在一个假想的 Salary 字段。请注意,该字段实际并不存在于罗斯文数据库的 Employees 表中。本例基于 SQL 语句创建一个动态集类型的 Recordset ,该语句选择 Employees 表中所有记录的 LastName 和 FirstName 字段。它调用 EnumFields 过程,该过程将 Recordset 对象的容显示到调试窗口。Sub SelectX1()Dim dbs As Database, rs

7、t As Recordset Modify this line to include the path to Northwind on your computer.专业资料 .Set dbs = OpenDatabase(Northwind.mdb) Select the last name and first name values of all records in the Employees table.Set rst = dbs.OpenRecordset(SELECT LastName, _& FirstName FROM Employees;) Populate the recor

8、dset. rst.MoveLast Call EnumFields to print the contents of the Recordset.EnumFields rst,12dbs.CloseEnd Sub以下示例计算PostalCode字段中有条目的记录数,并将返回的字段命名为Tally。Sub SelectX2()Dim dbs As Database, rst As Recordset Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwin

9、d.mdb) Count the number of records with a PostalCode value and return the total in the Tally field.Set rst = dbs.OpenRecordset(SELECT Count _& (PostalCode) AS Tally FROM Customers;).专业资料 . Populate the Recordset. rst.MoveLast Call EnumFields to print the contents of the Recordset. Specify field widt

10、h = 12. EnumFields rst, 12dbs.CloseEnd Sub以下示例显示雇员数以及平均薪水和最高薪水。Sub SelectX3()Dim dbs As Database, rst As Recordset Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb) Count the number of employees, calculate the average salary, and return the high

11、est salary.Set rst = dbs.OpenRecordset(SELECT Count (*) _& AS TotalEmployees, Avg(Salary) _& AS AverageSalary, Max(Salary) _& AS MaximumSalary FROM Employees;) Populate the Recordset.rst.MoveLast Call EnumFields to print the contents of the Recordset. Pass the Recordset object and.专业资料 . desired fie

12、ld width. EnumFields rst, 17dbs.CloseEnd Sub调用过程向 Sub 过程 EnumFields 传递了一个 Recordset 对象。然后该过程设置 Recordset 的字段的格式并将这些字段显示到调试窗口。intFldLen变量是需要的显示字段宽度。有些字段可能会被截断。Sub EnumFields(rst As Recordset, intFldLen As Integer)Dim lngRecords As Long, lngFields As LongDim lngRecCount As Long, lngFldCount As LongDim

13、 strTitle As String, strTemp As String Set the lngRecords variable to the number of records in the Recordset.lngRecords = rst.RecordCount Set the lngFields variable to the number of fields in the Recordset.Debug.Print There are & lngRecords _& records containing & lngFields _& fields in the recordse

14、t. Debug.Print Form a string to print the column heading. strTitle = Record .专业资料 .For lngFldCount = 0 To lngFields - 1strTitle = strTitle _& Left(rst.Fields(lngFldCount).Name _& Space(intFldLen), intFldLen)Next lngFldCount Print the column heading. Debug.Print strTitle Debug.Print Loop through the

15、Recordset; print the record number and field values.rst.MoveFirstFor lngRecCount = 0 To lngRecords - 1Debug.Print Right(Space(6) & _Str(lngRecCount), 6) & ;For lngFldCount = 0 To lngFields - 1 Check for Null values.If IsNull(rst.Fields(lngFldCount) ThenstrTemp = Else Set strTemp to the field content

16、s.Select Case _rst.Fields(lngFldCount).TypeCase 11strTemp = Case dbText, dbMemostrTemp = _rst.Fields(lngFldCount)Case Else.专业资料 .strTemp = _str(rst.Fields(lngFldCount)End SelectEnd IfDebug.Print Left(strTemp _& Space(intFldLen), intFldLen); Next lngFldCountDebug.Printrst.MoveNextNext lngRecCountEnd

17、SubAccess 开发人员参考SELECT.INTO 语句 (Microsoft Access SQL)创建生成表查询。语法SELECT field1, field2, . INTO newtable IN externaldatabaseFROM sourceSELECT.INTO 语句包含以下部分:部分说明field1、field2要复制到新表中的字段的名称。要创建的表的名称。它必须符合标准命名约定。如果newtable和现有表同名,会发生一个可捕newtable捉的错误。externaldatabas外部数据库的路径。有关路径的说明,请参阅IN 子句。esource从中选择记录的现有表

18、的名称。它可以是单个或多个表或查询。说明.专业资料 .可以通过生成表查询来存档记录,或制作表的备份副本,或者将副本导出到其他数据库,或作为某个特定时间段的数据的报表产生基础。 例如,可以通过每个月运行相同的生成表查询来生成一个月销售区域报表。注释您可能希望定义新表的主键。创建表时,新表中的字段会继承查询的基表中每个字段的数据类型和字段大小,但不会传输其他字段或表属性。若要将数据添加到现有表中,请使用INSERT INTO 语句,而不用创建追加查询。若要在运行生成表查询之前查找出将要选择哪些记录,请先检查使用相同选择条件的SELECT语句的结果。示例以下示例选择Employees表中的所有记录,

19、并将它们复制到名为Emp Backup 的新表中。Sub SelectIntoX()Dim dbs As DatabaseDim qdf As QueryDef Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb) Select all records in the Employees table and copy them into a new table, Emp Backup. dbs.Execute SELECT Employees

20、.* INTO _& Emp Backup FROM Employees; Delete the table because this is a demonstration. dbs.Execute DROP TABLE Emp Backup;dbs.CloseEnd Sub.专业资料 .Access 开发人员参考INSERT INTO 语句 (Microsoft Access SQL)将一个或多个记录添加到表中。该语句称为追加查询。语法多记录追加查询:INSERT INTO target (field1, field2, .) IN externaldatabaseSELECTsource.

21、field1, field2, .FROM tableexpression单记录追加查询:INSERT INTO target (field1, field2, .)VALUES (value1, value2, .)INSERT INTO 语句包含以下部分:部分说明target要追加记录的表或查询的名称。field1 、field2向其中追加数据的字段的名称(如果在target参数之后),或获取其中数据的字段的名称(如果在 source参数之后)。externaldatabas外部数据库的路径。有关路径的说明,请参阅IN 子句。esource要复制其中记录的表或查询的名称。tableexpr

22、ession作为插入记录来源的表的名称。 该参数可以是单个表名或者是从INNERJOIN、LEFTJOIN 或 RIGHTJOIN 操作或保存的查询产生的组合结果。要插入新记录特定字段中的值。每个值将插入到与该值在列表中的位置相对应的字段:value1 将value1 、value2插入到新记录的 field1字段, value2插入到 field2 字段等等。这些值必须用逗号分隔,并且用引号 () 引起来。说明通过如上所述的单记录追加查询语法,可以使用INSERT INTO 语句向表中追加单个记录。在这种情形下,代码要指定每个记录字段的名称和值。必须指定每一个将被赋值的记录字段,并且要给出该

23、字段的值。如果没有指定每个字段的值,则在缺少值的列中插入默认值或Null 值。记录将追加到表的末尾。通过如上所示的多字段追加查询语法的SELECT . FROM 子句,还可以使用 INSERT INTO 追加一组来自其他表或查询的记录。这种情形下,SELECT子句指定将要追加到指定的 target表中的字段。source 或 target表可以指定表或查询。如果指定了查询,MicrosoftAccess 数据库引擎会将记录追加到查询指定的任何表或所有表中。INSERT INTO 是可选的,但是如果包括它,应将它置于SELECT语句前面。.专业资料 .如果目标表中包含主键,请确保追加到主键字段中

24、的值是唯一的、非Null的;否则, MicrosoftAccess 数据库引擎不会追加这些记录。如果将一个自动编号字段记录追加到一个表中, 并且希望对该追加的记录重新编号, 那么不要在查询语句中包含自动编号字段。如果希望保持字段的原始值,请务必在查询语句中包含自动编号字段。通过 IN子句可以将记录追加到其他数据库的表中。若要新建表,请使用SELECT. INTO语句来创建一个生成表查询。若要在运行追加查询之前找出将要追加哪些记录, 可以先执行使用同样选择条件的选择查询并查看其结果。追加查询把记录从一个或多个表复制到其他表中。包含所追加的记录的表不会受追加查询影响。如果不想从其他表中追加现有记录

25、, 可以通过 VALUES 子句指定每个字段在新的单个记录中的值。 如果忽略了字段列表, VALUES子句必须包括该表中每个字段的值;否则, INSERT 操作将会失败。通过附加的带有 VALUES 子句的 INSERT INTO 语句,可以创建希望得到的每一个新增记录。示例本例选择假想的 New Customers 表中的所有记录并将这些记录添加到 Customers 表。如果未指定各个列,那么 SELECT 中的表列名必须与 INSERT INTO 中的表列名完全匹配。Sub InsertIntoX1()Dim dbs As Database Modify this line to inc

26、lude the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb) Select all records in the New Customers table and add them to the Customers table.dbs.Execute INSERT INTO Customers _& SELECT * _& FROM New Customers;dbs.CloseEnd Sub.专业资料 .以下示例在 Employees表中创建一个新记录。Sub InsertIntoX2()Di

27、m dbs As Database Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb) Create a new record in the Employees table. The first name is Harry, the last name is Washington, and the job title is Trainee.dbs.Execute INSERT INTO Employees _& (FirstName,La

28、stName, Title) VALUES _& (Harry, Washington, Trainee);dbs.CloseEnd SubAccess 开发人员参考UPDATE语句 (Microsoft Access SQL)创建一个更新查询,以便基于特定的条件更改指定表的字段值。语法UPDATE tableSET newvalueWHERE criteria;UPDATE语句包含以下部分:部分说明table表名,该表包含要修改的数据。newvalue表达式,该表达式确定将要插入到已更新记录的特定字段的值。criteria表达式,用来确定将更新哪些记录。只有满足该表达式的记录才会被更新。说明

29、.专业资料 .当需要更改多个记录或者需要更改的记录存在于多个表中时,UPDATE语句是最有用的。可以同时更改多个字段。 下面的示例把英国货主的订货量的值增加百分之十, 并且把运费的值增加百分之三。UPDATE OrdersSET OrderAmount = OrderAmount * 1.1,Freight = Freight * 1.03WHERE ShipCountry = UK;要点UPDATE不会生成结果集。而且,使用更新查询来更新记录后,您不能取消该操作。如果希望了解已更新哪些记录, 请先检查使用相同条件的选择查询的结果,然后再运行更新查询。不论什么时候都要维护数据的备份。如果更新了

30、错误记录,您可以从备份副本中检索这些记录。示例以下示例将当前的ReportsTo值为 2的所有雇员记录的ReportsTo字段中的值改为5 。Sub UpdateX()Dim dbs As DatabaseDim qdf As QueryDef Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb) Change values in the ReportsTo field to 5 for all employee records that

31、currently have ReportsTo values of 2.dbs.Execute UPDATE Employees _& SET ReportsTo = 5 _& WHERE ReportsTo = 2;.专业资料 .dbs.CloseEnd SubAccess 开发人员参考DELETE 语句 (Microsoft Access SQL)创建一个删除查询,用于从FROM子句中列出的一个或多个表中删除满足WHERE子句的记录。语法DELETE table.*FROM tableWHERE criteriaDELETE语句包含以下部分:部分说明table从中删除记录的表的名称,可选

32、。table从中删除记录的表的名称。criteria表达式,用于确定要删除哪些记录。注解希望删除多个记录时,DELETE语句特别有用。要从数据库中删除整个表,可以使用带有 DROP语句的 Execute 方法。但是,如果删除表,表的结构就会丢失;而使用 DELETE 语句时,只会删除表中的数据,表的结构和所有表属性(如字段属性和索引)将保持不变。可以使用 DELETE 从与其他表存在一对多关系的表中删除记录。 当查询中删除了关系的某一方中的相应记录时,级联删除操作会删除在关系的多方表中的相应记录。例如,在“客户”表和“订单”表的关系中,“客户”表是关系的一方,而“订单”表则是关系中的多方。如果

33、指定了级联删除选项,那么从“客户”表中删除一个记录将导致“订单”表中相应的记录被删除。删除查询将删除整个记录,而不仅仅删除特定字段中的数据。如果要删除特定字段的值,请创建一个更新查询,将相应字段的值更改为 Null 。要点使用删除查询删除记录后,无法取消该操作。如果要知道删除了哪些记录,先检查使用相同条件的选择查询的结果,然后运行删除查询。不论什么时候都要维护数据的备份。如果错删了记录,还可以从备份中检索这些记录。示例.专业资料 .本例删除职务为 Trainee 的雇员的所有记录。 当 FROM 子句中仅包含一个表时, 您不必在 DELETE 语句中列出该表的名称。Sub DeleteX()D

34、im dbs As Database, rst As Recordset Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb) Delete employee records where title is Trainee. dbs.Execute DELETE * FROM _& Employees WHERE Title = Trainee;dbs.CloseEnd SubAccess 开发人员参考EXECUTE语句 (Microsoft

35、 Access SQL)用于启动过程的执行。语法EXECUTE procedure param1, param2,EXECUTE语句包含以下部分:部分说明procedure要执行的过程的名称。param1, param2,由过程定义的参数的值。示例以下示例将查询命名为CategoryList。以下示例调用EnumFields过程,您可以在SELECT 语句示例中找到该过程。.专业资料 .Sub ProcedureX()Dim dbs As Database, rst As RecordsetDim qdf As QueryDef, strSql As String Modify this li

36、ne to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb)strSql = PROCEDURE CategoryList; _& SELECT DISTINCTROW CategoryName, _& CategoryID FROM Categories _& ORDER BY CategoryName; Create a named QueryDef based on the SQL statement.Set qdf = dbs.CreateQueryDef(NewQr

37、y, strSql) Create a temporary snapshot-type Recordset. Set rst = qdf.OpenRecordset(dbOpenSnapshot) Populate the Recordset.rst.MoveLast Call EnumFields to print the contents of the Recordset. Pass the Recordset object and desired field width.EnumFields rst, 15 Delete the QueryDef because this is a de

38、monstration.专业资料 .dbs.CloseEnd SubAccess 开发人员参考TRANSACTION语句 (Microsoft Access SQL)用于初始化和结束显式事务处理。语法初始化新事务处理。BEGIN TRANSACTION通过提交事务处理期间执行的所有工作来结束事务处理。COMMIT TRANSACTION | WORK通过回滚事务处理期间执行的所有工作来结束事务处理。ROLLBACK TRANSACTION | WORK说明事务处理不会自动启动。若要启动一个事务处理,必须通过BEGIN TRANSACTION进行显式调用。事务处理嵌套的最大深度为五级。若要启动一

39、个嵌套事务处理,请在现有的事务处理上下文中使用 BEGIN TRANSACTION。表不支持事务处理。Access 开发人员参考TRANSFORM语句 (Microsoft Access SQL)创建交叉表查询。语法TRANSFORM aggfunctionselectstatementPIVOT pivotfield IN (value1,value2, .)TRANSFORM语句包含以下部分:部分说明.专业资料 .aggfunction对所选数据进行计算的SQL 聚合函数 。selectstatementSELECT语句。pivotfield希望用于创建查询结果集中列标题的字段或表达式。v

40、alue1 、value2用于创建列标题的固定值。说明使用交叉表查询汇总数据时, 将从作为列标题的指定字段或表达式中选择值, 以便能够以一种比使用选择查询更紧凑的方式来查看数据。TRANSFORM是可选的,但如果包括它,则应为SQL 字符串中的第一个语句。它在指定作为行标题的字段的 SELECT 语句之前,在指定行分组方法的GROUPBY 子句之前。您也可以包含其他子句 (例如。指定其他选择或排序条件的WHERE)。还可以在交叉表查询中使用子查询作为谓词,特别是在WHERE子句中。pivotfield中返回的值作为查询结果集中的列标题。例如,在交叉表查询中如果依据月销售量来透视销售数据,将会创

41、建12个列。可以约束pivotfield以便从可选 IN子句中所列出的固定值(value1 ,value2 )选择标题。也可以包含固定值用于没有数据来创建其他列的情况。示例以下示例使用 SQL TRANSFORM子句创建交叉表查询,以显示每个雇员在 1994 年的每个日历季度完成的订单数。运行此过程需要使用 SQLTRANSFORMOutput函数。Sub TransformX1()Dim dbs As DatabaseDim strSQL As StringDim qdfTRANSFORM As QueryDefstrSQL = PARAMETERS prmYear SHORT; TRANS

42、FORM _& Count(OrderID) _& SELECT FirstName & & LastName AS _& FullName FROM Employees INNER JOIN Orders _& ON Employees.EmployeeID = _& Orders.EmployeeID WHERE DatePart _& (yyyy, OrderDate) = prmYear strSQL = strSQL & GROUP BY FirstName & _.专业资料 .& & LastName _& ORDER BY FirstName & & LastName _& PI

43、VOT DatePart(q, OrderDate) Modify this line to include the path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb)Set qdfTRANSFORM = dbs.CreateQueryDef _(, strSQL)SQLTRANSFORMOutput qdfTRANSFORM, 1994dbs.CloseEnd Sub以下示例使用 SQL TRANSFORM子句创建一个稍微复杂的交叉表查询,以显示每个雇员在1994 年的每个日历季度所完成的订单的总金

44、额(美元)。运行此过程需要使用SQLTRANSFORMOutput函数。Sub TransformX2()Dim dbs As DatabaseDim strSQL As StringDim qdfTRANSFORM As QueryDefstrSQL = PARAMETERS prmYear SMALLINT; TRANSFORM _& Sum(Subtotal) SELECT FirstName & _& & LastName AS FullName _& FROM Employees INNER JOIN _& (Orders INNER JOIN Order Subtotals _&

45、ON Orders.OrderID = _& Order Subtotals.OrderID) _.专业资料 .& ON Employees.EmployeeID = _& Orders.EmployeeID WHERE DatePart _& (yyyy, OrderDate) = prmYear strSQL = strSQL & GROUP BY FirstName & _& & LastName _& ORDER BY FirstName & & LastName _& PIVOT DatePart(q,OrderDate) Modify this line to include th

46、e path to Northwind on your computer.Set dbs = OpenDatabase(Northwind.mdb)Set qdfTRANSFORM = dbs.CreateQueryDef _(, strSQL)SQLTRANSFORMOutput qdfTRANSFORM, 1994dbs.CloseEnd SubFunction SQLTRANSFORMOutput(qdfTemp As QueryDef, _intYear As Integer)Dim rstTRANSFORM As RecordsetDim fldLoop As FieldDim bo

47、oFirst As BooleanqdfTemp.PARAMETERS!prmYear = intYearSet rstTRANSFORM = qdfTemp.OpenRecordset().专业资料 .Debug.Print qdfTemp.SQLDebug.PrintDebug.Print , , QuarterWith rstTRANSFORMbooFirst = TrueFor Each fldLoop In .FieldsIf booFirst = True ThenDebug.Print fldLoop.NameDebug.Print , ;booFirst = FalseElse

48、Debug.Print , fldLoop.Name;End IfNext fldLoopDebug.PrintDo While Not .EOFbooFirst = TrueFor Each fldLoop In .FieldsIf booFirst = True ThenDebug.Print fldLoopDebug.Print , ;booFirst = FalseElseDebug.Print , fldLoop;End IfNext fldLoopDebug.Print.MoveNextLoopEnd With.专业资料 .End FunctionAccess 开发人员参考INNE

49、R JOIN 操作 (Microsoft Access SQL)只要两个表的公共字段有匹配值,就将这两个表中的记录组合起来。语法FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2INNER JOIN 操作包含以下部分:部分说明table1 、要组合其中记录的表的名称。table2field1、被联接的字段的名称。如果它们不是数字,则这些字段的数据类型必须相同,并且包含同类数据,但field2是,它们不必具有相同的名称。compopr任何关系比较运算符:“ =”、“ ”、“ =”或“”。说明可以在任何 FROM

50、子句中使用 INNER JOIN 操作。这是最常用的联接类型。只要两个表的公共字段上存在相匹配的值, Inner 联接就会组合这些表中的记录。可以将 INNER JOIN 用于 Departments 及 Employees 表,以选择每个部门的所有雇员。相反,选择所有部门(即使某些部门中并没有分配雇员)或者所有雇员(即使某些雇员没有分配到任何部门),则可以使用LEFT JOIN 或 RIGHT JOIN 操作来创建外部联接。如果试图联接包含Memo 或 OLE 对象数据的字段,将产生错误。可以联接任何两个相似类型的数字字段。例如,可以联接自动编号和长整型字段,因为它们均是相似类型。然而,不能联接单精度型和双精度型类型字段。以下示例演示如何通过CategoryID字段联接 Categories和 Products表:SELECT CategoryName, ProductNameFROM Categories INNER JOIN ProductsON Categories.CategoryID = Products.CategoryID;在前面的示例中, CategoryID 是联接字段, 但是它不包含在查询输出中, 因为它不包含在 SELECT语句中。若要包含联接字段,请在 SELECT 语句中包含该字段名,在本例中为:.专业资料 .

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!