آموزش SQl Server- جلسه پنجم
یکی از مهمترین بخش های هر بانک اطلاعاتی و یا بهتر بگم بزرگترین مزیت یک بانک اطلاعاتی نسبت به جدول های ساده امکان برقراری ارتباط بین جدول ها ی آن است.
مزیت های برقراری ارتباط بین جداول:
۱٫می توان با استفاده از چند جدول گزارش هایی را تولید کرد .
۲٫ اشتباهات در ورود اطلاعات را کاهش داد.
۳٫ تسریع در ورود و بازیابی اطلاعات
۴٫موجب ایجاد یکپارچگی خواهد شد.
برای تعیین رابطه بین جداول باید از فیلد های مشترک استفاده کرد.فیلدی که براساس آن بین جداول ارتباط برقرار می شود در جدول اصلی کلید اصلی و در جدول فرعی کلید خارجی می نامیم.
روش اول برای ایجاد ارتباط:
باز کردن جدول در حالتDeisgn– راست کلیک و انتخاب گزینه relationships
انتخاب گزینه new و انتخاب فیلد کلید اصلی از هردو جدول اصلی و فرعی و انتخاب تنظیمات مناسب از گزینه های پایین پنجره
روش دوم برای ایجاد ارتباط:
عملگر های join
– cross join : توسط این نوع جوین لیستی از تمام رکورد های جدول فرعی تولید می شود به طوریکه هر رکورد جدول اصلی با رکورد جدول فرعی نظیر به نظیر ارتباط دارد.(ارتباط یک به یک)
نام جدول ۲ cross join نام جدول ۱ from فیلد های جدول اصلی select
– iner join :توسط این عملگر رکورد های از هر دو جدول طوری واکشی می شود که مقادیر غیر null مرتبط را نمایش می دهد.(نوعی ارتباط یک به چند)
شرط on نام جدول ۲ iner join نام جدول ۱ from فیلد های جدول اصلی select
مثال:(فیلد شماره دانش آموزی به عنوان کلید اصلی در نظر گرفته شده است)
select student .std_name,student.std_family from
student inerjoin register on
student.std_num = register . std_num
–outer join
که شامل left,right,full می شود:
در این نوع جوین همه رکورد های مرتبط با جدول اصلی که در جدول فرعی وجود دارد حتی مقادیر null واکشی می شود.
left outer join : تمام رکورد های جدول اصلی را برمی گرداند و رکورد های مرتبط با جدول اصلی در جدول فرعی نمایش داده می شود و فیلدهایی که درجدول اصلی وجود دارد و در جدول فرعی وجود ندارد، null می شود.
right outer join : تمام رکورد های جدول فرعی را برمی گرداند و رکورد های مرتبط با جدول اصلی در جدول فرعی نمایش داده میشود و فیلد های که در جدول اصلی وجود ندارد ولی در جدول فرعی وجود دارد، null می شود.
full outer join: همه رکورد ها را برمی گرداند. در صورتی که یک رکورد از دو جدول نظیری نداشته باشد،null می شود.
جدول ۱ from نام فیلد ها select
شرط on جدول۲ left| right|full] outer join ]
ایجاد view
دید یا نما مجموعه ای از رکورد های بانک است که جهت دسترسی کابران بانک دسته بندی می شود. از مهمترین مزایای دید امنیت داده ها و عدم دسترسی کاربران غیر مجازبه داده ها و تسریع دسترسی به داده ها است. view یک جدول مجازی است.
روش اول:
بر روی شی view در بانک اطلاعاتی راست کلیک کرده و گزینه new view را انتخاب می کنید.
روش دوم:
as نام دید create view
دستورات selelct
نکته۱: تمامی دستورات( DDL(alter-drop-create که روی جدول ها انجام می شود برای دید های نیز قابل انجام است.
نکته ۲: استفاده از دستور orther by و compute by در select تشکیل دهنده view غیر مجاز است مگر اینکه کلمه top را به کارببریم.
نکته ۳: استفاده از عبارت select into در دیدها غیر مجاز است.
مثال:
ایجاد یک دید از جدول دانش آموز فقط۵رکورد مرتبط شده بر اساس شماره که به ۳ ختم نشوند.
create view v_std as
select top 5 std_name,std _family , std_num
from student inerjoin register on
student.std_num = register.std_num
‘where std_num not like ‘%3
آشنایی با (transact sql (t.s
مجموعه ای از دستورات sql که همه با هم اجرا می شوند یا لغو میشوند می تواند شامل if ، for،select و… باشد.
ساختار کلی:
نام begin transaction
دستورات مورد نظر
commit transaction
مثال:
۲نمره به نمره دانش آموزان درس ریاضی در قالب t.s اضافه کنید.
begin transaction t1
update student set grade = grade+2
where std_num in
(‘select std_num from register where lessen_name=’math )
commit transaction
در مقابل commit دستور rollback transaction رو داریم که همه دستورات مربوط به t.s را لغو می کند و بانک را به حالت قبل از اجرای آن برمی گرداند.
علاوه براین دو دستور(rollback و commit) دستور save transaction را نیز داریم که یک نقطه ذخیره در داخل t.s تعیین می کند. بعد از این کلمه نام یک قسمت از برنامه را می آوریم.بعد از آوردن کلمهsave transactiom معمولا با دستور rollback به نقطه ذخیره برمی گردیم.(به اولین نقطه)
begin transaction t1
.
.
.
save transaction 1
svae transaction 2
rollback transaction
commim transaction
بعد از رسیدن به rollback به اولین نقطه ذخیره (save transaction1) برمی گردد.
موفق باشید