📚 فصل ۳: آشنایی با SQL و نقش آن در پایگاه دادهها
بخش ۱: مقدمه – وقتی با پایگاه داده آشنا شدیم، حالا وقت فرمان دادن است
در فصلهای قبل فهمیدیم پایگاه داده چیست و اینکه دو نوع اصلی رابطهای و غیررابطهای دارد.
حالا وقتش رسیده درباره زبان SQL حرف بزنیم؛ زبانی که تقریباً موتور اصلی کار با پایگاه دادههای رابطهای است.
تصور کن پایگاه داده یک انبار اطلاعات است.
برای گفتن اینکه چه چیزی را بیاورد، چه چیزی را اضافه کند یا تغییر دهد، به یک زبان مشترک نیاز داریم.
این زبان مشترک بین ما (انسان) و پایگاه داده، SQL است.
بخش ۲: تعریف SQL
SQL مخفف Structured Query Language است.
ترجمه تحتاللفظی: «زبان ساختاریافته پرسوجو».
📌 تعریف ساده:
SQL زبانی است که با آن میتوانیم:
- ایجاد کنیم (Create)
- بخوانیم (Read)
- بهروزرسانی کنیم (Update)
- حذف کنیم (Delete)
- یا به اختصار CRUD روی دادهها انجام بدهیم.
مثال ساده از یک کوئری SQL
فرض کن یک جدول Customers
داری:
ID | Name | City |
---|---|---|
1 | علی | تهران |
2 | سارا | مشهد |
3 | مهدی | شیراز |
حالا اگر بخواهیم همه مشتریان شهر تهران را ببینیم:
SELECT * FROM Customers WHERE City = 'تهران';
این کوئری یعنی:
- SELECT → انتخاب کن
- * → همه ستونها
- FROM Customers → از جدول Customers
- WHERE City = ‘تهران’ → فقط رکوردهایی که شهرشان تهران است.
بخش ۳: چرا یادگیری SQL مهم است؟
۱. تقریباً همه پایگاه دادههای رابطهای از SQL پشتیبانی میکنند.
۲. حتی بسیاری از پایگاه دادههای غیررابطهای دستوراتی شبیه SQL دارند.
۳. SQL استاندارد بینالمللی است و یکبار یادگیری آن میتواند سالها به درد بخورد.
📌 نکته جالب: SQL از دهه ۱۹۷۰ تا امروز همچنان محبوب است و یادگیری آن سرمایهگذاری بلندمدت است.
بخش ۴: ساختار کلی یک کوئری SQL
معمولاً یک دستور SQL از چند بخش تشکیل میشود:
- کلمه کلیدی اصلی (مثل SELECT، INSERT، UPDATE، DELETE)
- نام جدول
- شرطها (WHERE)
- مرتبسازی (ORDER BY)
- گروهبندی (GROUP BY)
- محدود کردن تعداد نتایج (TOP / LIMIT)
مثال:
SELECT Name, City
FROM Customers
WHERE City = 'مشهد'
ORDER BY Name ASC;
بخش ۵: دستهبندی دستورات SQL
دستورات SQL به ۴ گروه اصلی تقسیم میشوند:
۵-۱. DDL – Data Definition Language
برای تعریف و ساختار پایگاه داده:
CREATE
→ ایجاد جدول یا پایگاه دادهALTER
→ تغییر ساختارDROP
→ حذف جدول یا پایگاه داده
مثال:
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName NVARCHAR(50),
Price DECIMAL(10,2)
);
۵-۲. DML – Data Manipulation Language
برای کار با دادهها:
SELECT
→ خواندن دادههاINSERT
→ اضافه کردن رکوردUPDATE
→ تغییر رکوردDELETE
→ حذف رکورد
مثال:
INSERT INTO Products (ProductID, ProductName, Price)
VALUES (1, 'لپتاپ', 25000000);
۵-۳. DCL – Data Control Language
برای مدیریت مجوزها:
GRANT
→ دادن دسترسیREVOKE
→ گرفتن دسترسی
۵-۴. TCL – Transaction Control Language
برای کنترل تراکنشها:
BEGIN TRANSACTION
COMMIT
ROLLBACK
بخش ۶: SQL در SQL Server
SQL Server زبان SQL را با کمی تفاوت و امکانات بیشتر پیادهسازی کرده است که به آن T-SQL (Transact-SQL) میگویند.
📌 T-SQL علاوه بر دستورات SQL دارای:
- توابع داخلی بیشتر
- امکان تعریف متغیر
- کنترل شرطی (
IF
,CASE
) - حلقهها (
WHILE
)
مثال T-SQL:
DECLARE @CityName NVARCHAR(20) = 'تهران';
SELECT * FROM Customers WHERE City = @CityName;
بخش ۷: نقش SQL در مدیریت پایگاه داده
SQL مثل یک ابزار چندکاره است:
- 📥 ورود اطلاعات → تا کاربر بتواند دادههای جدید وارد کند.
- 🔍 جستجو و گزارشگیری → فیلتر کردن دادهها بر اساس شرایط مختلف.
- 🔄 بهروزرسانی دستهای → اصلاح هزاران رکورد در چند ثانیه.
- 🗑 پاک کردن دقیق → حذف رکوردها با کمترین خطا.
بخش ۸: مزایا و محدودیتهای SQL
مزایا:
- استاندارد جهانی
- قابلیت مدیریت دادههای پیچیده
- امنیت بالا
- مستقل از سیستمعامل
محدودیتها:
- نیاز به طراحی خوب پایگاه داده
- برای دادههای بسیار غیرساختاریافته ایدهآل نیست
بخش ۹: اشتباهات رایج مبتدیها
- استفاده از
SELECT *
بهجای انتخاب ستونهای لازم → کندی و مصرف منابع بیشتر. - فراموش کردن شرط
WHERE
درDELETE
یاUPDATE
→ حذف یا تغییر همه رکوردها. - عدم استفاده از Indexها → افت سرعت جستجو.
بخش ۱۰: تمرینهای عملی
📌 تمرین ۱:
- یک جدول
Employees
با ستونهای (ID, Name, Position, Salary) بساز. - دادههای ۳ کارمند را اضافه کن.
- همه کارمندانی که حقوقشان بالای ۱۰ میلیون است را انتخاب کن.
📌 تمرین ۲:
- نام شهر همه مشتریانی که از جدول Customers داری را بدون تکرار بگیر.
- مشتریان را بر اساس شهرشان گروهبندی کن.
بخش ۱۱: جمعبندی فصل ۳
- SQL زبان مشترک برای کار با پایگاه دادههای رابطهای است.
- عملیات اصلی CRUD را ممکن میسازد.
- در SQL Server نسخهای پیشرفته به نام T-SQL استفاده میشود.
- یادگیری درست SQL پایه تمام مهارتهای پایگاه دادهای تو است.