PostgreSQL first section | پستگرس قسمت اول
توضیحات جلسه
جزوه و مستندات
مفاهیم کلیدی
Database
مجموعهای از دادههای ساختاریافته است که بهصورت بهینه ذخیره میشود و امکان واکشی (Fetch) و تغییر (Manipulate) دادهها را فراهم میکند.
DBMS (Database Management System)
نرمافزاری است که به کاربران اجازه میدهد پایگاه داده را ایجاد، نگهداری و مدیریت کنند و وظایفی مانند افزودن، حذف و بهروزرسانی دادهها را انجام دهند.
Relational Database
نوعی پایگاه داده است که دادهها را در قالب جدول (Table) ذخیره میکند و بین جدولها روابط مشخصی ایجاد میکند؛ مانند PostgreSQL و MySQL.
Table
ساختاری متشکل از سطرها (Rows) و ستونها (Columns) است که دادههای مرتبط را سازماندهی و ذخیره میکند.
CRUD
مخفف چهار عملیات اصلی در پایگاه داده است:
Create برای ایجاد، Read برای خواندن، Update برای بهروزرسانی و Delete برای حذف دادهها.
Constraint
مجموعهای از قوانین است که هنگام تعریف جدولها بر ستونها اعمال میشود تا از صحت، یکپارچگی و پایداری دادهها اطمینان حاصل شود.
Data Types
انواع داده در PostgreSQL شامل Integer برای اعداد صحیح، Varchar برای رشتههای دارای طول محدود، Boolean برای مقادیر منطقی و Serial برای شمارنده خودکار است.
نکات مهم مصاحبهای
چرا بهجای آرایه (Array) در حافظه RAM از پایگاه داده استفاده میکنیم؟
زیرا دادههای ذخیرهشده در آرایه با خاموش شدن برنامه یا قطع برق از بین میروند و موقتی (Volatile) هستند.
اما پایگاه داده دادهها را روی حافظه پایدار، مانند هارد یا دیسک، ذخیره میکند و ماندگاری (Persistence) آنها را حفظ میکند.
تفاوت Varchar و Text در PostgreSQL چیست؟
در نوع Varchar میتوان محدودیت طول تعیین کرد؛ برای مثال، حداکثر 255 کاراکتر.
اما نوع Text محدودیت مشخصی برای طول رشته ندارد و معمولاً برای ذخیره متنهای طولانی استفاده میشود.
مفهوم Primary Key چیست؟
Primary Key ستونی است که دو ویژگی NOT NULL و UNIQUE را دارد. یعنی مقدار آن نمیتواند خالی باشد و باید در کل جدول منحصربهفرد باشد تا هر رکورد بهدرستی شناسایی شود.
هنگام استفاده از دستورات UPDATE و DELETE چه نکته امنیتی را باید رعایت کرد؟
هنگام استفاده از دستورات UPDATE و DELETE باید حتماً شرط WHERE را مشخص کنید. در غیر این صورت، همه رکوردهای جدول بهروزرسانی یا حذف میشوند که میتواند بسیار خطرناک باشد.
تفاوت اصلی پایگاه داده SQL و NoSQL چیست؟
پایگاه دادههای SQL دادهها را در جدولهای ساختاریافته و بر اساس روابط مشخص ذخیره میکنند.
در مقابل، پایگاه دادههای NoSQL معمولاً برای دادههای غیرساختاریافته یا نیمهساختاریافته استفاده میشوند و ساختار انعطافپذیرتری دارند.
Primary Key چه وظیفهای دارد؟
Primary Key بهعنوان یک شناسه منحصربهفرد برای هر ردیف عمل میکند و معمولاً از طریق ایجاد ایندکس، عملکرد جستوجو و دسترسی به دادهها (Performance) را بهبود میدهد.
- کاربرد
LIMITوDISTINCTدر کوئریها چیست؟
دستور LIMIT تعداد رکوردهای موجود در خروجی را محدود میکند.
دستور DISTINCT برای حذف دادههای تکراری و نمایش مقادیر منحصربهفرد به کار میرود.
- تفاوت
ANDوORدر شرطWHEREچیست؟
در عملگر AND، همه شرطها باید برقرار باشند تا رکورد در خروجی نمایش داده شود.
در عملگر OR، برقرار بودن حداقل یکی از شرطها برای نمایش رکورد کافی است.
مثال یا سناریوی کاربردی
برای مدیریت اطلاعات دانشجویان، ابتدا جدولی با دستور CREATE TABLE student ایجاد میکنیم. این جدول شامل ستونهای first_name از نوع Varchar، age از نوع Integer و is_passed از نوع Boolean است.
سپس با استفاده از دستور INSERT INTO دادههای جدید را وارد میکنیم. در ادامه، با دستور SELECT و فیلترهایی مانند WHERE، دادههای موردنظر را استخراج میکنیم.
همچنین میتوان با استفاده از ORDER BY، اطلاعات را بر اساس معیارهایی مانند معدل یا سن مرتب کرد.
بیشتر بدانید
ابزار pgAdmin
pgAdmin یک ابزار گرافیکی قدرتمند برای مدیریت بصری پایگاه داده PostgreSQL است. با استفاده از این ابزار میتوان بدون نوشتن مستقیم کد، جدولها و دادهها را مشاهده و مدیریت کرد.
کامنتگذاری در SQL
برای نوشتن توضیحات در محیط کوئرینویسی پایگاه داده، از دو خط تیره (--) در ابتدای متن استفاده میشود.
- IDE Tip
در ابزار pgAdmin میتوانید با راستکلیک روی جدول و انتخاب گزینه View/Edit Data، همه سطرهای جدول را بدون نوشتن کوئری مشاهده کنید.
- Wildcards
در جستوجوهای متنی با عملگر LIKE، علامت % برای جایگزینی هر تعداد کاراکتر و علامت _ برای جایگزینی دقیقاً یک کاراکتر استفاده میشود.
- عملگرهای محاسباتی
در دستور SELECT میتوان عملیات ریاضی مانند جمع یا ضرب را مستقیماً روی ستونهای عددی انجام داد؛ برای مثال، عبارت age * 2.
- بررسی مقادیر خالی
برای پیدا کردن فیلدهایی که هیچ مقداری ندارند، از عبارت IS NULL استفاده میشود.
