امروزه، دادهها یکی از باارزشترین سرمایههای سازمانها و شرکتها محسوب میشوند. با استفاده از تحلیل دادهها میتوان به دلایل سود و زیان سازمانها پی برد و براساس اطلاعات کسب شده از آنها، راهحلهای مفیدی را به منظور پیشرفت در مسیر تجارت ارائه داد. یکی از ابزارهای مهم و کاربردی به منظور پردازش دادهها، دستکاری آنها و ارائه گزارش بر اساس دادههای ذخیره شده در «پایگاه دادهها» (Databases | DBs)، «زبان پرس و جوی ساختاریافته | اس کیو ال» (Structured Query Language | SQL) است. این مقاله با محوریت پاسخ به SQL چیست ارائه شده است. علاوه بر آن به سایر مباحث مهم پیرامون این سوال که اس کیو ال چیست نیز پرداخته میشود.
به منظور پاسخ به سوال اس کیو ال چیست باید در ابتدا به ارائه توضیحات مختصری پیرامون مفاهیم مرتبط با این زبان نظیر داده، انواع پایگاه داده و «سیستمهای مدیریت پایگاه داده» (Database Management Systems | DBMS) پرداخته شود تا علاقهمندان به یادگیری این زبان، به درک بهتری از کاربرد آن پی ببرند. همچنین، در مطلب حاضر به تاریخچه مختصری از زبان اس کیو ال، مزایا و معایب این زبان و دستورات اصلی آن نیز اشاره میشود.
داده و اطلاعات چیست ؟
برای پاسخ به این سوال که SQL چیست در ابتدا باید به توضیح مفهوم (داده) پرداخته شود زیرا از زبان SQL به منظور دستیابی به دادهها و تغییر آنها استفاده میشود. دادهها، اطلاعات خامی هستند که از منابع مختلفی در قالبهای متفاوتی نظیر عدد، متن، صوت و عکس جمعآوری شده باشند. در حیطه علوم کامپیوتر، دادهها به اعداد باینری (دودویی) تبدیل میشوند تا بتوان آنها را بهصورت کارآمد پردازش کرد. داده در حوزه مفاهیم مربوط به پایگاه داده، به تمامی موارد ذخیره شده در قالب جدول در پایگاه داده اتلاق میشود. به عنوان مثال، جدولی با عنوان «مشتری» میتواند دارای ستونی با عنوان «شماره تلفن» باشد که نوع داده آن از نوع متن است و در این ستون صرفاً میتوان فقط دادههای متنی را ذخیره کرد.
دادهها، در پایگاه داده به شکل خام ذخیره میشوند و زمانی که از دادهها گزارشی تهیه میشود یا پردازشی برروی این دادهها اعمال میشود، نتیجه نهایی در قالب «اطلاعات» (Information) در اختیار کاربر قرار میگیرد. به عنوان مثال، جدولی با عنوان «حساب بانکی» که شامل ستونهایی نظیر «نام مشتری»، «نوع حساب»، «موجودی حساب»، «شماره تماس» و «آدرس» است، دادههای خام مشتریان را در قالب «رکورد» (Record) یا سطرهای جدول ذخیره میکند.
زمانی که نیاز باشد اطلاعات حسابهای مشتریانی استخراج شود که نوع حساب آنها سپرده کوتاهمدت است، به نتیجه این گزارش، اطلاعات گفته میشود که اطلاعات مفیدی را برای بررسی و تحلیلهای بعدی در اختیار کاربر قرار میدهد. در ادامه، به توضیح پایگاه داده و نحوه ذخیرهسازی داده در آن پرداخته میشود.
پایگاه داده چیست ؟
پیش از شرح پاسخ سوال SQL چیست لازم است ابتدا به این سوال پرداخته شود که پایگاه داده چیست زیرا از زبان اس کیو ال به منظور مدیریت و اعمال تغییرات روی جدولهای پایگاه داده استفاده میشود.
به مجموعهای از اطلاعات خام یا دادههای ساختیافته که بهصورت الکترونیکی در سیستم کامپیوتری ذخیره شده باشد، پایگاه داده، دیتابیس یا بانک اطلاعاتی گفته میشود. به عبارتی، میتوان پایگاه داده را به شکل یک کتابخانه درنظر گرفت که میتوان در آن، کتابهای مختلفی را نگهداری کرد. در این مثال، دادهها، کتابهای کتابخانه هستند.
دادهها در قالب سطر و ستون و به شکل جدول در پایگاه داده ذخیره میشوند (در اینجا، منظور از جدول، صرفاً جداول موجود در پایگاه داده رابطهای است) تا امکان انجام عملیات پردازش و پرس و جو (کوئری زدن) روی دادهها فراهم شود. با استفاده از زبان SQL میتوان بهراحتی به دادهها دسترسی داشت و آنها را مدیریت، تغییر، بهروزرسانی، کنترل و سازماندهی کرد و تغییرشان داد.
در اوایل دهه 1960، اولین پایگاه دادهها ارائه شدند که شامل دو نوع «پایگاه داده مبتنیبر ردیابی» (Navigational Database) و «پایگاه داده شبکهای» (Network Database) بودند.
- پایگاه داده مبتنیبر ردیابی: پایگاه دادههای سلسلهمراتبی نوعی از پایگاه دادههای مبتنیبر ردیابی محسوب میشوند. ساختار این نوع پایگاه دادهها به شکل درخت است و رکوردها (Records) را در آن میتوان با دنبال کردن ارجاعات رکوردها پیدا کرد. در این نوع پایگاه دادهها تنها از روابط یک به چند برای ایجاد رابطه بین جدولها استفاده میشود.
- پایگاه داده شبکهای: در این نوع پایگاه داده، مدلسازی «موجودیت» (Entity) به نحوی است که هر «موجودیت فرزند» (Child Entity) میتواند دارای بیش از یک «موجودیت والد» (Parent Entity) باشد.
با اینکه کار با این دو نوع پایگاه داده آسان بود، اما آنها از قابلیت انعطافپذیری بالایی برخوردار نبودند. به همین خاطر، در دهه 1980، «پایگاه داده رابطهای» (Relational Database) مطرح شد که در ادامه به توضیح آن پرداخته میشود.
پایگاه داده رابطه ای چیست ؟
پاسخ به پرسش «زبان SQL چیست» به درک مفهوم پایگاه داده رابطهای نیز نیاز دارد. پایگاه داده رابطهای نوعی از پایگاه داده است که از آن میتوان به منظور ذخیره کردن دادهها در چندین جدول به هم مرتبط، استفاده کرد. ساختار پایگاه داده رابطهای مشابه با صفحات گسترده نرمافزار اکسل (Excel) است. جدولهای پایگاه داده را میتوان همان «لایههای گسترده» (Sheets) برنامه اکسل درنظر گرفت. هر جدول در پایگاه داده شامل سطر و ستونهایی است که سطرها مقادیر دادهها و ستونها «مشخصهها» (Attributes) را نشان میدهند. به منظور دسترسی به پایگاه دادهها و استفاده از زبان SQL برای انجام پردازش برروی دادهها، از «سیستم مدیریت پایگاه داده» (Database Management System | DBMS) استفاده میشود.
سیستم مدیریت پایگاه داده چیست ؟
برای رسیدن به پاسخ پرسش «زبان SQL چیست و چه کاربردی دارد»، باید به مفهوم سیستم مدیریت پایگاه داده و ارتباط آن با زبان SQL نیز پی برد. سیستم مدیریت پایگاه داده نرمافزاری است که آن را میتوان برروی کامپیوتری شخصی یا سرور نصب و از آن برای مدیریت پایگاه دادهها استفاده کرد.
یکی از انواع سیستمهای مدیریت پایگاه داده، «سیستم مدیریت پایگاه داده رابطهای» (Relational Database Management System | RDBMS) نام دارد که از آن به منظور ساخت پایگاه داده، بهروزرسانی، مدیریت و انجام پردازشهای مختلف برروی آن استفاده میشود. با RDBMS میتوان دادهها را در قالب جدول ذخیره کرد و با زبان SQL عملیات پرس و جوی دادهها یا همان کوئری زدن را انجام داد. رایجترین سیستمهای مدیریت پایگاه داده رابطهای که از زبان SQL استفاده میکنند، در ادامه فهرست شدهاند:
- Sybase
- Microsoft SQL Sever
- Oracle
- Ingres
- Access
پس از توضیح مفاهیم لازم و مرتبط با زبان اس کیو ال، در بخش بعدی به این سوال پاسخ داده میشود که زبان SQL چیست و از آن چه استفادههایی میشود؟
SQL چیست ؟
«زبان پرس و جوی ساختاریافته | اس کیو ال» (Structured Query Language | SQL) زبانی است که برای مدیریت و ارتباط با پایگاه داده استفاده میشود. به عبارتی، میتوان از این زبان برای ساخت پایگاه داده، حذف و بهروزرسانی اطلاعات و استخراج داده از پایگاه داده رابطهای استفاده کرد. این زبان یکی از زبانهای «مؤسسه ملی استاندارد آمریکا» (American National Standard Institute | ANSI) است که توسط پژوهشگران IBM در سال 1970 ارائه شد.
نسخههای دیگر این زبان نظیر T-SQL و PSQL نیز توسط سایر شرکتها نظیر Microsoft و Interbase/Firebird ایجاد شدهاند. اگرچه تلاش بر این بود تا برای استفاده از این زبان، استانداردسازی صورت گیرد، اما برخی از دستورات این زبان در پایگاههای داده رابطهای مختلف، متفاوت هستند.
قابلیتهایی که زبان اس کیو ال در اختیار کاربران خود قرار میدهد، به شرح زیر هستند:
- زبان SQL به کاربران اجازه دسترسی به داده را در RDBMS میدهد.
- با زبان اس کیو ال میتوان دادههای موجود در پایگاه دادههای رابطهای را توصیف کرد.
- زبان SQL امکان ذخیرهسازی داده و دستکاری آن را برای کاربران فراهم میکند.
- میتوان با کتابخانههای مربوط به SQL در سایر زبانهای برنامه نویسی و با استفاده از دستورات SQL به دادههای موجود در پایگاه داده دسترسی داشت.
- با زبان اس کیو ال میتوان پایگاه داده و تمامی اشیاء درون آن نظیر جدول، روال، View و سایر موارد را ایجاد و حذف کرد.
- با استفاده از زبان SQL میتوان به کاربران مختلف، سطح دسترسی متفاوت داد و نحوه دسترسی به دادههای ذخیره شده در پایگاه داده را مدیریت کرد.
در ادامه به توضیح تاریخچه زبان SQL و سیر تکاملی این زبان پرداخته میشود. پیش از آن دورههای آموزش پایگاه داده تم آف به علاقهمندان معرفی شدهاند.
معرفی فیلم های آموزش پایگاه داده
دورههای آموزش آنلاین یکی از بهترین روشهای یادگیری مهارتهای مختلف برای تمامی افراد محسوب میشود. افراد میتوانند در هر مکان و در هر ساعت از شبانه روز به یادگیری مطالب جدید بپردازند و فیلمهای آموزشی را چندین بار مشاهده کنند تا به درک جامعی از مفاهیم دست پیدا کنند. در وب سایت تم آف، یکی از کاربردیترین و جامعترین مجموعههای آموزش، با عنوان «فیلمهای آموزش پایگاه داده» فراهم و گردآوری شده است تا علاقهمندان به حوزه برنامه نویسی پایگاه داده با زبان اس کیو ال و سایر فناوریهای مربوط به مدیریت پایگاه داده بتوانند از آموزش کامل و تخصصی این حیطه بهرهمند شوند.
محتوای این فیلمهای آموزشی به نحوی فراهم شدهاند که از ابتداییترین سوال «زبان SQL چیست» تا مفاهیم پیچیده و برنامه نویسی حرفهای با این زبان را شامل میشوند. بدین ترتیب، افراد با سطح دانش و مهارت متفاوت در زمینه برنامه نویسی با زبانهای مرتبط با پایگاه داده میتوانند از این آموزشها با توجه به نیاز خود بهرهمند شوند. در تصویر فوق تنها تعداد کمی از دورههای موجود در این مجموعه آموزشی به عنوان نمونه نشان داده شدهاند.
- برای دسترسی به همه فیلم های آموزش پایگاه داده تم آف + اینجا کلیک کنید.
تاریخچه زبان SQL چیست ؟
حال که به پرسش «زبان SQL چیست» پاسخ داده شد، در این بخش به تاریخچه این زبان و سیر تکامل آن پرداخته میشود.
نخستین پایگاه دادههای کامپیوتری در اواخر دهه 1960 ارائه شدند. در این دهه، بسیاری از پژوهشگران حوزه علوم کامپیوتر برروی بهبود کار با پایگاه دادهها تمرکز داشتند. یکی از این افراد محقق، فردی به نام «ادگار فرانک تد کاد» (Edgar Frank Ted Codd) بود که به عنوان مهندس کامپیوتر در شرکت IBM فعالیت میکرد. در سال 1970، کاد (Codd) با ارائه مقالهای با عنوان (A Rational Model of Data for Large Shared Data Banks) پایگاه دادههای رابطهای را در علوم کامپیوتر معرفی کرد. بدین ترتیب، در اغلب اوقات، از این فرد به عنوان شخصی یاد میشود که برای نخستین بار زبان اس کیو ال را ارائه کرده است.
زمانی که کاد (Codd) مقاله خود را منتشر کرد، افراد از «پایگاه دادههای شبکه» (Network Databases) و «پایگاه دادههای سلسلهمراتبی» (Hierarchical Databases) استفاده میکردند. این پایگاه دادهها از قابلیت انعطافپذیری برخوردار نبودند. به عبارتی، به منظور استخراج داده از این پایگاه دادهها، باید از برنامه نویسی استفاده میشد و افراد غیربرنامهنویس قابلیت دسترسی به دادهها را نداشتند.
کاد (Codd) در مقاله خود ایده جدیدی را با استفاده از مفهوم ریاضی روابط بر پایه مدلسازی داده مطرح کرد که امروزه به آنها جدول گفته میشود. این نوع پایگاه داده در مقایسه با پایگاه دادههای شبکهای و سلسلهمراتبی از انعطاف بیشتری برخوردار بود و بدون نیاز به تغییر روابط موجود این امکان وجود داشت که روابط جدیدی را به روابط قبلی اضافه کرد و بدینترتیب، کار با پایگاه دادهها آسانتر شد.
پروژه System R
زمانی که مدل کاد (Codd) در سال 1970 مطرح شد، استقبال چندانی از آن صورت نگرفت و شرکت IBM از پیادهسازی پیشنهاد و ایده کاد (Codd) صرفنظر کرد. در آن زمان، پژوهشگران IBM با پایگاه داده سلسلهمراتبی با عنوان IMS کار میکردند. سه سال بعد یعنی در سال 1973، شرکت IBM پروژهای با عنوان System R را برای بررسی ایدههای کاد (Codd) درباره مدل داده رابطهای آغاز کرد. در آن زمان، کاد (Codd) با تیم توسعه پروژه System R همکاری نزدیکی نداشت و دو پژوهشگر دیگر به نامهای «دان چمبرلین» (Don Chamberlin) و «ری بویس» (Ray Boyce) مسئول پیادهسازی زبان پرس و جو بودند.
زبان پرس و جوی پایگاه داده رابطه ای
کاد (Codd) در مقاله خود دستوراتی را برای استخراج داده از پایگاه داده تعریف کرده بود. این دستورات، اولین دستورات زبان پرس و جو برای پایگاه داده رابطهای محسوب میشدند اما «نحو» (Syntax) این دستورات، با دستورات اس کیو الی که امروزه استفاده میشوند، متفاوت بود. به عبارتی، کاد (Codd) در مقاله خود از نمادهای ریاضی برای تعریف زبان پرس و جو استفاده کرد. در حقیقت، کاد (Codd) دو زبان متفاوت برای مدل رابطهای تعریف کرد:
- «جبر رابطهای» (Relational Algebra)
- «حسابان رابطهای» (Relational Calculus)
زبان حسابان رابطهای، پایه و اساس زبان پرس و جو (Query Language | QUEL) برای «سیستم بازیابی گرافیک تعاملی» (Interactive Graphics Retrieval System | Ingres) بود. Ingres نوع اولیهای از پایگاه داده رابطهای محسوب میشد که توسط میشل استونبریکر (Michael Stonebraker) از دانشگاه برکلی (Berkeley) کالیفرنیا ارائه شد.
دان چمبرلین و ری بویس پیش از پروژه System R با زبان دیگری با عنوان SQUARE (Specifying Queries as Relational Expressions) کار کرده بودند. آنها با مطالعه مقاله کاد (Codd) دریافتند که هنگام کار با پایگاه داده سلسلهمراتبی و زبان پرس و جوی مختص به آن، باید از دستورات پیچیدهتری نسبت به زبان جدید کاد (Codd) استفاده کنند. با این حال، به اعتقاد آنها استفاده از جبر و حسابان رابطهای کاد (Codd) برای کاربران عادی دشوارتر از زبان مورد استفاده خودشان بود؛ هرچند برای زبان SQUARE باید از یک سری نمادهای ریاضی استفاده میشد که تایپ کردن این نمادها با کیبورد کار دشواری بود.
به همین خاطر، دان چمبرلین (Don Chamberlin) و ری بویس (Ray Boyce) تصمیم گرفتند نحو جدیدی برای SQUARE ایجاد کنند که مشابه جملات زبان انگلیسی باشد تا استفاده از آن در هنگام تایپ کردن دستورات، بهراحتی انجام شود. آنها زبان طراحی شده جدید را SEQUEL نام نهادند که مخفف عبارت Structured English Query Language است.
دان چمبرلین (Don Chamberlin) و ری بویس (Ray Boyce) برای طراحی زبان SEQUEL دو هدف را مدنظر خود قرار دادند. یکی از اهداف آنها این بود که زبان SEQUEL برای تمامی کاربران به خصوص افرادی که پیشزمینه ریاضی و برنامه نویسی نداشتند، قابل استفاده باشد. به منظور بررسی تحقق این هدف، آنها به تعدادی از دانشجویان، زبان SEQUEL را آموزش دادند و از آنها نظرسنجی کردند که آیا نحو این زبان برایشان دشوار است؟ هدف دیگر آنها اضافه کردن قابلیتهای جدیدی به زبان SEQUEL نظیر دستوراتی برای تغییرات داده و ایجاد داده بود.
بدینترتیب، این دو فرد دو مقاله پیرامون زبان SEQUEL منتشر کردند که اولین مقاله درباره «زبان دستکاری دادهها» (Data Manipulation Language | DML) بود که شامل دستوراتی نظیر SELECT ،INSERT و UPDATE میشد و مقاله دوم آنها درباره دستوراتی در خصوص ایجاد و تغییرات ساختار پایگاه داده با عنوان «زبان تعریف دادهها» (Data Definition Language | DDL) بود. بدینترتیب، زبان SEQUEL جدیدی که امروزه نیز از آن استفاده و با نام SQL شناخته میشود، با انتشار این دو مقاله، ارائه شد.
آیا SQL یک زبان برنامه نویسی محسوب می شود ؟
افرادی که به دنبال یادگیری زبانهای برنامه نویسی هستند، ممکن است پس از اولین پرسش ذهنی خود درباره اینکه زبان SQL چیست و چه کاربردی دارد، این سوال برایشان مطرح شود که آیا این زبان را میتوان مشابه سایر زبانهای برنامه نویسی تلقی کرد؟
زبان SQL را میتوان به عنوان یکی از زبانهای برنامه نویسی بهشمار آورد. این زبان شامل دستورات حلقه، متغیر و سایر موارد موجود در زبانهای برنامه نویسی است. با این حال، این زبان را نمیتوان بهطور کامل، مشابه با زبانهای برنامه نویسی جاوا و C++ درنظر گرفت.
زبان SQL زبان نسل چهارم محسوب میشود و زبانهایجاوا و C++ جزء زبانهای نسل سوم هستند. زبان SQL صرفاً شامل دستوراتی برای ذخیرهسازی، بازیابی و دستکاری داده است و همانند سایر زبانهای برنامه نویسی از آن نمیتوان برای ساخت وبسایت، نرمافزار و برنامههای کاربردی استفاده کرد.
- مقاله پیشنهادی برای مطالعه: بهترین زبان های برنامه نویسی سال ۱۴۰۱ یا ۲۰۲۲ + کاربردها و منابع یادگیری
مزایای زبان اس کیو ال چیست ؟
زبان اس کیو ال زبان کارآمدی برای کار با بانک اطلاعاتی محسوب میشود. این زبان مزایای مختلفی دارد که در ادامه فهرست شدهاند:
- سادگی
- پردازش سریع عملیات پرس و جو
- استانداردسازی
- قابل حمل بودن
- قابلیت پشتیبانی از چندین نما (View)
- نسخههای رایگان
در ادامه مطلب، به توضیح هر یک از مزایای زبان SQL پرداخته میشود.
سادگی زبان اس کیو ال
یکی از مهمترین مزیتهای زبان SQL این است که برای استفاده از آن نیاز به دانش خاصی از برنامه نویسی نیست. سینتکس (قواعد نحوی) این زبان ساده است و به دلیل شباهت زیادی که به جملات انگلیسی دارد، فهم و درک دستورات برای کاربران آن ساده است.
پردازش سریع پرس و جو
با استفاده از زبان SQL میتوان حجم زیادی از دادههای ذخیره شده در پایگاه داده را در کسری از ثانیه پردازش کرد. بازیابی دادهها، دستکاری و انجام محاسبات برروی دادهها در پایگاههای داده رابطهای با زبان اس کیو ال به سرعت انجام میشوند.
استاندارد بودن زبان SQL
زبان اس کیو ال توسط ISO و ANSI استانداردسازی شده است و در تمام سیستمهای مدیریت پایگاه داده از سینتکس (قواعد نحوی) تقریباً یکسانی برای کار با این زبان استفاده میشود.
قابل حمل بودن زبان اس کیو ال
از زبان اس کیو ال میتوان در کامپیوترهای رومیزی مختلف، سرورها، لپتاپهایی با سیستمعاملهای متفاوت نظیر ویندوز، لینوکس، مک و سایر موارد استفاده کرد.
پشتیبانی زبان SQL از ساخت چندین نما
با استفاده از SQL میتوان چندین View یا همان نما برای داده ساخت و کاربران مختلف میتوانند به چندین نمای مختلف از ساختار و محتوای پایگاه داده دسترسی داشته باشند.
قابل دسترس بودن نسخه های رایگان زبان SQL
با استفاده از برخی نسخههای اس کیو ال نظیر MySQL ،MariaDB و PostGresSQL میتوان از پایگاه داده اس کیو ال به صورت رایگان استفاده کرد که همین امر، هزینههای سازمان را کاهش میدهد.
معایب زبان SQL چیست ؟
زبان اس کیو ال علیرغم داشتن مزیتهای مهم، دارای معایب محدودی است که در ادامه به توضیح آنها پرداخته میشود.
رابط کاربری ضعیف
زبان اس کیو ال به دلیل داشتن رابط ضعیف، پیچیده بهنظر میرسد و کاربران در مواقع کار با پایگاههای داده SQL ممکن است با دشواری مواجه شوند.
هزینه بالا
با افزایش حجم دادههای پایگاه داده باید میزان حافظه سیستم را ارتقا داد. همچنین، سیستمهای مدیریت پایگاه داده باید گهگاه بهروزرسانی شوند و نسخههای جدید این سیستمها روی سختافزارهای قدیمی قابل اجرا نیستند.
نرمالسازی داده
یکی از هدفهای ایجاد پایگاه داده رابطهای، حذف مقادیر تکراری در بین دادهها بود. هر جدول در پایگاه داده شامل اطلاعات مختلفی است و میتوان جدولها را با استفاده از مقادیر مشترک به یکدیگر متصل کرد. زمانی که حجم اطلاعات پایگاه داده زیاد میشود، جستجوی داده و اتصال جداول به یکدیگر سرعت پردازش را تا حد زیادی پایین میآورد.
عناصر زبان SQL چیست ؟
زبان SQL شامل دستوراتی است که با کلمه کلیدی شروع میشود و انتهای دستورات با علامت نقطهویرگول (؛) مشخص میشوند. اجزای اصلی دستورات اس کیو ال به شرح زیر هستند:
- کلمات کلیدی: کلماتی هستند که نوع عملیات در پایگاه داده را مشخص میکنند. کلماتی نظیر ADD ،SELECT ،CREATE ،JOIN و VIEW کلمات کلیدی زبان اس کیو ال محسوب میشوند.
- «شناسه» (Identifier): به اسامی اشیاء پایگاه داده، شناسه گفته میشود که برخی از آنها عبارتاند از:
- نام جدول
- نام ستون
- نام View
- شرطها: به منظور انتخاب برخی سطرهای جدول، میتوان از دستورات شرطی استفاده کرد.
- «نوع داده» (Data Type): هنگام ساخت جدول میتوان نوع دادههای هر ستون جدول را مشخص کرد.
- عبارت «تهی» (Null): از این عبارت برای مقدارهای نامشخص ستونهای جدول استفاده میشود.
- «توضیحات» (Comments): برای شرح هر بخش از دستورات اس کیو ال میتوان از نوشتن توضیحات استفاده کرد. هر یک از توضیحات را میتوان با علامتهای (–) و (/* … */) مشخص کرد.
کاربرد دستورات اس کیو ال چیست ؟
عمل پرس و جوی اس کیو ال برای دسترسی به یک سری از دادهها و اطلاعات موجود در پایگاه داده اتلاق میشود. با استفاده از یک زبان پرس و جوی پایگاه داده میتوان عملیات مربوط به پرس و جو را انجام داد. زبان SQL به عنوان یکی از زبانهای پرس و جو برای کار با پایگاه داده ارائه شده است که از آن میتوان برای بازیابی و مدیریت دادههای موجود در پایگاه داده رابطهای استفاده کرد. این زبان، خروجی دستورات پرس و جو را در قالب سطر و ستون نشان میدهد.
عملیاتی که میتوان با استفاده از زبان اس کیو ال انجام داد، در ادامه فهرست شدهاند:
- دسترسی به دادههای موجود در سیستمهای مدیریت پایگاه داده رابطهای
- توضیح دادهها
- دستکاری دادهها
- ایجاد و حذف پایگاههای داده و جدولها
- ساخت View، «روال» (Procedure) و توابع در پایگاه داده
- ایجاد مجوز دسترسی به جداول، روالها و View
انواع دستورات SQL چیست ؟
دستورات اس کیو ال را میتوان براساس عملکردشان به گروههای ذکر شده در ذیل تقسیمبندی کرد:
- «زبان تعریف داده» (Data Definition Language | DDL)
- «زبان دستکاری داده» (Data Manipulation Language | DML)
- «زبان کنترل تعاملات» (Transaction Control Language | TCL)
- «زبان کنترل داده» (Data Control Language | DCL)
- «زبان پرس و جوی داده» (Data Query Language | DQL)
در ادامه به توضیح هر یک از انواع دستورات SQL پرداخته میشود.
زبان تعریف داده یا DDL در SQL چیست ؟
دستورات زبان تعریف داده (DDL) برای تعریف طرحواره (Schema) پایگاه داده استفاده میشود. به عبارتی، این زبان شامل دستوراتی برای ساخت، ویرایش و حذف اشیاء پایگاه داده است. در ادامه، به برخی از مهمترین دستورات DDL به همراه مثال برای نمایش کاربرد آنها پرداخته شده است:
- دستور CREATE: در پایگاه داده از دستور CREATE میتوان برای ساخت اشیاء نظیر پایگاه داده، جدول، Trigger، تابع، روال و سایر موارد استفاده کرد.
CREATE DATABASE database_name; /*This query will create a new database in SQL and name the database as the provided name.*/
- دستور DROP: با استفاده از این دستور میتوان اشیاء ساخته شده در پایگاه داده را حذف کرد.
DROP object object_name; --object: Keyword that represents the database object.
- دستور ALTER: این دستور برای ویرایش پایگاه داده یا اعمال تغییرات برروی اشیاء پایگاه داده کاربرد دارد.
ALTER TABLE Employees DROP COLUMN Salary; /*This query will delete the column Salary from the table Employees.*/
- دستور TRUNCATE: از این دستور میتوان برای حذف سطرهای جدول استفاده کرد.
TRUNCATE TABLE Database_Name.Schema_Name.Table_Name
- دستور RENAME: با استفاده از این دستور میتوان نام اشیاء پایگاه داده را تغییر داد.
SP_RENAME '[Old Name]', '[New TableName]'
زبان دستکاری داده یا DML در SQL چیست ؟
دستورات DML به منظور بازیابی، ذخیرهسازی، ویرایش و حذف داده در پایگاه داده رابطهای استفاده میشوند. برخی از این دستورات به شرح زیر هستند:
- دستور SELECT: این دستور به عنوان دستور محدود شده DML محسوب میشود زیرا از آن صرفاً میتوان برای دسترسی به داده استفاده کرد و نمیتوان با این دستور، تغییراتی را برروی دادههای پایگاه داده اعمال کرد. به همین خاطر، این دستور، نوعی از دستورات DQL نیز تلقی میشود.
SELECT col1, col2,… colN FROM table_name WHERE condition; /*col1,col2,… colN: represent the fields of the table that we want to retrieve. We can also use ‘*’ in place of column names to retrieve all the columns. table_name: specifies the table which acts as the data source or from where we watch to fetch the data. condition: the condition is specified in the WHERE clause which is optional. It is used to filter out the data according to the specified condition.*/
- دستور INSERT: در پایگاه داده از این دستور برای اضافه کردن سطر جدید به جدول استفاده میشود.
INSERT INTO table_name(col1, col2,…) VALUES(value1, value2,…); /*This command creates a new record in the table_name and inserts values for the specified column with corresponding values.*/
- دستور DELETE: این دستور برای حذف سطرهای موجود در جدول پایگاه داده کاربرد دارد. میتوان با استفاده از دستور WHERE شروطی برای دستور DELETE تعریف کرد که در صورت صادق بودن شروط، عمل حذف داده از جدول صورت گیرد.
DELETE FROM table_name WHERE condition; /*table_name: name of the table from which the records are to be deleted. condition: provides filter conditions to identify the particular records that are to be deleted.*/
- دستور UPDATE: از این دستور به منظور بهروزرسانی یا تغییر دادههای موجود در جدول پایگاه داده استفاده میشود.
UPDATE table_name SET col1 = value1, col2 = value2,… colN = vlaueN WHERE condition; /*table_name: name of the table whose data we are going to update. SET: keyword used to specify fields and values. col: name of fields to be updated. value: the updated value of the corresponding field. condition: condition specified to select rows in which data needs to be modified.*/
زبان کنترل تعاملات یا TCL در اس کیو ال چیست ؟
از دستورات TCL برای مدیریت تغییرات داده استفاده میشود. برخی از دستورات مهم TCL عبارتاند از:
- دستور COMMIT: از این دستور به منظور ذخیره تغییرات در پایگاه داده استفاده میشود. پس از استفاده از این دستور، دیگر نمیتوان تغییرات اعمال شده بر پایگاه داده را ذخیره کرد.
COMMIT; /*This command will save the current state of data, in other words, it will make all the changes done to the database permanent.*/
- دستور ROLLBACK: با استفاده از این دستور میتوان تغییراتی را بازگرداند که بر پایگاه داده اعمال شدهاند اما با دستور COMMIT ذخیره نشدهاند.
ROLLBACK; /*This command will undo all the changes made to the database since the last COMMIT or ROLLBACK.*/
- دستور SAVEPOINT: این دستور، نقطهای را برای اعمال تغییرات جدید در پایگاه داده درنظر میگیرد. به عبارتی، با تعریف یک SAVEPOINT، دیگر نمیتوان به تغییرات پیشین SAVEPOINT دسترسی داشت و چنانچه به عنوان مثال از دستور ROLLBACK چندین بار استفاده شود، تغییرات تا نقطه SAVEPOINT به عقب برگردانده میشوند و دیگر نمیتوان تغییرات پیش از نقطه SAVEPOINT را بازگرداند.
SAVEPOINT My_Savepoint; /*This commands creates a savepoint of name My_Savepoint in the current transaction. Now rollback command can be used to undo changes to the database up to the savepoint My_Savepoint.*/ ROLLBACK TO My_Savepoint;
زبان کنترل داده یا DCL در SQL چیست ؟
دستورات DCL به منظور ایجاد امنیت برای جدولها، View، روالها و سایر اشیاء در پایگاه داده استفاده میشوند. به عبارتی، با استفاده از این دستورات میتوان اجازه دسترسی به کاربران را مدیریت کرد. دو نوع اجازه دسترسی در SQL وجود دارد:
- اجازه دسترسی در سطح سیستم: میتوان برای ساخت Session، جدول و سایر اشیاء اجازه دسترسی ایجاد کرد.
- اجازه دسترسی در سطح دسترسی به اشیاء: میتوان برای عملیات پرس و جو در پایگاه داده، حق دسترسی ایجاد کرد.
دستورات DCL شامل دو دستور فهرست شده در زیر هستند:
- دستور GRANT: با استفاده از این دستور میتوان به کاربران خاص حق دسترسی به اشیاء پایگاه داده (نظیر جدول، View و سایر موارد) داد.
GRANT privilege_name ON object_name TO {user_name |PUBLIC |role_name} [WITH GRANT OPTION]; /*privilege_name: refers to the access right or privilege granted to the user. Some of the access rights are ALL, EXECUTE, and SELECT. Multiple privileges can be granted to the users simultaneously. object_name: name of a database object like TABLE, VIEW, STORED PROC and SEQUENCE. It represents the objects on which the permission is to be granted. Permissions on multiple objects can be granted simultaneously. user_name: it is the name of the user or role to whom an access right is being granted. Multiple users can be granted privileges simultaneously. PUBLIC keyword grants privileges to all the users. [WITH GRANT OPTION]: this clause is optional. it is used to allow users to grant the same privileges to other users. It is applicable only for object privileges.*/
- دستور REVOKE: با استفاده از این دستور میتوان حق دسترسی کاربران به اشیاء را کنسل کرد.
REVOKE privilege_name ON object_name TO user_name [CASCADE | RESTRICT]; /*privilage_name: refers to the access right or privilege granted to the user. object_name: name of a database object like TABLE, VIEW, STORED PROC and SEQUENCE. It represents the objects on which the permission is to be revoked. user_name: it is the name of the user or role from whom an access right is to be revoked. [CASCADE|RESTRICT]: This clause is optional. By default, it is a cascade. It determines whether the privileges from the subsequent grantee should be revoked or not.*/
زبان پرس و جوی داده یا DQL در زبان SQL چیست ؟
از دستور DQL به منظور استخراج اطلاعات از پایگاه داده استفاده میشود. دستور SELECT تنها دستور نوع DQL است که با استفاده از آن میتوان اطلاعاتی را براساس شروط مشخص شده از جدولهای پایگاه داده استخراج کرد.
SELECT expressions
FROM TABLES
WHERE conditions;
جمعبندی
هدف از مقاله حاضر این بود به این پرسش پاسخ داده شود که زبان SQL چیست و علاقهمندان به این زبان چه استفادههایی میتوانند از آن داشته باشند. زبان اس کیو ال به عنوان یکی از رایجترین زبانهای برنامه نویسی پایگاه داده محسوب میشود. یادگیری این زبان برای اکثر افراد فعال در حوزه فناوری اطلاعات از اهمیت بالایی برخوردار است زیرا تمامی سازمانها از پایگاه داده به منظور ذخیره و نگهداری دادههای خود استفاده میکنند.
همچنین، یادگیری زبان SQL در بررسی و تحلیل داده و در پی آن به پیدا کردن دلایل سود و زیان شرکتها نقش بهسزایی دارد. در مقاله حاضر با عنوان «SQL چیست ؟ __ اس کیو ال به زبان ساده + راهنمای شروع»، به شرح تاریخچه این زبان، کاربرد آن، مزایا و معایب آن پرداخته شد و برخی از مهمترین دستورات این زبان نیز معرفی شدند تا افراد علاقهمند به یادگیری این زبان با مفاهیم مقدماتی آن آشنا شوند.