آموزش ویدیویی پایگاه داده، SQL و NoSQL و ...
2.08K subscribers
224 photos
116 videos
1.83K links
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs

* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
Download Telegram
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏بررسی انواع ذخیره‌سازی داده در SQLite

نکته 1:
‏SQLite از یک سیستم نوع‌بندی پویا (Dynamic Typing) استفاده می‌کند که در آن، نوع داده به خود مقدار (Value) مرتبط است و نه به ستونی که مقدار در آن ذخیره می‌شود.

نکته 2:
‏ستون‌های جدول دارای یک وابستگی نوع (Type Affinity) هستند که یک نوع داده ترجیحی را مشخص می‌کند، اما SQLite اجازه می‌دهد داده‌هایی با انواع فیزیکی متفاوت در آن ستون ذخیره شوند.

نکته 3:
‏SQLite پنج کلاس ذخیره‌سازی اصلی دارد: NULL (برای مقادیر تهی)، INTEGER (برای اعداد صحیح علامت‌دار)، REAL (برای مقادیر ممیز شناور)، TEXT (برای رشته‌های متنی) و BLOB (برای داده‌های باینری خام).

نکته 4:
‏کلاس ذخیره‌سازی INTEGER برای ذخیره اعداد صحیح با طول متغیر از ۱ تا ۸ بایت استفاده می‌شود که این امر، بهینه‌سازی فضای ذخیره‌سازی را در پی دارد.

نکته 5:
‏REAL برای ذخیره مقادیر ممیز شناور با دقت بالا (۸ بایتی IEEE-754) به کار می‌رود و برای محاسبات عددی نیازمند دقت بالا مناسب است.

نکته 6:
‏کلاس ذخیره‌سازی TEXT برای نگهداری رشته‌های متنی با طول متغیر استفاده می‌شود که می‌تواند بر اساس کدگذاری‌های UTF-8 یا UTF-16 ذخیره گردد.

نکته 7:
‏BLOB (Binary Large Object) داده‌های باینری را به صورت خام، بدون هیچ گونه تبدیل یا تفسیر کدگذاری، ذخیره می‌کند و برای نگهداری تصاویر، فایل‌ها یا هندسه‌های WKB مناسب است.

نکته 8:
‏هنگامی که یک مقدار درج می‌شود، SQLite تلاش می‌کند آن را به کلاس ذخیره‌سازی ترجیحی (بر اساس Affinity ستون) تبدیل کند، اما در صورت عدم موفقیت، آن را به صورت کلاس اولیه خود نگه می‌دارد.

نکته 9:
‏ستون‌هایی که با نوع NUMERIC Affinity تعریف می‌شوند، انعطاف‌پذیرترین هستند و می‌توانند مقادیر INTEGER، REAL یا TEXT را بسته به فرمت ورودی ذخیره نمایند.

نکته 10:
‏AFFINITY NONE حالتی است که در آن ستون هیچ نوع ترجیحی را اعمال نمی‌کند و به سادگی از کلاس ذخیره‌سازی داده‌ای که به آن وارد می‌شود، استفاده می‌نماید.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏تاثیر ترتیب جداول در LEFT JOIN بر نتیجه نهایی

‏اگه تو LEFT JOIN اول جدول کوچیکتر بذاری، ممکنه سرعت کوئری خیلی بهتر شه! 😉💨

‏به ترتیب جداول تو LEFT JOIN دقت کن، چون نتیجه رو عوض می‌کنه، مثل فرق شب و روز! 🌙☀️

‏فکر کن LEFT JOIN مثل یه قرار ملاقاته، حتماً اول اونی که می‌خوای همه چیش رو داشته باشی رو بذار. 🥰

‏وقتی LEFT JOIN می‌زنی، جدولی که توی LEFT قرار می‌گیره، کل داده‌هاش رو نگه می‌داره. یادت نره! 🤔

‏اگه فکر می‌کنی نتیجه LEFT JOIN اون چیزی نیست که می‌خواستی، اول ترتیب جداول رو چک کن. 🧐

‏یه وقتایی با عوض کردن ترتیب جدول‌ها تو LEFT JOIN، یه عالمه کد تکراری رو حذف می‌کنی. دمش گرم! 😎👍

‏برای فهم بهتر LEFT JOIN، یه مثال ساده با دوتا جدول کوچولو بزن. خیلی کمک می‌کنه! 📝

‏اگه دیدی LEFT JOINت کند شده، سریع برو سراغ ترتیب جداول، شاید مشکل همین باشه. ⚡️

‏بهینه سازی LEFT JOIN با ترتیب درست جداول، یه شاهکاره! 👑

‏همیشه قبل از اجرای کوئری‌های پیچیده، یه بار LEFT JOIN رو با ترتیب‌های مختلف تست کن. خیالت راحت می‌شه.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQL

🟣 موضوع : ‏دستور CREATE DATABASE و CREATE TABLE

نکته :

‏اسم جدول‌هات رو با معنی بذار. اینجوری بعداً خودت و بقیه سردرگم نمی‌شید! CREATE TABLE karbaran (...); 💡👍


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏تفاوت بین ON و USING و زمان استفاده از هرکدام

‏اگه میخوای شرط JOIN رو تعیین کنی، ON خیلی انعطاف‌پذیره و میتونی هر شرطی بذاری! 🤔 مثلاً ON table1.id = table2.foreign_id AND table1.status = 'active' 🔥

‏USING فقط وقتی به دردت میخوره که اسم ستون‌ها توی دو تا جدول یکیه! اینجوری خیلی شیک میشه: USING (common_column) 💡

‏یادت باشه با ON میتونی شرط‌های پیچیده‌تری بنویسی که با USING نمیشه! 🧐 مثلاً مقایسه ستون‌ها با مقادیر ثابت یا استفاده از توابع.

‏وقتی از USING استفاده میکنی، MySQL خودش یه ستون از دوتا جدول رو انتخاب میکنه، پس حواست باشه کدوم ستون رو میخوای! 🤓

‏برای JOIN های ساده که اسم ستون‌ها یکیه، USING خیلی تمیزتر و خواناتر از ON هست. 👌

‏اگه میخوای JOIN های پیچیده با شرط‌های خاص داشته باشی، ON بهترین دوستته! 😎

‏با ON میتونی performance رو بهتر کنترل کنی، چون دقیقاً مشخص میکنی کدوم ستون‌ها مقایسه بشن. 🚀

‏USING برای وقتی خوبه که مطمئنی اسم ستون‌ها یکیه و هیچ ابهامی وجود نداره! 🤩

‏اگه میخوای کدتو خواناتر کنی و JOIN هات خیلی پیچیده نیستن، USING گزینه خوبیه. 👍

‏در نهایت، انتخاب بین ON و USING بستگی به شرایط خاص پروژه و سلیقه خودت داره! 🎉


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏شبیه‌سازی FULL OUTER JOIN با استفاده از LEFT JOIN و RIGHT JOIN

‏اگه FULL OUTER JOIN نداری، نگران نباش! یه LEFT JOIN بزن، بعد یه RIGHT JOIN، و در آخر با UNION ALL بچسبونشون به هم! خیلی باحاله! 😎

‏یادت باشه NULL هارو تو LEFT JOIN و RIGHT JOIN چک کنی که داده تکراری نداشته باشی! اینجوری خیالت راحته! 👌🔥

‏برای شبیه سازی FULL OUTER JOIN حتماً شرط های JOIN رو تو هر دو طرف LEFT و RIGHT دقیقا یکی بزن. این خیلی مهمه! 💡

‏وقتی داری UNION ALL می‌کنی، ستون‌هات باید دقیقا یکی باشن! اگه نیستن، NULL بذار جاشون. 🤓

‏قبل از UNION ALL حتماً اسم ستون‌هاتو یکی کن که قاطی نکنه! یه AS بزن حله! 😉

‏اگه سرعتت کمه، حتماً ایندکس روی ستون‌های JOIN داشته باش! سرعتت فضایی میشه! 🚀

‏مراقب باش! اگه دیتات خیلی بزرگه، این کار ممکنه یه کم طول بکشه! پس صبور باش!

‏یادت باشه که این روش شبیه سازی FULL OUTER JOIN هست و ممکنه تو بعضی موارد با FULL OUTER JOIN واقعی فرق کنه. 🤔

‏قبل از اینکه این روش رو تو پروژه‌ی اصلی استفاده کنی، حتماً یه بار تو محیط تستی امتحانش کن!

‏اگه بازم مشکل داشتی، نگران نباش! تو گوگل یه سرچ بزن، کلی راه حل دیگه هم هست! 😇


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏مبانی ذخیره‌سازی داده در SQLite

نکته 1:
‏SQLite کل دیتابیس رو تو فقط یه فایل (با پسوند .sqlite یا .db) ذخیره می‌کنه. انگار تمام اطلاعاتت تو یه جعبه جادویی جا شده! 📦

نکته 2:
‏تو SQLite، نوع داده‌ی ستون (مثلاً INTEGER) یه پیشنهاده! چون SQLite از یه سیستم به اسم "Type Affinity" استفاده می‌کنه و اجازه می‌ده داده‌های مختلفی رو ذخیره کنی. 💡

نکته 3:
‏SQLite داده‌ها رو در صفحه‌ها (Pages) ذخیره می‌کنه که اندازه‌ی پیش‌فرضشون معمولاً 4 کیلوبایته. این صفحه‌ها مثل آجر ساختمون دیتابیس هستن. 🧱

نکته 4:
‏SQLite از ساختار داده‌ی B-Tree برای ذخیره کردن جدول‌ها و ایندکس‌ها استفاده می‌کنه. این ساختار باعث می‌شه جستجو و دسترسی به داده‌ها خیلی سریع باشه. 🌳🚀

نکته 5:
‏برخلاف دیتابیس‌های دیگه، SQLite توی یه ستون از نوع INTEGER می‌تونه یه عدد خیلی بزرگ رو با فضای کمتری ذخیره کنه. این بهینه‌سازی رو "Variable Length Encoding" می‌گن. 🤏

نکته 6:
‏برای ذخیره کردن متن، SQLite از نوع داده‌ی TEXT استفاده می‌کنه و می‌تونه هر چیزی از UTF-8 بگیر تا UTF-16 رو توش جا بده. متون فارسی هم عالی ذخیره می‌شن! 📝

نکته 7:
‏اگه داده‌های خام یا فایل‌های باینری (مثل عکس یا صدا) داری، باید از نوع داده‌ی BLOB استفاده کنی. SQLite این داده‌ها رو همونطور که هستن ذخیره می‌کنه. 📸

نکته 8:
‏ستون ROWID یه شناسه داخلی و مخفیه که به صورت خودکار به هر ردیف اختصاص داده می‌شه. اگه INTEGER PRIMARY KEY تعریف کنی، ستون تو جاشو می‌گیره. 🔢

نکته 9:
‏وقتی یه رکورد رو حذف می‌کنی، SQLite لزوماً اون فضا رو فورا آزاد نمی‌کنه. این فضای خالی رو بعداً برای رکورد‌های جدید استفاده می‌کنه. صرفه‌جویی در فضا! ♻️

نکته 10:
‏برای اینکه دیتابیس حجیم رو کوچیک کنی و فضای استفاده‌نشده رو آزاد کنی، باید دستور VACUUM رو اجرا کنی. این یه جارو برقی دیتابیسه! 🧹🔥


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏معرفی دستور EXPLAIN برای تحلیل کوئری‌های JOIN

‏میخوای بفهمی کوئری JOIN چجوری کار میکنه؟ دستور EXPLAIN رفیق شفیقته! 🧐

‏با EXPLAIN میتونی ببینی MySQL داره از چه مسیری میره تا اطلاعات رو از جداول مختلف بیاره بیرون. 🗺️

‏وقتی EXPLAIN رو قبل از کوئری JOIN میزنی، یه نقشه راه بهت میده که کجا تند رفته و کجا کُند! 🐢💨

‏فکر کن EXPLAIN داره مثل یه کارآگاه، تک تک مراحل اجرای کوئری JOIN رو برات شرح میده. 🕵️‍♂️

‏اگر دیدی EXPLAIN یه جایی رو با رنگ قرمز نشون میده، بدون اونجا مشکل داره! 🚩🔥

‏از نتایج EXPLAIN میشه فهمید که آیا از ایندکس‌هات درست استفاده شده یا نه. 🤔

‏گاهی وقتا فقط با اضافه کردن یه ایندکس درست، سرعت کوئری JOINت فضایی میشه! 🚀

‏EXPLAIN بهت کمک میکنه بفهمی کدوم نوع JOIN (مثلا INNER, LEFT) کارآمدتره برای حالت تو. 👍

‏اگر کوئری JOINت خیلی طول کشید، قبل از هر کاری، EXPLAIN بزن و قصه رو بفهم! 📖

‏با تمرین EXPLAIN، کم کم استاد کوئری‌های JOIN میشی و سرعت سایتت انفجاری میشه! 💥💡


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏توابع تجمعی (COUNT, SUM, AVG, MIN, MAX)

نکته 1:
‏COUNT تعداد رکوردها رو می‌شماره و خیلی وقت‌ها برای آمارگیری پایه استفاده می‌شه 💡

نکته 2:
‏SUM جمع مقادیر یک ستون عددی رو محاسبه می‌کنه؛ مثلا جمع فروش 🔥📊

نکته 3:
‏AVG میانگین داده‌ها رو بهت می‌ده تا بفهمی مقادیر به طور متوسط چقدره 💡

نکته 4:
‏MIN کوچک‌ترین مقدار ستون رو برمی‌گردونه؛ کاربردش برای پیدا کردن کمینه‌هاست 🔥

نکته 5:
‏MAX بزرگ‌ترین مقدار ستون رو می‌گه؛ مثل پیدا کردن بیشینه درآمد یا امتیاز 💡📊

نکته 6:
‏می‌تونی این توابع رو با WHERE ترکیب کنی تا فقط داده‌های خاص محاسبه بشن 🔥

نکته 7:
‏GROUP BY کمک می‌کنه که داده‌ها رو دسته‌بندی و روی هر گروه تابع تجمعی اعمال کنی 💡

نکته 8:
‏با ترکیب HAVING می‌تونی فیلتر روی نتایج توابع تجمعی داشته باشی 🔥📋

نکته 9:
‏این توابع باعث می‌شن بدون نیاز به پردازش دستی، تحلیل داده‌ها سریع و راحت باشه 💡

نکته 10:
‏استفاده از توابع تجمعی در گزارش‌ها و داشبوردها فوق‌العاده کاربردیه 🔥📊


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏مزایا و معایب SQLite

نکته 1:
‏مزیت: معماری بدون سرور (Serverless) در SQLite نیاز به پیکربندی جداگانه و مدیریت فرآیندهای پس‌زمینه را حذف نموده و موجب سادگی فوق‌العاده در استقرار و استفاده می‌شود.

نکته 2:
‏مزیت: پشتیبانی از تراکنش‌های ACID به صورت کامل، علی‌رغم ماهیت تعبیه‌شده آن، تضمین‌کننده یکپارچگی و قابلیت اعتماد داده‌ها در سطح عملیاتی است.

نکته 3:
‏مزیت: قابلیت حمل بالا (High Portability) فایل پایگاه داده منفرد (Single File Database) امکان جابجایی آسان میان پلتفرم‌ها و سیستم‌عامل‌های مختلف را فراهم می‌سازد.

نکته 4:
‏مزیت: حجم بسیار کم کتابخانه و وابستگی‌های حداقلی، آن را به گزینه‌ای مطلوب برای سیستم‌های توکار (Embedded Systems) و دستگاه‌های موبایل با منابع محدود تبدیل کرده است.

نکته 5:
‏مزیت: عدم وجود مجوزهای پیچیده حق تکثیر (Public Domain) به توسعه‌دهندگان اجازه می‌دهد بدون محدودیت‌های مالی یا قانونی از آن در پروژه‌های تجاری و متن‌باز استفاده نمایند.

نکته 6:
‏عیب: مکانیسم قفل‌گذاری دیسکی (Disk Locking) در SQLite عملکرد آن را در سناریوهای دسترسی همزمان بالا (High Concurrency) یا عملیات نوشتن متوالی متعدد محدود می‌سازد.

نکته 7:
‏عیب: در صورت نیاز به پایگاه داده توزیع‌شده (Distributed Database) یا مقیاس‌پذیری عمودی گسترده برای حجم زیادی از داده‌ها، معماری فایل-محور (File-based) SQLite کارایی لازم را ندارد.

نکته 8:
‏عیب: عدم وجود فرآیند سرور مجزا، امکاناتی مانند مدیریت متمرکز کاربر، مجوزهای دقیق یا دسترسی از راه دور از طریق شبکه را از دسترس خارج می‌سازد.

نکته 9:
‏عیب: در مقایسه با سامانه‌های پایگاه داده‌ای با نوع‌بندی قوی، استفاده از نوع‌بندی پویا (Dynamic Typing) ممکن است در زمان اجرا موجب بروز خطاهای پنهان در ساختار داده شود.

نکته 10:
‏عیب: حداکثر اندازه پایگاه داده در SQLite، هرچند که بسیار بزرگ است، اما در پروژه‌های عظیم با نیاز به ذخیره‌سازی پتابایت‌ها از داده، محدودیت‌هایی را ایجاد می‌کند.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏تغییر Schema (ALTER TABLE)

نکته 1:
‏دستور ALTER TABLE در SQLite برای اعمال تغییرات ساختاری بر روی جداول موجود در شمای پایگاه داده به کار می‌رود و دارای دامنه عملیاتی محدود در مقایسه با RDBMSهای سازمانی است.

نکته 2:
‏کاربرد اصلی دستور ALTER TABLE در SQLite، افزودن یک ستون جدید به انتهای ساختار جدول موجود با استفاده از عبارت ADD COLUMN است.

نکته 3:
‏ستون‌های جدید اضافه شده توسط ALTER TABLE ADD COLUMN ممکن است فاقد محدودیت NOT NULL باشند، یا در صورت داشتن این محدودیت، باید با یک مقدار پیش‌فرض معتبر تعریف شوند.

نکته 4:
‏SQLite به صورت پیش‌فرض امکان حذف ستون‌ها از یک جدول موجود را به صورت مستقیم از طریق دستور ALTER TABLE DROP COLUMN پشتیبانی نمی‌کند.

نکته 5:
‏برای تغییر نام یک جدول در شمای داده، از عبارت ALTER TABLE tablename RENAME TO newname استفاده می‌شود که ساختار و داده‌های جدول را بدون تغییر حفظ می‌کند.

نکته 6:
‏تغییر نوع داده ستون‌ها یا تغییر نام ستون‌ها در SQLite مستقیماً با دستور ALTER TABLE ALTER COLUMN امکان‌پذیر نیست و نیازمند یک رویکرد مهاجرتی (Migration Approach) است.

نکته 7:
‏فرآیند مهاجرت شمای پیچیده شامل ایجاد یک جدول موقت با شمای مطلوب، کپی کردن داده‌های قدیمی، حذف جدول اصلی و در نهایت تغییر نام جدول موقت به نام اصلی است.

نکته 8:
‏در زمان افزودن ستون با ALTER TABLE ADD COLUMN، محدودیت‌هایی نظیر کلید اصلی (Primary Key) یا کلید خارجی (Foreign Key) را نمی‌توان به ستون جدید اعمال کرد.

نکته 9:
‏عملیات تغییر ساختار جدول از طریق ALTER TABLE به طور کامل توسط تراکنش‌ها احاطه شده است تا در صورت بروز خطا در هر مرحله، ساختار پایگاه داده ثابت باقی بماند.

نکته 10:
‏برای مشاهده تأثیر تغییرات شمای داده پس از اجرای ALTER TABLE، می‌توان از فرمان مدیریتی PRAGMA tableinfo(tablename) برای بررسی ساختار جدید ستون‌ها استفاده نمود.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #یادگیری_ماشین

🟣 موضوع : ‏یادگیری ماشین: یادگیری عمیق تقویتی - هزینه‌های محاسباتی بالا و نیاز به GPU

نکته :

‏اگه دسترسی به GPU قوی نداری، می‌تونی از الگوریتم‌های تقویتی کلاسیک‌تر استفاده کنی یا روی تئوری تمرکز کنی تا بعداً بری سراغش.💡💪


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQL

🟣 موضوع : Materialized Views

نکته :

‏به‌جای نوشتن کوئری‌های پیچیده، از materialized views استفاده کن! سرعت کارت خیلی بیشتر می‌شه. 🚀


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 آموزش مقدماتی SQL - عملگرهای AND , OR

🟢 کیفیت : متوسط

🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.

🟣 آموزش SQL - مقدماتی

🟢 زبان آموزش: فارسی


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز عبارت SELECT در T-SQL #پایگاه_داده #sql

🟣 سوال: چگونه می‌توانید نتایج دو دستور SELECT را با هم ترکیب کنید؟

🟢 پاسخ: می‌توانید نتایج دو دستور SELECT را با استفاده از عملگرهای UNION یا UNION ALL ترکیب کنید.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏گروه‌بندی داده‌ها با GROUP BY

نکته 1:
‏بند GROUP BY در یک عبارت SELECT برای دسته‌بندی سطرها با مقادیر یکسانی در یک یا چند ستون مشخص، به صورت گروه‌های منطقی مجزا، استفاده می‌شود.

نکته 2:
‏هدف اصلی از گروه‌بندی، امکان اعمال توابع تجمعی (Aggregate Functions) مانند SUM، AVG، COUNT، MIN و MAX بر روی هر یک از این گروه‌ها به طور مستقل است.

نکته 3:
‏هر ستونی که در بند GROUP BY ذکر نشده باشد، در لیست SELECT اجازه ظهور ندارد، مگر اینکه درون یک تابع تجمعی قرار گرفته باشد.

نکته 4:
‏به طور معمول، ستون‌هایی که در بند GROUP BY قرار می‌گیرند، همان ستون‌هایی هستند که برای توصیف یا شناسایی گروه‌های نتیجه در لیست SELECT نیز استفاده می‌شوند.

نکته 5:
‏بند GROUP BY پس از بند WHERE و قبل از بند HAVING در ترتیب ارزیابی دستور SELECT توسط موتور SQLite قرار می‌گیرد.

نکته 6:
‏استفاده از GROUP BY بدون توابع تجمعی، باعث حذف سطرهای تکراری بر اساس ستون‌های مشخص شده می‌شود که معادل عملکرد عبارت DISTINCT است.

نکته 7:
‏مقادیر NULL در ستون‌های گروهی، به عنوان یک گروه مجزا در نظر گرفته می‌شوند و توابع تجمعی به طور جداگانه بر روی این گروه اعمال می‌گردند.

نکته 8:
‏بند HAVING به صورت یک شرط فیلترکننده عمل می‌کند که تنها بر روی نتایج گروه‌بندی شده اعمال می‌شود، در حالی که WHERE سطرها را قبل از گروه‌بندی فیلتر می‌کند.

نکته 9:
‏در صورت استفاده از ORDER BY، این بند معمولاً نتایج را پس از اعمال گروه‌بندی و محاسبات تجمعی مرتب‌سازی می‌کند.

نکته 10:
‏تعریف دقیق و صحیح ستون‌های گروهی در GROUP BY برای اطمینان از اعتبار آماری و دقت معنایی نتایج حاصل از توابع تجمعی در محیط‌های علمی ضروری است.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏توابع JSON در SQLite

نکته 1:
‏توابع JSON در SQLite، که بخشی از افزونه JSON1 هستند، امکان ایجاد، پرس‌وجو، استخراج، اصلاح و اعتبارسنجی اسناد JSON را در داخل محیط SQL فراهم می‌آورند.

نکته 2:
‏تابع json\_extract(X, P1, P2, ...) مهم‌ترین ابزار برای دسترسی به مقادیر داخلی یک سند JSON بر اساس مسیرهای (Path) مشخص شده توسط کاربر است.

نکته 3:
‏توابع سازنده (Constructors) شامل json() برای ایجاد اشیاء JSON و json() برای تولید آرایه‌های JSON از فهرست مقادیر ورودی استفاده می‌شوند.

نکته 4:
‏تابع json, json, و json\_set به منظور دستکاری و تغییر محتوای یک سند JSON موجود بر اساس مسیرهای دقیق و مقادیر جدید به کار می‌روند.

نکته 5:
‏تابع json\_remove(X, P1, P2, ...) امکان حذف یک یا چند عنصر از ساختار JSON را از طریق ارجاع به مسیرهای مشخص فراهم می‌کند.

نکته 6:
‏برای بررسی صحت ساختاری یک رشته به عنوان سند JSON معتبر، تابع مقیاسی json\_valid(X) استفاده می‌شود که در صورت اعتبار 1 و در غیر این صورت 0 برمی‌گرداند.

نکته 7:
‏تابع json\_type(X, P) برای تعیین نوع داده (Type) یک عنصر خاص در مسیر مشخص شده از سند JSON، نظیر 'object', 'array', 'text', یا 'integer' استفاده می‌شود.

نکته 8:
‏تابع جدول‌محور json\_each(X, P) برای تجزیه یک آرایه یا شیء JSON به ردیف‌های موقت استفاده می‌شود که امکان پردازش مجموعه‌ای و ستونی بر روی عناصر JSON را میسر می‌سازد.

نکته 9:
‏توابع تجمیعی json(X) و json(X, Y) امکان جمع‌آوری نتایج کوئری‌ها را به ترتیب به صورت یک آرایه یا یک شیء JSON واحد در خروجی فراهم می‌سازند.

نکته 10:
‏مسیرهای JSON که در توابع فوق استفاده می‌شوند، باید با نماد '' برای ارجاع به ریشه سند شروع شوند و از اصول JSONPath$ پیروی نمایند.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏چرا MySQL به صورت بومی از FULL OUTER JOIN پشتیبانی نمی‌کند؟

‏مای‌اس‌کیو‌ال خودش FULL OUTER JOIN نداره، ولی غصه نداره! 😉 می‌تونی با ترکیب LEFT JOIN و RIGHT JOIN و UNION خیلی شیک همون کار رو انجام بدی. 💡

‏قدیما که مای‌اس‌کیو‌ال ساخته شد، تمرکزشون روی سرعت و سادگی برای وب‌سایت‌ها بود. FULL OUTER JOIN اونقدرها کاربرد روزمره نداشت و سنگین بود، برای همین تو اولویت نبود. 🚀

‏حواست باشه FULL OUTER JOIN می‌تونه خیلی کند و حافظه‌خور باشه، مخصوصاً روی جدول‌های بزرگ! 🐢 شاید مای‌اس‌کیو‌ال با نداشتنش داره بهمون لطف می‌کنه که حواسمون به پرفورمنس باشه.

‏اگه کارت خیلی گیر FULL OUTER JOIN هست و نمی‌خوای شبیه‌سازیش کنی، یه سر به MariaDB بزن. اون فورکی از مای‌اس‌کیو‌ال هست که این قابلیت رو اضافه کرده. 🛠️

‏راستشو بخوای، توی ۹۹٪ مواقع INNER JOIN و LEFT JOIN کارت رو راه میندازه. FULL OUTER JOIN خیلی خاص و کم‌استفاده‌ست. پس نگران نباش! 😊

‏بلد بودن اینکه چطور با UNION یه FULL OUTER JOIN بسازی، یه مهارت خفنه! 🔥 نشون میده که عمیقاً می‌دونی JOIN ها چطوری کار می‌کنن.

‏اگه مدام حس می‌کنی به FULL OUTER JOIN نیاز داری، شاید یه زنگ خطره! 🔔 بد نیست یه نگاه دوباره به طراحی دیتابیس و روابط بین جدول‌هات بندازی.

‏مای‌اس‌کیو‌ال همیشه سعی کرده ساده و بهینه باشه. اضافه کردن هر ویژگی پیچیده‌ای می‌تونه موتور دیتابیس رو کندتر کنه و این خلاف فلسفه‌شونه. 😜

‏FULL OUTER JOIN یعنی «هر چی از جدول چپ هست بیار، هر چی از جدول راست هست هم بیار». وقتی اینو بدونی، شبیه‌سازیش با UNION خیلی منطقی به نظر میاد. 🧠

‏خلاصه که نبودنش آخر دنیا نیست! کلی راه حل جایگزین هست و برای اکثر کارها اصلاً لازمش نداری. پس با خیال راحت با همون LEFT و RIGHT کارت رو پیش ببر. 👍


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏استفاده از CTE برای ساده‌سازی JOINهای پیچیده

‏اگه JOIN هات حسابی پیچیده شدن و هی سر در گم میشی، CTE ها دوستای واقعی تو هستن! 😉

‏با CTE مثل یه نقشه راه عمل کن، اول مراحل رو جدا جدا بنویس بعد وصلشون کن. خیلی خفن میشه! 🗺️

‏فکر کن داری قصه‌ی داده‌هاتو تعریف می‌کنی. CTE باعث میشه داستانت سر راست و قشنگ باشه. 📖

‏دقت کن، CTE فقط یه نمای مجازی ایجاد می‌کنه، پس حواسش به کارای دیگه باشه! 🧐

‏وقتی قراره یه کوئری چند بار اجرا بشه، CTE می‌تونه باعث سرعت بیشتر بشه. یه جورایی کش کردن هوشمنده! 🚀

‏اگه می‌خوای کوئریت خواناتر بشه، CTE عالیه! انگار داری به خودت یا همکارات کمک می‌کنی. 🤗

‏نترس، CTE رو امتحان کن! ممکنه اولش یکم غریبه باشه ولی سریع عاشقش میشی. 😍

‏برای بازگشت‌های بازگشتی (recursive CTEs) واقعا کاربردیه، مخصوصاً تو ساختارهای درختی. 🌳

‏به جای کوئری‌های تودرتوی وحشتناک، یه CTE بزن و نفس راحت بکش. 😮‍💨

‏CTE ها رو با نام‌های معنی‌دار صدا بزن تا خودت و بقیه بفهمین دارین چی کار می‌کنین! 📛


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQL

🟣 موضوع : ‏دستور CREATE DATABASE و CREATE TABLE

نکته :

‏برای ستون‌هایی که مقدارشون تکراریه، از UNIQUE استفاده کن. اینجوری از ورود اطلاعات تکراری جلوگیری می‌کنی. 🤩


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏استفاده از ATTACH DATABASE

نکته 1:
‏ATTACH DATABASE چیه؟ 🤔 مثل این می‌مونه که یه فایل دیتابیس SQLite دیگه رو به صورت موقت به دیتابیس فعلیت وصل کنی. یه پیوند موقت! 🔗

نکته 2:
‏هدفش اینه که بتونی تو یه کوئری، همزمان به جدول‌های هر دو دیتابیس (دیتابیس اصلی و دیتابیس پیوست‌شده) دسترسی داشته باشی. 🤝💡

نکته 3:
‏برای وصل کردن، باید یه نام مستعار (Alias) برای دیتابیس پیوست‌شده بذاری: ATTACH DATABASE 'مسیرفایل.db' AS backupdb;. 📝

نکته 4:
‏برای دسترسی به جدول‌های دیتابیس پیوست‌شده، اسم جدول رو با اسم مستعارش صدا بزن: SELECT * FROM backup_db.users;. 🔍

نکته 5:
‏از ATTACH برای کپی کردن داده‌ها بین دو دیتابیس استفاده کن. INSERT INTO main.table SELECT * FROM attached_db.table; خیلی سریع و کاربردیه! 🚀🔥

نکته 6:
‏برای قطع کردن اتصال دیتابیس، از دستور DETACH DATABASE alias_name; استفاده کن. این فقط ارتباط رو قطع می‌کنه، نه فایل دیتابیس رو حذف. ✂️

نکته 7:
‏مواظب باش، SQLite محدودیت‌هایی برای تعداد دیتابیس‌هایی که می‌تونی همزمان وصل کنی داره (معمولاً ۱۰ تا). پس شلوغش نکن! 🔢

نکته 8:
‏تو می‌تونی با ATTACH یه دیتابیس رو به عنوان Backup یا Archive وصل کنی و داده‌های قدیمی رو ازش بخونی بدون اینکه فایل اصلی رو شلوغ کنی. 💾

نکته 9:
‏یه ترفند باحال: می‌تونی یه دیتابیس جدید و خالی رو ATTACH کنی و داده‌ها رو توش کپی کنی تا یه فایل دیتابیس تمیز و بهینه بسازی! 🧹

نکته 10:
‏ATTACH فقط روی اتصال فعلی تو کار می‌کنه. وقتی برنامه بسته شه، اون اتصال هم قطع می‌شه و برای استفاده دوباره باید مجدداً ATTACH کنی. 🚪😎


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #یادگیری_ماشین

🟣 موضوع : ‏یادگیری ماشین: LDA - انتخاب تعداد مؤلفه‌ها (حداکثر K-1 برای K کلاس)

نکته :

‏به «نسبت واریانس توضیح داده شده» نگاه کن. ببین هر مؤلفه چقدر از اطلاعات جداسازی رو حمل می‌کنه. اگه دو مؤلفه اول ۹۵٪ کار رو انجام دادن، بقیه‌اش شاید لازم نباشه!


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir