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

* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
Download Telegram
🔵 عبارت SELECT در (T-SQL)

در SQL Server، عبارت SELECT در Transact-SQL (T-SQL) برای بازیابی داده‌ها از جداول و ویوها استفاده می‌شود. این عبارت به شما امکان می‌دهد تا ستون‌های خاصی را از یک یا چند جدول انتخاب کنید و نتایج را به کاربر بازگردانید. SELECT یکی از اساسی‌ترین و پرکاربردترین دستورات در SQL است که تقریباً در تمام عملیات‌های پایگاه داده‌ای استفاده می‌شود.

🟣 ساختار پایه‌ای SELECT
دستور SELECT به صورت زیر استفاده می‌شود:
SELECT column1, column2, ...
FROM table_name;

در اینجا:
- column1, column2, ... نام ستون‌هایی هستند که می‌خواهید داده‌هایشان را بازیابی کنید.
- table_name نام جدولی است که می‌خواهید داده‌ها را از آن بازیابی کنید.

اگر می‌خواهید همه ستون‌های یک جدول را انتخاب کنید، می‌توانید به جای نام ستون‌ها از * استفاده کنید:
SELECT * 
FROM table_name;


🟢 فیلتر کردن داده‌ها با WHERE
بسیاری از مواقع، شما نمی‌خواهید تمام ردیف‌های یک جدول را بازیابی کنید، بلکه فقط ردیف‌هایی که معیارهای خاصی را دارند می‌خواهید. برای این منظور از عبارت WHERE استفاده می‌شود:
SELECT column1, column2
FROM table_name
WHERE condition;

عبارت WHERE به شما اجازه می‌دهد تا داده‌ها را بر اساس شرایط خاصی فیلتر کنید. به عنوان مثال، می‌توانید ردیف‌هایی را انتخاب کنید که مقدار خاصی در یکی از ستون‌ها داشته باشند:
SELECT * 
FROM Employees
WHERE Department = 'Sales';


🔵 مرتب‌سازی نتایج با ORDER BY
عبارت ORDER BY به شما امکان می‌دهد تا نتایج بازیابی‌شده را بر اساس یک یا چند ستون مرتب کنید. به طور پیش‌فرض، مرتب‌سازی به صورت صعودی (ASC) است، اما می‌توانید با استفاده از DESC نتایج را به صورت نزولی مرتب کنید:
SELECT column1, column2
FROM table_name
ORDER BY column1 ASC, column2 DESC;


🟢 محدود کردن تعداد نتایج با TOP
عبارت TOP به شما اجازه می‌دهد تا تعداد مشخصی از ردیف‌ها را از نتایج بازیابی‌شده انتخاب کنید. این عبارت می‌تواند به همراه PERCENT نیز استفاده شود تا درصد مشخصی از ردیف‌ها انتخاب شوند:
SELECT TOP 10 *
FROM Employees
ORDER BY HireDate DESC;

این دستور ۱۰ ردیف اول را بر اساس تاریخ استخدام به ترتیب نزولی بازیابی می‌کند.

🟣 پیوستن جداول با JOIN
اغلب اوقات نیاز است که داده‌ها از چندین جدول مرتبط بازیابی شوند. برای این کار، از JOIN استفاده می‌شود که انواع مختلفی دارد:
- INNER JOIN: فقط ردیف‌هایی که در هر دو جدول مشترک هستند را بازیابی می‌کند.
- LEFT JOIN: تمام ردیف‌های جدول سمت چپ و ردیف‌های منطبق در جدول سمت راست را بازیابی می‌کند.
- RIGHT JOIN: تمام ردیف‌های جدول سمت راست و ردیف‌های منطبق در جدول سمت چپ را بازیابی می‌کند.
- FULL JOIN: تمامی ردیف‌های هر دو جدول را بازیابی می‌کند، چه منطبق باشند و چه نباشند.

مثال:
SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

این دستور نام کارمندان و نام دپارتمان‌هایشان را بازیابی می‌کند.

🔵 گروه‌بندی داده‌ها با GROUP BY
عبارت GROUP BY به شما امکان می‌دهد تا نتایج را بر اساس یک یا چند ستون گروه‌بندی کنید. این عبارت معمولاً با توابع تجمعی مانند SUM, COUNT, AVG, MAX, و MIN استفاده می‌شود:
SELECT Department, COUNT(*)
FROM Employees
GROUP BY Department;

این دستور تعداد کارمندان در هر دپارتمان را نمایش می‌دهد.

🟣 فیلتر کردن گروه‌ها با HAVING
عبارت HAVING مشابه WHERE است اما به جای فیلتر کردن ردیف‌ها، گروه‌های داده را فیلتر می‌کند. این عبارت معمولاً با GROUP BY استفاده می‌شود:
SELECT Department, COUNT(*)
FROM Employees
GROUP BY Department
HAVING COUNT(*) > 5;

این دستور فقط دپارتمان‌هایی را نمایش می‌دهد که بیش از ۵ کارمند دارند.

🟢 زیرپرس و CTE
- زیرپرس (Subquery): یک پرس‌وجو در داخل یک پرس‌وجو دیگر قرار دارد. زیرپرس می‌تواند به عنوان ستون در لیست انتخاب، در عبارت WHERE یا FROM استفاده شود.
- عبارت جدول مشترک (CTE): یک پرس‌وجوی موقتی که می‌تواند در همان دستور SELECT استفاده شود و معمولاً خوانایی را بهبود می‌بخشد:
WITH DepartmentCount AS (
SELECT DepartmentID, COUNT(*) as EmployeeCount
FROM Employees
GROUP BY DepartmentID
)
SELECT *
FROM DepartmentCount
WHERE EmployeeCount > 5;



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

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

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

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

Telegram
📚 نکته #SQLite

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

نکته 1:
‏مدیریت همزمانی (Concurrency Control) در SQLite به فرآیند کنترل دسترسی چندگانه به پایگاه داده به صورت همزمان اطلاق می‌شود تا صحت و یکپارچگی داده‌ها حفظ شود.

نکته 2:
‏SQLite به عنوان یک سامانه پایگاه داده بدون سرور (Serverless)، همزمانی را در سطح فایل کامل (Entire Database File) و با استفاده از مکانیزم‌های قفل‌گذاری سیستم فایل میزبان مدیریت می‌کند.

نکته 3:
‏در حالت پیش‌فرض و سنتی Journal Mode، SQLite تنها به یک پروسه در هر زمان اجازه نوشتن (Write) می‌دهد، اما می‌تواند چندین پروسه را برای خواندن (Read) به طور همزمان پشتیبانی کند.

نکته 4:
‏هنگامی که یک پروسه عملیات نوشتن را آغاز می‌کند، یک قفل انحصاری نوشتن (Exclusive Write Lock) بر روی فایل پایگاه داده اعمال می‌کند که مانع از شروع عملیات نوشتن توسط پروسه‌های دیگر می‌شود.

نکته 5:
‏برای افزایش همزمانی، SQLite از مکانیزم Write-Ahead Logging (WAL) پشتیبانی می‌کند که در آن عملیات خواندن می‌تواند همزمان با یک عملیات نوشتن انجام شود.

نکته 6:
‏در حالت WAL، تغییرات ابتدا در یک فایل لاگ مجزا (WAL File) ثبت می‌شوند و عملیات خواندن می‌توانند همچنان به فایل اصلی داده‌ها دسترسی داشته باشند.

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

نکته 8:
‏پروتکل‌های قفل‌گذاری SQLite شامل سطوح مختلف قفل‌ها مانند SHARED, RESERVED, PENDING و EXCLUSIVE هستند که به صورت ترتیبی و برای کنترل دسترسی اعمال می‌شوند.

نکته 9:
‏عدم توانایی در مدیریت همزمان چندین عملیات نوشتن، محدودیت ذاتی مدل مبتنی بر فایل SQLite است که آن را برای محیط‌های با حجم بالای نوشتن‌های همزمان نامناسب می‌سازد.

نکته 10:
‏مدیریت مؤثر همزمانی در SQLite معمولاً مستلزم کوتاه نگه داشتن زمان تراکنش‌ها و انتخاب حالت‌های تراکنشی مناسب (IMMEDIATE یا EXCLUSIVE) برای به حداقل رساندن تداخلات قفل‌گذاری است.


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

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

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

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


انقلاب در تولید گفتار: Eleven v3 معرفی شد؛ طبیعی‌ترین هوش مصنوعی تبدیل متن فارسی به گفتار!


🟣 خبر هیجان‌انگیزی برای توسعه‌دهندگان و تولیدکنندگان محتوا! شرکت ElevenLabs، پیشرو در زمینه تبدیل متن به گفتار (Text-to-Speech)، جدیدترین مدل خود با نام Eleven v3 (Alpha) را معرفی کرده است. تمرکز اصلی این نسخه بر تولید صداهای مصنوعی با بیان احساسات بسیار طبیعی‌تر و واقعی‌تر است و خبر خوب اینکه، این مدل به طور کامل از زبان فارسی هم پشتیبانی می‌کند!


🔴 حس واقعی‌تر، صدای واقعی‌تر

هدف اصلی ElevenLabs در این نسخه، حل چالش قدیمی انتقال احساسات در صداهای مصنوعی بوده است. در گذشته، کیفیت صرف صدا اولویت داشت، اما حالا با بازطراحی کامل، Eleven v3 توانایی بازسازی طبیعی‌تری از احساسات متنوعی مانند نجوا، خنده، آه‌کشیدن و واکنش‌های هیجانی را نسبت به نسخه‌های قبلی دارد. این یعنی صداهایی که تولید می‌شوند، دیگر فقط ماشینی نیستند، بلکه جان دارند و حس را منتقل می‌کنند.


🔵 پشتیبانی از ٧٠ زبان و گفتگوهای چندنفره!

یکی از ویژگی‌های برجسته Eleven v3، پشتیبانی از بیش از ٧٠ زبان از جمله فارسی است. این ویژگی به تنهایی، دریچه‌های جدیدی را به روی تولید محتوای چندزبانه باز می‌کند. اما قابلیت هیجان‌انگیزتر، امکان اجرای طبیعی و روان گفتگوهای چندنفره است. با API جدید، می‌توانید متن‌های ساختاریافته‌ای را که شامل نوبت هر گوینده می‌شود، به مدل ارسال کنید. مدل به طور خودکار، مدیریت تغییر نوبت گوینده، تحولات احساسی و حتی قطع کلام‌ها را بر عهده می‌گیرد. این قابلیت برای تولید دیالوگ‌های پیچیده و طبیعی در پادکست‌ها، کتاب‌های صوتی، بازی‌ها و هر نوع محتوای چندصدایی، فوق‌العاده کاربردی خواهد بود.


🟢 فرصت‌های جدید برای توسعه‌دهندگان و خلاقان:

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

#ElevenLabs #هوش_مصنوعی #تبدیل_متن_به_گفتار #پردازش_زبان_طبیعی #تولید_محتوا

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

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

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

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

🟣 موضوع : ‏یادگیری ماشین: K-Means - فرمول ریاضی و تابع هزینه (Objective Function)

نکته :

‏تابع هزینه، مثل یه GPS عمل می‌کنه. بهت نشون میده چقدر از مسیر درست دور شدی. هرچی کمتر، بهتر! 💡


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

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

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

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

🟣 سوال: استفاده از عبارت CASE در یک کوئری SELECT را توضیح دهید.

🟢 پاسخ: عبارت CASE برای ایجاد منطق شرطی در یک کوئری SELECT استفاده می‌شود و به شما اجازه می‌دهد مقادیر مختلفی را بر اساس شرایط خاص برگردانید.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

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

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

🟣 موضوع : ‏Monitoring و مانیتورینگ دیتابیس

نکته :

‏لاگ هات رو بررسی کن! Error Log و SQL Server Agent Log می تونن سرنخ های خوبی بهت بدن. 🧐


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

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

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

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



کدام عبارت SQL نام‌های مشتریانی که با حرف «A» شروع می‌شوند را پیدا می‌کند؟ 

   A) SELECT * FROM customers WHERE name LIKE '%A'; 

   B) SELECT * FROM customers WHERE name LIKE 'A%'; 

   C) SELECT * FROM customers WHERE name LIKE '_A'; 

   D) SELECT * FROM customers WHERE name LIKE 'A_'; 


   پاسخ:

B) SELECT * FROM customers WHERE name LIKE 'A%'; 

   توضیح: الگوی 'A%' همه نام‌هایی که با «A» شروع می‌شوند را انتخاب می‌کند. 


   

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



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

🟣 موضوع : ‏Global Tables در DynamoDB

نکته :

‏گلوبال تیبل‌ها هزینه دارن! برای هر نوشتن تو هر منطقه و انتقال دیتا پول میدی. حواست به قبض آخر ماه باشه! 💸🧐


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

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

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

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

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

نکته :

‏نکته ۸: محدودیت‌ها رو هوشمندانه به کار بگیر! 🧠 اگه می‌دونی دنبال چه جور قوانینی هستی (مثلاً قوانین با حداقل ۳ قلم جنس)، از این محدودیت‌ها برای فیلتر کردن هوشمندانه‌تر استفاده کن. سرعتت رو می‌بره بالا! 🚀


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

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

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

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

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

نکته 1:
‏ST_Intersects تو SpatiaLite مثل یه کارآگاه عمل می‌کنه که چک می‌کنه ببینه آیا دو تا شیء جغرافیایی (مثل دو تا محدوده یا یه نقطه و یه محدوده) تداخلی با هم دارن یا نه. 🕵️💡

نکته 2:
‏ساختارش اینه: ST_Intersects(geom1, geom2). اگه تداخلی باشه، مقدار یک (TRUE) و اگه نباشه، صفر (FALSE) برمی‌گردونه.

نکته 3:
‏این تابع برای شرط WHERE فوق‌العاده‌ست! مثلاً برای پیدا کردن تمام رستوران‌هایی که تو محدوده شهرداری خاصی قرار دارن. 🏙️🔍

نکته 4:
‏تداخل فقط به معنای همپوشانی نیست. اگه یه نقطه روی مرز یه چندضلعی باشه، ST_Intersects باز هم TRUE برمی‌گردونه. مرز هم جزو تداخله! 💥

نکته 5:
‏برای جستجوی سریع روی داده‌های مکانی، حتماً شرط ST_Intersects رو با ایندکس R-Tree همراه کن. ایندکس R-Tree سرعت کوئری‌هات رو خیلی زیاد می‌کنه. 🌳🚀🔥

نکته 6:
‏تو می‌تونی با این تابع ببینی آیا یه مسیر (LineString) از یه منطقه حفاظت‌شده (Polygon) عبور می‌کنه یا نه. خیلی برای تحلیل مسیر کاربردیه. 📏

نکته 7:
‏اگه می‌خوای مطمئن شی که تداخل دقیقاً تو ناحیه‌ی داخلی (بدون در نظر گرفتن مرز) اتفاق می‌افته، از تابع دیگه مثل STWithin یا STContains استفاده کن. ⚠️

نکته 8:
‏یه کاربرد باحال: تو می‌تونی با ST_Intersects مطمئن شی که هیچ دو تا شیء جغرافیایی خاصی (مثل محل قرارگیری دو تا دکل مخابراتی) با هم تداخل ندارن. 🚫

نکته 9:
‏یادت باشه، ورودی‌های ST_Intersects باید اشکال هندسی باشن، نه فقط عرض و طول جغرافیایی ساده. باید اونا رو قبلاً با توابعی مثل MakePoint ساخته باشی. 🛠️

نکته 10:
‏برای این تابع، مهم نیست که شیء اول بزرگتره یا دومی. فقط وجود اشتراک بین دوتا شیء، نتیجه رو مثبت می‌کنه. 💯😎


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

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

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

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

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

نکته 1:
‏برای پرس‌وجو روی داده‌های مکانی، حتماً باید افزونه SpatiaLite رو فعال کرده باشی. وگرنه SQLite اصلاً نمی‌دونه موقعیت جغرافیایی چیه! 🌎💡

نکته 2:
‏یکی از رایج‌ترین پرس‌وجوها، پیدا کردن فاصله بین دو نقطه است. با تابع Distance(geom1, geom2) می‌تونی این کار رو انجام بدی. 📐

نکته 3:
‏اگه می‌خوای دنبال چیزهایی بگردی که در یه محدوده دایره‌ای خاص (مثلاً ۱ کیلومتری از یک نقطه) قرار دارن، باید از توابعی مثل ST_Within() و یه شکل دایره‌ای استفاده کنی. 🔍

نکته 4:
‏برای جستجوی سریع در یک ناحیه‌ی مستطیلی، حتماً از ایندکس R-Tree استفاده کن. ایندکس رو به شرط WHERE اضافه کن تا فقط بخش کوچکی از دیتابیس رو جستجو کنه. 🌳🚀🔥

نکته 5:
‏برای دیدن اینکه دو شیء جغرافیایی (مثلاً یه نقطه و یه چندضلعی) با هم تلاقی دارن یا نه، از تابع ST_Intersects(geom1, geom2) استفاده کن. 💥

نکته 6:
‏تو می‌تونی با تابع ST_Within(point, polygon) چک کنی که یه نقطه خاص (مثل خونه تو) داخل یه محدوده (مثل یه پارک) قرار داره یا نه. 📍🏞️

نکته 7:
‏برای پیدا کردن یه نقطه که نزدیک‌ترین نقطه به یه نقطه‌ی دیگه تو دیتابیس باشه، باید از ترکیب توابع فاصله و ORDER BY و LIMIT 1 استفاده کنی. 🎯

نکته 8:
‏برای گزارش‌گیری، می‌تونی خروجی داده‌های مکانی رو با توابعی مثل AsGeoJSON(geom) به فرمت استاندارد GeoJSON تبدیل کنی. 📝📊

نکته 9:
‏اگه داری عملیات‌های پیچیده (مثل STUnion یا STBuffer) انجام می‌دی، مطمئن شو که این کار رو قبل از ذخیره‌سازی انجام بدی یا از توابع با کارایی بالا استفاده کنی. 🛠️

نکته 10:
‏در نهایت، برای اینکه مطمئن شی کوئری‌هات درسته، همیشه مختصات رو بر اساس یک SRID ثابت (مثل 4326 برای GPS) ذخیره و جستجو کن. 🌐😎


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

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

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

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

🟣 موضوع : ‏Time‑Series Data در NoSQL

نکته :

‏برای هر سنسور یا دستگاه، یه داکیومنت یا ردیف جدا در نظر بگیر. اینجوری داده‌ها منظم‌تر می‌مونن و خوندنشون آسون‌تره. 📝


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

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

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

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

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

نکته 1:
‏SQLite از توابع داخلی JSON پشتیبانی می‌کنه! یعنی می‌تونی داده‌های ساختاریافته JSON رو تو یه ستون TEXT یا BLOB ذخیره کنی و مستقیم با SQL باهاشون کار کنی. 🚀💡

نکته 2:
‏تابع json_extract() جادوییه! بهت اجازه می‌ده که یه مقدار خاص رو از دل ساختار JSON بیرون بکشی و تو شرط WHERE یا SELECT استفاده کنی. 🔍

نکته 3:
‏برای دیدن اینکه یه رشته واقعاً ساختار JSON درستی داره یا نه، از تابع json_valid() استفاده کن. اگه نتیجه 1 باشه، یعنی JSON معتبر و سالمه!

نکته 4:
‏اگه می‌خوای یه کلید یا مقدار جدید به JSON اضافه کنی، از تابع قدرتمند jsoninsert() یا jsonset() استفاده کن. بدون دردسر کل رشته رو عوض می‌کنه. 🛠️

نکته 5:
‏وقتی از json_extract() استفاده می‌کنی، باید از یه مسیر (Path) مثل $.key برای پیدا کردن داده مورد نظر استفاده کنی. انگار داری آدرس می‌دهی. 🗺️

نکته 6:
‏برای گرفتن کلیدها یا عناصر یه آرایه JSON، از تابع json_each() استفاده کن. این تابع JSON رو به صورت موقت به ردیف‌های جدول تبدیل می‌کنه! 🤯🔥

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

نکته 8:
‏برای پاک کردن یه کلید از داخل JSON، از تابع json_remove(ستون، '$.کلید') استفاده کن. این خیلی تمیزتر از دستکاری رشته است. 🗑️

نکته 9:
‏با تابع jsongrouparray() می‌تونی نتایج یه گروه رو تو یه آرایه JSON جمع کنی. این خیلی برای گزارش‌گیری‌های تو در تو کاربردیه! 📊

نکته 10:
‏تابع ساده json_type(ستون, '$.key') بهت می‌گه که نوع داده‌ی اون قسمت از JSON (مثلاً text، integer یا object) چیه. برای چک کردن نوع داده! 🧐😎


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

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

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

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

منظم‌سازی یا Regularization دوستت برای جلوگیری از Overfitting هست.

🔹 ایده‌اش اینه که جلوی بزرگ شدن بیش‌ازحد وزن‌ها در مدل رو می‌گیره.

روش L1 (Lasso): باعث میشه بعضی وزن‌ها دقیقاً صفر بشن → به انتخاب ویژگی کمک می‌کنه.

روش L2 (Ridge): وزن‌ها رو کوچک می‌کنه ولی صفر نمی‌کنه → پایداری مدل بیشتر میشه.

روش Elastic Net: ترکیبی از هر دو.

🔹 در شبکه‌های عصبی هم Regularization می‌تونه با روش‌هایی مثل Dropout یا Weight Decay اعمال بشه.

به زبان ساده: Regularization مثل اینه که به مدل بگی “خیلی پیچیده نشو، ساده‌تر هم می‌تونی جواب درست بدی.”

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


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

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

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

🟣 موضوع : ‏دستورات DDL: ALTER TABLE

نکته :

‏"اگه میخوای جدولتو rename کنی، باید اول جدول رو rename کنی بعد column رو، چون rename ستون مستقیم توی ALTER TABLE نیست. یه راه دور زدنه ولی کارتو راه میندازه! "


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Joins in SQL Joins in SQL with Example SQL Tutorial for Beginners Edureka

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

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

🟣 MySQL Tutorial For Beginners | Edureka

🟢 زبان آموزش: انگلیسی

🟣 دوره MySQL برای مبتدیان


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

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

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

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

🟣 موضوع : ‏یادگیری ماشین: کم‌برازش - افزایش پیچیدگی مدل

نکته :

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


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

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

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

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

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

نکته 1:
‏کلید اصلی (PRIMARY KEY) چیه؟ 🤔 مثل کد ملی تو می‌مونه! یه شناسه منحصر به فرد که هیچ دو ردیفی نمی‌تونن داشته باشن. 🆔

نکته 2:
‏هر جدول SQLite باید فقط یک کلید اصلی داشته باشه. این قانون اوله! اگه بیشتر بذاری، SQLite گیج می‌شه. 🚫☝️

نکته 3:
‏مهم‌ترین کارش اینه که منحصر به فرد بودن (Unique) داده‌ها رو تضمین می‌کنه. نمی‌ذاره اطلاعات تکراری وارد بشه. امنیت داده‌ها! 🔒

نکته 4:
‏کلید اصلی می‌تونه از یک یا چند ستون تشکیل بشه (کلید ترکیبی). مثلاً ترکیب "نام" و "نام خانوادگی" توی یه جدول خاص. 🧩

نکته 5:
‏وقتی یه فیلد رو PRIMARY KEY تعریف می‌کنی، SQLite به طور خودکار یه ایندکس (Index) هم براش می‌سازه. این یعنی سرعت بیشتر توی جستجو! 🚀🔥

نکته 6:
‏برای یه کلید اصلی معمولاً از نوع داده INTEGER استفاده می‌کنن و معمولاً اسمشو می‌ذارن id یا [نام جدول]_id. ساده و شیک! 🔢

نکته 7:
‏بهترین کار اینه که کلید اصلی رو با کلمه کلیدی AUTOINCREMENT تعریف کنی. اینجوری خودش به صورت خودکار با هر ردیف جدید، یکی اضافه می‌شه. راحت‌کاری! 💡

نکته 8:
‏PRIMARY KEY اجباراً نباید مقدار NULL داشته باشه. چون شناسه است و باید حتماً یه مقداری داشته باشه!

نکته 9:
‏اگه یه کلید اصلی رو به صورت INTEGER PRIMARY KEY تعریف کنی، در واقع اون ستون ROWID داخلی SQLite رو می‌گیره. این خیلی توی بهینه‌سازی کمکت می‌کنه. 🤓

نکته 10:
‏کلید اصلی تو یه جدول، معمولاً همون فیلدیه که جداول دیگه (کلید خارجی) برای ارتباط برقرار کردن بهش وصل می‌شن. این قلب ارتباط بین جداوله! ❤️🔗


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

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

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

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

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

نکته 1:
‏DEFAULT چیه؟ 🤔 مثل این می‌مونه که تو یه فرم، اگه یه فیلدی رو پر نکنی، خودش خودکار یه مقدار پیش‌فرض می‌گیره. تنبل ولی کاربردی! 😴

نکته 2:
‏اگه هنگام INSERT کردن یه رکورد، برای یه ستون مقدار تعیین نکنی، DEFAULT وارد عمل می‌شه و اون مقدار پیش‌فرض رو پر می‌کنه. 💡

نکته 3:
‏این محدودیت برای وقتایی عالیه که احتمال می‌دی کاربر یا برنامه‌نویس فراموش کنه یه فیلد رو پر کنه، ولی تو نمی‌خوای اون فیلد خالی (NULL) بمونه. 🚫

نکته 4:
‏یه مثال باحال: برای ستون is_active (فعال بودن) می‌تونی بذاری DEFAULT 1. اینجوری هر کاربر جدید به صورت پیش‌فرض فعال در نظر گرفته می‌شه. 🔥

نکته 5:
‏برای ستون‌های تاریخ و زمان، می‌تونی از توابع خود SQLite استفاده کنی. مثلاً برای createdat بذار DEFAULT CURRENTTIMESTAMP. اینجوری زمان دقیق ایجاد رو ثبت می‌کنه.

نکته 6:
‏اگه همزمان از DEFAULT و NOT NULL استفاده کنی، خیالت راحته که اون ستون نه خالی می‌مونه و نه مقدار پیش‌فرضش از دست می‌ره. ترکیب قوی! 💪

نکته 7:
‏مقدار DEFAULT می‌تونه یه عدد، یه رشته متنی یا یکی از توابع خاص SQLite باشه. هر چیزی که به درد اون نوع داده می‌خوره. 🔢

نکته 8:
‏تو نمی‌تونی از توابع تجمعی (مثل COUNT یا SUM) به عنوان مقدار DEFAULT استفاده کنی. فقط مقادیر ثابت یا توابع مجاز. 🛑

نکته 9:
‏وقتی یه ردیف رو INSERT می‌کنی و می‌خوای مقدار پیش‌فرض استفاده بشه، یا کلاً اسم اون ستون رو تو دستور INSERT نیار، یا بنویس DEFAULT. ✍️

نکته 10:
‏DEFAULT واقعاً به درد نگهداری داده‌های ثابت و استاندارد می‌خوره. مطمئن می‌شی که داده‌هات بدون تلاش اضافی، یه چارچوب مشخصی دارن. 🚀😎


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

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

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

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

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

نکته 1:
‏مکانیزم قفل‌گذاری (Locking) در SQLite برای مدیریت همزمانی (Concurrency) و حفظ خواص ACID تراکنش‌ها در محیطی که چندین فرآیند به طور همزمان به فایل پایگاه داده دسترسی دارند، ضروری است.

نکته 2:
‏SQLite از یک سیستم قفل‌گذاری در سطح فایل استفاده می‌کند؛ به این معنا که قفل‌ها بر روی کل فایل پایگاه داده اعمال می‌شوند و نه بر روی جداول یا سطرها.

نکته 3:
‏پنج وضعیت یا سطح قفل اصلی در SQLite وجود دارد: UNLOCKED، SHARED، RESERVED، PENDING، و EXCLUSIVE که به صورت ترتیبی برای عملیات‌های نوشتن اعمال می‌شوند.

نکته 4:
‏قفل SHARED (اشتراکی) به چندین تراکنش خواننده اجازه می‌دهد به طور همزمان فایل پایگاه داده را باز کنند، اما در این حالت هیچ تراکنش نوشتن دیگری نمی‌تواند شروع شود.

نکته 5:
‏قفل RESERVED (رزرو شده) توسط یک تراکنش در حال نوشتن اعمال می‌شود و نشان می‌دهد که این تراکنش قصد دارد در آینده نزدیک تغییراتی را انجام دهد؛ این قفل مانع از رزرو قفل توسط تراکنش‌های دیگر می‌شود.

نکته 6:
‏قفل PENDING (معلق) هنگامی اعمال می‌شود که یک تراکنش در حال نوشتن منتظر است تا تمامی قفل‌های SHARED فعال آزاد شوند تا بتواند قفل انحصاری خود را ارتقاء دهد.

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

نکته 8:
‏در حالت پیش‌فرض Journal Mode، عملیات‌های نوشتن یکدیگر را مسدود می‌کنند، در حالی که در حالت WAL، عملیات خواندن و نوشتن می‌توانند به طور همزمان (با تنها یک نویسنده) انجام شوند.

نکته 9:
‏در صورت تلاش یک تراکنش برای به دست آوردن یک قفل که در حال حاضر توسط یک تراکنش دیگر نگهداری می‌شود، تراکنش درخواست‌دهنده با یک خطا مواجه می‌شود یا طبق Busy Timeout منتظر می‌ماند.

نکته 10:
‏مدیریت مؤثر قفل‌گذاری در SQLite مستلزم کوتاه نگه داشتن زمان تراکنش‌های نوشتن است تا از انسداد طولانی‌مدت دسترسی سایر پروسه‌ها به پایگاه داده جلوگیری شود.


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

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

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

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

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

نکته 1:
‏رفتار پیش‌فرض SQLite اینه که کل دیتابیس رو تو یه فایل تکی ذخیره می‌کنه و به سرور جداگانه نیازی نداره. یه فایل یعنی همه چیز! 📦💾💡

نکته 2:
‏به صورت پیش‌فرض، SQLite از حالت Journal Mode (معمولاً DEFERRED) استفاده می‌کنه. این باعث می‌شه که عملیات نوشتن کندتر باشه، اما داده‌ها ایمن‌تر باشن. 🛡️

نکته 3:
‏وقتی یه عملیات نوشتن (INSERT/UPDATE/DELETE) انجام می‌دی، SQLite به طور پیش‌فرض یه تراکنش (Transaction) جدید ایجاد می‌کنه و بلافاصله COMMIT می‌کنه (Autocommit). 📝

نکته 4:
‏برای امنیت، سطح Synchronous پیش‌فرض روی FULL تنظیم شده. این یعنی دیتابیس همیشه مطمئن می‌شه که اطلاعات قبل از تأیید، روی دیسک ذخیره شدن. 🔒🔥

نکته 5:
‏SQLite از نظر نوع داده‌ها سست عمل می‌کنه! یعنی اگه ستونی رو INTEGER تعریف کنی، باز هم می‌تونی توش یه متن ذخیره کنی. ⚠️

نکته 6:
‏به طور پیش‌فرض، اگه یه جدول بسازی و PRIMARY KEY رو مشخص نکنی، SQLite یه ستون پنهان به اسم rowid برای شناسایی ردیف‌ها اضافه می‌کنه. 🔢

نکته 7:
‏تو حالت عادی، SQLite فقط به یک نویسنده (Writer) تو هر لحظه اجازه می‌ده. اگه چندین برنامه همزمان بخوان بنویسن، بقیه باید صبر کنن. 🚫

نکته 8:
‏اندازه‌ی پیش‌فرض صفحات دیتابیس (Page Size) معمولاً ۴۰۹۶ بایت (۴ کیلوبایت) هست. این اندازه، مبنای ذخیره‌سازی و خواندن اطلاعاته. 📏

نکته 9:
‏وقتی یه فایل دیتابیس رو باز می‌کنی و اون فایل وجود نداره، SQLite به طور پیش‌فرض یه فایل جدید برات می‌سازه. خیلی دوستانه! 🛠️

نکته 10:
‏رفتار پیش‌فرض حافظه‌ی کش (Cache) اینه که به صورت خصوصی (Private) عمل می‌کنه، یعنی هر اتصال دیتابیس، کش مخصوص به خودش رو داره. 🧠😎


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

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

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

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