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

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

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏اهمیت ایندکس‌گذاری (Indexing) بر روی ستون‌های کلید خارجی

‏آقا، وقتی دو تا جدول رو با هم جوین می‌کنی (مثلاً جدول سفارشات و مشتری‌ها)، اگه ستون کلید خارجی ایندکس نداشته باشه، مثل این می‌مونه که بخوای توی یه کتاب بدون فهرست دنبال یه کلمه بگردی! 😅 ایندکسش کن تا جوین‌ها مثل جت بشن! 🚀

‏تصور کن می‌خوای یه مشتری رو حذف کنی. اگه ستون کلید خارجی توی جدول سفارشات ایندکس نداشته باشه، دیتابیس باید تمام رکوردهای جدول سفارشات رو بگرده. ایندکس کار رو خیلی سریع‌تر می‌کنه و از کندی نجاتت میده!

‏حتی اگه خیلی کم پیش بیاد که کلید خارجی رو آپدیت کنی (مثلاً وقتی با ON UPDATE CASCADE کار می‌کنی)، ایندکس‌ها باعث می‌شن دیتابیس سریع‌تر بفهمه کدوم ردیف‌ها نیاز به به‌روزرسانی دارن. پس آپدیت‌های کم‌تعداد هم جون می‌گیرن! 💨

‏کلید خارجی وظیفه‌ش اینه که روابط بین جدول‌ها رو حفظ کنه و نذاره اطلاعات بیهوده وارد بشن. برای اینکه MySQL بتونه این قوانین رو سریع چک کنه، به ایندکس‌ها نیاز داره. بدون ایندکس، دیتابیس باید کلی تلاش کنه! 💪

‏وقتی عملیات روی کلید خارجی سریع انجام بشه (به لطف ایندکس)، مدت زمانی که دیتابیس ردیف‌ها رو قفل می‌کنه (برای جلوگیری از تداخل)، کمتر میشه. این یعنی قفل‌شدگی و کندی‌های بیخود کمتر! 🔓🔑

‏MySQL یه قسمتی داره به اسم Query Optimizer که وظیفه‌ش پیدا کردن بهترین راه برای اجرای کوئری‌های شماست. اگه ستون‌های کلید خارجی ایندکس داشته باشن، این اپتیمایزر می‌تونه نقشه‌های اجرایی خیلی بهتری طراحی کنه و کوئری‌ها رو بهینه‌تر اجرا کنه. 💡

‏بله، ایندکس‌ها یه مقدار فضا اشغال می‌کنن و هنگام Insert/Update/Delete یه کم سربار اضافه دارن. اما برای ستون‌های کلید خارجی، مزایا انقدر زیاده که اون سربار کوچیک در مقابلش هیچی نیست! 👌 واقعاً ارزشش رو داره!

‏موتورهای ذخیره‌سازی مثل InnoDB معمولاً خودشون برای ستون‌های کلید خارجی ایندکس می‌سازن. اما همیشه خوبه که یه نگاهی بندازی و مطمئن بشی که ایندکس هست و الکی به مشکل نخوری. 👀 گاهی اوقات خودت باید دستی بزنی! 🛠️

‏اگه یه جدول مثل transactions داری که میلیون‌ها ردیف داره و userid اون یه کلید خارجیه، اگه userid ایندکس نداشته باشه، دیتابیس توی هر جوین، حذف یا آپدیت باید کلی رکورد رو اسکن کنه. ایندکس اینجا معجزه می‌کنه! 🌟

‏ایندکس روی کلید خارجی مثل داشتن یه فهرست الفبایی یا واژه‌نامه برای تمام روابط بین جدول‌هاته. هر وقت دیتابیس بخواد چیزی رو توی این روابط پیدا کنه، دیگه مجبور نیست ورق به ورق بگرده و سریع پیداش می‌کنه! 📚🔍 پس حتماً ایندکسش کن!


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

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

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

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

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

نکته 1:
‏رفتار پیش‌فرض SQLite بر اساس معماری بدون سرور (Serverless) تعریف شده است، که در آن موتور پایگاه داده به صورت یک کتابخانه در فرآیند برنامه میزبان تعبیه می‌شود.

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

نکته 3:
‏حالت ژورنال‌نویسی (Journal Mode) پیش‌فرض در SQLite، معمولاً بر روی DELETE تنظیم شده است که پس از هر تراکنش موفق، فایل ژورنال را حذف می‌کند.

نکته 4:
‏سطح همگام‌سازی (Synchronous Level) پیش‌فرض، روی FULL قرار دارد که تضمین می‌کند تمامی تغییرات به طور کامل و فوری بر روی دیسک نوشته شوند و حداکثر پایداری داده‌ها را فراهم می‌سازد.

نکته 5:
‏مکانیزم کلید خارجی (Foreign Keys) به صورت پیش‌فرض غیرفعال است و برای فعال‌سازی محدودیت‌های یکپارچگی ارجاعی، نیاز به اجرای صریح PRAGMA foreign_keys = ON می‌باشد.

نکته 6:
‏SQLite به طور پیش‌فرض، هر دستور SQL را که یک تراکنش صریح (Explicit Transaction) توسط BEGIN آغاز نکرده باشد، به صورت یک تراکنش خودکار (Autocommit Transaction) جداگانه اجرا می‌کند.

نکته 7:
‏اندازه حافظه کش (Cache Size) به صورت پیش‌فرض یک مقدار نسبتاً کم (مانند 2000 صفحه) است که برای سناریوهای عمومی و مصرف کم حافظه بهینه شده است.

نکته 8:
‏رفتار پیش‌فرض در مدیریت فضای خالی، PRAGMA auto_vacuum = NONE است؛ به این معنا که فضای خالی دیسک به طور خودکار به سیستم‌عامل بازگردانده نمی‌شود.

نکته 9:
‏شیوه قفل‌گذاری پیش‌فرض، NORMAL است که اجازه می‌دهد تا چندین خواننده به صورت همزمان به پایگاه داده دسترسی داشته باشند، اما عملیات نوشتن انحصاری است.

نکته 10:
‏ماژول Pager به طور پیش‌فرض، داده‌ها را در قالب صفحات دیسکی با اندازه 4096 بایت ذخیره و مدیریت می‌کند، مگر اینکه در زمان ایجاد پایگاه داده تنظیم متفاوتی اعمال شده باشد.


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

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

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

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

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

‏سلام رفقا! اگه می‌خواید تمام ترکیبات ممکن دو تا جدول رو با هم مقایسه کنید، CROSS JOIN 🤯 بهترین دوستتونه! 🤝

‏می‌خواید یه لیست از همه ترکیب‌های ممکن محصولات و رنگ‌ها داشته باشید؟ CROSS JOIN 🎨 رو امتحان کنید! خیلی سریع و آسونه. 😉

‏یادتون باشه، CROSS JOIN کل ردیف‌های جدول اول رو با کل ردیف‌های جدول دوم جفت می‌کنه. 🔥

‏یه مثال ساده: اگه جدول A 3 تا ردیف و جدول B 2 تا ردیف داشته باشه، نتیجه CROSS JOIN می‌شه 6 ردیف!

‏قبل از استفاده از CROSS JOIN، حواستون به حجم داده‌ها باشه! ممکنه تعداد ردیف‌ها خیلی زیاد بشه. 😬

‏وقتی CROSS JOIN می‌زنید، دیگه نیازی به شرط (WHERE) ندارید، چون خودش همه چیز رو ترکیب می‌کنه. 😎

‏یه کاربرد باحال: ایجاد ترکیب‌های تست! می‌تونید باهاش داده‌های آزمایشی متنوع بسازید. 💡

‏اگه به دنبال ترکیبات خاص هستید، بعد از CROSS JOIN می‌تونید از WHERE برای فیلتر کردن استفاده کنید. 🤔

‏با CROSS JOIN، می‌تونید گزارش‌های پیچیده و متنوعی رو راحت‌تر تولید کنید. 🎉

‏خلاصه، CROSS JOIN یه ابزار قدرتمنده که می‌تونه خیلی جاها به کارتون بیاد! 👍


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

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

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

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

🔵 کوییز #SQL



مقدار NULL در SQL نشان‌دهنده‌ی چیست؟ 

A) یک مقدار صفر (0) 
B) یک رشته خالی ("") 
C) یک مقدار نامشخص یا ناموجود 
D) یک مقدار خطا 

پاسخ:
C)
یک مقدار نامشخص یا ناموجود 

توضیح: NULL در SQL به معنی عدم وجود مقدار یا داده‌ی نامشخص است، نه صفر یا رشته خالی. 



💗 مطالب بعدی ما رو حتما دنبال کنید!



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
آدرس کانال اصلی:
https://t.me/Tu_24
آدرس وبسایت:
https://tutorial24.ir/
💡 نکته #یادگیری_ماشین

🟣 موضوع : ‏یادگیری ماشین: K-Means - تأثیر نویز و داده‌های پرت (Outliers)

نکته :

‏روش "آرنج" (Elbow method) برای پیدا کردن بهترین تعداد خوشه (K)، وقتی داده پرت داری ممکنه بهت جواب اشتباه بده. حواست باشه گول نخوری! 📈😬


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

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

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

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

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

‏با SELF JOIN تمرین کن! یه جدول فرضی بساز و ارتباطاتش رو با خودِ جدول بررسی کن. کلی چیز یاد میگیری! 🤓

‏وقتی داری SELF JOIN میزنی، حتماً از alias (نام مستعار) استفاده کن. اینجوری خیلی راحت‌تر میشه فیلدها رو مشخص کنی و سردرگم نشی! 😎💡

‏با SELF JOIN میتونی ساختار درختی رو توی دیتابیس پیاده‌سازی کنی. مثلاً یه جدول کارمندان با فیلد سرپرست. باحاله، نه؟ 🔥🌳

‏یادت نره شرط JOIN رو درست تعریف کنی! اگه اشتباه باشه، یه عالمه ردیف تکراری میگیری که اصلاً خوب نیست. 😬

‏یه سناریو واقعی پیدا کن که SELF JOIN توش کاربرد داشته باشه. مثلاً پیدا کردن کارمندانی که حقوقشون از سرپرستشون بیشتره. 💰🤔

‏قبل از اینکه SELF JOIN خیلی پیچیده بزنی، اول یه SELECT ساده بنویس تا مطمئن شی داده‌ها رو درست میفهمی. 🧐

‏با SELF JOIN میتونی روابط بین رکوردها رو پیدا کنی. مثلاً مشتری‌هایی که توی یه شهر زندگی میکنن و از یه محصول خریدن. 🤝📍

‏برای اینکه SELF JOIN سریعتر بشه، حتماً روی فیلدهایی که JOIN میکنی index (فهرست) بذار. 🚀💨

‏اگه SELF JOIN خیلی کند شد، سعی کن با یه query دیگه (مثلاً subquery) همون نتیجه رو بگیری. شاید سریعتر بشه! 🐢➡️🐇

‏بعد از اینکه SELF JOIN نوشتی، حتماً query رو تست کن و مطمئن شو که داره درست کار میکنه. یه داده‌ی پرت رو هم تست کن! 🧪💯


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

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

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

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

🟣 موضوع : ‏ORMها و ارتباط با SQL (مثلاً Entity Framework)

نکته :

‏اگه با ORM مشکل داری، لازم نیست همه‌چیو از اول بنویسی. می‌تونی کوئری‌های SQL خام رو هم تو ORM استفاده کنی. یه جورایی قاطی پاتی! 😜


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
🤖🔥 مدل جدید Hugging Face دنیای رباتیک را متحول می‌کند: اجرای هوش مصنوعی رباتیک روی مک‌بوک!

پلتفرم Hugging Face این هفته مدل هوش مصنوعی جدیدی با نام SmolVLA برای پروژه‌های رباتیک معرفی کرد که آن‌قدر سبک و کارآمد است که حتی روی یک مک‌بوک هم قابل اجراست!

📌 ویژگی‌ها و دستاوردهای SmolVLA:

🔹 آموزش‌دیده بر اساس داده‌های متن‌باز و دارای مجوز اشتراک
🔹 عملکرد بهتر از مدل‌های بسیار بزرگ‌تر در محیط‌های واقعی و مجازی
🔹 قابل اجرا روی GPU مصرفی یا حتی لپ‌تاپ مک‌بوک
🔹 طراحی شده برای کمک به توسعه ربات‌های عمومی و کاهش هزینه سخت‌افزار رباتیک

🧠 مدل SmolVLA با ۴۵۰ میلیون پارامتر، از داده‌های «LeRobot Community» تغذیه شده و هدف آن دموکراتیزه کردن دسترسی به مدل‌های «بینایی-زبان-عمل» است. جالب‌تر این‌که از ساختاری استفاده می‌کند که پردازش دیداری و شنوایی را از عملکرد ربات جدا می‌کند، که به گفته Hugging Face باعث واکنش سریع‌تر در شرایط پویا می‌شود.

👨‍💻 یک کاربر در توییتر (X) اعلام کرده که با استفاده از این مدل، بازوی رباتیکی Koch را با تنها ۳۱ نمونه آموزش، به خوبی کنترل کرده است.

🛠 گفته می شود Hugging Face تلاش دارد اکوسیستم رباتیک متن‌باز و کم‌هزینه‌ای ایجاد کند. از جمله پروژه‌های اخیر آن می‌توان به LeRobot و خرید استارتاپ فرانسوی Pollen Robotics اشاره کرد.

🔍 البته Hugging Face تنها بازیگر این میدان نیست؛ شرکت‌هایی مانند:

* Nvidia با مجموعه ابزارهای رباتیک متن‌باز
* K-Scale Labs با هدف ساخت انسان‌نماهای متن‌باز
* Dyna Robotics
* Physical Intelligence (با حمایت جف بزوس)
* RLWRLD

نیز در این مسیر گام برمی‌دارند.

📥 مدل SmolVLA هم‌اکنون از طریق Hugging Face قابل دریافت است.


#رباتیک #هوش_مصنوعی #HuggingFace #SmolVLA #LeRobot #AI #Robotics #متن_باز #مکبوک #هوش_مصنوعی_در_رباتیک


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

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

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

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


🌠 خبر داغ: iOS 26 و انقلاب شخصی‌سازی پیام‌ها با هوش مصنوعی!



🌿🌿 به نظر می‌رسد اپل قصد دارد با iOS 26 گام بزرگی در شخصی‌سازی و هوش مصنوعی بردارد! کدهای جدید لو رفته نشان می‌دهند که کاربران آیفون، آیپد و مک قرار است بتوانند با استفاده از توصیف‌های متنی، برای پس‌زمینه اپلیکیشن Messages (پیامک‌ها) تصاویر اختصاصی و منحصربه‌فرد تولید کنند.


🟣 جادوی هوش مصنوعی در Image Playground

این قابلیت جذاب با بهره‌گیری از ابزار Image Playground اپل، به کاربران امکان می‌دهد تا با نوشتن توضیحات دلخواه خود، پس‌زمینه‌های بصری را خلق کنند. گزینه‌های مختلفی برای سبک این تصاویر نیز در دسترس خواهد بود، از جمله Animation (انیمیشن)، Illustration (تصویرسازی) و Sketch (طراحی دستی). تصور کنید چقدر خلاقیت شما در شخصی‌سازی چت‌هایتان افزایش پیدا می‌کند!


🔴 پس‌زمینه‌های اختصاصی برای هر مکالمه

نکته جالب اینجاست که این پس‌زمینه‌ها اختصاصی برای هر مکالمه قابل تنظیم هستند. یعنی می‌توانید برای هر چت با دوستان، خانواده یا همکارانتان، یک پس‌زمینه بصری کاملاً متفاوت و متناسب با موضوع گفتگو یا سلیقه طرفین انتخاب کنید.


🔵 همگام‌سازی جادویی در iMessage

ویژگی هیجان‌انگیز دیگر این است که این پس‌زمینه‌ها بین همه شرکت‌کنندگان هر گفتگو همگام‌سازی می‌شوند! به این معنا که اگر شما برای یک چت در iMessage پس‌زمینه‌ای را انتخاب کنید، طرف مقابل شما نیز همان پس‌زمینه زیبا و هوش مصنوعی تولید شده را مشاهده خواهد کرد. این قابلیت جدید، تجربه پیام‌رسانی را برای کاربران اپل غنی‌تر و تعاملی‌تر می‌کند.


🟢 رقابت با بزرگان پیام‌رسان

این ویژگی در حالی به iOS اضافه می‌شود که اپلیکیشن‌های محبوبی مانند واتس‌اپ و تلگرام سال‌هاست از امکان تعیین پس‌زمینه‌های سفارشی پشتیبانی می‌کنند. ورود اپل به این حوزه با قابلیت‌های هوش مصنوعی، نشان‌دهنده تمرکز این شرکت بر رقابت با اپلیکیشن‌های پیام‌رسان پیشرو و ارائه تجربه‌ای منحصربه‌فرد به کاربران خود است.


🟠 این خبر نشان‌دهنده روندی است که هوش مصنوعی به شکلی عمیق‌تر در جنبه‌های روزمره زندگی دیجیتال ما نفوذ می‌کند و تجربه‌های کاربری را به سطحی جدید ارتقا می‌دهد.

#iOS26 #هوش_مصنوعی #اپل #شخصی_سازی #پیام_رسان

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

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

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

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

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏مفاهیم اولیه SQL (SELECT, INSERT, UPDATE, DELETE)

نکته 1:
‏دستور SELECT یک دستور زبان دستکاری داده‌ها (DML - Data Manipulation Language) است که برای بازیابی (Retrieval) مجموعه‌ای از داده‌ها از یک یا چند جدول در پایگاه داده SQLite به کار می‌رود.

نکته 2:
‏بند WHERE در دستور SELECT به منظور اعمال یک یا چند شرط گزینش (Predicate) تعریف می‌شود تا فقط سطرهایی که این شروط را ارضا می‌کنند، در مجموعه نتیجه (Result Set) لحاظ شوند.

نکته 3:
‏دستور INSERT برای افزودن ردیف‌های جدید به یک جدول مشخص شده در پایگاه داده استفاده می‌شود و در اصل، ذخیره‌سازی داده‌های جدید را محقق می‌سازد.

نکته 4:
‏هنگام استفاده از INSERT، باید اطمینان حاصل شود که مقادیر ارائه شده از نظر تعداد، ترتیب و سازگاری نوع‌دهی (Type Affinity) با ستون‌های جدول هدف مطابقت داشته باشند.

نکته 5:
‏دستور UPDATE به منظور تغییر مقادیر ستون‌ها در یک یا چند ردیف موجود از یک جدول در پایگاه داده، بر اساس شرایط مشخص شده، به کار گرفته می‌شود.

نکته 6:
‏در دستور UPDATE، عدم تعیین بند WHERE موجب اعمال تغییرات بر روی تمامی ردیف‌های جدول هدف خواهد شد که می‌تواند منجر به ناهمگونی داده‌ها گردد.

نکته 7:
‏دستور DELETE برای حذف ردیف‌های موجود از یک جدول به کار می‌رود و بر اساس شروط تعیین‌شده در بند WHERE، امکان حذف انتخابی سطرها را فراهم می‌سازد.

نکته 8:
‏دستور DELETE، برخلاف دستور DROP TABLE که ساختار جدول را حذف می‌کند، صرفاً محتوای داده‌ای سطرها را حذف کرده و ساختار جدول را حفظ می‌نماید.

نکته 9:
‏این چهار دستور (SELECT, INSERT, UPDATE, DELETE) اساس عملیات CRUD (Create, Read, Update, Delete) را در تمامی سامانه‌های مدیریت پایگاه داده رابطه‌ای، از جمله SQLite، تشکیل می‌دهند.

نکته 10:
‏در SQLite، اجرای این دستورات DML، در صورت عدم استفاده صریح از دستور COMMIT یا ROLLBACK، به صورت پیش‌فرض توسط سیستم تراکنش مدیریت می‌شود.


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

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

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

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

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

‏وقتی LEFT JOIN و INNER JOIN رو قاطی می‌کنی، اول INNER JOIN رو بنویس تا فیلترش زودتر اعمال شه و سرعتت بره بالا 🚀.

‏اگه تو LEFT JOIN شرط WHERE گذاشتی، حواست باشه! ممکنه ردیف‌هایی که انتظار داری رو نشون نده. به جاش بذار تو ON!💡

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

‏وقتی چندتا JOIN داری، ترتیبشون خیلی مهمه! اول اونایی که بیشتر فیلتر می‌کنن رو بذار. اینجوری MySQL کمتر گیج می‌زنه.🤓

‏یه وقتایی می‌تونی به جای ترکیب JOINها از subquery استفاده کنی. شاید خوندنش راحت‌تر باشه، ولی حواست به performance باشه!🔥

‏اگه میخوای ردیف‌هایی از LEFT JOIN رو پیدا کنی که تو جدول سمت راست نیستن، از WHERE [نام ستون] IS NULL استفاده کن. خیلی کار راه بندازه! 😎

‏تو ترکیب JOINها، اسم جدول‌ها رو کوتاه کن (alias) تا کوئریت خواناتر شه. مثلاً به جای customers بنویس c. 😇

‏اگه LEFT JOIN زدی و دیدی داره خیلی کند کار می‌کنه، حتماً ایندکس‌هات رو چک کن. شاید یه ایندکس کم داری!🤔

‏موقعی که LEFT JOIN و INNER JOIN رو ترکیب می‌کنی، حواست باشه کدوم جدول اصلیته. یعنی کدوم جدولیه که حتماً باید همه‌ی ردیف‌هاش باشه.🫂

‏برای اینکه بفهمی کوئریت درست کار می‌کنه، اول یه مثال کوچیک با داده‌های تستی بزن. بعد برو سراغ داده‌های اصلی.💯


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

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

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

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

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

نکته 1:
‏وقتی داری اطلاعات تنظیمات (Configuration) رو ذخیره می‌کنی، JSON بهترینه! به جای ده‌ها ستون، کل تنظیمات رو تو یه ستون JSON بریز. ⚙️💡

نکته 2:
‏برای ذخیره کردن داده‌های لاگ (Logs) یا رویدادها (Events) که ساختار ثابتی ندارن، JSON خیلی کار راه اندازه. هر رویداد می‌تونه فیلدای خودش رو داشته باشه. 📝

نکته 3:
‏تو برنامه‌نویسی وب، اگه یه API بهت یه JSON بزرگ می‌ده، به جای اینکه همه رو به ستون‌های جدول تبدیل کنی، کل JSON رو تو یه ستون نگه دار. 📦

نکته 4:
‏JSON برای ذخیره کردن متادیتا (Metadata) یا اطلاعات اضافی محصولات (مثل رنگ‌ها، سایزهای مختلف یا امتیاز کاربران) تو یه ستون عالیه. 🏷️

نکته 5:
‏از JSON تو سناریوهایی استفاده کن که نیاز داری داده‌ها رو سریع و منعطف تغییر بدی، بدون اینکه بخوای Schema جدول اصلی رو مدام عوض کنی. 🔄

نکته 6:
‏تو می‌تونی آرایه‌ای از برچسب‌ها (Tags) یا نظرات رو تو یه ستون JSON ذخیره کنی. با توابع JSON می‌تونی راحت توشون جستجو کنی. 🏷️🔍

نکته 7:
‏برای ساخت گزارش‌های تو در تو یا خلاصه‌سازی اطلاعات چند جدول، می‌تونی از توابع JSON برای تولید خروجی JSON نهایی استفاده کنی. 📊

نکته 8:
‏اگه داری یه فروشگاه آنلاین می‌سازی، جزئیات سبد خرید کاربر (Cart Details) مثل لیست محصولات، تعداد و قیمت رو تو یه JSON ذخیره کن. 🛒💰

نکته 9:
‏یه سناریوی خوب دیگه، ذخیره‌سازی گزینه‌های انتخابی کاربر تو پرسشنامه‌هاست. چون هر پرسشنامه می‌تونه پاسخ‌های مختلفی داشته باشه. ✍️

نکته 10:
‏به طور خلاصه، هر جا که ساختار داده انعطاف‌پذیره، JSON بهترین دوست تو تو SQLite است. این بهت قدرت NoSQL می‌ده. 💯🔥😎


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

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

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

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

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

نکته 1:
‏عملیات پرس‌وجو (Querying) بر روی داده‌های JSON با استفاده از توابع خانواده json و json که امکان دسترسی به عناصر داخلی سند را فراهم می‌سازند، صورت می‌پذیرد.

نکته 2:
‏برای فیلتر کردن ردیف‌ها بر اساس مقادیر خاص در سند JSON، تابع json\_extract در بند WHERE به کار می‌رود که مقدار استخراج شده را با معیار جستجو مقایسه می‌کند.

نکته 3:
‏تابع json() و json() به عنوان ابزارهای کلیدی برای اصلاح محتوای سند JSON در هنگام عملیات‌های UPDATE مورد استفاده قرار می‌گیرند.

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

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

نکته 6:
‏شاخص‌گذاری مؤثر (Effective Indexing) بر روی داده‌های JSON معمولاً با استفاده از ستون‌های مجازی (Generated Columns) که مقادیر پرکاربرد را از JSON استخراج می‌کنند، محقق می‌شود.

نکته 7:
‏برای ایجاد یک شیء یا آرایه JSON جدید به صورت پویا، توابع json(k1, v1, k2, v2, ) و json(v1, v2, ) به کار گرفته می‌شوند.

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

نکته 9:
‏از تابع json\_patch(X, Y) برای اعمال یک سند JSON وصله (Y) بر روی سند هدف (X) به منظور انجام اصلاحات دقیق در استاندارد RFC 7396 استفاده می‌شود.

نکته 10:
‏هنگام کار با JSON، باید همواره از صحت مسیرهای (Path) استفاده شده در توابع اطمینان حاصل کرد، چرا که مسیر نامعتبر منجر به برگرداندن مقدار NULL یا خطای کوئری می‌شود.


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

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

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

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

🟣 موضوع : ‏Audit Trail در NoSQL

نکته :

‏لاگ‌های حسابرسی (audit trail) رو امن نگه دار. دسترسی بهشون رو محدود کن و سعی کن غیرقابل تغییر باشن (immutable). 🛡️🔒


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

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

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

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

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

نکته 1:
‏تو SQLite، قفل‌ها در سطح کل فایل دیتابیس اتفاق می‌افته، نه در سطح جدول یا ردیف. انگار برای نوشتن، کل دیتابیس رو قفل می‌کنی! 🔒

نکته 2:
‏پنج تا سطح یا حالت قفل‌گذاری اصلی داریم: آنلاک (UNLOCKED)، خواندن (SHARED)، رزرو (RESERVED)، در انتظار (PENDING) و انحصاری (EXCLUSIVE). 🖐️🚦

نکته 3:
‏حالت UNLOCKED یعنی هیچ قفلی وجود نداره و هر کسی می‌تونه هر کاری بکنه. حالت پیش‌فرض موقعی که هیچ تراکنشی فعال نیست. 🆓

نکته 4:
‏وقتی می‌خوای دیتابیس رو بخونی، یه قفل SHARED می‌گیری. چندین فرآیند می‌تونن همزمان قفل SHARED داشته باشن. خواندن همزمان مشکلی نیست! 📖👥

نکته 5:
‏قفل RESERVED اولین قدم برای نوشتنه و توسط BEGIN IMMEDIATE یا اولین نوشتن تو DEFERRED گرفته می‌شه. این قفل بهت می‌گه: "من می‌خوام بنویسم، رزرو کردم!" 🔑

نکته 6:
‏قفل PENDING زمانی اتفاق می‌افته که یه فرآیند می‌خواد از RESERVED به EXCLUSIVE بره. این قفل جلوی گرفتن قفل‌های SHARED جدید رو می‌گیره. 🛑

نکته 7:
‏قفل EXCLUSIVE بالاترین سطحه و اجازه می‌ده فقط یک فرآیند همزمان بنویسه. هیچ فرآیند دیگه‌ای (حتی خواندن) نمی‌تونه همزمان اجرا بشه. انحصاری تمام! 🚫🔥

نکته 8:
‏برای بهینه‌سازی، SQLite هوشمنده و تا وقتی که واقعاً مجبور نشه، قفل رو به سطح EXCLUSIVE ارتقا نمی‌ده. همیشه با پایین‌ترین قفل شروع می‌کنه. 💡

نکته 9:
‏قفل‌ها یه جورایی مثل نردبان عمل می‌کنن: از UNLOCKED شروع می‌کنی و اگه بخوای بنویسی، پله پله به سمت EXCLUSIVE میری تا به هدفت برسی. 🪜

نکته 10:
‏وقتی COMMIT یا ROLLBACK می‌کنی، سطح قفل از EXCLUSIVE به UNLOCKED برمی‌گرده (یا به SHARED اگه هنوز داری می‌خونی). آزادی عمل دیتابیس! 🕊️😎


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز SQL Server: در کدامیک از موارد زیر می‌توان از SELECT بدون FROM استفاده کرد؟

الف) برای خواندن داده‌ها از جدول
ب) برای محاسبه مقادیر ثابت
ج) برای انتخاب داده‌ها از چندین جدول
د) هیچ‌یک از موارد بالا

پاسخ صحیح: ب
توضیح: می‌توان از SELECT بدون FROM برای محاسبه مقادیر ثابت یا استفاده از توابع ریاضی (مانند SELECT GETDATE();) استفاده کرد. در غیر این صورت، FROM برای انتخاب داده‌ها از جدول ضروری است.


#t_sql #sql_server
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

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

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

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

نکته 1:
‏فرمان ATTACH DATABASE در SQLite امکان اتصال یک فایل پایگاه داده SQLite خارجی را به جلسه پایگاه داده جاری فراهم می‌سازد و امکان دسترسی همزمان به چندین پایگاه داده را میسر می‌نماید.

نکته 2:
‏سینتکس استاندارد این فرمان به صورت ATTACH DATABASE \ 'pathname' \ AS \ database می‌باشد که در آن pathname مسیر فایل دیتابیس و database نام مستعار برای ارجاع به آن در کوئری‌ها است.

نکته 3:
‏با استفاده از فرمان ATTACH DATABASE، می‌توان کوئری‌های JOIN را بین جداول موجود در پایگاه داده اصلی (اصلی) و جداول موجود در پایگاه داده متصل شده اجرا نمود.

نکته 4:
‏پایگاه داده متصل شده از طریق نام مستعاری که در فرمان ATTACH مشخص شده است، در کوئری‌های SQL مورد ارجاع قرار می‌گیرد، به عنوان مثال database .table.

نکته 5:
‏از کاربردهای اصلی ATTACH DATABASE می‌توان به انتقال داده‌ها بین پایگاه‌های داده مختلف با استفاده از دستوراتی مانند INSERT INTO \ database .table \ SELECT اشاره کرد.

نکته 6:
‏حداکثر تعداد پایگاه‌های داده‌ای که می‌توان به صورت همزمان به یک جلسه SQLite متصل کرد، از طریق پارامتر کامپایل زمان اجرا SQLITE تعیین می‌شود که به صورت پیش‌فرض معمولاً عدد ۱۰ است.

نکته 7:
‏عملیات نوشتن (مانند INSERT, UPDATE, DELETE) بر روی پایگاه داده متصل شده، مشمول مکانیسم تراکنش‌های (Transactions) جلسه اصلی SQLite می‌شود و اصول ACID را تضمین می‌کند.

نکته 8:
‏برای قطع اتصال یک پایگاه داده متصل شده، از فرمان DETACH DATABASE \ database\_name استفاده می‌شود که پایگاه داده را از جلسه جاری حذف می‌کند.

نکته 9:
‏پایگاه داده main همواره به عنوان پایگاه داده اصلی در نظر گرفته می‌شود و نمی‌توان آن را ATTACH یا DETACH کرد، و به طور مشابه، پایگاه داده موقت (temp) نیز قابلیت DETACH ندارد.

نکته 10:
‏در صورت عدم وجود فایل مشخص شده در pathname، فرمان ATTACH DATABASE در SQLite به صورت خودکار فایل پایگاه داده جدیدی را با آن نام ایجاد می‌کند.


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

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

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

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

🟣 موضوع : ‏محدودیت‌های داده (Constraints): NOT NULL, UNIQUE

نکته :

‏محدودیت‌ها رو موقع تعریف جدول اعمال کن، نه بعدش. کار درست همینه، از اول محکم بساز 🧱!


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

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

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

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




خبر داغ: رونمایی احتمالی از سیستم‌عامل HomeOS اپل در WWDC 2025!




🌿🌿 دنیای فناوری در تب و تاب کنفرانس WWDC 2025 اپل است و یکی از داغ‌ترین شایعات، معرفی یک سیستم‌عامل کاملاً جدید به نام homeOS است. گزارش‌های اخیر حاکی از آن است که اپل احتمالاً هفته آینده از این پلتفرم نرم‌افزاری رونمایی خواهد کرد. شایعه شده که homeOS می‌تواند همراه با یک نمایشگر هوشمند خانگی جدید معرفی شود.


🟣 سیستم عامل HomeOS: نامی آشنا، کارکردی نو!

تاکنون بارها صحبت از احتمال معرفی homeOS توسط اپل به میان آمده بود، اما حالا با نزدیک شدن به WWDC، این گمانه‌زنی‌ها قوت گرفته‌اند. نام homeOS به وضوح به اکوسیستم خانه هوشمند اپل اشاره دارد و انتظار می‌رود این سیستم‌عامل، مرکز کنترل و هماهنگ‌کننده تمامی دستگاه‌های هوشمند خانگی اپل باشد. این می‌تواند گام بزرگی برای اپل در رقابت با سایر بازیگران حوزه خانه هوشمند باشد.


🔴 علامت تجاری مرموز و ردپای اپل!

موضوعی که این شایعات را جدی‌تر می‌کند، ثبت یک علامت تجاری جدید با عنوان "HOMEOS" است. اگرچه این علامت تجاری ظاهراً توسط شرکتی به نام "Home Operations Suite LLC" ثبت شده، اما بررسی سوابق نشان می‌دهد که مسئول اصلی و پنهان پشت این شرکت، خود اپل است. این روشی رایج برای شرکت‌های بزرگ است که پیش از معرفی رسمی محصولات یا سرویس‌های جدید، علامت‌های تجاری را به صورت غیرمستقیم ثبت کنند تا از افشای زودهنگام برنامه‌هایشان جلوگیری شود.


🔵 گام بعدی اپل در اکوسیستم خانه هوشمند؟

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


🔴 کنفرانس WWDC 2025: کنفرانس پیش رو، پر از شگفتی؟

همه نگاه‌ها به کنفرانس WWDC 2025 است که هفته آینده برگزار می‌شود. باید دید آیا اپل با معرفی homeOS و شاید یک دستگاه خانگی جدید، واقعاً دنیای خانه هوشمند را متحول خواهد کرد یا خیر. این رویداد، فرصتی عالی برای آشنایی با جدیدترین نوآوری‌های نرم‌افزاری اپل خواهد بود.


#اپل #homeOS #WWDC2025 #خانه_هوشمند #سیستم_عامل_جدید


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

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

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

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

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏انواع JOIN (INNER, LEFT, RIGHT, FULL)

نکته 1:
‏INNER JOIN فقط رکوردهایی که در هر دو جدول مطابقت دارن رو برمی‌گردونه 💡

نکته 2:
‏LEFT JOIN همه رکوردهای جدول سمت چپ و رکوردهای مطابق جدول سمت راست رو نشون می‌ده 🔥📊

نکته 3:
‏RIGHT JOIN در SQLite مستقیم پشتیبانی نمیشه ولی می‌تونی با LEFT JOIN جدول‌ها رو برعکس کنی 🔄💡

نکته 4:
‏FULL JOIN هم تو SQLite مستقیم نیست ولی با ترکیب LEFT JOIN و UNION می‌تونی شبیه‌سازی کنی 🔥

نکته 5:
‏INNER JOIN برای پیدا کردن داده‌های مشترک بین جداول عالیه 💡📋

نکته 6:
‏LEFT JOIN وقتی لازمه همه رکوردهای یک جدول رو نگه داری و داده‌های مرتبط رو اضافه کنی 💡

نکته 7:
‏RIGHT JOIN معمولاً در SQLite با تغییر ترتیب جدول‌ها شبیه‌سازی می‌شه 🔄🔥

نکته 8:
‏FULL JOIN کمک می‌کنه هیچ رکوردی از هیچ جدول از دست نره؛ همه با هم دیده می‌شن 💡

نکته 9:
‏استفاده درست از انواع JOIN باعث می‌شه کوئری‌ها دقیق، سریع و کاربردی باشن 🔥📊

نکته 10:
‏JOIN مثل چسباندن تکه‌های پازل به هم عمل می‌کنه تا اطلاعات پراکنده رو یکجا داشته باشی 💡


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز SQL Server: در دستور SELECT، کدام بخش برای مشخص کردن جدول مورد استفاده قرار می‌گیرد؟

الف) SELECT
ب) FROM
ج) WHERE
د) ORDER BY

پاسخ صحیح: ب
توضیح: بخش FROM در دستور SELECT برای مشخص کردن جدول مورد استفاده قرار می‌گیرد. این بخش تعیین می‌کند که داده‌ها از کدام جدول باید خوانده شوند.


#t_sql #sql_server
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

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

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