نکات کلیدی
1. زبان SQL، زبان پایگاههای داده
SQL زبانی است که بهطور خاص برای ارتباط با پایگاههای داده طراحی شده است.
دسترسی جهانی. زبان SQL (Structured Query Language) بهعنوان پایه و اساس تعامل با تقریباً هر سیستم مدیریت پایگاه داده (DBMS) شناخته میشود. ماهیت غیرانحصاری آن به شما این امکان را میدهد که با یادگیری SQL بتوانید دادهها را در پلتفرمهای مختلف، از برنامههای شخصی گرفته تا سیستمهای سازمانی، دسترسی و مدیریت کنید.
مبانی پایگاه داده. پایگاه داده مجموعهای سازمانیافته از دادهها است که اغلب بهصورت یک فایلبندی تصور میشود. در این فایلبندی، جداول نقش پروندههای ساختارمند را دارند که هرکدام نوع خاصی از دادهها را در خود جای دادهاند. ستونها بخشهای مختلف اطلاعات مانند نام مشتری یا قیمت محصول را تعریف میکنند و ردیفها نمایانگر رکوردهای جداگانه هستند.
کلیدهای اصلی. هر جدول باید یک کلید اصلی داشته باشد؛ ستونی (یا مجموعهای از ستونها) که هر ردیف را بهطور یکتا شناسایی میکند. این موضوع برای بهروزرسانی یا حذف مؤثر رکوردهای خاص اهمیت فراوانی دارد. درک این مفاهیم پایه برای استفاده مؤثر از SQL در مدیریت و بازیابی دادهها ضروری است.
2. تسلط بر SELECT: پایه بازیابی دادهها
احتمالاً پرکاربردترین دستور SQL که استفاده خواهید کرد، دستور SELECT است.
عملکرد اصلی. دستور SELECT
ستون فقرات SQL است و به شما امکان میدهد دادهها را از یک یا چند جدول بازیابی کنید. در سادهترین حالت، باید مشخص کنید چه ستونهایی را میخواهید انتخاب کنید و از کدام جدول.
انتخاب ستونها. میتوانید یک ستون، چند ستون (با جدا کردن آنها با کاما) یا همه ستونها را با استفاده از علامت ستاره (*) انتخاب کنید. هرچند استفاده از *
راحت به نظر میرسد، بهتر است ستونهای مورد نیاز را بهصورت صریح ذکر کنید تا عملکرد بهبود یابد و دادههای غیرضروری بازیابی نشوند.
کاربرد عملی. برای مثال، SELECT prod_name FROM Products;
نام همه محصولات را از جدول Products
بازیابی میکند. یا SELECT prod_id, prod_name, prod_price FROM Products;
شناسه، نام و قیمت هر محصول را برمیگرداند. تسلط بر دستور SELECT
نخستین گام برای حرفهای شدن در SQL است.
3. مرتبسازی و فیلتر کردن: پالایش دادهها
برای مرتبسازی صریح دادههای بازیابی شده با دستور SELECT، از عبارت ORDER BY استفاده میشود.
مرتبسازی دادهها. عبارت ORDER BY
به شما امکان میدهد دادههای بازیابی شده را بر اساس یک یا چند ستون مرتب کنید. میتوانید ترتیب صعودی (ASC
) یا نزولی (DESC
) را مشخص کنید. در صورت عدم تعیین، ترتیب پیشفرض صعودی است.
فیلتر کردن دادهها. عبارت WHERE
به شما اجازه میدهد دادهها را بر اساس شرایط خاص فیلتر کنید و تنها ردیفهایی که معیارهای شما را دارند بازیابی شوند. SQL از عملگرهای شرطی متنوعی مانند =
, <>
, <
, >
, BETWEEN
و IS NULL
پشتیبانی میکند.
ترکیب عبارات. میتوانید ORDER BY
و WHERE
را با هم ترکیب کنید تا دادهها را هم فیلتر و هم مرتب کنید. مثلاً: SELECT prod_name, prod_price FROM Products WHERE prod_price < 10 ORDER BY prod_name;
نام و قیمت محصولاتی را که قیمتشان کمتر از ۱۰ دلار است بازیابی میکند و آنها را به ترتیب حروف الفبا مرتب مینماید.
4. فیلدهای محاسباتی: تبدیل دادهها بهصورت پویا
برخلاف ستونهایی که تاکنون بازیابی کردیم، فیلدهای محاسباتی در جداول پایگاه داده وجود خارجی ندارند.
دادههای پویا. فیلدهای محاسباتی در داخل دستور SELECT
بهصورت لحظهای ایجاد میشوند و به شما امکان میدهند دادهها را بدون تغییر در جدول اصلی، تبدیل، تبدیل فرمت یا بازآرایی کنید. این قابلیت بهویژه هنگام نیاز به دادهها در قالب خاص برای گزارشها یا برنامهها مفید است.
ترکیب رشتهها. میتوانید با استفاده از عملگرهایی مانند +
یا ||
(بسته به DBMS) چند ستون را به یک مقدار واحد ترکیب کنید. مثلاً میتوانید نام فروشنده و کشورش را در یک فیلد به نام "عنوان فروشنده" ادغام کنید.
نام مستعار. برای اختصاص نامی به فیلد محاسباتی که برنامههای کلاینت بتوانند به آن ارجاع دهند، از کلیدواژه AS
استفاده کنید. مثلاً: SELECT quantity*item_price AS expanded_price FROM OrderItems;
فیلدی به نام expanded_price
ایجاد میکند که قیمت کل هر قلم سفارش را نشان میدهد.
5. توابع: جعبهابزار چندکاره SQL
توابع عملیاتهایی هستند که معمولاً روی دادهها انجام میشوند تا تبدیل و دستکاری آنها را تسهیل کنند.
دستکاری دادهها. توابع SQL ابزار قدرتمندی برای دستکاری دادهها درون پرسوجوها فراهم میکنند. این توابع میتوانند عملیات متنوعی مانند دستکاری متن، محاسبات عددی و قالببندی تاریخ و زمان را انجام دهند.
انواع توابع. انواع رایج توابع عبارتند از:
- توابع متنی:
UPPER()
,LOWER()
,TRIM()
- توابع عددی:
ABS()
,ROUND()
,SQRT()
- توابع تاریخ/زمان:
DATEPART()
,YEAR()
,MONTH()
اختلافات DBMS. لازم است توجه داشته باشید که نحو و در دسترس بودن توابع در DBMSهای مختلف تفاوتهای قابل توجهی دارد. همواره مستندات DBMS خود را برای آگاهی از توابع پشتیبانی شده و نحوه صحیح استفاده از آنها مطالعه کنید.
6. خلاصهسازی و گروهبندی: کسب بینش از دادهها
توابع تجمیعی: توابعی که روی مجموعهای از ردیفها عمل میکنند و یک مقدار واحد بازمیگردانند.
توابع تجمیعی. SQL توابعی برای خلاصهسازی دادهها بدون بازیابی هر ردیف ارائه میدهد. این توابع شامل AVG()
, COUNT()
, MAX()
, MIN()
, و SUM()
هستند.
گروهبندی دادهها. عبارت GROUP BY
به شما امکان میدهد دادهها را به مجموعههای منطقی تقسیم کرده و محاسبات تجمیعی را روی هر گروه انجام دهید. مثلاً میتوانید با GROUP BY vend_id
تعداد محصولات هر فروشنده را محاسبه کنید.
فیلتر کردن گروهها. عبارت HAVING
برای فیلتر کردن گروهها بر اساس مقادیر تجمیعی به کار میرود. مثلاً با HAVING COUNT(*) >= 2
فقط فروشندگانی که دو یا چند محصول ارائه میدهند بازیابی میشوند.
7. اتصال جداول (Join): ترکیب جداول برای پرسوجوهای جامع
بهسادگی، Join مکانیزمی است برای ارتباط دادن جداول در یک دستور SELECT (از همین رو نام آن Join است).
قدرت رابطهای. Join یکی از ویژگیهای اساسی SQL است که به شما اجازه میدهد دادهها را از چند جدول به یک مجموعه نتایج واحد ترکیب کنید. این قابلیت برای کار با پایگاههای داده رابطهای که دادهها اغلب در جداول متعدد برای حفظ یکپارچگی و کارایی پراکنده شدهاند، ضروری است.
انواع Join. رایجترین نوع Join، Inner Join (یا Equijoin) است که فقط ردیفهایی را بازمیگرداند که در هر دو جدول مقادیر مطابقت دارند. Outer Joinها، شامل Left Outer Join و Right Outer Join، به شما امکان میدهند ردیفهایی از یک جدول را حتی در صورت عدم وجود تطابق در جدول دیگر نیز شامل کنید.
ایجاد Join. برای ایجاد Join، جداول مورد نظر را در عبارت FROM
مشخص کرده و رابطه بین آنها را با استفاده از عبارت WHERE
یا ON
(در ترکیب با INNER JOIN
) تعریف میکنید. مثلاً: SELECT vend_name, prod_name FROM Vendors INNER JOIN Products ON Vendors.vend_id = Products.vend_id;
جداول Vendors
و Products
را بر اساس ستون vend_id
به هم متصل میکند.
8. زیرپرسوجوها (Subqueries): تو در تو کردن پرسوجوها برای فیلترهای پیشرفته
زیرپرسوجوها همیشه از درونیترین دستور SELECT شروع شده و به سمت بیرون پردازش میشوند.
قدرت تو در تو. زیرپرسوجوها پرسوجوهایی هستند که درون پرسوجوهای دیگر قرار میگیرند و امکان ایجاد شرایط فیلتر پیچیده و پویا را فراهم میکنند. ابتدا پرسوجوی داخلی اجرا شده و نتایج آن توسط پرسوجوی بیرونی استفاده میشود.
فیلتر با زیرپرسوجو. زیرپرسوجوها اغلب در عبارت WHERE
همراه با عملگرهایی مانند IN
برای فیلتر کردن دادهها بر اساس نتایج پرسوجوی دیگر به کار میروند. مثلاً میتوانید همه مشتریانی که محصول خاصی سفارش دادهاند را با استفاده از زیرپرسوجویی که شماره سفارشهای حاوی آن محصول را پیدا میکند، بازیابی کنید.
فیلدهای محاسباتی با زیرپرسوجو. زیرپرسوجوها همچنین میتوانند برای ایجاد فیلدهای محاسباتی استفاده شوند و محاسبات تجمیعی را برای هر ردیف در پرسوجوی بیرونی انجام دهند. مثلاً میتوانید تعداد کل سفارشهای هر مشتری را با استفاده از زیرپرسوجویی که سفارشها را برای هر شناسه مشتری میشمارد، نمایش دهید.
9. دستکاری دادهها: درج، بهروزرسانی و حذف
همانطور که از نامش پیداست، INSERT برای افزودن ردیفها به جدول پایگاه داده استفاده میشود.
افزودن دادهها. دستور INSERT
برای اضافه کردن ردیفهای جدید به جدول به کار میرود. میتوانید یک ردیف کامل با مقداردهی به همه ستونها یا ردیف ناقص با مقداردهی به برخی ستونها درج کنید.
تغییر دادهها. دستور UPDATE
برای اصلاح دادههای موجود در جدول استفاده میشود. میتوانید ردیفهای خاص را با استفاده از عبارت WHERE
بهروزرسانی کنید یا همه ردیفها را (با احتیاط!) تغییر دهید.
حذف دادهها. دستور DELETE
برای حذف ردیفها از جدول به کار میرود. مانند UPDATE
، میتوانید ردیفهای خاص را با WHERE
حذف کنید یا همه ردیفها را (دوباره با احتیاط!) پاک کنید.
10. مدیریت جداول: ایجاد، تغییر و حذف جداول
SQL تنها برای دستکاری دادههای جداول به کار نمیرود.
کنترل ساختار. SQL علاوه بر مدیریت دادهها، برای مدیریت ساختار پایگاه داده نیز استفاده میشود. دستور CREATE TABLE
به شما امکان میدهد جداول جدیدی تعریف کنید و نام ستونها، نوع دادهها و محدودیتها را مشخص نمایید.
تغییر جداول. دستور ALTER TABLE
به شما اجازه میدهد ساختار جداول موجود را تغییر دهید، مانند افزودن یا حذف ستونها. البته تغییرات مجاز بسته به DBMS ممکن است متفاوت باشد.
حذف جداول. دستور DROP TABLE
برای حذف دائمی یک جدول از پایگاه داده به کار میرود. این عملیات غیرقابل بازگشت است، بنابراین باید با دقت انجام شود.
11. نماها (Views): سادهسازی و ایمنسازی دسترسی به دادهها
نماها جداول مجازی هستند.
جداول مجازی. نماها جداولی مجازیاند که به جای دادههای واقعی، شامل پرسوجوها هستند. آنها راهی برای سادهسازی عملیات پیچیده SQL، نمایش بخشی از جدول به جای کل آن و ایمنسازی دادهها با اعطای دسترسی محدود به کاربران فراهم میکنند.
سادهسازی پرسوجوها. نماها میتوانند شامل Joinهای پیچیده، فیلدهای محاسباتی و شرایط فیلتر باشند و به کاربران اجازه دهند با پرسوجوهای سادهتر دادهها را بازیابی کنند. مثلاً میتوانید نمایی ایجاد کنید که چند جدول را برای بازیابی اطلاعات سفارش مشتری به هم متصل کند و سپس کاربران بدون نیاز به شناخت ساختار جداول اصلی، از آن نما استفاده کنند.
ایمنسازی دادهها. نماها میتوانند برای محدود کردن دسترسی به دادههای حساس به کار روند، بهطوری که فقط ستونها یا ردیفهای خاصی به کاربران خاص نمایش داده شود. این امکان کنترل دقیق بر روی دسترسی به دادهها را فراهم میکند و از دسترسی غیرمجاز جلوگیری میکند.
12. پردازش تراکنشها: تضمین یکپارچگی دادهها
پردازش تراکنش برای حفظ یکپارچگی پایگاه داده استفاده میشود تا اطمینان حاصل شود که مجموعهای از عملیات SQL بهطور کامل اجرا میشوند یا اصلاً اجرا نمیشوند.
همه یا هیچ. پردازش تراکنش تضمین میکند که یک سری عملیات SQL بهعنوان یک واحد اجرا شوند. اگر هر یک از عملیاتها شکست بخورد، کل تراکنش بازگردانده میشود و از بهروزرسانی ناقص جلوگیری میکند.
تأیید و بازگردانی. دستور COMMIT
برای ذخیره تغییرات انجام شده در طول تراکنش به پایگاه داده استفاده میشود. دستور ROLLBACK
برای لغو تغییرات و بازگرداندن پایگاه داده به حالت قبل از تراکنش به کار میرود.
نقاط ذخیره (Savepoints). نقاط ذخیره به شما امکان میدهند درون یک تراکنش نقاط موقتی ایجاد کنید تا بتوانید به جای بازگرداندن کل تراکنش، فقط به نقطه خاصی بازگردید. این قابلیت کنترل دقیقتری بر مدیریت تراکنشها فراهم میکند.
آخرین بهروزرسانی::
نقد و بررسی
کتاب «خودآموز SQL در ۱۰ دقیقه» عمدتاً با بازخوردهای مثبت مواجه شده است و بهخاطر وضوح، اختصار و کارآمدیاش بهعنوان یک مقدمهی مفید برای SQL مورد تحسین قرار گرفته است. خوانندگان از فصلهای کوتاه و قابل هضم، مثالهای عملی و قابلیت استفادهی سریع آن بهعنوان مرجع استقبال کردهاند. با این حال، برخی آن را بیشازحد ساده یا فاقد دستورالعملهای دقیق برای راهاندازی میدانند. این کتاب برای مبتدیان SQL و کسانی که به دنبال یادآوری مفاهیم هستند توصیه میشود، هرچند ممکن است برای کاربران پیشرفته یا موقعیتهای پیچیدهی پایگاه داده مناسب نباشد. در مجموع، این اثر بهعنوان منبعی ارزشمند برای یادگیری سریع اصول پایهی SQL شناخته میشود.
Similar Books









