تصویر Freepik
SQL یا استاندارد Query Language یک زبان برنامه نویسی برای مدیریت و دستکاری داده ها در یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) است. این زبان استانداردی است که در بسیاری از شرکتها برای کمک به کسبوکارها برای دسترسی راحت به دادهها استفاده میشود. از آنجا که به طور گسترده مورد استفاده قرار می گیرد، استخدام معمولاً SQL را به عنوان یکی از مهارت های ضروری ذکر می کند. به همین دلیل است که یادگیری در مورد SQL ضروری است.
یکی از مشکلات رایج افراد هنگام یادگیری SQL، درک پرس و جوها است، عمدتاً زمانی که شخص دیگری آنها را می نویسد. ما به عنوان یک تیم در شرکت ها کار می کنیم و اغلب نیاز به خواندن و درک سوالات SQL آنها داریم. بنابراین، ما باید ساختارشکنی پرس و جوهای SQL را تمرین کنیم و آنها را درک کنیم.
این مقاله یک فرآیند گام به گام برای خواندن و درک پرس و جوهای SQL را طی می کند. چگونه ما آن را انجام دهیم؟ بیایید وارد آن شویم.
اولین کاری که باید در هنگام مواجهه با پرس و جوی SQL انجام دهیم، درک هدف کلی پرس و جوهای SQL است. هدف کلی به این معنی نیست که ما کاملاً در مورد ساختار پرس و جو می دانیم. این بیشتر در مورد جریان های کلی است.
ما باید پرس و جوهای استاندارد SQL را برای درک پرس و جو عمومی SQL درک کنیم. اکثر پرس و جوهای SQL با عبارت شروع می شوند انتخاب کنید بند و دنبال کنید از عبارت. از آنجا ادامه میدهیم، اغلب پرسشها دنبال میشوند بپیوندید, مکانی که در آن, دسته بندی بر اساس, سفارش توسط، و داشتن بندها
بندهای بالا در پرس و جوهای SQL استاندارد هستند که باید آنها را درک کنیم. برای هر بند، توابع آنها عبارتند از:
- انتخاب کنید: چه ستون هایی باید از جدول گرفته شوند
- از: داده ها از کدام جدول آمده است
- بپیوندید: جداول را با شناسه مشخص شده ترکیب کنید
- مکانی که در آن: فیلتر داده ها بر اساس شرایط
- دسته بندی بر اساس: داده ها را بر اساس مقدار ستون سازماندهی کنید و اجازه دهید عملکرد تجمیع انجام شود.
- سفارش داده شده توسط: ترتیب نتایج داده ها را بر اساس ستون خاص ترتیب دهید
- داشتن: شرایط فیلتر برای عملکرد تجمع که نمی توان با آن مشخص کرد مکانی که در آن
اینها بندهای استاندارد هستند و آنچه باید در ابتدا هنگام درک ساختار کلی پرس و جوی SQL پیدا کنید. بیایید از کد مثال برای یادگیری بیشتر استفاده کنیم.
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
وقتی به پرس و جو بالا نگاه می کنید، سعی کنید بندهای استاندارد را شناسایی کنید. این بند به شما درک درستی از اینکه چه داده هایی انتخاب شده است (انتخاب کنید) از کجاست (از و بپیوندیدو شرایط (مکانی که در آن, دسته بندی بر اساس, سفارش داده شده توسطو داشتن).
به عنوان مثال، خواندن پرس و جو در بالا به شما درک موارد زیر را ارائه می دهد:
- ما سعی می کنیم سه نوع داده مختلف به دست آوریم: نام از جدولی به نام مشتریان، محصول از جدولی به نام خریدها، و تجمیع ستون های قیمتی که مشخص نمی کنند جدول از کجاست و با نام مستعار total_price (اطلاعات از بند) انتخاب کنید).
- داده های کلی از جداول خریدها و مشتریان بدست می آید که با استفاده از ستون cust_id از خریدها و ستون id از جدول مشتری به یکدیگر می پیوندند (اطلاعات از بند از جانب) و بپیوندید).
- ما فقط داده هایی را با مقدار ستون دسته بندی در جدول خریدها به عنوان "آشپزخانه" انتخاب می کنیم (اطلاعات از بند مکانی که در آن),
- گروه برای تابع تجمع با نام و ستون محصول که از جدول مربوطه آمده است (اطلاعات از بند دسته بندی بر اساس),
- همچنین از مجموع نتیجه تابع تجمیع فیلتر شده است که در آن مجموع_price بیش از 10000 است (اطلاعات از بند داشتن)، و
- داده ها را با توجه به total_price نزولی ترتیب دهید (اطلاعات از بند سفارش داده شده توسط).
این ساختار کلی پرس و جوی SQL است که باید بدانید و شناسایی کنید. از آنجا، ما میتوانیم از پرس و جوی پیشرفته بیشتر کاوش کنیم. بیایید به مرحله بعدی برویم.
زمانی پیش میآید که با یک پرس و جو پیچیده روبرو میشوید که تعداد زیادی از آنها وجود دارد انتخاب کنید بندها در همان پرس و جو وجود دارند. در این صورت باید نتیجه نهایی پرس و جو یا نهایی (اول) را بفهمیم. انتخاب کنید در پرس و جو می بینید نکته کلیدی این است که بدانید خروجی پرس و جو می خواهد چه باشد.
بیایید از کد پیچیده تری مانند کد زیر استفاده کنیم.
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
پرس و جو در حال حاضر پیچیده تر و طولانی تر به نظر می رسد، اما تمرکز اولیه باید روی نهایی باشد انتخاب کنید، که به نظر می رسد سعی در تولید کل تاریخچه هزینه و خرید مشتری دارد. سعی کنید نتیجه نهایی را ارزیابی کنید و آن را از آنجا تجزیه کنید.
ما بینشی از نتیجه باید از نمایش داده شد. قسمت بعدی این است که ببینیم شرایط فینال چگونه است انتخاب کنید هستند. بند شرایط از جمله مکانی که در آن, دسته بندی بر اساس, سفارش داده شده توسطو داشتن آنهایی بودند که نتیجه کلی داده ها را کنترل کردند.
سعی کنید شرایط پرس و جو ما را بخوانید و درک کنید و نتیجه نهایی پرس و جو خود را بهتر درک کنیم. به عنوان مثال، در پرس و جوی قبلی SQL ما، شرط نهایی فقط عبارت است سفارش داده شده توسط. این بدان معناست که نتیجه نهایی بر اساس قیمت کل محصول به ترتیب نزولی مرتب می شود.
دانستن شرایط نهایی به شما کمک می کند بخش قابل توجهی از پرس و جو و هدف کلی پرس و جو را درک کنید.
در نهایت، ما باید بفهمیم که داده ها از کجا می آیند. پس از اینکه اطلاعات مورد نظر را برای انتخاب و شرایط بدست آوردن آنها دانستیم، باید منبع را درک کنیم. آخرین بپیوندید این بند به ما در مورد نحوه تعامل جداول و جریان داده ها می دهد.
به عنوان مثال، پرس و جو پیچیده قبلی نشان می دهد که ما دو بار Join را اجرا کردیم. یعنی حداقل از سه منبع داده برای نتیجه نهایی استفاده کردیم. این اطلاعات در مراحل بعدی برای درک بیشتر نحوه ایجاد هر منبع داده ضروری است، به ویژه زمانی که منبع داده از جستجوی فرعی می آید.
پس از درک اینکه نتیجه نهایی چگونه باید باشد و از کجا می آید، باید جزئیات را دقیق تر بررسی کنیم. از اینجا، ما به هر یک از پرسشهای فرعی برمیگردیم و میفهمیم که چرا آنها چنین ساختاری دارند.
با این حال، ما سعی نمی کنیم آنها را در ساختارهای بالا به پایین نگاه کنیم. در عوض، ما باید سعی کنیم به سوالات فرعی که به نتیجه نهایی نزدیکتر هستند نگاه کنیم و به دورتر از نتیجه نهایی برویم. از مثال کد بالا، ابتدا باید سعی کنیم این کد را درک کنیم:
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
سپس، ما به سمت دورترین کد حرکت می کنیم که این یکی است:
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
ما میتوانیم فرآیند فکر نویسنده را به وضوح ردیابی کنیم، زمانی که هر زیرپرسش را از یک مورد نزدیکتر به نتیجه تا دورتر تجزیه کنیم.
اگر برای درک هر سوال فرعی نیاز به کمک دارید، فرآیند بالا را تکرار کنید. با کمی تمرین، تجربه بهتری در خواندن و درک پرس و جو خواهید داشت.
خواندن و درک پرس و جوهای SQL مهارتی است که همه باید در عصر مدرن داشته باشند، زیرا هر شرکتی با آنها سروکار دارد. با استفاده از راهنمای گام به گام زیر، زمان بهتری برای درک پرس و جوهای پیچیده SQL خواهید داشت. مراحل شامل:
- ساختار کلی پرس و جوی SQL را درک کنید
- انتخاب نهایی را درک کنید
- بند شرایط نهایی را درک کنید
- پیوستن نهایی را درک کنید
- ترتیب معکوس خواندن و تکرار
کورنلیوس یودا ویجایا دستیار مدیر علوم داده و نویسنده داده است. در حالی که به طور تمام وقت در آلیانز اندونزی کار می کند، دوست دارد نکات Python و Data را از طریق رسانه های اجتماعی و رسانه های نوشتاری به اشتراک بگذارد.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :است
- :نه
- :جایی که
- $UP
- 12
- 17
- 9
- a
- درباره ما
- بالاتر
- دسترسی
- مطابق
- پیشرفته
- پس از
- تجمع
- آلیانز
- اجازه دادن
- an
- و
- دیگر
- هستند
- مقاله
- AS
- ارزیابی کنید
- دستیار
- At
- نویسنده
- مستقر
- BE
- زیرا
- شروع
- در زیر
- بهتر
- شکستن
- کسب و کار
- اما
- by
- نام
- آمد
- CAN
- نمی توان
- مورد
- دسته بندی
- به وضوح
- نزدیک
- رمز
- ستون
- ستون ها
- ترکیب
- بیا
- می آید
- آینده
- مشترک
- شرکت
- شرکت
- پیچیده
- شرط
- شرایط
- مداوم
- کنترل
- cs
- مشتری
- مشتریان
- داده ها
- علم اطلاعات
- پایگاه داده
- معاملات
- جزئیات
- مختلف
- do
- نمی کند
- آیا
- پایین
- هر
- استخدام
- رویارویی
- روبرو شدن
- به طور کامل
- عصر
- به خصوص
- ضروری است
- هر
- هر کس
- مثال
- وجود داشته باشد
- تجربه
- اکتشاف
- فیلتر
- نهایی
- پیدا کردن
- نام خانوادگی
- جریان
- جریانها
- تمرکز
- به دنبال
- به دنبال
- پیروی
- برای
- از جانب
- تابع
- توابع
- بیشتر
- سوالات عمومی
- دریافت کنید
- دادن
- گروه
- راهنمایی
- آیا
- داشتن
- he
- کمک
- اینجا کلیک نمایید
- تاریخ
- چگونه
- HTTPS
- ID
- شناسه
- شناسایی
- if
- in
- شامل
- از جمله
- اندونزی
- اطلاعات
- اول
- بینش
- در عوض
- قصد
- تعامل
- به
- IT
- پیوستن
- JPG
- kdnuggets
- کلید
- انواع
- دانستن
- زبان
- بعد
- یاد گرفتن
- یادگیری
- کمترین
- پسندیدن
- لینک
- دیگر
- نگاه کنيد
- دوست دارد
- عمدتا
- مدیریت
- سیستم مدیریت
- مدیر
- مدیریت
- دستکاری کردن
- بسیاری
- متوسط
- به معنی
- رسانه ها
- مدرن
- بیش
- اکثر
- حرکت
- متحرک
- نام
- لازم
- نیاز
- بعد
- اکنون
- of
- غالبا
- on
- ONE
- آنهایی که
- فقط
- or
- سفارش
- ما
- تولید
- به طور کلی
- بخش
- مردم
- انجام
- شخص
- افلاطون
- هوش داده افلاطون
- PlatoData
- تمرین
- قبلی
- قیمت
- مشکلات
- روند
- تولید کردن
- محصول
- برنامه نويسي
- ارائه
- خرید
- خرید
- پــایتــون
- نمایش ها
- پرس و جو
- خواندن
- مطالعه
- تکرار
- قابل احترام
- نتیجه
- معکوس
- s
- همان
- علم
- دیدن
- به نظر می رسد
- را انتخاب کنید
- انتخاب شد
- اشتراک گذاری
- باید
- نشان می دهد
- قابل توجه
- مهارت
- مهارت ها
- به نرمی
- So
- آگاهی
- رسانه های اجتماعی
- برخی از
- منبع
- منابع
- خاص
- مشخص شده
- هزینه
- SQL
- استاندارد
- شروع
- گام
- مراحل
- ساختار
- ساخت یافته
- ساختار
- مجموع
- سیستم
- جدول
- صورت گرفته
- تیم
- نسبت به
- که
- La
- منبع
- شان
- آنها
- آنجا.
- آنها
- چیز
- این
- فکر
- سه
- از طریق
- زمان
- نکات
- به
- با هم
- جمع
- مسیر
- امتحان
- دو برابر
- فهمیدن
- درک
- us
- استفاده کنید
- استفاده
- با استفاده از
- معمولا
- ارزش
- از طريق
- راه رفتن
- می خواهد
- we
- خوب
- چی
- چه زمانی
- که
- در حین
- چرا
- به طور گسترده ای
- اراده
- با
- در داخل
- مهاجرت کاری
- کارگر
- خواهد بود
- می داد
- نویسنده
- نوشته
- شما
- زفیرنت