SQL برای تازه‌کارها؛ نقشه‌ای از CRUD تا join

چرا مهم است

اگر شروع کار با داده برایت مبهم است، چهار کار اصلی را مشخص می‌کند: ایجاد، خواندن، تغییر و حذف. این راهنما با مثال دانش‌آموز و نمره نشان می‌دهد هرکدام در SQL با چه دستوری انجام می‌شود.

قبل از خواندن، این‌ها را بدان۵ مفهوم
CRUD

نام کوتاه چهار عملیات اصلی روی داده: ایجاد، خواندن، تغییر و حذف.

بیشتر: CRUD

commit

نهایی‌کردن تغییرهای انجام‌شده در database؛ در مثال DB Browser for SQLite،؜ این کار تغییرها را در فایل ثبت می‌کند.

بیشتر: commit

join

عملی در SQL که اطلاعات جدول‌ها را بر اساس تطبیق مقدار ستون‌های مرتبط کنار هم قرار می‌دهد.

در حال نگارش: join

declarative

رویکردی که در آن نتیجهٔ موردنظر بیان می‌شود، نه مراحل انجام کار.

در حال نگارش: declarative

aggregate function

function‌ای که از مجموعه‌ای از مقدارها، نتیجه‌ای خلاصه مثل مجموع، میانگین یا کمترین مقدار محاسبه می‌کند.

در حال نگارش: aggregate function

SQL خودش database نیست؛ زبانی برای ارتباط با database رابطه‌ای است. این زبان رویکردی declarative دارد: به‌جای توضیح مراحل انجام کار، مشخص می‌کند چه داده‌ای می‌خواهیم. برای کسی که با Excel آشناست، متن database را به یک workbook و هر جدول را به یک sheet تشبیه می‌کند؛ هر ردیف یک مورد و هر ستون یکی از ویژگی‌های آن را نگه می‌دارد.

محور آموزش، CRUD است: ایجاد، خواندن، تغییر و حذف داده. مثال‌ها دو جدول students و scores دارند که شناسهٔ دانش‌آموز، اطلاعات آن‌ها را به هم مرتبط می‌کند. برای تمرین، SQLBolt و DB Browser for SQLite معرفی شده‌اند. در دومی می‌توان یک database ساخت و دستورها را در بخش Execute SQL اجرا کرد.

خواندن داده با SELECT شروع می‌شود. می‌توان ستون‌های موردنیاز را انتخاب کرد، با WHERE ردیف‌ها را محدود کرد، با ORDER BY ترتیبشان را تغییر داد و با LIMIT و OFFSET تعداد نتیجه‌ها و نقطهٔ شروع را تعیین کرد. برای نمونه، انتخاب نمره‌های ریاضی، مرتب‌کردن نزولی آن‌ها و ردکردن نتیجهٔ اول، دومین نمره در این ترتیب را برمی‌گرداند.

برای خلاصه‌کردن داده، aggregate function‌هایی مثل SUM()،؜ AVG() و MIN() معرفی می‌شوند. همراه‌کردن AVG() با GROUP BY امکان محاسبهٔ میانگین نمره برای هر درس را فراهم می‌کند. متن همچنین یادآوری می‌کند که در SQLite،؜ عبارت 5/100 تقسیم عدد صحیح است و صفر می‌شود، اما 5.0/100 برابر 0.05 است.

برای خواندن اطلاعات دو جدول، join ستون‌های مرتبط را تطبیق می‌دهد. JOIN فقط موارد دارای تطبیق در هر دو جدول را نگه می‌دارد؛ LEFT JOIN همهٔ ردیف‌های جدول سمت چپ را هم نشان می‌دهد. بنابراین دانش‌آموز بدون نمره در نتیجهٔ LEFT JOIN حضور دارد، اما مقدار درس و نمره‌اش NULL است. RIGHT JOIN و FULL JOIN نیز در راهنما معرفی می‌شوند.

در بخش نوشتن، INSERT ردیف تازه اضافه می‌کند، UPDATE مقدارها را تغییر می‌دهد و DELETE ردیف‌ها را حذف می‌کند. شرط WHERE مشخص می‌کند تغییر یا حذف شامل کدام ردیف‌ها شود؛ بدون آن، همهٔ ردیف‌ها تحت تأثیر قرار می‌گیرند.

نکتهٔ عملی دیگر به commit مربوط است: در DB Browser for SQLite،؜ تغییرها تا انتخاب Write Changes یا اجرای COMMIT; در فایل database ثبت نمی‌شوند. بستن برنامه با انتخاب Discard نیز تغییرها را برمی‌گرداند.

نکته کلیدی

هنگام تمرین، قبل از اجرای UPDATE یا DELETE شرط WHERE را بررسی کن؛ بدون آن، همهٔ ردیف‌ها تحت تأثیر قرار می‌گیرند. در DB Browser for SQLite هم برای ثبت تغییرها در فایل، Write Changes را بزن.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)