کامپیوترانواع فایل

SQL متمایز: شرح، مثال ها، خواص

اغلب زمانی که شما استفاده از SQL برای بازیابی داده ها از جداول، کاربر را دریافت داده ها کار برکنار شده وجود یک ردیف تکراری کاملا یکسان است. برای جلوگیری از این وضعیت، استفاده از استدلال مجزا SQL در جمله را انتخاب کنید. این مقاله به نمونه هایی از استفاده از این استدلال، و همچنین موقعیت هایی که در نرم افزار باید با استدلال رها بحث.

پیش از ادامه به در نظر گرفتن نمونه های خاص، ایجاد پایگاه داده مورد نیاز یک زن و شوهر از جداول.

جدول آماده سازی

تصور کنید که ما یک پایگاه داده ذخیره اطلاعات در مورد تصویر زمینه ارائه شده در دو جدول. این OBOI جدول (تصویر زمینه) با قسمتهای شناسه (شناسه منحصر به فرد)، از نوع (نوع کاغذ دیواری - کاغذ، وینیل، و غیره)، رنگ (رنگ)، یک ساختار (ساختار) و قیمت (قیمت). و جدول Ostatki (پس مانده) با زمینه id_oboi (اشاره به شناسه منحصر به فرد است که در جدول ها Oboi) و شمارش (تعداد رول در سهام).

پر جدول داده ها. در جدول اضافه کردن تصویر زمینه 9 سوابق:

OBOI

شناسایی

نوع

رنگ

ساختار

قیمت

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 ادامه دهید.

محل در بند انتخاب متمایز

استدلال مجزا باید بلافاصله بعد از کلمه کلیدی در نمایش داده شد انتخاب قرار داده است. او به تمام ستون مشخص شده در جمله را انتخاب کنید اعمال می شود، به دلیل آن را از نتیجه پرس و جو نهایی حذف شدند رشته کاملا یکسان است. بنابراین، یک بار برای مشخص هنگام نوشتن SQL «را انتخاب کنید مجزا» درخواست کافی است. به استثنای استفاده از توابع جمع در داخل متمایز است که در کمی بعد نگاه است.

باید به خاطر که بسیاری از پایگاه داده و نوع خود را از درخواست به رسمیت نمی شناسد:

انتخاب Ostatki.Count متمایز، ها Oboi مجزا می باشد. *

از Oboi

INNER JOIN Ostatki بر Oboi.id = Ostatki.id_oboi

وجود دارد در نظر گرفته نشده استدلال چندین بار و یا یک بار مشخص شده، اما قبل از دوم، سوم و یا یکی دیگر از ستون انتخاب شده است. شما یک خطا با اشاره به یک اشکال در نحو است.

نرم افزار نمایش داده شد مشخص در استاندارد

واضح است که با ساختمان جداول ساختار مناسب و پر کردن آنها را در یک جدول تک از مطالعه حذف شدند وضعیت زمانی که رشته کاملا یکسان وجود دارد. بنابراین، اجرای پرس و جو «را انتخاب کنید متمایز *» با یک نمونه از یک جدول غیر عملی است.

یک وضعیت را در نظر بگیرید زمانی که ما نیاز به دانستن نوع ما تصویر زمینه، فقط برای راحتی، به مرتب کردن بر اساس نوع:

SELECT Oboi.type

از سفارش ها Oboi بر اساس نوع

و بدست آوردن نتایج:

نوع

مقاله

مقاله

مقاله دو لایه

مقاله دو لایه

وینیل

وینیل

پارچه

پشم گوسفند وجانوران دیگر

پشم گوسفند وجانوران دیگر

همانطور که در جدول دیده می شود ردیف تکراری وجود دارد. اگر ما این پیشنهاد را اضافه کنید انتخاب کنید مجزا:

انتخاب Oboi.type مجزا

از سفارش ها Oboi بر اساس نوع

ما به دست آوردن نتیجه بدون تکرار:

نوع

مقاله

مقاله دو لایه

وینیل

پارچه

پشم گوسفند وجانوران دیگر

بنابراین، اگر به درستی داده ها در یک جدول را وارد کنید، پس از آن بلافاصله پس از تماس تلفنی و یا درخواست از خریداران ما می توانیم پاسخ به این تصویر زمینه مایع، پشم شیشه و تصویر زمینه اکریلیک موجود در فروشگاه هستند. با توجه به اینکه طیف وسیعی از مغازه است که معمولا به یک صد تصویر زمینه محدود نمی شود، مشاهده لیست از انواع غیر منحصر به فرد خواهد بود کاملا کار فشرده.

استفاده از توابع مجموع مجزا در

استدلال مجزا SQL را می توان با هر تابع جمع استفاده می شود. اما برای حداقل و حداکثر کاربرد آن تاثیری نخواهد داشت، اما در هنگام محاسبه مجموع و یا مقدار متوسط به ندرت یک وضعیت که در آن هیچ کس مجبور به حساب تکرار.

فرض کنید می خواهیم به بررسی ظرفیت انبار ما و برای ارسال این درخواست، محاسبه تعداد کل کویل در انبار:

مجموع SELECT (Ostatki.count)

از Ostatki

درخواست پاسخ به پاسخ را 143. اگر با این حال، ما به تغییر خواهد داد:

مجموع SELECT (Ostatki.count مجزا)

از Ostatki

ما به دست آوردن کل 119، به عنوان تصویر زمینه برای شماره بخش 3 و 7 در سهام در همان مقدار است. با این حال، واضح است که پاسخ اشتباه است.

در اغلب موارد در SQL تعداد عملکرد مجزا استفاده می شود. بنابراین، ما به راحتی می توانید پیدا کردن بسیاری از نوع منحصر به فرد از تصویر زمینه، ما را داشته باشد:

SELECT COUNT (Oboi.type مجزا)

از Oboi

و در نتیجه از 5 - کاغذ معمولی و دو لایه وینیل و غیر پارچه بافته شده. مطمئنا همه دیده تبلیغات مانند: "فقط ما بیش از 20 نوع مختلف از تصویر زمینه،" که به معنای که این فروشگاه نه فقط یک زن و شوهر ده رول و انواع کاغذ دیواری انواع مدرن است.

جالب است که در پرس و جو همان، شما می توانید توابع چندگانه مشخص مانند تعداد نسبت متمایز، و بدون آن. این تنها وضعیت که در آن مشخص در Select'e می تواند چندین بار موجود است.

هنگامی که به کنار گذاشتن استفاده از استدلال

از استفاده از استدلال مجزا SQL باید در یکی از دو مورد رها:

  1. شما در انجام یک انتخاب جداول و اعتماد به نفس در ارزش منحصر به فرد در هر. در این مورد، استفاده از استدلال نامناسب است، چرا که آن را بار اضافی بر روی سرور و یا سرویس گیرنده (بسته به نوع DBMS) است.
  2. آیا شما ترس از دست دادن اطلاعات خود. اجازه دهید ما را توضیح دهد.

رئیس فرض می پرسد شما را به لیست تصویر زمینه است که شما باید با نشانه ای از تنها دو ستون - نوع و رنگ. از عادت، شما یک استدلال مجزا می دهد:

انتخاب Oboi.type متمایز، Oboi.color

از Oboi

ORDER BY Oboi.type

و - از دست دادن برخی از داده ها:

نوع

رنگ

مقاله

چند رنگ

مقاله دو لایه

بژ

وینیل

قهوهای

وینیل

نارنجی

پارچه

رنگ صورتی

پشم گوسفند وجانوران دیگر

بژ

پشم گوسفند وجانوران دیگر

سفید

ممکن است این تصور که تصویر زمینه کاغذ (معمولی و دو لایه) ما فقط یک ذهن، در واقع، حتی در میز کوچک ما از دو مقاله (نتیجه بدون مجزا) را:

نوع

رنگ

مقاله

چند رنگ

مقاله

چند رنگ

مقاله دو لایه

بژ

مقاله دو لایه

بژ

وینیل

قهوهای

وینیل

نارنجی

پارچه

رنگ صورتی

پشم گوسفند وجانوران دیگر

سفید

پشم گوسفند وجانوران دیگر

بژ

بنابراین، به عنوان در نوشتن هر درخواست با این استدلال نیاز مشخص به دقت و صالح برای تصمیم گیری در استفاده از آن، بسته به این کار است.

جایگزین مجزا

بر خلاف استدلال مجزا - همه استدلال است. در کاربرد آن ردیف های تکراری ذخیره می شود. اما به عنوان پیش فرض پایگاه داده و می فهمد که لازم به نمایش همه ارزش ها، استدلال تمام است - آن است و نه یک مقدماتی نسبت به استدلال عملکرد واقعی. ما امیدواریم که شما اکنون می دانند که مجزا (SQL) استفاده شده است. توضیحات شما اطلاعات کامل در مورد امکان استفاده از این استدلال در حل مسائل مختلف می دهد. پس از همه، همانطور که معلوم شد، حتی یک استدلال ساده در کاربرد آن امکان بسیار ملموس از دست دادن برخی از داده ها و نمایش اطلاعات نادرست پنهان می کند.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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