مقدمه مقاله آموزش SQL به زبان ساده
SQL مخفف عبارت Structured Query Language است که به معنای زبان پرس و جوی ساخت یافته میباشد و برای انجام عملیات روی پایگاه دادهها یا دیتابیس از آن استفاده میشود. عملیاتهای اصلی در پایگاه داده عبارتند از: به روز رسانی، درج، حذف، ایجاد و اصلاح جداول پایگاه داده , نماها و …
SQL یک سیستم پایگاه داده نیست ولی یک زبان پرس و جو به حساب میآید. برای شروع وقتی میخواهید پرس و جوهای زبان SQL را روی دادههای ذخیره شده در پایگاه داده انجام دهید، باید یک سیستم مدیریت پایگاه داده را در سیستمهای خود نصب کنید، به عنوان مثال Oracle، MySQL، MongoDB، PostgreSQL، SQL Server، DB2 و غیره.
SQL چیست؟
SQL همان زبان پرس و جوی ساخت یافته است که به صورت S-Q-L یا گاهی به صورت See-Quell تلفظ میشود. این زبان پایگاه داده،,عمدتاً برای نگهداری دادهها در سیستمهای مدیریت پایگاه دادهی رابطهای طراحی شده است. این ابزار خاص توسط متخصصان داده برای مدیریت دادههای ساختاریافته (دادههایی که در قالب جداول ذخیره میشوند) استفاده میشود. همچنین برای پردازش جریانی در RDSMS (Relational Database Management System) (سیستم مدیریت پایگاه داده رابطهای است) طراحی شده است.
شما به راحتی میتوانید پایگاه داده را ایجاد و دستکاری کنید، به سطرها و ستونهای جدول دسترسی داشته باشید و آنها را ویرایش کنید. این زبان پرس و جو در سال ۱۹۸۶ توسط استاندارد ANSI و در سال ۱۹۸۷ توسط ISO تایید شده است. اگر میخواهید در زمینه علم Data شغلی پیدا کنید، آموزش SQL مهم ترین آموزشی است که در حیطه زبان پرس و جو باید داشته باشید. شرکتهای بزرگ مانند فیسبوک، اینستاگرام و لینکدین از SQL برای ذخیره دادهها در back-end استفاده میکنند.
دلایل استفاده از SQL
امروزه SQL به طور گسترده در علم داده و تجزیه و تحلیل استفاده میشود.در زیر دلایلی وجود دارد که دلیل استفاده گسترده از آن را توضیح میدهد:
- دلیل استفاده اساسی متخصصان داده و کاربران SQL،از SQL , امکان درج، به روز رسانی و حذف دادهها از پایگاه داده رابطهای است.
- SQL به متخصصان و کاربران داده اجازه میدهد تا دادهها را از سیستمهای مدیریت پایگاه داده رابطهای بازیابی کنند.
- SQL به متخصصان و کاربران داده کمک میکند تا دادههای ساخت یافته را توصیف کنند.
- کاربران SQL اجازه دارند تا پایگاه داده و جداول آن را ایجاد، رها و دستکاری کنند.
- SQL به ایجاد view، رویه ذخیره شده و توابع در پایگاه داده رابطهای کمک میکند.
- شما این امکان را دارید تا دادهها را تعریف کنید و دادههای ذخیره شده را در پایگاه داده رابطهای اصلاح کنید.
- SQL به کاربران اجازه میدهد تا مجوزها یا محدودیتها را روی ستونهای جدول، نماها و رویههای ذخیرهشده تنظیم کنند.
اگر تصمیم به داشتن ارائه در این زمینه دارید پیشنهاد میکنیم به فایل موجود در لینک زیر مراجعه کنید.
تاریخچه SQL
«مدل ارتباطی دادهها برای بانکهای دادهای مشترک بزرگ» مقالهای بود که توسط دانشمند بزرگ «اE.F. Codd» در سال ۱۹۷۰ منتشر شد. ریموند بویس و دونالد چمبرلین، محققین IBM، ابتدا پس از یادگیری از مقاله ارائه شده توسط ای , اف , کاد،SEQUEL (زبان پرس و جو انگلیسی ساختاریافته) را توسعه دادند. هر دوی آنها SQL را در آزمایشگاه تحقیقاتی سن خوزه شرکت IBM در سال ۱۹۷۰ توسعه دادند.
در پایان دهه ۱۹۷۰، شرکت نرم افزار رابطهای اولین SQL خود را با استفاده از مفاهیم E.F. Codd، Raymond Boyce و Donald Chamberlin توسعه داد. این SQL کاملاً مبتنی بر RDBMS بود. RDBMS , سیستم مدیریت پایگاه داده رابطه ای است. RDBMS مبنایی برای SQL و برای همه سیستمهای پایگاه داده مدرن مانند MS SQL Server، IBM DB2، Oracle، MySQL و Microsoft Access است.یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) , یک سیستم مدیریت پایگاه داده (DBMS) است که بر اساس مدل رابطهای ارائه شده توسط E.F. Codd معرفی شده است.
Relational Software Inc. که اکنون با نام Oracle Corporation شناخته میشود، Oracle V2 را در ژوئن ۱۹۷۹ معرفی کرد که اولین پیاده سازی زبان SQL است. این نسخه Oracle V2 بر روی کامپیوترهای VAX کار میکند.
فرآیند SQL
هنگامی که ما در حال اجرای دستور SQL بر روی سیستم مدیریت پایگاه داده رابطهای هستیم، سیستم به طور خودکار بهترین روال را برای انجام درخواست ما پیدا میکند و موتور SQL نحوه تفسیر آن دستور خاص را تعیین میکند. زبان SQL شامل چهار مؤلفه زیر در فرآیند خود است:
- ارسال کننده پرس و جو
- موتورهای بهینه سازی
- موتور جستجوی کلاسیک
- SQL Query Engine
- و غیره
یک موتور پرس و جوی کلاسیک به متخصصان داده و کاربران اجازه میدهد تا Queryهای غیر SQL را حفظ کنند. معماری SQL در نمودار زیر نشان داده شده است:
دستورات SQL
در آموزش SQL به بخش دستورات میرسیم. دستورات SQL به ایجاد و مدیریت پایگاه دادهها کمک میکنند. رایجترین و مهمترین دستورات SQL که بسیار مورد استفاده قرار می گیرند در زیر ذکر شدهاند:
- CREATE
- UPDATE
- DELETE
- SELECT
- DROP
- INSERT
- دستور CREATE
این دستور به ایجاد پایگاه داده جدید، جدول جدید، نمای جدول و سایر اشیاء پایگاه داده کمک میکند.
- دستور UPDATE
این دستور به, به روز رسانی یا تغییر دادههای ذخیره شده در پایگاه داده کمک میکند.
- دستور DELETE
این دستور به حذف یا پاک کردن رکوردهای ذخیره شده از جداول پایگاه داده کمک میکند. تاپلهای منفرد یا چندگانه را از جداول پایگاه داده پاک میکند.
- دستور SELECT
این دستور به دسترسی به سطرهای منفرد یا چندگانه از یک یا چند جدول پایگاه داده کمک میکند. همچنین می توانیم از این دستور با عبارت WHERE استفاده کنیم.
- دستور DROP
این دستور به حذف کل جدول، نمای جدول و سایر اشیاء از پایگاه داده کمک میکند.
- دستور INSERT
این دستور به درج دادهها یا رکوردها در جداول پایگاه داده کمک میکند. به راحتی میتوانیم رکوردها را در ردیفهای تکی و چند ردیفی جدول قرار دهیم.
SQL یا NO_SQL
جدول زیر تفاوتهای بین SQL و NoSQL را توضیح میدهد که درک آنها ضروری است:
NO_SQL | SQL |
---|---|
۱. No-SQL یک سیستم مدیریت پایگاه داده غیر رابطه ای یا توزیع شده است. | ۱. SQL یک سیستم مدیریت پایگاه داده رابطه ای است. |
۲. زبان پرس و جوی مورد استفاده در سیستم های پایگاه داده No-SQL یک زبان پرس و جوی غیراعلامی است. | ۲. زبان پرس و جوی مورد استفاده در این سیستم پایگاه داده یک زبان پرس و جوی ساخت یافته است. |
۳. طرح واره پایگاه های داده No-SQL یک طرح واره پویا برای داده های بدون ساختار است. | ۳. طرح واره پایگاه های داده SQL از پیش تعریف شده، ثابت و ایستا است. |
۴. این پایگاه های داده به صورت افقی مقیاس پذیر هستند. | ۴. این پایگاه های داده به صورت عمودی مقیاس پذیر هستند. |
۵. نوع پایگاه داده No-SQL به صورت اسناد، کلید-مقدار و نمودار می باشد. | ۵. نوع پایگاه داده SQL به صورت جداول، یعنی به صورت سطر و ستون است. |
۶. از مدل BASE پیروی میکند. | ۶. از مدل ACID پیروی می کند. |
۷. پایگاه های داده No_SQL نمی توانند پرس و جوهای پیچیده را مدیریت کنند. | ۷. پرس و جوهای پیچیده به راحتی در پایگاه داده SQL مدیریت می شوند. |
۸. در حالی که پایگاه داده No-SQL یک گزینه عالی برای ذخیره داده های سلسله مراتبی است. | ۸. این پایگاه داده بهترین انتخاب برای ذخیره داده های سلسله مراتبی نیست. |
۹. بسیاری از پایگاه های داده No-SQL نیازی به نگاشت شی رابطه ای ندارند. | ۹. همه پایگاه های داده SQL به نگاشت شی رابطه ای نیاز دارند. |
۱۰. Airbnb، Uber و Kickstarter برترین شرکت هایی هستند که از این زبان پرس و جو استفاده می کنند. | ۱۰. Gauges، CircleCI، Hootsuite، و غیره، شرکت های برتری هستند که از این زبان پرس و جو استفاده می کنند. |
۱۱. Redis، MongoDB، Hbase، BigTable، CouchDB و Cassandra نمونه هایی از سیستم های پایگاه داده No_SQL هستند. | ۱۱. SQLite، Ms-SQL، Oracle، PostgreSQL و MySQL نمونه هایی از سیستم های پایگاه داده SQL هستند. |
مزایای SQL
SQL مزیتهای مختلفی دارد که باعث میشود در علوم داده محبوب واقع گردد. SQL یک زبان پرس و جوی کامل است که به متخصصان داده و کاربران اجازه میدهد تا با پایگاه داده ارتباط برقرار کنند. در زیر به بهترین مزایای SQL یا مزایای زبان پرس و جوی ساخت یافته اشاره شده است که عبارتند از:
۱. بدون نیاز به برنامه نویسی
SQL به کدنویسی زیادی برای مدیریت سیستمهای پایگاه داده نیاز ندارد. با استفاده از قوانین ساختاری ساده SQL میتوانیم به راحتی به پایگاه داده دسترسی داشته باشیم و آن را نگهداری کنیم. این قوانین ساده SQL را کاربر پسند میکند.
۲. پردازش پرس و جو با سرعت بالا
با استفاده از پرس و جوهای SQL به سرعت و به صورت کارآمد میتوان به حجم زیادی از دادههای پایگاه داده دسترسی پیدا کرد. عملیات درج، حذف و به روز رسانی روی دادهها نیز در زمان کمتری انجام میشود.
۳. زبان استاندارد
SQL از استانداردهای قدیمی ISO و ANSI پیروی میکند که این باعث میشود یک پلتفرم یکسان در سراسر جهان به همه کاربران خود ارائه میدهد.
۴. قابلیت حمل
زبان پرس و جوی ساخت یافته را میتوان به راحتی در رایانههای رومیزی، لپ تاپها، تبلتها و حتی گوشیهای هوشمند استفاده کرد. همچنین با توجه به نیاز کاربر میتوان از آن از طریق سایر برنامهها هم استفاده کرد.
۵. زبان تعاملی
ما به راحتی میتوانیم زبان SQL را یاد بگیریم و بفهمیم, همچنین میتوانیم از این زبان برای برقراری ارتباط با پایگاه داده استفاده کنیم چرا که یک زبان پرس و جوی ساده است. علاوه بر این میتوان از این زبان برای دریافت پاسخ سوالات پیچیده در عرض چند ثانیه استفاده کرد.
۶. بیش از یک نمایش داده
زبان SQL همچنین کمک میکند تا نماهای متعددی از ساختار پایگاه داده برای کاربران مختلف آن ایجاد کند.
معایب SQL
علاوه بر مزایایی که برای SQL ذکر شد ، معایبی نیز دارد که به شرح زیر است:
۱. هزینه
هزینه عملیات برخی از نسخههای SQL بالا است. به همین دلیل است که برخی از برنامه نویسان نمیتوانند از زبان پرس و جوی ساخت یافته استفاده کنند.
۲. رابط پیچیده
یکی دیگر از معایب بزرگ SQL این است که برقراری رابط با زبان پرس و جوی ساختار یافته دشوار است و این استفاده و مدیریت آن را برای کاربران SQL دشوار میکند.
۳. کنترل جزئی پایگاه داده
در SQL قوانین تجارت پنهان است. بنابراین، متخصصان داده و کاربرانی که از این زبان پرس و جو استفاده میکنند نمیتوانند کنترل کامل پایگاه داده را داشته باشند.
جدول یا TABLE
دادهها در یک RDBMS در اشیاء پایگاه داده که جدول نامیده میشوند ذخیره میگردند. این جدول اساسا مجموعهای از ورودیهای دادهای مرتبط به هم است و از ستونها و ردیفهای متعددی تشکیل شده است. در واقع , جدول رایجترین و سادهترین شکل ذخیره سازی دادهها در یک پایگاه داده رابطهای است.
برنامه زیر نمونهای از CUSTOMERS -Table است:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | ۱ | Ramesh | 32 | Ahmedabad | 2000.00 | | ۲ | Khilan | 25 | Delhi | 1500.00 | | ۳ | kaushik | 23 | Kota | 2000.00 | | ۴ | Chaitali | 25 | Mumbai | 6500.00 | | ۵ | Hardik | 27 | Bhopal | 8500.00 | | ۶ | Komal | 22 | MP | 4500.00 | | ۷ | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
فیلد FIELD
هر جدول به موجودیتهای کوچکتری به نام فیلد تقسیم میشود. فیلدهای جدول مشتریان شامل شناسه، نام، سن، آدرس و حقوق و دستمزد است. فیلد ستونی در جدول است که برای حفظ اطلاعات خاص در مورد هر رکورد در جدول طراحی شده است.
رکورد RECORD OR ROW
رکورد همچنین به عنوان ردیفی از دادهها نامیده میشود که هر ورودی فردی است که در یک جدول وجود دارد. به عنوان مثال، ۷ رکورد در جدول CUSTOMERS بالا وجود دارد. در زیر یک ردیف داده یا رکورد از جدول CUSTOMERS آمده است:
+----+----------+-----+-----------+----------+ | ۱ | Ramesh | 32 | Ahmedabad | 2000.00 | +----+----------+-----+-----------+----------+
رکورد یک موجودیت افقی در جدول است.
ستون COLUMN
ستون یک موجودیت عمودی در جدول است که شامل تمام اطلاعات مرتبط با یک فیلد خاص در جدول میباشد.
به عنوان مثال، یک ستون در جدول بالا ADDRESS است که نشان دهنده توضیحات مکان است و مانند شکل زیر خواهد بود :
+-----------+ | ADDRESS | +-----------+ | Ahmedabad | | Delhi | | Kota | | Mumbai | | Bhopal | | MP | | Indore | +----+------+
محدودیتهای SQL
محدودیتها قوانینی هستند که بر روی ستونهای داده روی یک جدول اعمال میشوند که برای محدود کردن نوع دادههایی که میتوانند در جدول قرار گیرند استفاده میشوند. این امر صحت و قابلیت اطمینان دادههای موجود در پایگاه داده را تضمین میکند. محدودیتها میتوانند در سطح ستون یا جدول باشند. محدودیتهای سطح ستون فقط برای یک ستون اعمال میشود در حالی که محدودیتهای سطح جدول برای کل جدول اعمال میشود.
در زیر برخی از رایجترین محدودیتهای موجود در SQL آورده شده است:
- NOT NULL : تضمین میکند که یک ستون نمیتواند مقدار NULL داشته باشد.
- DEFAULT : یک مقدار پیش فرض را برای یک ستون ارائه میدهد که هیچ کدام مشخص نشده باشد.
- UNIQUE : اطمینان حاصل میکند که همه مقادیر در یک ستون متفاوت هستند.
- کلید اولیه : به طور منحصر به فرد هر ردیف/رکورد را در جدول پایگاه داده شناسایی میکند.
- کلید خارجی : به طور منحصر به فرد یک ردیف/رکورد را در هر جدول پایگاه داده دیگری شناسایی میکند.
- CHECK :محدودیت CHECK تضمین میکند که همه مقادیر در یک ستون شرایط خاصی را برآورده میکنند.
- INDEX : برای ایجاد و بازیابی سریع دادهها از پایگاه داده استفاده میشود.
در لینک زیر سورس کد سیستم مدیریت نوشته شده با SQL قرار داده شده است که پیشنهاد میکنیم نگاهی بیندازید.
سخن پایانی در این جلسه
در آموزش SQL به صورت ساده با ساختار SQL و کاربردهای آن آشنا شدیم. در واقع چهارچوب کلی SQL به دست آمد که می تواند نقطه شروعی برای یادگیری SQL با جزئیات بیشتر و دقیقتر باشد. امید است که توانسته باشیم با این پست در آغاز مسیر یادگیری SQL شما به صورت اساسی، قدمی برداشته باشیم.