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

فهرست مطالب پنهان‌کردن فهرست
  1. 1. SQL چیست؟
  2. 2. زبان برنامه‌نویسی چیست؟
    1. 2.1. Turing Completeness چیست؟
    2. 2.2. زبان‌های برنامه‌نویسی عمومی دربرابر زبان‌هایی با کاربردی خاص
  3. 3. آیا SQL یک زبان برنامه‌نویسی است؟
  4. 4. انواع مختلف SQL چیست؟
  5. 5. با کدام نسخه SQL شروع کنیم؟
  6. 6. مسیرهای شغلی SQL چگونه است؟
    1. 6.1. معمار پایگاه داده
    2. 6.2. توسعه‌دهنده نرم‌افزار
    3. 6.3. مدیر پایگاه داده
  7. 7. SQL و زبان‌های برنامه‌نویسی Procedural
  8. 8. مقایسه زبان‌های برنامه‌نویسی R و SQL
    1. 8.1. مزایای R چیست؟
    2. 8.2. میان R و SQL کدام را باید یاد گرفت؟
  9. 9. مقایسه زبان‌های برنامه‌نویسی Python و SQL
    1. 9.1. Python یا SQL؛ کدام‌یک را باید اول یاد گرفت؟
  10. 10. انواع دستورهای SQL (SQL Statements)
    1. 10.1. زبان تعریف داده Data definition language (DDL)
    2. 10.2. زبان دست‌کاری داده Data manipulation language (DML)
    3. 10.3. زبان کنترل داده Data Control Language (DCL)
    4. 10.4. دستور کنترل تراکنش Transaction Control Statement (TCS)
    5. 10.5. دستور کنترل هر سشن Session Control Statements (SCS)
  11. 11. جمع‌بندی
  12. 12. پرسش‌های متداول
    1. 12.1. SQL چیست و چرا مهم است؟
    2. 12.2. تفاوت میان SQL و زبان‌های برنامه‌نویسی عمومی (General Purpose Languages – GPL) چیست؟
    3. 12.3. چرا باید با PostgreSQL شروع کنیم؟
    4. 12.4. SQL چگونه با زبان‌های برنامه‌نویسی رویّه‌ای (Procedural Languages) ترکیب می‌شود؟
    5. 12.5. آیا SQL یک زبان برنامه‌نویسی است؟
  13. 13. یادگیری تحلیل داده را از امروز شروع کنید!

SQL چیست؟

به‌طور ساده، پایگاه داده یک سیستم ذخیره‌سازی برای نگهداری داده‌های ساختاریافته است؛ علاوه‌براین سیستم مدیریت پایگاه داده (DBMS Database Management System) به‌عنوان واسط میان پایگاه داده و کاربران نهایی یا برنامه‌ها عمل می‌کند.

رایج‌ترین نوع DBMS یک سیستم مدیریت پایگاه داده رابطه‌ای (Relational Database Management System RDBMS) است که در آن داده‌های ساختاریافته، یعنی داده‌هایی که روابط میان موجودیت‌ها و متغیرها را در بر می‌گیرد، ذخیره می‌شود. این موجودیت‌ها و متغیرها به‌صورت مجموعه‌ای از جدول‌ها با ستون‌ها و ردیف‌ها سازماندهی می‌شوند.

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

یک پرس‌وجو (Query) چیزی به‌جز یک بیانیه متشکل از دستورهای مختلف SQL نیست که با هم یک کار خاص برای دسترسی، مدیریت، تغییر، به‌روزرسانی، کنترل و سازماندهی داده‌ها انجام می‌دهند. این تعریف از یک پرس‌وجو بسیار شبیه به یک برنامه کامپیوتری به نظر می‌رسد؛ آیا این به‌آن معناست که SQL یک زبان برنامه‌نویسی است؟ بیایید بهتر بفهمیم که زبان برنامه‌نویسی چیست.

پیشنهاد می‌کنیم درباره تفاوت پایگاه‌های داده SQL و NoSQL هم مطالعه کنید.

زبان برنامه‌نویسی چیست؟

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

زبان‌های برنامه‌نویسی که به کد ماشین یا باینری (۰ و ۱) نزدیک‌تر هستند به‌عنوان زبان‌های سطح پایین شناخته می‌شوند.

زبان‌های سطح پایین اغلب برای خواندن توسط افراد دشوار هستند؛ زیرا ساختار آن‌ها به‌گونه‌ای است که دستورعمل‌ها را مانند نحوه فکرکردن ماشین می‌نویسند؛ بااین‌حال فهمیدن آن‌ها در مقایسه با کد خالص ۰ و ۱ آسان‌تر است؛ پس چرا از یک زبان سطح پایین استفاده کنیم؟ زیرا آن‌ها سریع هستند و به برنامه‌نویس کنترل دقیق‌تری بر نحوه عملکرد سخت‌افزار کامپیوتر می‌دهند.

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

اما با پیشرفت قدرت کامپیوترها تفاوت عملکرد میان زبان‌های سطح پایین و سطح بالا اغلب فقط چند میلی‌ثانیه است؛ به‌همین دلیل است که بیشتر مشاغل برنامه‌نویسی به دنبال افرادی با مهارت‌های برنامه‌نویسی سطح بالا هستند.

Turing Completeness چیست؟

برای اندازه‌گیری قدرت یک زبان برنامه‌نویسی دانشمندان کامپیوتر اغلب از مفهوم Turing Completeness استفاده می‌کنند. این مفهوم به‌نام آلن تورینگ، دانشمند کامپیوتر که در سال ۱۹۳۶ ماشین تورینگ را پیشنهاد کرد، نام‌گذاری شده است. این ماشین پایه‌ای برای نظریه‌های محاسبات و کامپیوترها شد.

ماشین تورینگ دستگاهی بود که با چاپ نمادها روی نوار کاغذی، همانند فردی که دستورعمل‌های منطقی را دنبال می‌کند عمل می‌کرد.

زبان‌های برنامه‌نویسی مجموعه‌ای از قوانین رسمی هستند که برای دسترسی و تغییر داده‌ها استفاده می‌شوند. اگر این قوانین بتوانند عملکرد ماشین فرضی تورینگ را شبیه‌سازی کنند، آن‌ها را Turing Complete می‌نامند. یک سیستم Turing Complete می‌تواند به‌طور ریاضی اثبات کند که هر محاسبه‌ای را می‌تواند انجام دهد.

زبان‌های برنامه‌نویسی عمومی دربرابر زبان‌هایی با کاربردی خاص

با توجه به تعریف زبان برنامه‌نویسی که واژگان خاص و سینتکسی معین دارد، SQL قطعاً به‌عنوان یک زبان برنامه‌نویسی محسوب می‌شود؛ بااین‌حال SQL به‌عنوان یک زبان عمومی شناخته نمی‌شود؛ درواقع یک زبان با کاربردی خاص (Domain-Specific Language – DSL) است.

یک DSL زبانی است که به‌طور خاص برای حل مشکلات در یک حوزه خاص طراحی شده و برای حل مشکلات خارج از آن حوزه ساخته نشده است. این زبان‌ها با هدف‌های خاصی در طراحی و پیاده‌سازی ایجاد می‌شوند؛ برای مثال، SQL به‌طور خاص برای کار با پایگاه‌های داده، برای پرس‌وجو از پایگاه‌های داده و کار با داده‌های ذخیره‌شده در آن‌ها ساخته شده است. شما نمی‌توانید فقط با استفاده از SQL یک برنامه کامل بسازید. مثال دیگر CSS است که به‌طور گسترده برای استایل‌دهی به HTML در وب‌سایت‌ها استفاده می‌شود و برای یک کار خاص طراحی شده است.

DSL درمقابل زبان برنامه‌نویسی عمومی (General Purpose Language – GPL) قرار می‌گیرد که به‌طور گسترده در حوزه‌های مختلف قابل‌استفاده است. این زبان‌ها به شما امکان می‌دهند هر نوع برنامه‌ای با هر نوع منطقی بنویسید که نیاز دارید.

شما می‌توانید انواع برنامه‌ها را با استفاده از یک GPL ایجاد کنید، ازجمله برنامه‌های دسکتاپ، موبایل یا وب. برخی از پرکاربردترین GPL‌ها شامل پایتون، ++C ،Ruby، جاوا و جاوااسکریپت هستند.

به‌طور کلی، DSL‌ها کمتر از GPL‌ها قدرتمند هستند؛ بااین‌حال این با یک مزیت خاص همراه است. به‌دلیل دامنه کاربردی محدود، SQL در مقایسه با اکثر زبان‌های برنامه‌نویسی عمومی یادگیری آسان‌تری دارد.

آیا SQL یک زبان برنامه‌نویسی است؟

با توجه به توضیحات داده‌شده، SQL یک زبان برنامه‌نویسی خاص دامنه است که به‌عنوان Turing completeness شناخته می‌شود؛ بنابراین SQL به‌عنوان یک زبان برنامه‌نویسی محسوب می‌شود.

انواع مختلف SQL چیست؟

ممکن است درباره انواع مختلف SQL شنیده باشید: T-SQL ،PostgreSQL ،MySQL و غیره؛ اما ممکن است بپرسید این انواع مختلف SQL چیست و چرا وجود دارند؟ بیایید نگاهی به تاریخچه مختصر SQL بیندازیم.

ادگار فرانک کاد، دانشمند کامپیوتر بریتانیایی که در IBM کار می‌کرد، در سال ۱۹۷۰ مقاله‌ای با عنوان مدل رابطه‌ای داده‌ها برای بانک‌های داده‌های مشترک بزرگ منتشر کرد. در این مقاله او مدل رابطه‌ای را برای مدیریت پایگاه‌های داده معرفی کرد که از آن زمان به‌عنوان پایه نظری برای پایگاه‌های داده رابطه‌ای و سیستم‌های مدیریت آن‌ها استفاده شده است. بعد از آن، در اواخر دهه ۱۹۸۰ تلاش‌هایی برای ایجاد یک استاندارد رسمی SQL انجام شد.

SQL در سال ۱۹۸۶ به‌عنوان استاندارد مؤسسه ملی استانداردهای امریکا (ANSI) و در سال ۱۹۸۷ به‌عنوان استاندارد سازمان بین‌المللی استانداردسازی (ISO) پذیرفته شد. از آن زمان تاکنون استاندارد SQL چندین بار بازنگری شده، اما ویژگی‌های اصلی آن از سال ۱۹۹۲ بدون تغییر باقی مانده است.

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

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

با کدام نسخه SQL شروع کنیم؟

ما پیشنهاد می‌کنیم با PostgreSQL شروع کنید. PostgreSQL یک سیستم پایگاه داده شی‌ءگرا و متن‌باز قدرتمند است که از زبان SQL استفاده می‌کند و آن را گسترش می‌دهد. همچنین این سیستم ویژگی‌های مختلفی دارد که به‌صورت ایمن داده‌های پیچیده را ذخیره و مقیاس‌بندی می‌کند. همین‌طور PostgreSQL به استاندارد SQL نزدیک‌ترین و یکی از پرکاربردترین نسخه‌های SQL است.

مسیرهای شغلی SQL چگونه است؟

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

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

معمار پایگاه داده

معمار پایگاه داده مسئول طراحی پایگاه داده‌ای مناسب و قابل‌اعتماد برای یک برنامه خاص است. معمار پایگاه داده استراتژی‌های مدل‌سازی را برای اطمینان از امنیت، مقیاس‌پذیری و عملکرد قابل اعتماد پایگاه داده توسعه می‌دهد. این وضعیت شغلی آشنایی با انواع مختلف پایگاه‌های داده (رابطه‌ای، NoSQL، مبتنی بر گراف، توزیع‌شده) و همین‌طور داشتن تخصص برای تشخیص این را در بر می‌گیرد که چه نوع پایگاه داده‌ای برای هر موقعیت مناسب است. طبق تخمین Glassdoor (یک وب‌سایت کاریابی در غرب)، میانگین حقوق سالانه برای یک معمار پایگاه داده ۱۱۱,۳۶۵ دلار است.

توسعه‌دهنده نرم‌افزار

توسعه‌دهندگان نرم‌افزار نرم‌افزارها و برنامه‌های کامپیوتری ایجاد می‌کنند. آنان برنامه‌های نرم‌افزاری، ازجمله برنامه‌ها و ویژگی‌های جدید، را برنامه‌نویسی می‌کنند. این برنامه‌ها اغلب به داده‌ها نیاز دارند تا به‌درستی کار کنند. آیا می‌توانید حدس بزنید که داده‌ها کجا ذخیره می‌شوند؟ بله، پایگاه داده رابطه‌ای. این امر SQL را به یکی از مهارت‌های اساسی برای توسعه‌دهندگان تبدیل می‌کند. میانگین حقوق سالانه برای یک مهندس نرم‌افزار ۱۰۱,۷۳۹ دلار است.

مدیر پایگاه داده

مدیران پایگاه داده مسئول اطمینان از عملکرد کارآمد و امن پایگاه داده هستند. آنان اطلاعات کاربران را نگهداری می‌کنند، حقوق دسترسی مناسب را براساس نیازها به آن‌ها اختصاص می‌دهند و استفاده را نظارت می‌کنند. همچنین مدیران پایگاه داده وظیفه پشتیبان‌گیری از داده‌های ذخیره‌شده را به‌صورت دوره‌ای انجام می‌دهند. میانگین حقوق سالانه برای این شغل طبق تخمین Glassdoor برابر با ۸۹,۸۰۶ دلار است.

پیشنهاد می‌‌کنیم درباره متخصص پایگاه داده هم مطالعه کنید.

SQL و زبان‌های برنامه‌نویسی Procedural

می‌توان SQL را با زبان‌های رویّه‌ای (Procedural Languages) ترکیب کرد تا برخی از رفتارهای مشابه زبان‌های برنامه‌نویسی عمومی (GPL) را تقلید کنند. این کار به‌طور فنی امکان استفاده از SQL در حوزه‌ای به‌جز دامنه اصلی آن را فراهم می‌کند.

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

تمامی سیستم‌های مدیریت پایگاه داده (DBMS) از یک یا چند نوع زبان رویّه‌ای پشتیبانی می‌کنند. PL/SQL یک افزونه توسط شرکت Oracle برای SQL است که مانند زبان‌های برنامه‌نویسی عمومی، امکان استفاده از شرط، حلقه‌ها، انواع متغیرها، تریگرها و توابع را فراهم می‌کند. PL/pgSQL، زبان رویّه‌ای متن‌باز PostgreSQL، مشابه PL/SQL اوراکل است و ویژگی‌های مشابهی را در بر می‌گیرد. این زبان اجازه تعریف توابع تعریف‌شده توسط کاربر و عملگرهای قابل ارث‌بری را می‌دهد. Transact-SQL (T-SQL) نیز یک افزونه برنامه‌نویسی از Sybase و Microsoft است که اجازه تعریف متغیرهای محلی، کنترل تراکنش و مدیریت استثنا و خطا را می‌دهد و در Microsoft SQL Server استفاده می‌شود.

مقایسه زبان‌های برنامه‌نویسی R و SQL

ویژگی‌RSQL
هدفزبان برنامه‌نویسی و محیط نرم‌افزاری برای محاسبات آماری و گرافیک.زبان برنامه‌نویسی برای مدیریت و دستکاری داده‌های ذخیره‌شده در پایگاه‌های داده رابطه‌ای.
نوع داده‌هاکار با مجموعه داده‌های پیچیده و ساختار یافته (مناسب برای تجسم داده‌ها و مدل‌سازی آماری).کار با داده‌های ذخیره‌شده در پایگاه‌های داده رابطه‌ای (مناسب برای پرس‌وجو و به‌روزرسانی داده‌ها).
نحوه استفادهزبان برنامه‌نویسی همه‌منظورهزبان با کاربردی خاص (DSL)
سرعت پردازش داده‌هاR در برخی وظایف سریع‌تر و در برخی دیگر کندتر است.SQL در تمامی وظایف پایدار است.
قابلیت‌های گرافیکیطراحی‌شده برای تحلیل داده‌های گرافیکی و ایجاد تجسم‌های متنوع.تمرکز بر سازماندهی داده‌ها؛ برای تجسم‌های گرافیکی باید از ابزارهای مکمل استفاده کرد.

مزایای R چیست؟

  • یک زبان بسیار انعطاف‌پذیر و متنوع است که به کاربران امکان می‌دهد وظایف مختلفی ازجمله دستکاری داده‌ها، تحلیل آماری و تجسم گرافیکی را انجام دهند.
  • یک جامعه بزرگ و فعال از کاربران R دارد که به‌معنای وجود منابع آنلاین فراوان، مستندات و پشتیبانی برای یادگیری و استفاده مؤثر از این زبان است.
  • R در هر دو حوزه آکادمیک و صنعت به‌طور گسترده‌ای استفاده می‌شود؛ بنابراین یادگیری و استفاده از R می‌تواند برای کسانی که به دنبال حرفه‌ای در علم داده، تحقیق یا زمینه‌های مرتبط هستند، مفید باشد.
  • چندین تابع و پکیج‌های داخلی دارد که انجام‌دادن وظایف پیچیده تحلیل داده‌ها، مانند یادگیری ماشین، را بدون نیاز به نوشتن کدهای طولانی و پیچیده آسان‌تر می‌کند.
  • این زبان مستقل از پلتفرم است؛ بنابراین می‌توان آن را در هر سیستم‌عاملی استفاده کرد که آن را به یک ابزار همه‌کاره برای تحلیل داده‌ها تبدیل می‌کند.

میان R و SQL کدام را باید یاد گرفت؟

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

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

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

پیشنهاد می‌کنیم درباره زبان برنامه نویسی R و کاربردهای آن هم مطالعه کنید.

مقایسه زبان‌های برنامه‌نویسی Python و SQL

ویژگی‌PythonSQL
هدفاستفاده در علم داده، توسعه وب، توسعه بازی و دیگر حوزه‌های نرم‌افزارارتباط و مدیریت پایگاه‌های داده رابطه‌ای
نوع زبانزبان برنامه‌نویسی همه‌منظورهزبان با کاربردی خاص (DSL)
متن‌بازبلهبرخی نسخه‌ها مالکیت دارند.
نسخه‌هاPython 3نسخه‌های مختلف مانند MySQL، SQLite PostgreSQL
پکیجدارای بیش از ۲۰۰,۰۰۰ پکیجبدون پکیج
آسانی یادگیرییک زبان مناسب برای مبتدیان با ساختاری شبیه به زبان انگلیسییک زبان بسیار آسان برای یادگیری
مسیرهای شغلیدانشمند داده، تحلیلگر داده، مهندس یادگیری ماشینمعمار پایگاه داده، توسعه‌دهنده نرم‌افزار، مدیر پایگاه داده
مزایاخوانایی، تنوع، جامعه بزرگ کاربرانبسیار آسان برای یادگیری
معایبعملکرد ضعیف با حجم زیاد داده، کارایی حافظه پایینکاربرد محدود به مدیریت پایگاه داده؛ برخی نسخه‌ها پرهزینه هستند.

Python یا SQL؛ کدام‌یک را باید اول یاد گرفت؟

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

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

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

نوع کاری نیز که به دنبال آن هستید ارزش بررسی دارد؛ برای مثال، اگر به حوزه هوش تجاری علاقه دارید، یادگیری SQL احتمالاً گزینه بهتری است؛ زیرا اکثر وظیفه‌های تحلیل با ابزارهای هوش تجاری مانند Tableau یا BI Power انجام می‌شود؛ درمقابل، اگر می‌خواهید یک حرفه خالص علم داده را دنبال کنید، بهتر است ابتدا Python را یاد بگیرید.

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

انواع دستورهای 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 مانند DDL ،DML ،DCL ،TCL و DQL و استفاده از ترکیب‌ها و الحاق‌ها (UNION و JOIN)، می‌توانید داده‌های مختلف را ترکیب کنید و به تحلیل‌های عمیق‌تری برسید.

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

پرسش‌های متداول زبان SQL

پرسش‌های متداول

SQL چیست و چرا مهم است؟

SQL (Structured Query Language) زبان پرس‌وجوی ساختاریافته یک زبان برنامه‌نویسی خاص دامنه (DSL) است که برای مدیریت و دستکاری داده‌های ذخیره‌شده در پایگاه‌های داده رابطه‌ای (RDBMS) استفاده می‌شود. SQL به کاربران این امکان را می‌دهد تا داده‌ها را به‌طور مؤثری بازیابی، درج، به‌روزرسانی و حذف کنند. SQL به‌عنوان زبان اصلی مدیریت داده‌ها در بسیاری از صنایع و شرکت‌های برتر مانند گوگل و آمازون استفاده می‌شود.

تفاوت میان SQL و زبان‌های برنامه‌نویسی عمومی (General Purpose Languages – GPL) چیست؟

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

چرا باید با PostgreSQL شروع کنیم؟

PostgreSQL یک سیستم پایگاه داده شی‌ءگرا و متن‌باز است که از زبان SQL استفاده می‌کند و آن را گسترش می‌دهد. این سیستم ویژگی‌های مختلفی دارد که به‌صورت ایمن داده‌های پیچیده را ذخیره و مقیاس‌بندی می‌کند. PostgreSQL به استاندارد SQL نزدیک‌ترین نسخه است و یکی از پرکاربردترین نسخه‌های SQL محسوب می‌شود؛ بنابراین یادگیری آن می‌تواند یک پایه قوی برای مهارت‌های SQL شما فراهم کند.

SQL چگونه با زبان‌های برنامه‌نویسی رویّه‌ای (Procedural Languages) ترکیب می‌شود؟

SQL می‌تواند با زبان‌های برنامه‌نویسی رویّه‌ای (مانند PL/SQL و T-SQL) ترکیب شود تا قابلیت‌های مشابه زبان‌های برنامه‌نویسی عمومی را تقلید کند. این ترکیب به توسعه‌دهندگان اجازه می‌دهد که توابع، دستورهای شرطی، حلقه‌ها و متغیرها را در SQL به کار بگیرند و برنامه‌های پیچیده‌تری را بنویسند. این زبان‌های ترکیبی برای انجام‌دادن عملیات پیچیده‌تر در پایگاه‌های داده بسیار مفید هستند.

آیا SQL یک زبان برنامه‌نویسی است؟

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

یادگیری تحلیل داده را از امروز شروع کنید!

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

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

دوره جامع دیتا ساینس و ماشین لرنینگ