簡介
該系列的文章解釋了什么是Microsoft® Jet SQL,并說明了它如何在Access 2000的應(yīng)用程序中使用。本文是基礎(chǔ)、中級和高級三篇中的第二篇。這些文章循序漸進的說明了使用Jet SQL的語法和一些方法,并示范了對于access 2000來說較新的Jet SQL的特征。最后,本文的所有SQL參考都是針對Microsoft Jet 4.0 數(shù)據(jù)引擎所用的。
中級SQL說明
通過了解中級結(jié)構(gòu)化查詢語言的一些概念,用戶可以增強控制數(shù)據(jù)庫的結(jié)構(gòu)和對象的能力,并且可以通過許多有趣的和強有力的途徑操縱這些機構(gòu)中包含的數(shù)據(jù)。結(jié)合使用諸如DAO和ADO之類的數(shù)據(jù)訪問方法,中級SQL 可以很大程度的提高用戶應(yīng)用程序的靈活性及其表現(xiàn)。
基礎(chǔ)、中級和高級SQL的不同點
在基礎(chǔ)、中級和高級SQL之間劃分一條明顯的界限并不是一件容易的事情,在很多情況下,決定其所屬都只是簡單的決斷。但是對于該系列在access 2000中使用SQL的文章來說,還考慮了如下的一些方面:
首先一點在于SQL語句本身的復(fù)雜級別。在前面的文章中,我們努力使用那些常用的語句,而且是最簡單的形式。本文則在前面基礎(chǔ)篇的基礎(chǔ)上介紹了更復(fù)雜的語句。
其次是在Access 2000中已經(jīng)包含了一些新的SQL語句、子句和關(guān)鍵詞。盡管在本文中仍將使用Access上一版本中所包含的SQL語句,但是一定會出現(xiàn)一些在access中第一次出現(xiàn)的SQL語句,在高級SQL一文中也是如此。
最后,那些關(guān)于安全性和多用戶解決方案的SQL語句將在高級篇中介紹,因為這些語句常常是用于更復(fù)雜的應(yīng)用程序中的
通過使用中級SQL,用戶可以為你的access應(yīng)用程序增加更強的靈活性和能力。盡管簡單的和直接的SQL語句能夠完成很多的事情,但是使用更復(fù)雜的語句將擴展在數(shù)據(jù)庫中訪問和處理信息的方法范圍。使用中級SQL也將使得用戶可以更好的控制你的數(shù)據(jù)庫使用和維護工作
增強SQL
在Access 2000中,為了支持Access的新特性,為了和ANSI-92的標準更加一致,并且允許在Access 和 Microsoft® SQL Server™間的更好的兼容性,包含在Microsoft Jet 4.0數(shù)據(jù)引擎中的SQL作了許多增強。Jet數(shù)據(jù)引擎現(xiàn)在有兩種格式的SQL語法:一種是支持以前使用的SQL語法,另一種是支持新的SQL語法規(guī)范。需要格外注意的是,只有在用戶使用ActiveX® Data Objects (ADO)和Jet OLE DB provider時新的語法才是可用的,而當前通過access SQL View接口或者DAO是無法使用新的語法的。本文指出只有通過Jet OLE DB provider 和 ADO才能夠使用某個特定的SQL命令。
在Access的上一版本中,數(shù)據(jù)訪問對象(DAO)是主要的數(shù)據(jù)訪問方法。而現(xiàn)在發(fā)生了改變,盡管DAO 仍舊被支持,但新的數(shù)據(jù)訪問方法是使用ADO。ADO是微軟的通用數(shù)據(jù)訪問戰(zhàn)略(Microsoft's Universal Data access strategy)的一部分,其最基本的假設(shè)是無論數(shù)據(jù)存在那里都是可以訪問的,不管是數(shù)據(jù)庫、目錄結(jié)構(gòu)還是某重用戶自定義的數(shù)據(jù)庫。
在討論Microsoft Jet SQL 時,ADO是非常重要的,正如在前面提到的,一些新的SQL語句只有在使用ADO 和Jet OLE DB provider時才是可用的。在本文和與本文相配套的示范數(shù)據(jù)庫中,所有的代碼都是使用ADO些的。那些沒有特意指明為只有通過ADO才可用的SQL語句都可以通過access SQL View 用戶接口或 DAO來執(zhí)行。詳盡的關(guān)于ADO的討論超出了本文的范圍,用戶可以在下面的網(wǎng)站中找到最近的信息
http://www.microsoft.com/data/ado/.
SQL代碼規(guī)范
本文使用一致性的SQL代碼規(guī)范。與所有的代碼規(guī)范相同,目的是使用易讀和易于理解的方式來顯示代碼。這就要通過空格、換行和大寫關(guān)鍵字的結(jié)合使用來實現(xiàn)。通常來說,要使用大寫字母來打印SQL的關(guān)鍵字,如果SQL語句必須換行,盡量使SQL語句的主要部分一起換行??催^一些例子之后,相信讀者會對此有較好的感覺。
不合格式的SQL代碼
CREATE TABLE tblCustomers (CustomerID INTEGER NOT NULL, [Last Name] TEXT(50) NOT NULL, [First Name] TEXT(50) NOT NULL, Phone TEXT(10), Email TEXT(50))
良好格式的SQL代碼
CREATE TABLE tblCustomers (
...CustomerID INTEGER NOT NULL,
...[Last Name] TEXT(5) NOT NULL,
...[First Name] TEXT(50) NOT NULL,
...Phone TEXT(10),
...Email TEXT(50))
該系列的文章解釋了什么是Microsoft® Jet SQL,并說明了它如何在Access 2000的應(yīng)用程序中使用。本文是基礎(chǔ)、中級和高級三篇中的第二篇。這些文章循序漸進的說明了使用Jet SQL的語法和一些方法,并示范了對于access 2000來說較新的Jet SQL的特征。最后,本文的所有SQL參考都是針對Microsoft Jet 4.0 數(shù)據(jù)引擎所用的。
中級SQL說明
通過了解中級結(jié)構(gòu)化查詢語言的一些概念,用戶可以增強控制數(shù)據(jù)庫的結(jié)構(gòu)和對象的能力,并且可以通過許多有趣的和強有力的途徑操縱這些機構(gòu)中包含的數(shù)據(jù)。結(jié)合使用諸如DAO和ADO之類的數(shù)據(jù)訪問方法,中級SQL 可以很大程度的提高用戶應(yīng)用程序的靈活性及其表現(xiàn)。
基礎(chǔ)、中級和高級SQL的不同點
在基礎(chǔ)、中級和高級SQL之間劃分一條明顯的界限并不是一件容易的事情,在很多情況下,決定其所屬都只是簡單的決斷。但是對于該系列在access 2000中使用SQL的文章來說,還考慮了如下的一些方面:
首先一點在于SQL語句本身的復(fù)雜級別。在前面的文章中,我們努力使用那些常用的語句,而且是最簡單的形式。本文則在前面基礎(chǔ)篇的基礎(chǔ)上介紹了更復(fù)雜的語句。
其次是在Access 2000中已經(jīng)包含了一些新的SQL語句、子句和關(guān)鍵詞。盡管在本文中仍將使用Access上一版本中所包含的SQL語句,但是一定會出現(xiàn)一些在access中第一次出現(xiàn)的SQL語句,在高級SQL一文中也是如此。
最后,那些關(guān)于安全性和多用戶解決方案的SQL語句將在高級篇中介紹,因為這些語句常常是用于更復(fù)雜的應(yīng)用程序中的
通過使用中級SQL,用戶可以為你的access應(yīng)用程序增加更強的靈活性和能力。盡管簡單的和直接的SQL語句能夠完成很多的事情,但是使用更復(fù)雜的語句將擴展在數(shù)據(jù)庫中訪問和處理信息的方法范圍。使用中級SQL也將使得用戶可以更好的控制你的數(shù)據(jù)庫使用和維護工作
增強SQL
在Access 2000中,為了支持Access的新特性,為了和ANSI-92的標準更加一致,并且允許在Access 和 Microsoft® SQL Server™間的更好的兼容性,包含在Microsoft Jet 4.0數(shù)據(jù)引擎中的SQL作了許多增強。Jet數(shù)據(jù)引擎現(xiàn)在有兩種格式的SQL語法:一種是支持以前使用的SQL語法,另一種是支持新的SQL語法規(guī)范。需要格外注意的是,只有在用戶使用ActiveX® Data Objects (ADO)和Jet OLE DB provider時新的語法才是可用的,而當前通過access SQL View接口或者DAO是無法使用新的語法的。本文指出只有通過Jet OLE DB provider 和 ADO才能夠使用某個特定的SQL命令。
在Access的上一版本中,數(shù)據(jù)訪問對象(DAO)是主要的數(shù)據(jù)訪問方法。而現(xiàn)在發(fā)生了改變,盡管DAO 仍舊被支持,但新的數(shù)據(jù)訪問方法是使用ADO。ADO是微軟的通用數(shù)據(jù)訪問戰(zhàn)略(Microsoft's Universal Data access strategy)的一部分,其最基本的假設(shè)是無論數(shù)據(jù)存在那里都是可以訪問的,不管是數(shù)據(jù)庫、目錄結(jié)構(gòu)還是某重用戶自定義的數(shù)據(jù)庫。
在討論Microsoft Jet SQL 時,ADO是非常重要的,正如在前面提到的,一些新的SQL語句只有在使用ADO 和Jet OLE DB provider時才是可用的。在本文和與本文相配套的示范數(shù)據(jù)庫中,所有的代碼都是使用ADO些的。那些沒有特意指明為只有通過ADO才可用的SQL語句都可以通過access SQL View 用戶接口或 DAO來執(zhí)行。詳盡的關(guān)于ADO的討論超出了本文的范圍,用戶可以在下面的網(wǎng)站中找到最近的信息
http://www.microsoft.com/data/ado/.
SQL代碼規(guī)范
本文使用一致性的SQL代碼規(guī)范。與所有的代碼規(guī)范相同,目的是使用易讀和易于理解的方式來顯示代碼。這就要通過空格、換行和大寫關(guān)鍵字的結(jié)合使用來實現(xiàn)。通常來說,要使用大寫字母來打印SQL的關(guān)鍵字,如果SQL語句必須換行,盡量使SQL語句的主要部分一起換行??催^一些例子之后,相信讀者會對此有較好的感覺。
不合格式的SQL代碼
CREATE TABLE tblCustomers (CustomerID INTEGER NOT NULL, [Last Name] TEXT(50) NOT NULL, [First Name] TEXT(50) NOT NULL, Phone TEXT(10), Email TEXT(50))
良好格式的SQL代碼
CREATE TABLE tblCustomers (
...CustomerID INTEGER NOT NULL,
...[Last Name] TEXT(5) NOT NULL,
...[First Name] TEXT(50) NOT NULL,
...Phone TEXT(10),
...Email TEXT(50))

