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

* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
Download Telegram
🔵 کوییز T-SQL - مبانی SELECT #پایگاه_داده #sql_server #t_sql

🟣 سوال: چگونه می‌توان با استفاده از اپراتور LIKE رکوردهایی را یافت که مقدارشان با یک حرف خاص شروع و با یک کاراکتر خاص پایان یابد؟

🟢 پاسخ: می‌توان از ترکیب LIKE و الگوهای % و _ استفاده کرد. مثال: SELECT * FROM Products WHERE Name LIKE 'A%z';
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

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

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

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

نکته 1:
‏PRAGMA چیه؟ 🤔 مثل یه دکمه تنظیمات و فرمان مخفی تو SQLite می‌مونه که بهت اجازه می‌ده تنظیمات داخلی دیتابیس رو بخونی یا تغییر بدی. ⚙️💡

نکته 2:
‏یکی از کاربردی‌ترین‌هاش PRAGMA foreign_keys = ON; هست. باید این رو اجرا کنی تا مطمئن شی محدودیت‌های کلید خارجی واقعاً اعمال می‌شن! 🔒

نکته 3:
‏می‌تونی از PRAGMA journal_mode; استفاده کنی تا ببینی دیتابیس تو از چه مکانیزمی برای مدیریت تراکنش‌ها استفاده می‌کنه (مثل DELETE یا WAL). 📝

نکته 4:
‏برای بهینه‌سازی سرعت خواندن و نوشتن همزمان، می‌تونی حالت WAL رو فعال کنی: PRAGMA journal_mode = WAL;. این یه راه‌حل پیشرفته و عالیه! 🚀🔥

نکته 5:
‏برای دیدن ساختار و ستون‌های یه جدول، می‌تونی از PRAGMA tableinfo(tablename); استفاده کنی. یه جورایی سونوگرافی جدول! 🩺

نکته 6:
‏اگه با مشکل قفل شدن (Locking) مواجه می‌شی، می‌تونی با PRAGMA busy_timeout = 5000; به SQLite بگی که ۵ ثانیه برای باز شدن قفل صبر کنه و بعد خطا بده.

نکته 7:
‏با PRAGMA cache_size = -20000; می‌تونی به SQLite بگی که چقدر از حافظه RAM رو برای بافر کش استفاده کنه. حافظه بیشتر = سرعت بیشتر! 🧠

نکته 8:
‏برای اطمینان از اینکه داده‌هات بلافاصله روی دیسک ذخیره می‌شن (Durability)، می‌تونی PRAGMA synchronous = FULL; رو بذاری. این یه کم کندتره ولی امن‌تره. 🛡️

نکته 9:
‏اگه می‌خوای فضای استفاده‌نشده‌ی دیتابیس رو کم کنی، می‌تونی با PRAGMA auto_vacuum = FULL; قابلیت تمیزکاری خودکار رو فعال کنی. البته کمی سربار داره. 🧹

نکته 10:
‏دستورات PRAGMA یه جورایی فراتر از SQL استاندارد هستن و برای کنترل چیزهایی استفاده می‌شن که خاص موتور SQLite هستن. یه ابزار فنی و ضروری! 🛠️😎


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

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

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

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

🟣 موضوع : ‏Rate Limiting و Throttling

نکته :

‏"برای Throttling، میتونی از Bucket Algorithm استفاده کنی. هر درخواست یه توکن از Bucket کم میکنه. وقتی Bucket خالی شد، درخواست رد میشه! 🪣"


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

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

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

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

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

نکته 1:
‏عملیات JOIN در SQL، از جمله SQLite، یک مکانیسم بنیادی برای ترکیب سطرهای دو یا چند جدول بر اساس ستون‌های مشترک و شرایط مرتبط است.

نکته 2:
‏INNER JOIN (اتصال درونی) متداول‌ترین نوع اتصال است و تنها سطرهایی را از جداول مبدأ بازیابی می‌کند که دارای مقادیر یکسان و منطبق در ستون‌های اتصال (JOIN Condition) باشند.

نکته 3:
‏LEFT JOIN (اتصال چپ) تمامی سطرهای جدول سمت چپ (جدول اول) را به همراه سطرهای منطبق از جدول سمت راست برمی‌گرداند؛ در صورت عدم تطابق، مقادیر جدول راست با NULL پر می‌شوند.

نکته 4:
‏RIGHT JOIN (اتصال راست) در SQLite به صورت صریح پشتیبانی نمی‌شود، اما می‌توان با جابجایی ترتیب جداول در دستور و استفاده از LEFT JOIN، به نتیجه‌ای معادل دست یافت.

نکته 5:
‏CROSS JOIN (اتصال ضربدری) بدون هیچ شرطی، ضرب دکارتی (Cartesian Product) دو جدول را تولید می‌کند، به این معنی که هر سطر از جدول اول با هر سطر از جدول دوم ترکیب می‌شود.

نکته 6:
‏شرط اتصال (JOIN Condition) معمولاً در بند ON مشخص می‌شود و شامل یک یا چند عبارت منطقی است که نحوه تطبیق سطرها را تعیین می‌کند.

نکته 7:
‏بهره‌وری (Efficiency) عملیات JOIN به شدت به وجود اندیس‌ها (Indexes) بر روی ستون‌های کلیدی که در شرط اتصال استفاده می‌شوند، وابسته است.

نکته 8:
‏برای جلوگیری از ابهام در نام ستون‌ها، به خصوص هنگامی که ستون‌هایی با نام یکسان در جداول متصل شده وجود دارند، استفاده از نام‌های مستعار جدول (Table Aliases) توصیه می‌شود.

نکته 9:
‏FULL OUTER JOIN (اتصال بیرونی کامل) سطرهای منطبق و نامنطبق هر دو طرف را برمی‌گرداند و در SQLite به صورت مستقیم با یک عملگر پشتیبانی نمی‌شود، اما با ترکیب UNION و LEFT JOIN قابل شبیه‌سازی است.

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


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

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

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

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

🟣 موضوع : ‏Upsert (MERGE) در SQL

نکته :

‏توی MERGE، شرط WHEN MATCHED آپدیت رو انجام میده، WHEN NOT MATCHED اینسرت! اینو یادت باشه! 🔥


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

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

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

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

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

نکته 1:
‏COMMIT چیه؟ 🤔 مثل زدن دکمه "ذخیره نهایی" تو یه نرم‌افزاره! می‌گه: "تمام کارهایی که از BEGIN تا الان انجام دادم، دائمی و رسمی بشن." 💾

نکته 2:
‏وقتی COMMIT می‌کنی، تغییراتت دائمی می‌شن و دیگه نمی‌تونی با ROLLBACK به عقب برگردی. پس مطمئن باش که همه چیز درسته! 🛑

نکته 3:
‏بعد از COMMIT، تراکنش بسته می‌شه و دیتابیس برمی‌گرده به حالت Autocommit (اگه دوباره BEGIN نکنی). آماده برای تراکنش بعدی! 💡

نکته 4:
‏یکی از هدف‌های مهم COMMIT، اطمینان از ماندگاری (Durability) اطلاعاته. یعنی داده‌ها دیگه توی حافظه موقت نیستن و روی دیسک ثبت شدن. 🔥

نکته 5:
‏اگه چندتا دستور UPDATE پشت سر هم اجرا کردی و بعد COMMIT زدی، مطمئن می‌شی که یا همه آپدیت‌ها انجام می‌شن یا هیچ‌کدوم. (قانون اتمیسیته) ⚛️

نکته 6:
‏وقتی COMMIT می‌کنی، قفل‌هایی که روی جدول‌ها داشتی آزاد می‌شن و بقیه فرآیندها هم می‌تونن شروع به کار کنن. همکاری مسالمت‌آمیز! 🤝

نکته 7:
‏تأخیر در زدن COMMIT (یعنی باز نگه داشتن طولانی تراکنش) ممکنه باعث بشه بقیه برنامه‌ها مجبور به صبر کردن بشن. سعی کن تراکنش‌ها رو سریع ببندی.

نکته 8:
‏دستور COMMIT یه نقطه امن (Checkpoint) برای دیتابیس ایجاد می‌کنه و فایل‌های موقتی (مثل ژورنال) رو پاک می‌کنه. نظم و تمیزی!

نکته 9:
‏اگه BEGIN IMMEDIATE یا BEGIN EXCLUSIVE استفاده کرده باشی و دیتابیس رو قفل کرده باشی، COMMIT تنها راه برای باز کردن قفل و اجازه دادن به بقیه برای نوشتن هست. 🔑

نکته 10:
‏یه نکته فنی: COMMIT باعث می‌شه SQLite یه نوشتن فیزیکی روی دیسک انجام بده. اینجوری مطمئن می‌شی که داده‌ها واقعاً ذخیره شدن. ✍️😎


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

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

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

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

🟣 موضوع : ‏NoSQL در مقابل SQL

نکته :

‏NoSQL مثل یه جعبه ابزار بزرگ می‌مونه، هر شکلی داده داری، یه ابزار براش هست 🛠️.


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

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

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

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

🟣 موضوع : ‏یادگیری ماشین: مفاهیم اصلی - چالش‌ها - پیچیدگی محاسباتی در شبکه‌های عمیق

نکته :

‏مستندات کتابخونه‌ها رو بخون. خیلی چیزای باحال و کاربردی توشون پیدا می‌شه. 📚


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

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

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

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

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

نکته 1:
‏SQLite تا حد زیادی از استاندارد SQL-92 تبعیت می‌کند، اما تمامی قابلیت‌های آن را به‌طور کامل پیاده‌سازی نمی‌نماید.

نکته 2:
‏SQLite از نوع‌دهی پویا استفاده می‌کند که با مدل نوع‌دهی سخت‌گیرانه در استاندارد SQL تفاوت اساسی دارد.

نکته 3:
‏موتور SQLite از بسیاری از دستورات پرکاربرد SQL پشتیبانی می‌کند، اما برخی ویژگی‌های پیشرفته مانند CHECK گسترده یا نوع‌های داده پیچیده ممکن است محدود باشند.

نکته 4:
‏SQLite در پیاده‌سازی قیود تمامیت نسبتاً سازگار است، اما رفتار آن در برخی موارد مانند FOREIGN KEY نیازمند فعال‌سازی صریح است و در همه نسخه‌ها یکسان نیست.

نکته 5:
‏در SQLite، پشتیبانی از تراکنش‌ها مطابق استاندارد ACID است، اما برخی حالت‌های انحصار قفل‌گذاری متفاوت از سازوکارهای استاندارد SQL عمل می‌کنند.

نکته 6:
‏روند بهینه‌سازی کوئری در SQLite سبک‌تر از موتورهای سنگین‌تر SQL است و تمام قابلیت‌های استاندارد بهینه‌سازی را ارائه نمی‌کند.

نکته 7:
‏برخی توابع تجمیعی و اسکالر استاندارد SQL در SQLite قابل استفاده‌اند، اما مجموعه آن‌ها نسبت به پایگاه‌های داده مبتنی بر استانداردهای گسترده‌تر محدودتر است.

نکته 8:
‏SQLite از FULL OUTER JOIN پشتیبانی نمی‌کند، که این موضوع یکی از موارد عدم انطباق با استانداردهای جامع SQL محسوب می‌شود.

نکته 9:
‏روند مدیریت اسکیما در SQLite با رویکرد استاندارد SQL تفاوت دارد، زیرا تغییر برخی ساختارها مانند ALTER TABLE محدودتر و نیازمند عملیات جایگزین است.

نکته 10:
‏SQLite در سطح نحو کلی، سازگاری مطلوبی با SQL ارائه می‌دهد، اما در سطح معناشناسی برخی دستورها، رویکردهای متفاوتی از استاندارد اتخاذ شده است.


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

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

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

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

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

‏نکته 1: حواست باشه! وقتی با JOIN داده‌ها رو به هم وصل می‌کنی و بعد COUNT می‌گیری، ممکنه تعداد ردیف‌هات الکی زیاد بشن. 🤔 برای شمردن آیتم‌های یکتا، حتماً از COUNT(DISTINCT ...) استفاده کن! 💡

‏نکته 2: اگه می‌خوای فقط آیتم‌های منحصر به فرد یه جدول رو بشمری ولی نیاز به اطلاعات جدول دیگه هم داری، COUNT(DISTINCT yourmaintable.id) رفیقته! اینجوری از شمردن تکراری‌ها جلوگیری می‌کنی.

‏نکته 3: عملکرد (Performance) رو دست کم نگیر! 🚀 JOIN و COUNT روی جدول‌های بزرگ می‌تونه سرعت رو بیاره پایین. حتماً مطمئن شو که ایندکس‌هات (Indexes) درست و حسابی تنظیم شدن!

‏نکته 4: فرق LEFT JOIN و INNER JOIN برای شمردن خیلی مهمه! اگه می‌خوای حتی اونایی که تو جدول دوم هیچ تطابقی ندارن هم تو شمردنت باشن، LEFT JOIN رو انتخاب کن. 🤝

‏نکته 5: گاهی اوقات، استفاده از یک ساب‌کوئری (Subquery) یا CTE برای شمردن پیش‌فرض، می‌تونه کوئری رو واضح‌تر و حتی سریع‌تر کنه. 🧠 پیچیده کردن JOIN و COUNT همیشه بهترین راه نیست!

‏نکته 6: برای شمردن گروه‌بندی شده (مثلاً تعداد سفارش برای هر مشتری)، GROUP BY رو فراموش نکن! 🏷️ این دستور کلید اصلی برای گرفتن آمار از دسته‌های مختلفه.

‏نکته 7: COUNT() و COUNT(columnname) فرق دارن. COUNT() همه ردیف‌ها رو میشماره، حتی اونایی که توشون NULL هستن (بعد از JOIN و WHERE). ولی COUNT(columnname) فقط ردیف‌های غیر-NULL رو میشماره. حواست باشه کدوم رو استفاده می‌کنی! 🧐

‏نکته 8: یه مثال کاربردی: برای شمردن تعداد سفارش‌های هر مشتری، می‌تونی اینطوری بنویسی: SELECT c.name, COUNT(o.orderid) FROM customers c LEFT JOIN orders o ON c.id = o.customerid GROUP BY c.id; خیلی مفیده! 🛒

‏نکته 9: الکی JOIN نکن! 🙅‍♀️ اگه فقط نیاز به یه شمارش ساده از یه جدول داری و اطلاعات جدول دیگه برات مهم نیست، بی‌جهت جدول‌ها رو به هم وصل نکن. کوئری‌هات رو سبک و کارآمد نگه دار! 🔥

‏نکته 10: همیشه اول با داده‌های کم و نمونه (Small Data) تست کن! 🧪 اینجوری می‌فهمی که JOIN و COUNT چطوری رفتار می‌کنن قبل از اینکه روی داده‌های اصلی (Production) اجراش کنی. امنیت و دقت حرف اوله!


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

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

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

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

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

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

نکته 2:
‏داده‌های JSON در SQLite به عنوان یک رشته متنی (TEXT) ذخیره می‌شوند، اما توابع JSON صحت ساختار و قالب‌بندی آن را در هنگام عملیات‌ها تضمین می‌نمایند.

نکته 3:
‏توابع json\_valid(X) برای تأیید اعتبار نحوی (Syntactic Validity) محتوای یک ستون یا عبارت به عنوان یک سند JSON معتبر به کار می‌رود و خروجی 1 یا 0 ارائه می‌دهد.

نکته 4:
‏برای استخراج یک مقدار مشخص از یک سند JSON، از تابع json\_extract(X, P1, P2, ...) استفاده می‌شود که در آن X سند و P مسیرهای دسترسی (Path) به عنصر مورد نظر هستند.

نکته 5:
‏مسیرهای JSON در توابع SQLite از نمادگذاری استاندارد JSONPath پیروی می‌کنند که با '\'$ برای ریشه سند شروع شده و با استفاده از نقطه یا براکت برای دسترسی به اعضای شیء یا آرایه ادامه می‌یابد.

نکته 6:
‏تابع json(X, P1, V1, P2, V2, ...) برای افزودن مقادیر جدید به سند JSON یا json برای جایگزینی مقادیر موجود در مسیرهای مشخص شده به کار می‌رود.

نکته 7:
‏تابع json شبیه json و json\_replace عمل می‌کند، اما در صورتی که مسیر وجود نداشته باشد درج (Insert) و در صورت وجود جایگزینی (Replace) را انجام می‌دهد.

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

نکته 9:
‏استفاده از JSON در SQLite برای ذخیره داده‌های نیمه ساختار یافته (Semi-Structured Data) انعطاف‌پذیری طرحواره (Schema Flexibility) را فراهم می‌آورد که در مدل‌های داده‌ای تکاملی ارزشمند است.

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


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

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

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

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

🟣 موضوع : ‏انواع مدل‌های داده در NoSQL

نکته :

‏برای ذخیره لاگ‌ها، داده‌های سری زمانی (time-series) یا اینترنت اشیا (IoT)، مدل ستونی عالیه چون برای نوشتن‌های زیاد بهینه شده. 📈✍️


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

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

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

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

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

‏سلام! NATURAL JOIN یه جورایی مثل رفیق صمیمی می مونه که خودش همه چی رو با هم جور می کنه. ولی بعضی وقتا، این رفاقت می تونه دردسرساز شه!

‏یادت باشه NATURAL JOIN بر اساس اسم ستون های مشترک، جدول ها رو به هم وصل می کنه. اگه اسامی ستون ها یهو عوض بشن، کل کوئریت می پره هوا! 💥

‏یه راه حل اینه که همیشه از USING یا ON استفاده کنی و اسم ستون ها رو خودت مشخص کنی. اینجوری کنترلش دست خودته! 💪

‏NATURAL JOIN موقعی که داری جدول های بزرگ رو با هم ترکیب می کنی، می تونه عملکرد رو کم کنه. 🐌 کوئری هات کند می شن!

‏بهتره کلاً از NATURAL JOIN دوری کنی و به جاش از JOIN های دیگه مثل INNER JOIN استفاده کنی. 😎

‏اگه می خوای مطمئن شی که همه چی درست کار می کنه، کوئری هاتو تست کن! 🧪 یه عالمه تست بزن تا ببینی چه خبره!

‏NATURAL JOIN باعث می شه کدت سخت تر خونده شه و بقیه نتونن راحت درکش کنن. 😵‍💫 پس مراقب باش!

‏همیشه به این فکر کن که کوئریت رو چطور میشه ساده تر و قابل فهم تر نوشت. 💡 اینطوری تیمت خوشحال تره!

‏اگه یه زمانی مجبور شدی از NATURAL JOIN استفاده کنی، حتماً کامنت بذار و توضیح بده که چرا این کارو کردی! 📝

‏خلاصه، با احتیاط با NATURAL JOIN رفتار کن! 🔥 بهتره بری سراغ JOIN های دیگه که امن تر و قابل اعتمادترن.


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

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

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

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

🟣 موضوع : CQRS (Command Query Responsibility Segregation)

نکته :

‏فکر کن یه فروشگاه آنلاین داری. هزار نفر همزمان محصول می‌بینن (Query)، ولی فقط چند نفر سفارش می‌دن (Command). با CQRS می‌تونی سمت Query رو خیلی خیلی قوی‌تر و سریع‌تر بسازی تا همه بتونن بدون معطلی خرید کنن. 🛍️🛒


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

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

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

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

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏استفاده از HAVING برای فیلتر کردن نتایج گروه‌بندی شده

‏اگه میخوای نتایج گروه‌بندیت رو فیلتر کنی، به جای WHERE از HAVING استفاده کن! خیلی باحاله 😎🔥

‏یادت نره HAVING بعد از GROUP BY میاد. اینجوری SQL Server گیج نمیشه 💡

‏HAVING میتونه شرط های پیچیده تری داشته باشه. مثلاً میانگین یه ستون رو چک کنه!

‏اگه از HAVING استفاده میکنی، حتماً یه ستون aggregate function (مثل COUNT، AVG) توش داشته باشی.

‏میتونی چند تا شرط رو با AND و OR توی HAVING ترکیب کنی. قدرتش رو دست کم نگیر! 😎

‏یه مثال ساده: SELECT department, COUNT() FROM employees GROUP BY department HAVING COUNT() > 10. باحاله مگه نه؟ 🔥

‏قبل از HAVING، دیتابیس اول داده ها رو GROUP BY میکنه، بعد HAVING اون ها رو فیلتر میکنه. اینو یادت نره! 💡

‏میتونی alias برای ستون aggregate function تعریف کنی و بعد توی HAVING ازش استفاده کنی. کارتو راحت میکنه

‏اگه توی WHERE و HAVING شرط های مشابه داری، سعی کن اونایی که میشه رو توی WHERE بذاری. اینجوری سریعتر میشه.

‏حواست باشه که HAVING فقط برای گروه‌بندی شده هاست! اگه GROUP BY نداشته باشی، ارور میده! 😎


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

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

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

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

🟣 موضوع : Provisioned Throughput (DynamoDB)

نکته :

"Burst capacity" DynamoDB'de harika bir özelliktir. 🌟 Ani trafik artışları için hazırda bekler, ancak her zaman ona güvenme!


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

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

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

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

🟣 موضوع : ‏NoSQL در مقابل SQL

نکته :

‏NoSQL برای اپلیکیشن‌هایی که سریع تغییر می‌کنن و حجم داده بالایی دارن عالیه 🚀.


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

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

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

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

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

نکته 1:
‏یه نوع رایج ایندکس، همونیه که برای کلید اصلی (PRIMARY KEY) خودکار ساخته می‌شه. بهش میگن B-Tree Index. ساختار اصلی SQLite با این کار می‌کنه! 🌳💡

نکته 2:
‏UNIQUE Index یه نوع ایندکسه که علاوه بر سرعت‌بخشی، مطمئن می‌شه هیچ مقداری توی اون ستون تکراری نباشه. دو تا کار با یک تیر! 🎯🔒

نکته 3:
‏می‌تونی ایندکس روی چندین ستون بسازی (Multi-Column Index). اگه همیشه با شرط WHERE City='X' AND State='Y' جستجو می‌کنی، این نوع ایندکس عالیه! 🧩

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

نکته 5:
‏ایندکس‌های Partial (یا Indexed Views تو بقیه دیتابیس‌ها) تو SQLite نداریم، اما می‌تونی با استفاده از WHERE موقع ساخت ایندکس، یه ایندکس بسازی که فقط روی یه زیرمجموعه از داده‌ها کار کنه. ✂️

نکته 6:
‏وقتی از CREATE INDEX ساده استفاده می‌کنی، در واقع یه Regular Index می‌سازی که برای جستجوی داده‌های عمومی عالیه. ساده و موثر.

نکته 7:
‏ایندکس‌هایی که از دستور CREATE UNIQUE INDEX استفاده می‌کنن، علاوه بر سرعت، یه محدودیت هم اضافه می‌کنن که مقادیر تکراری ممنوع بشن. پس مراقب داده‌های تکراری باش! 🚫🔥

نکته 8:
‏برای ستون‌های متنی (TEXT)، می‌تونی ایندکس بسازی. ایندکس‌سازی روی ستون‌های رشته‌ای طولانی ممکنه یه کم حجم دیتابیس رو زیاد کنه، ولی جستجوی متنی رو سریع می‌کنه. 📝

نکته 9:
‏ایندکس‌ها می‌تونن صعودی (ASC) یا نزولی (DESC) تعریف بشن. اگه همیشه داده‌ها رو به ترتیب نزولی مرتب می‌کنی، ایندکس نزولی بساز تا سریع‌تر باشه! ⬇️⬆️

نکته 10:
‏SQLite از یه نوع خاص از B-Tree استفاده می‌کنه که برای دیتابیس‌های تک‌فایلی و تعبیه‌شده (Embedded) خیلی بهینه و کارآمده. معماری زیرکانه! 🏗️😎


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز #SQL



کدام کوئری تعداد کل رکوردهای جدول employees را برمی‌گرداند؟ 

A) SELECT SUM(*) FROM employees; 

B) SELECT COUNT() FROM employees; 

C) SELECT COUNT(*) FROM employees; 

D) SELECT TOTAL(*) FROM employees; 


پاسخ:
C
 

توضیح: COUNT(*) تعداد کل رکوردها را در جدول می‌شمارد، حتی اگر شامل NULL باشند. 


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



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

🟣 موضوع : ‏پشتیبانی ACID در پایگاه‌های جدید (FaunaDB)

نکته :

‏دنبال یه دیتابیس NoSQL هستی که اسکیل‌پذیر باشه و دردسر کمتری داشته باشه؟ FaunaDB می‌تونه انتخاب خوبی باشه. کلاه‌برداری هم توش کمتره! 💸😎


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
Media is too big
VIEW IN TELEGRAM
🔵 ۲۲- دستور OUTER JOIN در MySQL

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

🔴 توجه کنید با تنظیمات خود تلگرام می توانید حجم و کیفیت ویدیو را بر اساس سرعت اینترنت خود تنظیم نمایید.

🟣 MySQL آموزش

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

🟣 MySQL آموزش


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

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

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

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