โดยทั่วไปกลไกจัดการฐานข้อมูลของ Microsoft Access SQL จะตรงตามมาตรฐาน ANSI -89 ระดับ 1 อย่างไรก็ตาม บางคุณลักษณะของ ANSI SQL จะไม่ถูกนํามาใช้ใน Microsoft Access SQL นอกจากนี้ Microsoft Access SQL ยังมีคําและฟีเจอร์ที่สงวนไว้ใน ANSI SQL
ความแตกต่างที่สําคัญ
-
Microsoft Access SQL และ ANSI SQL แต่ละตัวมีคําและชนิดข้อมูลที่สงวนไว้แตกต่างกัน เมื่อใช้ Microsoft OLE DB Provider จะมีคําสงวนเพิ่มเติม
-
กฎที่แตกต่างกันจะนําไปใช้กับ Between... และ สร้าง ซึ่งมีไวยากรณ์ต่อไปนี้:
expr1 [NOT] Between value1 And value2
ใน Microsoft Access SQL ค่า 1 สามารถมากกว่า value2; ใน ANSI SQL ค่า 1 ต้องเท่ากับหรือน้อยกว่า value2
-
Microsoft Access SQL สนับสนุนทั้งอักขระตัวแทน ANSI SQL และ อักขระตัวแทน เฉพาะของ Microsoft Access เพื่อใช้กับตัวดําเนินการ Like การใช้อักขระตัวแทน ANSI และ Microsoft Access เป็นแบบเฉพาะร่วมกัน คุณต้องใช้ชุดหนึ่งหรืออีกชุดหนึ่งและไม่สามารถผสมกันได้ อักขระตัวแทน ANSI SQL จะพร้อมใช้งานเมื่อใช้กลไกจัดการฐานข้อมูล Microsoft Access และตัวให้บริการ Microsoft Access OLE DB เท่านั้น ถ้าคุณพยายามใช้อักขระตัวแทน ANSI SQL ผ่าน Access หรือ DAO อักขระเหล่านั้นจะถูกแปลเป็นสัญพจน์
อักขระที่ตรงกัน
Microsoft Access SQL
ANSI SQL
อักขระใดๆ หนึ่งตัว
?
_ (ขีดล่าง)
อักขระศูนย์หรือมากกว่า
*
%
-
โดยทั่วไปแล้ว Microsoft Access SQL มีข้อจํากัดน้อยกว่า ตัวอย่างเช่น อนุญาตให้จัดกลุ่มและจัดลําดับบนนิพจน์
-
Microsoft Access SQL สนับสนุนนิพจน์ที่มีประสิทธิภาพมากขึ้น
ฟีเจอร์ที่ได้รับการปรับปรุงของ Microsoft Access SQL
Microsoft Access SQL มีฟีเจอร์ที่ได้รับการปรับปรุงดังต่อไปนี้:
คําสั่ง TRANSFORM ซึ่งให้การสนับสนุนคิวรีแบบตาราง
-
ฟังก์ชันการรวมของ SQL เพิ่มเติม เช่น StDev และ VarP
การประกาศ PARAMETERS สําหรับการกําหนดแบบสอบถามพารามิเตอร์
ฟีเจอร์ ANSI SQL ไม่ได้รับการสนับสนุนใน Microsoft Access SQL
Microsoft Access SQL ไม่สนับสนุนคุณลักษณะ ANSI SQL ต่อไปนี้:
-
การอ้างอิงฟังก์ชันการรวม DISTINCT ตัวอย่างเช่น Microsoft Access SQL ไม่อนุญาตให้ใช้ SUM(DISTINCT ชื่อคอลัมน์)
-
ส่วนคําสั่ง LIMIT TO nn ROWS ที่ใช้เพื่อจํากัดจํานวนแถวที่ส่งกลับโดยคิวรี คุณสามารถใช้เฉพาะ ส่วนคำสั่ง WHERE เพื่อจํากัดขอบเขตของคิวรี