آموزش زبان SQL در پایگاه داده
زبان SQL چیست
SQL Structured Query Language یک زبان خاصی میباشد که در برنامه نویسی مورد استفاده قرار میگیرد و برای مدیریت دادههایی که در یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) نگهداری میشوند، یا برای پردازش جریان در یک سیستم مدیریت جریان دادههای رابطهای (RDSMS) طراحی شده است. این به ویژه در پردازش دادههای ساخت یافته، یعنی دادههایی که روابط بین موجودیتها و متغیرها را در برمیگیرند، بسیار مفید است.
این زبان یکی از اولین زبانهای تجاری بود که از مدل رابطه Edgar F.Codd استفاده کرده است. این زبان به عنوان گستردهترین زبان پایگاه داده استفاده میشود.
SQL در سال 1986 به استانداردی از موسسه استاندارد ملی آمریكا (ANSI) و سازمان بین المللی استاندارد سازی (ISO) در سال 1987 تبدیل شد. از آن زمان این استاندارد مورد بازبینی قرار گرفته است تا مجموعه ای از ویژگی های بزرگتر را نیز شامل شود. با وجود وجود استانداردها، اکثر کدهای SQL حداقل قبل از انتقال به سیستمهای مختلف پایگاه داده، حداقل نیاز به تغییراتی دارند.
امکانات زبان SQL در پایگاه داده
زبان SQL این امکان را به شما می دهد تا بتوانید در پایگاههای داده جست و جو کنید و یا عملیاتهایی را بر روی اطلاعات پایگاه داده انجام دهید. این عملیاتها از انواع مختلف اضافه کردن اطلاعات، پاک کردن آنها و یا تغییر و نگهداری می باشد. شما با استفاده از این زبان میتوانید در داخل یک پایگاه داده بر اساس شرایطی که مشخص می کنید، جست و جو کنید و اطلاعات مورد نیازتان را مشاهده کنید.
در بالاتر اشاره کردیم که از این زبان در پایگاه دادههای رابطهای استفاده می شود. اگر برایتان سوال است که پایگاه دادهی رابطهای چیست، نیاز است که بدانید ما انواع پایگاهها و سیستمهای داده داریم که پایگاه دادههای رابطهای یکی از آنهاست.
منظور از پایگاه دادههای رابطهای چیست
پایگاه دادههای رابطهای یا اصطلاحا Relational Database برای نخستین بار در سال ۱۹۷۰ توسط کاد (codd) به عنوان مدل و روشی جهت دسترسی به و ذخیره کردن دادهها معرفی شد. قبل از آنکه مدل رابطهای معرفی شود، مدل شبکهای از جمله مدلهای مورد استفاده بود.
در مدل شبکهای دادهها به صورت مجموعهای از اطلاعات ضبط شده یا اصطلاحا رکورد (recode) تعریف میشوند و روابط بین دادهها به صورت لینک می باشد، اما در مدل رابطهای دادهها و روابط بین آنها توسط مجموعهای از روابطی که در قالب یک جدول میباشند، تعریف شده است. سیستمهایی که بر اساس مدل پایگاه دادههای رابطهای عمل میکنند را سیستمهای مدیریت پایگاههای دادهای رابطهای می گویند.
در این سیستمها تمامی اعمال قابل انجام بر روی اطلاعات از جمله نظارت، کنترل، دسترسی به دادهها، امنیت دادهها و مجوزهای کاربر در دسترسی به اطلاعات توسط مدیریت این نوع از سیستمها صورت میگیرد.
مفاهیم پایگاه داده های رابطه ای
جداول در پایگاه داده های رابطه ای: جداول در واقع شاهرگ حیاتی پایگاه دادههای رابطهای میباشند. تمامی اطلاعات در داخل جداول که شامل ستون و سطر میباشند ذخیره میشوند.
این جداول از 1 تا n تا سطر و ستون میتوانند داشته باشند (توجه کنید که در تعداد ستونها گاها محدودیت وجود دارد اما محدودیتی در تعداد سطرها وجود ندارد). در واقع هر ستون در داخل این نوع از پایگاه دادهها را یک فیلد و هر سطر را یک رکورد که شامل فیلدهای مورد نظر میباشد را تشکیل میدهند.
موجودیت
در داخل پایگاه دادههای رابطهای مفهومی به نام موجودیت و یا entity وجود دارد. موجودیتها در یک کنار یکدیگر یک شی (object) را در داخل این سیستم تشکیل میدهند. به عنوان مثل ما میتوانیم انواع شی دانشگاه، مدرسه، سازمان، شهر، کشور، شغل داشته باشیم که برای هر یک از اینا موجودیتهای مختلفی تعریف شده باشد.
مثلا برای یک مدرسه موجودیت های معلم، دانشآموز، مدیر، کلاس و مواردی از این دست قابل تعریف می باشند. هر موجودیت در داخل یک شی در قالب یک جدول تعریف می شود. مثلا در همین مثالی که مطرح شد، یک دانش آموزش خود میتواند ویژگیها (attribute) های مختلفی مثل وزن، قد، جنسیت، گروه خونی و … را داشته باشد.
این ویژگیها در واقع همان فیلدها در ستونها می باشد که اطلاعات این فیلدها در داخل هر سطر مخصوص هر دانشآموز ذخیره میشوند. به همین ترتیب برای باقی موجودیتها نیز جداول با فیلدهای مخصوص به خود میتوانند داشته باشند.
این جداول میتوانند در فیلدهایی نیز مشترک باشند مثلا یک دانشآموز میتواند چند معلم داشته باشد و یک معلم نیز میتواند چند دانشآموز داشته باشد و این دو در یک فیلد با یکدیگر اشتراک ویژگی خواهند داشت. به این مساله در قسمت بعدی که کلیدها میباشند، میپردازم.
کلید اصلی (primary key)
در یک جدول در یک پایگاه داده رابطهای، شما میتوانید یک ستون را با مقادیر خاص و یکتا تعریف کنید. مثال قبل را در نظر بگیرید، فرض کنید که قصد داریم تا ویژگی هر دانشآموز را با یک مشخصهی خاص از بقیه متمایز کنیم تا در صورتی که قصد داشتیم تا ویژگیهای یک دانشآموز را به طور خاص پیدا کنیم، به راحتی با استفاده از شناسهی یکتای آن پیدا کنیم.
در اینجا مثلا میتوان از کدملی استفاده کرد، به دلیل اینکه کدملی هر فرد متفاوت از بقیه و خاص میباشد، در نتیجه هر رکوردی که در این جدول ذخیره میباشد، دارای یک ستون کد ملی با مقدار یکتا و منحصر به فرد می باشد، این ستون در واقع کلید اصلی جدول شما میباشد، یکی از کاربردهای این کلید در ایجاد رابطه با جداول دیگر میباشد و شما با استفاده از این ستون میتوانید در سایر جدولها ارتباط ایجاد کنید (همان مدل دانشآموز، معلی که در مثال قبل مطرح کردم).
شما میتوانید با توجه به نوع جدول خود، هر نوع ستون را که یکتا و خاص میباشد را به عنوان کلید اصلی خود در نظر بگیرید. در صورتی که شما ستونی را به عنوان کلید اصلی در نظر نگیرید، به طور خودکار جدول مورد نظر یک ستون به نام آی دی برای شما ایجاد می کند که در حالت پیش فرض از عدد 1 مقدار دهی می باشد و اتومات با هر رکوردی که در جدول ثبت میشود، عدد آی دی بالا میرود. این مقدار آی دی برای هر رکورد، یکتا و خاص میباشد.
توجه کنید که در یک ستونی که به عنوان کلید اصلی در نظر گرفته میشود، مقدار تکراری نمیتوانید تعریف کنید و همچنین نمیتوانید فیلدی را در این ستون خالی بگذارید و اصطلاحا NULL تعریف کنید.
در اینجا مثالی که مطرح شد، کلید اصلی از یک ستون ناشی شده بود، اما این امکان وجود دارد تا شما بتوانید چند ستون را به صورت همزمان به صورت کلید اصلی در نظر بگیرید. مثلا در مورد جدول دانشآموز میتوانید دو ستون کلاس و کدملی را به عنوان کلید اصلی در نظر بگیرید. به طور کلی یک کلید اصلی دارای ویزگیهای زیر میباشد:
- فیلدهای ستون کلید اصلی نمیتوانند مقدار تکراری دریافت کنند و باید حتما مقادیر این ستون منحصر به فرد باشد.
- شما میتوانید یک ستون از یک جدول و یا ترکیبی از دو یا چند ستون را به عنوان کلید اصلی جدول مورد نظر تعریف کنید.
- هر جدول تنها میتواند یک کلید اصلی داشته باشد. همانطور که در مورد 2 بیان شد، شما میتوانید ترکیب دو یا چند ستون را به عنوان کلید اصلی جدول مورد نظر تعریف کنید، اما نمیتوانید چند کلید اصلی برای جدول مورد نظر تعریف کنید.
- مقادیر فیلد ستون کلید اصلی نمیتواند خالی و یا به اصطلاح NULL باشد.
در ادامهی مقاله زبان SQL در پایگاه داده با ما همراه باشید …