SQL مخفف Structerd Query Language یکی از محبوبترین زبان ها برای برنامه نویسی می باشد.بهتر است برای طراحی سایت اس کیو ال را فرا گرفت. از SQL برای افزایش،کاهش و یا تغییر داده ها مورد استفاده قرار می گیرد.
برای یادگیری و تمرین SQL می توان از بانک اطلاعاتی QL-Server و Access ویا اوراکل استفاده کرد.SQL زبانی بر پایه اعلان می باشد و برعکس زبان های بیسیک و سی می باشد.زبانهای توسعه یافیه ی دیگر مانند PL و SQL به دنبال کامل کردن زبان به هداف ایجاد زبان برنامه نویسی با حفظ مزیت های SQL می باشد.
اس کیو ال دارای چند استاندارد می باشد که تا به حال عرضه شده است.این استاندارد ها شامل:
√ SQL 87
√ SQL 89
√ SQL 92
√ SQL 1999
√ SQL 2003
√ SQL 2005
√ SQL 2008
√ SQL 2011
دستورات زبان SQL پنج دسته هستند که عبارتنداز:
Data Definition Language _ DDL : زبان تعریف داده ها می باشد که با استفاده از این زبان امکان حذف و یا اضافه کردن یک جدول از بانک اطلاعاتی را می توان انجام داد که خوده این زبان دستورات خاص خود را دارد که عارتند از:Create , Alter , Drop , Create Index , Alter Index , Drop Index
Data Manipulation Language _ DML : زبان پردازش داده ها می باشد که با استفاده از این زبان برای تغییر جداول استفاده می شود که این زبان نیز دارای سه دستور اصلی ی باشد که عبارتند از:Insert , Update , Delete
Data Control Language _ DCL : این ویژگی دستورات مدیریت و کنترل داده ها را برعهده دارد که در کنترل داده های بانک اطلاعاتی که بیشتر در رابطه با دسترسی این داده ها به دیگر کاربران است کاربرد دارد.این ویژگی از چهار دستور اصلی پشتیبانی می کند که عبارتند از:Alter Password , Revoke , Grant , Create Synonym
Data Query Language _ DQL : این خاصیت دستورات پرس و جوی داده ها را برعهده دارد که تنها از یک دستور به نام Select تشکیل شده که بیشترین حجم کاری را برای یک کاربر که با SQL کار می کند را برمی گیرد.این دستور باعث گستردگی استفاده از این دستور می شود.
دسته بعد دستورات كنترلي Transaction ها ميباشد كه امكان مديريت تراكنشي بانک اطلاعاتي را براي كاربر فراهم ميسازد . كه از دستورات زير تشكيل شده اند : Commit , Rollback , Savepoint , Set Transaction
و دسته اخر كه مكمل كننده دستورات دسته قبل بودند دستورات مديريت داده ها هستند كه امكان بررسي و تحليل عمليات داخل بانك اطلاعاتي را فراهم ميكنند.در ضمن يادتان باشد كه اين مديريت را با مديريت بانك اطلاعاتي اشتباه نگيريد.
همچنین اس کیو ال دارای کلمات کلیدی می باشد که در بخش آموزش SQL آنها را به طور کامل توضیح می دهیم.
Database چیست ؟
در این قسمت از آموزش SQL ، دیتابیس ( Database ) را توضیح می دهیم.
در بستر وب و با توجه به اینکه تقاضا برای طراحی سایت از نوع پویا افزایش یافته نیاز به یک پایگاه داده بزرگ جهت مدیریت محتواایجاد شده است.این مدیریت پایگاه داده توسط زبان برنامه نویسی SQL صورت می گیرد.هر Database از قسمتهای مختلفی تشکیل شده است که شامل:
√ Table
√ View
√ Stored Procedre
√ Function
√ و ...
Table , Field , Record چیست ؟
در این قسمت از آموزش SQL ، دستور Table ، دستور Field و دستور Record را توضیح می دهیم. در طراحی سایت از اس کیو ال بسیار استفاده می شود. از ای رو ما بخشی از مقالات طراحی سایت را به آموزش آن اختصاص داده ام.
Table
اطلاعات موجود در پایگاه داده داخل Table ذخیره می شود .توجه داشته باشید که دیتابیس می تواند شامل چند Table باشد همچنین هر جدول از تعدادی سطر و ستون تشکیل می شود.
برای ستون های مورد نظر می توانید با توجه به کارکرد آن در بیتا بیس می توانید نوع موردنظر خود را تعریف کنید.توجه داشته باشید که فیلد ذخیره شده با نوع انتخابی فیلد مطابقت داشته باشد.
جدول ها که از سطر و ستون ها تشکیل شده است می تواند اطلاعات ثبت شده مرتبط و وابسته را در خو جای دهد.جداول از مهمترین عناصر یستم های پایگاه داده هستند زیرا از جداول برای ذخیره و نگهداری سازمان یافته اطلاعات مورد استفاده قرار می گیرند.
Field
به هر کدام از خانه های ستون یک جدول فیلد ( Field ) می گویند.هر فیلد خصوصیت و مقدار آن را مشخص می کند.به عبارتی هر فیلد در برگیرنده ی یک صفت و ویژگی برای موجودیت می باشد که دارای دو جزٍ اصلی می باشد:
اسم صفت خاصه : نام صفت مورد نظر را تعیین می کند.
اسم صفت خاصه : شامل مقدار برای صفت مورد نظر است.
Record
به سطرهای جدول رکورد ( Record ) می گویند.این رکورد ها شامل اطلاعات طبقه بندی شده درباره یک موجودیت خاص است.موجوديت پديده ، شی يا فردی در محيط پايگاه داده است که می خواهيم اطلاعات مربوط به آن را نگهداری کنيم .
مثال : به طور مثال در محيط پايگاه داده یک محیط آموزشی، انواع موجوديت ها عبارتند از : دانشجو ، کلاس ، واحدهای درسی ، استاد ، دانشکده و ... .
SQL چیست ؟
SQL مخفف Structerd Query Language یکی از محبوبترین زبان ها برای برنامه نویسی تحت وب در طراحی سایت می باشد.بهتر است برای طراحی سایت اس کیو ال را فرا گرفت. از SQL برای افزایش،کاهش و یا تغییر داده ها مورد استفاده قرار می گیرد.
برای یادگیری و تمرین SQL می توان از بانک اطلاعاتی QL-Server و Access ویا اوراکل استفاده کرد.SQL زبانی بر پایه اعلان می باشد و برعکس زبان های بیسیک و سی می باشد.زبانهای توسعه یافیه ی دیگر مانند PL و SQL به دنبال کامل کردن زبان به هداف ایجاد زبان برنامه نویسی با حفظ مزیت های SQL می باشد.
اس کیو ال دارای چند استاندارد می باشد که تا به حال عرضه شده است. در طراحی سایت این استاندارد ها شامل:
√ SQL 87
√ SQL 89
√ SQL 92
√ SQL 1999
√ SQL 2003
√ SQL 2005
√ SQL 2008
√ SQL 2011
دستورات زبان SQL پنج دسته هستند که عبارتنداز:
Date Definition Language _ DDL : زبان تعریف داده ها می باشد که با استفاده از این زبان امکان حذف و یا اضافه کردن یک جدول از بانک اطلاعاتی را می توان انجام داد که خوده این زبان دستورات خاص خود را دارد که عارتند از:Create , Alter , Drop , Create Index , Alter Index , Drop Index
Data Manipulation Language _ DML : زبان پردازش داده ها می باشد که با استفاده از این زبان برای تغییر جداول استفاده می شود که این زبان نیز دارای سه دستور اصلی ی باشد که عبارتند از:Insert , Update , Delete
Data Control Language _ DCL : این ویژگی دستورات مدیریت و کنترل داده ها را برعهده دارد که در کنترل داده های بانک اطلاعاتی که بیشتر در رابطه با دسترسی این داده ها به دیگر کاربران است کاربرد دارد.این ویژگی از چهار دستور اصلی پشتیبانی می کند که عبارتند از:Alter Password , Revoke , Grant , Create Synonym
Data Query Language _ DQL : این خاصیت دستورات پرس و جوی داده ها را برعهده دارد که تنها از یک دستور به نام Select تشکیل شده که بیشترین حجم کاری را برای یک کاربر که با SQL کار می کند را برمی گیرد.این دستور باعث گستردگی استفاده از این دستور می شود.
دسته بعد دستورات كنترلي Transaction ها ميباشد كه امكان مديريت تراكنشي بانک اطلاعاتي را براي كاربر فراهم ميسازد . كه از دستورات زير تشكيل شده اند : Commit , Rollback , Savepoint , Set Transaction
و دسته اخر كه مكمل كننده دستورات دسته قبل بودند دستورات مديريت داده ها هستند كه امكان بررسي و تحليل عمليات داخل بانك اطلاعاتي را فراهم ميكنند.در ضمن يادتان باشد كه اين مديريت را با مديريت بانك اطلاعاتي اشتباه نگيريد.
از SQL برای برقراری ارتباط با پایگاه داده استفاده می شود. همانطور که قبلا نیز گفته شد، SQL یک زبان برنامه نویسی است که در طراحی سایت مورد استفاده قرار می گیرد. بر اساس ANSI (موسسه استاندارد ملی آمریکا)، SQL زبان استاندارد برای سیستم های مدیریت ارتباط پایگاه داده است. دستورات SQL برای انجام وظایفی مانند به روز رسانی داده در یک پایگاه داده، و یا بازیابی اطلاعات از یک پایگاه داده استفاده می شود.
برخی از سیستم های مدیریت ارتباط پایگاه داده که از SQL استفاده می کنند عبارتند از: اوراکل (Oracle)، سایبیس (Sybase)، مایکروسافت SQL سرور،اکسس (Access)،انگر(Ingres) و غیره. دستورات استاندارد SQL مانند "انتخاب"، "Insert"، "به روز رسانی"، "حذف"، "ایجاد"، و " Drop" تقریبا برای انجام تمام کارهایی که در پایگاه داده لازم است می توان استفاده کرد.
تاریخچه اس کیو ال SQL
SQL برای اولین بار در IBM توسط Donald D. Chamberlin و Raymond F. Boyce در اوایل دهه 1970 توسعه پیدا کرد. این نسخه، در ابتدا SEQUEL (زبان جستجوی انگلیسی ساختار یافته) نامیده می شد، به منظور اداره کردن و بازیابی داده های ذخیره شده در سیستم مدیریت پایگاه داده شبه ارتباطی اصلی IBM طراحی شد، که یک گروه در آزمایشگاه تحقیقاتی IBM در شهر سن خوزه در جنوب سنفرانسیسکو در طول دهه 1970 آن را گسترش دادند.
مخفف SEQUEL بعدها به SQL تغییر کرد زیرا SEQUEL یک علامت تجاری از شرکت هواپیمایی هاوکر سیدلی بریتانیا بود. گسترش زبان SQL در طراحی سایت به مرور زمان بیشتر و بیشتر شد و امروزه یکی از پرکاربرد ترین زبان های برنامه نویسی تحت وب در طراحی سایت به حساب می آید.
منشا اصلی سیکوال به مقالهٔ سال ۱۹۷۰ ادگار کاد تحت عنوان «مدل رابطهای دادهها برای بانکهای بزرگ دادههای اشتراکی»[۱] باز میگردد. در دههٔ ۷۰ گروهی از شرکت آیبیام در شهر سان خوزه بر روی سیستم پایگاه دادههای سیستم آر بدون توجه به این مقاله کار میکردند و زبان SEQUEL را به منظور عملیات و بازیابی اطلاعات ذخیره شده در سیستم آر ایجاد کردند. اگر چه اسکیوال ناشی از تلاشهای کاد بود اما دونالد چامبرلین و ریموند بویس به عنوان طراحان زبان SEQUEL شناخته میشوند.
سمینارهایی در زمینه فناوری بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطهای جدید برگزار گردید. تا ۱۹۷۶ مشخص بود که آیبیام که طرفدار جدی فناوری بانک اطلاعاتی رابطهای بوده، توجه زیادی نسبت به زبان سیکوال دارد. تبلیغات در زمینه سیستم آر باعث جذب گروهی از مهندسین در منلو پارک در کالیفرنیا گردید. این گروه به این نتیجه رسیدند که تحقیقات آیبیام منجر به یک بازار تجاری برای بانکهای اطلاعاتی رابطهای خواهد گردید.
در ۱۹۷۷ این گروه شرکتی بنام اینک (Inc) و رلیشنال سافتویر (Relational Software) تأسیس نمودند تا یک سامانه مدیریت پایگاههای داده رابطهای بر اساس سیکوال بسازند. محصولی بنام اوراکل در ۱۹۷۹ عرضه گردید، و اولین سامانه مدیریت پایگاه داده رابطهای بوجود آمد. به این ترتیب محصول اوراکل باعث گردید اولین محصول آیبیام برای مدت ۲ سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای وکس دیجیتال (VAx Digital) اجرا میشد که خیلی از کامپیوترهای بزرگ آیبیام ارزانتر بودند.
امروزه این شرکت با نام اوراکل اولین فروشنده سیستمهای مدیریت بانک اطلاعاتی رابطهای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانکهای اطلاعاتی رابطهای بودن (مانند تیم تحقیق آیبیام)، گروه فوق نیز یک نمونه از سامانه مدیریت پایگاه داده رابطهای ایجاد نمودند و سیستم خود را اینگرس (Ingres) نام نهادند.
پروژه اینگرس شامل یک زبان پرسوجو بنام QUEL بود، اگر چه از سیکوال خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.
در حالیکه اوراکل و اینگرسبرای ارائه محصولات تجاری در رقابت بودند، پروژه سیستم آر شرکت آیبیام در تلاش بودهاست که یک محصو ل تجاری با نام SQL/Data system (یا SQL/DS) عرضه نماید. آیبیام موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود. در سال ۱۹۸۳ آیبیام یک نسخه SQL/DS را برای VM/CMS (سیستمعاملی که در کامپیوتر بزرگ آیبیام غالبا استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکت آیبیام، محصول دیبیتو را معرفی نمود که یک سامانه مدیریت پایگاه داده رابطهای برای سیستمهای بزرگ آن شرکت بود. دیبیتو تحت سیستمعامل ویاماس (سیستمعامل مراکز کامپیوتری بزرگ) اجرا میشد. اولین نسخه دیبیتو در ۱۹۸۵ عرضه گردید، و مسئولین آیبیام اعلام نمودند که این محصول یک برنامه استراتژیک برای تکنولوژی نرمافزاری آیبیام میباشد. از آن تاریخ تاکنون دیبیتو سامانه مدیریت پایگاه داده رابطهای شاخصی بوده و آیبیام از آن حمایت نموده و زبان «سیکوال دیبیتو» استاندارد عملی زبان بانک اطلاعاتی بودهاست.
استفاده از SQL در طراحی سایت
برای طراحی سایت از نوع داینامیک که بتواند داده ها و اطلاعات را از یک پایگاه داده بخواند بایستی موارد زیر دنبال کنید:
√ استفاده از Html , CSS
√ استفاده از پایگاه داده SQL
√ استفاده از یک زبان برنامه نویسی تحت سرور مانند PHP , ASP برای طراحی سایت
√ استفاده از یک برنامه سیستم مدیریت پایگاه داده رابطه ای (RDBMS) مانند My SQL ,SQL Server , Access
داده ها در RDBMS در قسمت Table ذخیره می شود.جدول ها شامل داده ها و اطلاعات مربوط به برنامه می باشد.استفاده از SQL به شما در طراحی وب سایت پویا و داینامیک کمک می کند.
انواع داده در SQL
در این بخش از مقالات کاربردی و مربوط به طراحی سایت ، انواع داده در SQL را برای شما توضیح می دهیم.
داده ها در SQL به چند دسته تقسیم می شوند که در زیر آنها را معرفی می کنیم.
√ داده ی رشته ای:Character Strings
از این داده جهت نگهداری عبارات و یا حروف Ascii مورد استفاده قرار می گیرد به عبارتی برای نگهداری هر حرف،یک بایت اشغال می شود لذا نیاز به Collation برای تعیین زبان اطلاعات می باشد.
Char : اطلاعات متنی با طول ثابت از ۱ تا حداکثر ۸۰۰۰ حرف را در خود ذخیره میکنند.
Varchar : اطلاعات متنی با طول متغیر از ۱ تا حداکثر ۸۰۰۰ حرف را در خود ذخیره میکنند. فرق بین Char و VarChar در این است که در Char، طول رشته ثابت است. یعنی اگر یک فیلد را از نوع Char-20 معرفی کرده و در آن کلمه Orion را قرار دهیم، عین ۲۰ حرف استفاده خواهد شد. یعنی ۵ کاراکتر اول را کلمه مربوطه اشغال کرده و ۱۵ کاراکتر باقیمانده، Blank خواهند بود. اما در VarChar اینگونه نیست..
Varchar Max : اطلاعات از ۱ تا ۲ مگا حرف ذخیره میشود و مکانیزم آن هم بصورت پوینتری میباشد.
Text : اطلاعات از ۱ تا ۲ مگا حرف ذخیره میشود. این نوع داده همانند Image و VarBinary-MAX در خود رکورد ذخیره نمیشوند. بلکه توسط یک پوینتر به جای دیگری اشاره میکنند. این نوع داده در SQL 10 حذف شده و بجای آنها از VarChar-MAX استفاده میشود.
√ داده ی یونیکد:Unicode Types
در این نوع داده برای نگهداری متون مورد استفاده قرار می گیرد.توجه داشته باشید که برای نگهداری هر حرف,از دو بایت استفاده می شود. پس مسلماً نسبت به نوع دادههای کاراکتری، حافظه بیشتری را به خود اختصاص میدهد و در ضمن کمی هم کندتر است. این نوع فیلدها، احتیاج به Collation ندارند.
nchar : در این نوع داده، اطلاعات از ۱ تا حداکثر ۴۰۰۰ حرف با طول ثابت ذخیره میشود.
nvarchar : در این نوع داده، اطلاعات از ۱ تا حداکثر ۴۰۰۰ بایت با طول متغیر ذخیره میشود.
nvarchar-max : در این نوع داده از ۱ تا ۱ مگا حرف ذخیره میشود. مکانیزم آن هم بصورت Pointer میباشد.
ntext : در این نوع داده، از ۱ تا ۱ مگا حرف ذخیره میشود. مکانیزم آن هم بصورت Pointer .
√ داده ی باینری:Binary types
این نوع فیلدها برای نگهداری اطلاعات بصورت بایناری مانند تصاویر مناسب هستند.
bit : یک فیلد دو بیتی است و میتواند ۰ و ۱ و Null را ذخیره کند.کاربرد آن در زمانهایی است که دو حالت وجود داشته باشد. مانند جنسیت زن و مرد.
binary : این نوع فیلدها، از ۱ تا ۸۰۰۰ بایت را در خود جای میدهند.
varbinary : این نوع فیلدها هم از ۱ تا ۸۰۰۰ بایت را در خود جای میدهند. (متغیر).
varbinary-max : این نوع Datatype در SQL 2005 معرفی شده و تقریباً همانند دادههای Image هستند.
image : این نوع فیلدها از ۱ تا حداکثر ۲ گیگابایت را میتوانند ذخیره کنند. فرق این نوع دادهها با دو نوع قبلی این است که در دو نوع قبلی، اطلاعات در خود رکورد ثبت میشوند ولی در این نوع دادهها، اطلاعات در یک Page ذخیره میشود و به جایش در رکورد، یک پوینتر ۱۶ بایتی ذخیره میشود. این نوع فیلدها در SQL 10 حذف شده و به جایش باید از VarBinary استفاده کرد.
√ داده ی عددی:Number types
این نوع فیلد برای نگهداری اعداد صحیح و بدون اعشار استفاده میگردد و دارای ۴ نوع به شرح زیر است. در ضمن این نوع فیلدها رتبه یک سرعت در نوع فیلدهای عددی را دارد.
tinyint : یک بایت را اشغال میکند و میتواند از ۰ تا ۲۵۵ را در خود ذخیره کند.
smallint : یک عدد دو بایتی است و میتواند از ۳۲۷۶۷ منفی تا ۳۲۷۶۷ مثبت را در خود ذخیره کند.
int : یک عدد چهار بایتی است که میتواند اعداد بین مثبت و منفی ۲ میلیارد را در خود ذخیره کند.
bigint : یک عدد ۸ بایتی است که میتواند اعداد بین مثبت و منفی ۴ میلیارد را در خود ذخیره کند.
decimal-p,s : این نوع فیلد برای نگهداری اعداد اعشاری با تعداد اعشار مشخص استفاده میگردد. این نوع فیلدها بسیار کند بوده و استفاده از آنها توصیه نمیگردد. که در آن Precision به معنای تعداد کل رقمهای عدد و Scale تعداد ارقام اعشار را مشخص میکند. مثلاً اگر فیلدری بصورت Deciaml(6,2) تعریف شود، حداکثر آن برابر ۹۹۹۹٫۹۹ میباشد.
numeric-p,s : .
smallmoney : یک عدد ۴ بایتی است که میتواند ۶ رقم صحیح و ۴ رقم اعشار را در خود ذخیره کند..
money : یک عدد ۸ بایتی است که میتواند ۱۵ رقم صحیح و ۴ رقم اعشار را در خود ذخیره کند.
float-n : یک عدد ۸ بایتی که اعداد بصورت توانی از ۱۰ نگهداری میشوند. .
real : یک عدد ۴ بایتی است که اعداد بصورت توانی از ۱۰ نگهداری میشوند.
√ داده ی تاریخ:Date types
این نوع فیلدها برای نگهداری تاریخ میلادی و ساعت استفاده میشود و برای تاریخ شمسی کاربرد ندارد.
datetime : این نوع فیلد، ۸ بایتی است و از سال ۱۷۰۰ تا ۹۹۹۹ را با دقت هزارم ثانیه ذخیره میکند.
datetime2 : .
smalldatetime : این نوع فیلد، ۴ بایتی است و از سال ۱۹۰۰ تا ۲۰۷۹ را با دقت هزارم ثانیه ذخیره میکند.
date : این نوع فیلدها برای نگهداری تاریخ میلادی استفاده میشود.
time : این نوع فیلدها برای نگهداری ساعت استفاده میشود.
datetimeoffset
timestamp
√ دیگر داده ها:Other data types
sql-variant : این نوع فیلد برای نگهداری انواع داده استفاده میشود و نوع آن با توجه به اولین مقداری که در آن قرار میگیرد تعیین خواهد شد. چون نوع و حجم فیلد مشخص نیست، لذا تنها یک اشارهگر ۱۶ بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری میشود. استفاده از این نوع فیلد، توصیه نمیگردد.
uniqueidentifier : این فیلد ۱۶ بایتی، به ما کدی Unique یا تک میدهد که به اصطلاح GUID میگویند. یکی از کاربردهای آن در Replication است.
xml : این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده میشود و شامل انواع MetaData های مختلف است.
cursor : این فیلد مربوط به کنترل Cursor است .
table
در مقالات بعدی اطلاعات جامع و کامل تری را در زمینه طراحی سایت و مطالب مرتبط به آن را برای شما کاربران عزیز ارائه می دهیم.