زبان SQL یک زبان کوئری (Query) ساختاریافته است که در سال ۱۹۷۴ برای کار با پایگاه داده‌های رابطه‌ای (Relational Databases) خلق شد. در این مطلب با این زبان، تاریخچه‌، دستورهای آن و منابع یادگیری‌اش آشنا خواهید شد.

زبان SQL

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

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

در این مطلب زبان SQL را معرفی می‌کنیم، تاریخچه‌ی آن را بررسی می‌کنیم و می‌بینیم که با استفاده از SQL قادر به انجام‌دادن چه کارهایی هستیم؛ در ادامه هم با دستورهای این زبان که برای کار با پایگاه داده استفاده می‌شوند آشنا می‌شویم و درنهایت منابعی برای یادگیری این زبان را مرور خواهیم کرد.

زبان SQL
زبان SQL

SQL چیست؟

SQL یک زبان برنامه‌نویسی استاندارد است که برای دست‌کاری پایگاه داده‌های رابطه‌ای (Relational databases) استفاده می‌شود. از زبان SQL می‌توان برای واردکردن داده، پاک‌کردن، به‌روزرسانی، جست‌وجو و عملیات متنوع دیگری استفاده کرد.

یک پایگاه داده رابطه‌ای مجموعه‌ای از جدول‌هایی است که در آن‌ها داده‌ها به‌صورت ساختاریافته قرار گرفته‌اند. این جدول‌ها تعدادی ردیف را شامل است که به آن‌ها رکورد (Record) یا تاپل (Tuple) گفته می‌شود و همین‌طور تعدادی ستون را هم دربردارد که به آن‌ها ویژگی (Attributes) گفته می‌شود. هر ستون از این جدول‌ها برای ذخیره‌ی اطلاعات خاصی طراحی شده‌اند، برای مثال اسامی، تاریخ، اعداد و ….

SQL مختصرشده‌ی عبارت Structured Query language، یعنی زبان کوئری ساختاریافته، است. درواقع کوئری (Query) همان درخواستی است که ما از پایگاه داده داریم؛ برای مثال، می‌خواهیم داده‌ای را وارد پایگاه داده کنیم یا آن را حذف کنیم. این درخواست ما همان کوئری (Query) است و SQL زبانی است که به ما این امکان را می‌دهد تا این کوئری‌ها (Query) را بسازیم.

تاریخچه‌ی مختصر از SQL

منشأ SQL به بیش از نیم‌قرن پیش بازمی‌گردد. در سال ۱۹۶۹ محقق IBM، Edgar F. Codd، مدل پایگاه داده رابطه‌ای را تعریف کرد که اساس توسعه‌ی زبان SQL شد. این مدل براساس اطلاعات مشترک یا کلیدها که با داده‌های مختلف در ارتباط هستند ساخته شده است؛ برای مثال، یک نام کاربری ممکن است با یک اسم و یک شماره‌تلفن همراه باشد.

چند سال بعد IBM کار روی زبان جدیدی را برای سیستم‌های مدیریت پایگاه داده رابطه‌ای (RDMS) براساس یافته‌های Codd آغاز کرد. این زبان در ابتدا SEQUEL یا Structured English Query Language نامیده می‌شد. روی این پروژه که سیستم R (System R) لقب گرفت، چندین پیاده‌سازی و بازنگری انجام شد و نام زبان چندین بار تغییر کرد تا اینکه سرانجام SQL باقی ماند.

پس از شروع آزمایش در سال ۱۹۷۸ IBM شروع به تولید محصولات تجاری، ازجمله SQL / DS (۱۹۸۱) و DB2 (۱۹۸۳) کرد. دیگر فروشندگان نیز با پیگیری این روند، پیشنهادهای تجاری مبتنی بر SQL خود را اعلام کردند. این محصولات اوراکل (Oracle) که اولین محصول خود را در سال ۱۹۷۹ عرضه کرد، Sybase و Ingres را شامل بود.

حال که با SQL آشنا شدیم و متوجه شدیم که از کجا شکل گرفته لازم است ببینیم این زبان امکان انجام‌دادن چه کارهایی را به ما می‌دهد.

چرا SQL؟

در اینجا به برخی از دلایل مهمی که ما را به استفاده از SQL ملزم می‌کند اشاره می‌کنیم:

  • به کاربران کمک می‌کند تا در سیستم‌های مدیریت پایگاه داده رابطه‌ای (RDMS) به داده‌ها دسترسی پیدا کنند.
  • کمک می‌کند داده‌ها را توصیف کنیم.
  • این امکان را می‌دهد که داده‌ها را در یک پایگاه داده تعریف کنیم و داده‌ها دست‌کاری کنیم و تغییر دهیم.
  • با کمک SQL می‌توانیم پایگاه داده و جدول‌ها را ایجاد و پاک کنیم.
  • با SQL می‌توانیم برای جداول و داده‌های ذخیره‌شده در آن‌ها اجازه‌ی دسترسی در نظر بگیریم.

به‌طور کلی، می‌توان گفت با استفاده از زبان SQL تمامی درخواست‌هایی را که از پایگاه داده داشته باشیم می‌توانیم انجام دهیم.

تا اینجا متوجه شدیم که با SQL می‌توانیم پایگاه داده را دست‌کاری کنیم. در ادامه با انواع مختلف دستورهای SQL آشنا خواهیم شد.

انواع دستورهای SQL (SQL Statements)

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

زبان تعریف داده Data definition language (DDL)

این نوع دستورها برای تعریف ساختار پایگاه داده و جدول‌های آن استفاده می‌شود:

  • CREATE: یک پایگاه داده جدید یا یک جدول جدید ا ایجاد می‌کند.
  • ALTER: ساختار پایگاه داده یا جدول را تغییر می‌دهد.
  • DROP: پایگاه داده یا جدول ایجادشده را پاک می‌کند.
  • TRUNCATE: تمامی اطلاعات موجود در جدول‌ها و حتی فضایی را که به آن‌ها اختصاص داده شده است پاک می‌کند.
  • RENAME: نام پایگاه داده یا جدول را تغییر می‌دهد.

زبان دست‌کاری داده Data manipulation language (DML)

این نوع دستورها داده‌های موجود در جدول‌ها را مدیریت می‌کنند:

  • SELECT: داده‌ی مدنظر را از جدول بازیابی می‌کند.
  • INSERT: داده‌ی جدیدی را به جدول وارد می‌کند.
  • UPDATE: داده‌ی موجود در جدول را با داده‌ی جدید جایگزین می‌کند.
  • DELETE: کل اطلاعات یک ردیف را از جدول پاک می‌کند.
  • MERGE: یا داده‌ی جدیدی را به جدول وارد می‌کند یا داده‌ی موجود را تغییر می‌دهد.
  • LOCK TABLE: جدول مدنظر را روی وضعیت خاصی قفل می‌کند و باقی کاربران اجازه دسترسی و تغییر آن را نخواهند داشت.
  • CALL EXPLAIN PLAN: به مسیر داده (Data Path) دسترسی پیدا می‌کند.

زبان کنترل داده Data Control Language (DCL)

این نوع دستورها برای امتیازدادن برای دسترسی به داده‌های محدودشده است:

  • GRANT: به کاربر اجازه دسترسی به داده‌ی موجود در پایگاه داده را می‌دهد.
  • REVOKE: اجازه‌ی داده‌شده را پس می‌گیرد.
  • ANALYZE: دستور را تحلیل می‌کند تا اطلاعات آماری جدول‌ها، شاخص‌ها و خوشه‌ها را به دست آورد.
  • AUDIT: برای ردیابی اجرای یک دستور خاص یا تمامی دستورهای کاربر در حین اجرای برنامه است.
  • COMMENT: ثبت نظر در جدول داده.

دستور کنترل تراکنش  Transaction Control Statement (TCS)

این نوع دستورها برای ثبت‌کردن و نهایی‌کردن تغییرات ایجادشده در پایگاه داده به کار می‌روند:

  • COMMIT: کار انجام‌شده را برای همیشه ذخیره می‌کند.
  • ROLLBACK: تمامی تغییرات را به آخرین باری که دستور COMMIT اجرا شده است بازمی‌گرداند.
  • SAVEPOINT: ذخیره‌ی نقطه‌ای ایجاد می‌کند تا در صورت ایجاد مشکل بتوان به عقب بازگشت، اما نه خیلی عقب.
  • SET TRANSACTION: تنظیمات تراکنش را به حالت فقط خواندن (Read only) یا نوشتن و خواندن (Read-Write) تغییر می‌دهد.

دستور کنترل هر سشن Session Control Statements (SCS)

این دستورها تنظیمات سشن (Session) هر کاربر را مدیریت می‌کنند:

  • ALTER SESSION: پارامترها و وضعیت مربوط به اتصال پایگاه داده کاربر را تغییر می‌دهد.
  • SET ROLE: نقش‌هایی (Roles) را که برای این سشن فعال هستند غیرفعال یا برعکس آن‌ها را که غیرفعال‌اندفعال می‌کند.

جمع‌بندی مطالب گفته‌شده درباره‌ی زبان SQL

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

برای آشنایی با زبان پایتون این مطلب را مطالعه کنید:

با زبان برنامه نویسی پایتون آشنا شوید!

یادگیری پایتون برای علم داده با کلاس‌های آنلاین کافه‌تدریس

کافه‌تدریس به‌صورت تخصصی کلاس‌های آنلاین آموزش علم داده را از صفر تا صد برگزار می‌کند. کلاس آنلاین برنامه‌نویسی پایتون برای علم داده هم جزوی از برنامه‌ی آموزشی علم داده کافه‌تدریس است.

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

شما با شرکت در کلاس‌های آنلاین آموزش دیتا ساینس کافه‌تدریس از هر نقطه‌ی جغرافیایی به به‌بروز‌ترین و جامع‌ترین آموزش علم داده دسترسی دارید.

برای آشنایی با کلاس‌های آنلاین آموزش علم داده کافه‌تدریس، ازجمله کلاس آنلاین برنامه‌نویسی پایتون برای علم داده، همین‌طور برای مشاوره‌ی رایگان شروع یادگیری علم داده روی این لینک کلیک کنید:

کلاس‌های آنلاین علم داده کافه‌تدریس

هفت‌خوان

هفت‌خوان: مطالعه کن، نظر بده، جایزه بگیر!

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

جوایز هفت‌خوان

  • ۳۰۰,۰۰۰ تومان جایزه نقدی
  • ۵ کلاس رایگان ۳۰۰,۰۰۰ تومانی

پرسش‌های مسابقه

برای شرکت در هفت‌خوان کافه‌تدریس در کامنت همین مطلب به این پرسش‌ها پاسخ دهید:

  • زبان SQL چیست و کی شروع‌به‌کار کرد؟
  • چرا از SQL استفاده کنیم؟
  • انواع دستورهای SQL را توضیح دهید.