أجهزة الكمبيوترأنواع الملفات

SQL متميز: الوصف والأمثلة، والخصائص

في كثير من الأحيان عند استخدام SQL لاسترداد البيانات من الجداول، يتلقى المستخدم بيانات زائدة عن الحاجة هو وجود الصفوف المكررة متطابقة تماما. لتجنب هذه الحالة، استخدم SQL حجة واضحة في الجملة تحديد. سيناقش هذا المقال أمثلة لاستخدام هذه الحجة، وكذلك الحالات التي ينبغي التخلي عن الطلب من قبل حجة.

قبل أن نشرع في النظر في أمثلة محددة، إنشاء قاعدة البيانات المطلوبة اثنين من الجداول.

إعداد الجدول

تخيل أن لدينا معلومات مخازن قاعدة بيانات حول خلفية المعروضة في جدولين. هذا أوبوي الجدول (خلفية) مع الحقول معرف (معرف فريد) من نوع (نوع من ورق الجدران - ورقة، والفينيل، الخ)، واللون (اللون)، البنية (الهيكل) والسعر (السعر). والجدول Ostatki (بقايا) مع الحقول id_oboi (إشارة إلى المعرف الفريد في الجدول أوبوي) وعدد (عدد لفات في الأوراق المالية).

ملء جدول البيانات. في الجدول إضافة خلفية 9 تسجيلات:

أوبوي

الهوية

نوع

اللون

البنية

السعر

1

ورقة

متعدد الألوان

تنقش

56.9

2

ورقة مزدوجة الطبقات،

البيج

ناعم

114.8

3

الفينيل

البرتقالي

تنقش

504

4

الصوف

البيج

تنقش

1020.9

5

ورقة مزدوجة الطبقات،

البيج

ناعم

150.6

6

ورقة

متعدد الألوان

ناعم

95.4

7

الفينيل

أسمر

ناعم

372

8

الصوف

أبيض

تنقش

980.1

9

قماش

وردي

ناعم

1166.5

الجدول مع ما تبقى - وتسعة السجلات:

Ostatki

id_oboi

عد

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

نشرع في وصف ترتيب واضح في SQL.

وضع متميز في جملة SELECT

يجب وضع حجة واضحة على الفور بعد تحديد الكلمة في الاستعلامات. وتطبق على جميع الأعمدة المحددة في الجملة حدد، لأنه سيتم استبعاد من نتيجة الاستعلام النهائية هي سلاسل متطابقة تماما. وهكذا، مرة واحدة تكفي لتحديد عند كتابة SQL «تحديد واضح» طلب. والاستثناء الوحيد هو استخدام وظائف الكلي داخل المتميزة التي ننظر قليلا في وقت لاحق.

وينبغي أن نتذكر أن معظم قواعد البيانات ولا تعترف نوع من الطلب:

SELECT Ostatki.Count متميزة، أوبوي متميزة. *

من أوبوي

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

وكان هناك لا يعتبر حجة عدة مرات أو مرة واحدة محددة، ولكن قبل الثانية أو الثالثة أو عمود آخر المحدد. سوف تحصل على خطأ تشير إلى وجود خطأ في بناء الجملة.

استفسار متميزة التطبيق في مستوى

ومن الواضح أنه مع الجداول المناسبة هيكل المبنى وتعبئتها داخل جدول واحد تستبعد الوضع عندما تكون هناك سلاسل متطابقة تماما. ولذلك، فإن تنفيذ الاستعلام «اختر متميز *» مع عينة من جدول واحد غير عملي.

النظر في الوضع عندما نحتاج إلى معرفة نوع لدينا ورق الجدران، فقط للراحة، لترتيب النتائج بحسب نوع:

SELECT Oboi.type

من أجل أوبوي عن طريق نوع

والحصول على النتائج:

نوع

ورقة

ورقة

ورقة مزدوجة الطبقات،

ورقة مزدوجة الطبقات،

الفينيل

الفينيل

قماش

الصوف

الصوف

كما يتضح من الجدول أن هناك الصفوف المكررة. وإذا أضفنا الاقتراح اختر متميزة:

SELECT Oboi.type متميزة

من أجل أوبوي عن طريق نوع

نحصل على النتيجة دون تكرار:

نوع

ورقة

ورقة مزدوجة الطبقات،

الفينيل

قماش

الصوف

وهكذا، إذا إدخال البيانات بشكل صحيح في الجدول، ثم مباشرة بعد مكالمة هاتفية أو طلب من المشترين يمكننا الإجابة بأن خلفية السائل والألياف الزجاجية وورق الجدران الاكريليك المتاحة في متجر ليست كذلك. وبالنظر إلى أن مجموعة من المحلات التجارية عادة لا تقتصر على مائة ورق الجدران، وعرض قائمة بأنواع غير فريد ستكون كثيفة العمل تماما.

تطبيق دالات التجميع متميزة داخل

حجة واضحة SQL يمكن استخدامها مع أي وظيفة الكلية. ولكن بالنسبة للMin و Max تطبيقه لن يكون لها تأثير، ولكن عند حساب مجموع أو متوسط قيمة نادرا ما الحالة التي تكون فيها لن يكون لها أي واحدة أن تأخذ في الاعتبار التكرار.

لنفترض أننا نريد للتحقق من قدرة مستودعاتنا وإرسال هذا الطلب، يحسب العدد الإجمالي للملفات في الأوراق المالية:

مبلغ SELECT (Ostatki.count)

من Ostatki

وطلب إعطاء الجواب 143. إذا، ومع ذلك، فإننا سوف تتغير إلى:

مبلغ SELECT (Ostatki.count متميزة)

من Ostatki

نحصل على مجموع 119، كخلفية لأرقام جزء 3 و 7 في الأوراق المالية في نفس المبلغ. ومع ذلك، فمن الواضح أن الإجابة خاطئة.

غالبا ما تستخدم في SQL عدد وظيفة متميزة. لذلك، يمكننا بسهولة معرفة كيفية العديد من الأنواع الفريدة من ورق الجدران، لدينا:

عدد SELECT (Oboi.type متميزة)

من أوبوي

والحصول على نتيجة من 5 - ورقة عادية وطبقة مزدوجة الفينيل والأقمشة غير المنسوجة. بالتأكيد شهدنا جميعا الاعلانات مثل: "فقط لدينا أكثر من 20 أنواع مختلفة من ورق الجدران"، والتي من المفترض أن هذا المحل ليس مجرد بضع عشرات القوائم ومجموعة متنوعة من أنواع ورق الجدران الحديثة.

ومن المثير للاهتمام أنه في نفس الاستعلام، يمكنك تحديد وظائف متعددة مثل عدد يعزو متميزة، ودون ذلك. هذا هو الوضع الوحيد الذي متميزة في Select'e يمكن أن يكون الحالية عدة مرات.

عندما التخلي عن استخدام حجة

من استخدام حجة واضحة SQL ينبغي التخلي في واحدة من حالتين:

  1. إجراء مجموعة من الجداول ونحن على ثقة في قيمة فريدة لكل منهما. في هذه الحالة، واستخدام حجة غير مناسب، لأنه هو تحميل إضافية على الملقم أو العميل (تبعا لنوع من DBMS).
  2. هل أنت خائف من فقدان البيانات الخاصة بك. دعونا شرح.

يطلب مدرب افترض لك قائمة خلفية أن لديك، مع الإشارة إلى عمودين فقط - نوع ولون. من هذه العادة، كنت تعطي حجة واضحة:

SELECT Oboi.type متميزة، Oboi.color

من أوبوي

ORDER BY Oboi.type

و- تفقد بعض البيانات:

نوع

اللون

ورقة

متعدد الألوان

ورقة مزدوجة الطبقات،

البيج

الفينيل

أسمر

الفينيل

البرتقالي

قماش

وردي

الصوف

البيج

الصوف

أبيض

قد تعطي الانطباع بأن خلفية ورقة (التقليدية وطبقة مزدوجة) لدينا فقط عقل واحد، في الواقع، حتى في منطقتنا طاولة صغيرة اثنين من المادة (يؤدي دون متميز):

نوع

اللون

ورقة

متعدد الألوان

ورقة

متعدد الألوان

ورقة مزدوجة الطبقات،

البيج

ورقة مزدوجة الطبقات،

البيج

الفينيل

أسمر

الفينيل

البرتقالي

قماش

وردي

الصوف

أبيض

الصوف

البيج

لذلك، كما هو الحال في كتابة أي طلب مع ضرورة متميزة حجة أن نكون حذرين والمختصة لاتخاذ قرار بشأن تطبيقه، اعتمادا على المهمة.

بديل متميز

خلافا للحجة واضحة - كل حجة. في تطبيقه يتم تخزين الصفوف المكررة. ولكن مثل قاعدة البيانات الافتراضية، ويجد أنه من الضروري لعرض كافة القيم وحجة جميع - بل هي تصفيات من حجة وظيفة فعلية. نأمل أن تفهم الآن أن متميز (SQL) يستخدم. وصف تعطيك معلومات كاملة حول جدوى استخدام هذه الحجة في حل مشاكل مختلفة. بعد كل شيء، كما اتضح فيما بعد، حتى هذه الحجة بسيطة في تطبيقه يخفي إمكانية ملموسة جدا من فقدان بعض البيانات وعرض معلومات غير دقيقة.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.birmiss.com. Theme powered by WordPress.