استخدام بناء جملة SELECT في ADO
الكاتب:Eve Cole
وقت التحديث:2009-05-30 19:54:37
حدد التعبير
بعد ذلك، دعونا نلقي نظرة على تعبير SELECT الذي يتم استخدامه للعثور على السجلات التي تستوفي شروطًا معينة في الجدول.
حدد [الكلمة الأساسية] { * |. اسم الجدول.* |. [اسم الجدول.] اسم الحقل 1 [اسم مستعار 1] [، [اسم الجدول.] اسم الحقل 2 [اسم مستعار 2] [، ...]]}
من تعبير الجدول [، ...] [في جدول خارجي]
[أين... ]
[المجموعة حسب...]
[وجود...]
[الطلب حسب...]
[مع خيار الوصول إلى الملكية]
الكلمة الأساسية: يمكن استخدامها لتحديد عدد السجلات التي يتم إرجاعها، ويمكن ضبطها على ALL أو DISTINCT أو DISTINCTROW أو TOP. إذا لم يتم تحديد أي مسند، فإن القيمة الافتراضية هي ALL.
*: حدد كافة الحقول.
الاسم المستعار: استبدال اسم الحقل الأصلي في الجدول.
تعبير الجدول: واحد أو أكثر من أسماء الجداول المفصولة بفواصل.
الجدول الخارجي: إذا كان الجدول غير موجود في الجدول الحالي، فيجب تعيين اسم الجدول الذي يحتوي على الجدول في عملية الجدول.
لن يؤدي تنفيذ تعبير SELECT إلى تغيير البيانات الموجودة في الجدول.
بناء الجملة الأساسي لتعبير SELECT هو:
حدد * من تعبير الجدول
يمكنك استخدام العلامة النجمية (*) لتحديد كافة حقول الجدول. على سبيل المثال، يحدد المثال التالي جميع الحقول في جدول [المنتج]:
اختر * من المنتجات
عندما يحتوي اسم الحقل على مسافات أو علامات ترقيم، يجب وضعه بين قوسين [ ]. على سبيل المثال:
اختر [منتجات الكمبيوتر]
إذا كان اسم الحقل في عبارة FROM يحتوي على جداول متعددة، فستحتاج إلى إضافة اسم الجدول وعامل النقطة (.) قبل اسم الحقل، أي اسم الجدول. اسم الحقل. على سبيل المثال، يحدد المثال التالي حقل [السعر] في جدول [المنتج] وحقل [الكمية] في جدول [الطلب]:
حدد سعر المنتج، الطلب، الكمية
من المنتجات والأوامر
حيث رمز المنتج = order.code
عند استخدام كائن Recordset، لا تتعرف Recordset على تنسيق rs (اسم الجدول. اسم الحقل)، أي أن rs ("product.price") سيتسبب في حدوث خطأ، ويجب عليك استخدام AS لتعيين الاسم المستعار للحقل اسم. على سبيل المثال:
حدد سعر المنتج.سعر AS، وكمية الطلب
من المنتجات والأوامر
حيث رمز المنتج = order.code
بهذه الطريقة، يمكنك استخدام rs ("السعر") و rs ("الكمية") لقراءة بيانات حقولها.
بناء الجملة المتعلق بتعبيرات SELECT:
الكلمات الرئيسية: الكل/متميز/مميز/أعلى.
أين: ابحث عن سجلات البيانات في الجدول "من" التي تستوفي شروطًا محددة. أين يمكن استخدام عوامل التشغيل BETWEEN وLIKE وIN التالية:
بين...و: تحديد ما إذا كانت قيمة التعبير تقع ضمن النطاق المحدد.
مثل: البحث عن الكلمات الرئيسية المطابقة.
في التعبير: نطاق محدود.
ليس في التعبير: يشير إلى أنه لا ينتمي إلى النطاق المحدد.
جملة ORDER BY: يمكنك ضبط حقول الفرز.
جملة GROUP BY: قم بإجراء إحصائيات حول نتائج الاستعلام.
جملة HAVING: تُستخدم في تعبير SELECT لتصفية السجلات التي تم تجميعها حسب الإحصائيات.
الاتحاد: يمكن دمج نتائج مجموعات متعددة من الاستعلامات.
الانضمام: ضم السجلات الميدانية في جدولين.
استعلام فرعي: يمكن أن يتضمن التعبير تعبير SELECT.
تحديد...إلى: إنشاء جدول تم إنشاؤه بناءً على نتائج الاستعلام.
التفاصيل هي كما يلي:
الكل/مميز/مميز/أعلى الكلمات الرئيسية
عند استخدام استعلام SELECT، يمكنك إضافة كلمات أساسية لتحديد السجلات التي يتم الاستعلام عنها. على النحو التالي:
ALL: إرجاع كافة السجلات.
مميز: عند وجود سجلات مكررة في الحقل المحدد، سيتم إرجاع سجل واحد فقط، ولن يتم تكرار السجلات.
DISTINCTROW: لن يتم إرجاع أي من السجلات الموجودة في الحقل المحدد إذا كان هناك تكرارات.
TOP: إرجاع السجلات السابقة أو النسب المئوية للسجلات.
بناء الجملة هو كما يلي:
حدد [الكل | مميز |.
من الجدول
ALL تقوم بإرجاع كافة السجلات. عندما لا تتم إضافة أي كلمة رئيسية، يكون لها نفس معنى إضافة الكل، وسيتم إرجاع كافة السجلات. على سبيل المثال، المثالان التاليان لهما نفس نتائج التنفيذ، وكلاهما يعيد جميع السجلات من جدول المنتج:
اختر الكل * من المنتجات
نتيجة التنفيذ هي نفسها:
اختر * من المنتجات
لا يقوم DISTINCT بتحديد البيانات المكررة في الحقل المحدد. بعد استخدام DISTINCT، ستدرج نتائج الاستعلام قيمة البيانات لكل حقل بعد SELECT DISTINCT، وإذا كانت متطابقة، فسيتم أخذ سجل واحد فقط، وبعبارة أخرى، لن يكون هناك تكرار للبيانات في الحقل المحدد. على سبيل المثال، توجد بعض المنتجات بنفس اسم المنتج في جدول المنتج، وسيقوم تعبير SQL الخاص بـ DISTINCT بإرجاع سجل واحد فقط يحتوي حقله على نفس بيانات اسم المنتج:
حدد اسم المنتج المميز عن المنتج
إذا لم تقم بتضمين DISTINCT، فسيقوم استعلام المثال أعلاه بإرجاع عدة سجلات تحتوي على نفس اسم المنتج.
إذا تم تحديد عدة حقول بعد عبارة SELECT DISTINCT، فلن يتم تكرار القيم المجمعة لجميع الحقول في نتائج الاستعلام.
لا يقوم DISTINCTROW بإرجاع كافة السجلات المكررة للحقل المحدد.
TOP n [PERCENT]، يُرجع السجلات السابقة أو النسبة المئوية للسجلات. يمكن تحديد ترتيب الفرز باستخدام جملة ORDER BY. على سبيل المثال، ابحث عن أسماء العشرة الأوائل من الطلاب:
اختر أفضل 10 اسم
من الطلاب
ترتيب حسب العشرات
إذا لم تقم بتضمين جملة ORDER BY، فسيقوم الاستعلام بإرجاع 10 سجلات عشوائية من جدول الطالب.
لا يختار TOP بين نفس القيم إذا كانت النتائج 10 و11 متماثلة، فسيقوم الاستعلام بإرجاع 11 سجلاً.
يمكنك استخدام PERCENT لتعيين سجلات النسب المئوية القليلة الأولى، على سبيل المثال، للعثور على أسماء أفضل 10% من الطلاب:
اختر أعلى 10 بالمائة من الاسم
من الطلاب
ترتيب حسب العشرات
دعونا نلقي نظرة على مثال لاستخدام أمر SQL هذا في برنامج ASP.
يمكنك استخدام Distinct للبحث عن سجلات فريدة على سبيل المثال، يكون برنامج ASP rs7.asp كما يلي، [أدخل في المنتج (الاسم الرمزي، الاسم) حدد اسم الرمز المميز، الاسم من المنتج حيث الاسم الرمزي = 'C2000'] باستخدام Distinct. وإدراج في، الاسم الرمزي الجديد هو سجلات C2000:
<%
'رمز مميز، الاسم يحدد الرمز فقط، وما إذا كانت الأسماء متماثلة، أضف سجلًا واحدًا فقط إذا كانت متماثلة
sql = "أدخل في المنتج (الاسم الرمزي، الاسم) حدد الاسم الرمزي المميز، الاسم من المنتج حيث الرمز='C2000'"
تعيين = conn1.Execute (sql)
تعيين rs3 = Server.CreateObject("ADODB.Recordset")
sql = "اختر * من المنتج حيث الرمز='C2000'"
rs3.Open SQL، conn1،1،1،1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">الكود</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">الاسم</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">السعر</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">الكمية</FONT></TD>
</TR>
<% افعل بينما لا rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("codename")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("name")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("price")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("quantity")%></TD>
</TR>
<%
rs3.MoveNext
حلقة
rs3.إغلاق
%>
</الجدول>
أين
WHERE يبحث عن سجلات البيانات التي تفي بشروط معينة في الجدول FROM، ويتم استخدامه في تعبيرات SELECT أو UPDATE أو DELETE.
إذا لم يتم تحديد جملة WHERE في استعلام SELECT، فسيتم إرجاع كافة البيانات الموجودة في الجدول. إذا قمت بالاستعلام عن جداول متعددة في SELECT دون استخدام جملة WHERE أو جملة JOIN، فستكون نتيجة الاستعلام هي حاصل ضرب البيانات في جداول متعددة.
حيث تحدد شروطًا محددة، مثل:
من المنتج حيث الفئة = 'الكمبيوتر': تشير إلى تحديد [المنتج] الذي تكون [فئته] هي [الكمبيوتر]
حيث السعر بين 1000 و5000: يشير إلى أن السعر يتراوح بين 1000 و5000.
يمكن أن تحتوي جملة WHERE على ما يصل إلى 40 تعبيرًا تشغيليًا، والتي ترتبط بواسطة عوامل تشغيل منطقية مثل AND أو OR.
عند ضبط شروط معينة، قم بإضافة رموز مختلفة قبل وبعد حسب نوع الحقل، على سبيل المثال:
النص: أضف علامات الاقتباس المفردة قبل وبعد، على سبيل المثال، فئة WHERE = 'Computer'.
الأرقام: لا توجد علامات قبل وبعد، مثل أين الكمية > 100.
التاريخ: أضف # علامة قبل وبعد، على سبيل المثال، تاريخ WHERE = #5/15/99#.
WHERE يمكن استخدام عوامل التشغيل BETWEEN وLIKE وIN التالية.