» ایجاد بانک اطلاعاتی و جداول در Access + نکات مهم + مثال

مهرگان
 
 
 

ایجاد بانک اطلاعاتی و جداول در Access + نکات مهم + مثال

3 مرداد 1391

ایجاد بانک اطلاعاتی و جداول در Access + نکات مهم + مثال

به نام خدا

1- برروی دسکتاپ راست کلیک کرده گزینه ی NewMicroSoft Office Access را انتخاب کنید. با این کار پایگاه داده در اکسس ایجاد می شود. نام آن را به ketabkhaneh تغییر دهید.

2- فایل پایگاه داده را باز کنید. سپس روی Create table in design view دابل کلیک کنید تا پنجره دوم باز شود.(در اکسس 2007 به بالا، به تب Create رفته، Table-Design را انتخاب کنید.) در قسمت field name نام صفتهای جدول را وارد کنید و نوع آن را نیز در بخش Data Type مشخص نمایید. سپس روی صفتی که می خواهید کلید اصلی در نظر بگیرید راست کلیک کرده و Primary Key را انتخاب کنید. به این ترتیب به عنوان کلید اصلی جدول فرض می شود. با ذخیره ی جدول ایجاد شده پنجره ی Save As ظاهر می شود که در آن باید نام جدول را وارد کنید.

3- روی جدول ایجاد شده دابل کلیک کنید تا باز شود. حالا میتوانید سطرهای داده را در آن وارد کنید. طبق توضیحات داده شده، جدول های book و member و trust را با مقادیری که در ادامه آمده ایجاد کنید. در ادامه نحوه ی استخراج اطلاعات از بانک ایجاد شده در اکسس را به کمک زبان SQL را شرح خواهیم داد.

Book: (ID, name, writer, publisher, translator, comments)

Member: (ID,Fname,Lname,Tel,Address,…)

Trust: (BookID,MemberID, Date)



حالا در قسمت سمت چپ پنجره، ابتدا روی Queries کلیک کنید. سپس Create query in Design view را با دابل کلیک انتخاب کنید (اگر از نسخه ی 2007 به بالا استفاده می کنید، در تب Create گزینه ی QueryDesign را انتخاب کنید.) و روی نوار بالای پنجره ی ایجاد شده راست کلیک کرده SQL View را انتخاب نمایید تا پنجره ی query بصورت یک صفحه ی نوشتاری سفید نمایش داده شود که کدهای SQL را برای استخراج داده ها در این صفحه تایپ می کنیم.



توضیح این که جدول book برای ذخیره ی نام کتابها به همراه اطلاعات مربوط به آن ایجاد شده است. جدول member نیز نام اعزای کتابخانه و اطلاعات عضویتی آنها را نگهداری می کند. جدول trust نیز برای ذخیره ی کتابهای در امانت بکار می رود. حال می توانیم کد نویسی را شروع کنیم.

مثال1 :

لیست کتابهایی که در امانت نیستند طبق ستون نام کتاب و بصورت نزولی نمایش داده شود:

ما دو جدول مربوط به کتاب داریم. یکی جدول book که نام و مشخصات کتاب ها را ذخیره می کند. و دیگری جدول امانت (trust) که کلید کتابهای در امانت و امانت گیرنده را مشخص می کند. ولی برای نمایش کتابهایی که در امانت نباشند جدول جداگانه ای نداریم. و هریک از این دو جدول نیز به تنهایی نمی تواند ما را به خواسته مان برساند. بنا بر این باید بصورت زیر عمل کنیم:

باید کتابهایی از جدول book را انتخاب کنیم که کلید اصلی آنها در جدول امانت وجود نداشته باشد. با توجه به این که کلید اصلی برای کتابها book.ID می باشد، بنابراین باید book.ID را با ستون همتای آن در جدول امانت یعنی ستون BookID مقایسه کنیم. پس کد مورد نظر تا اینجا بصورت زیر است:

SELECT Book.ID, name, writer, publisher, translator

FROM book

WHERE (Book.ID NOT IN

(SELECT BookID

FROM trust))

دو خط اول این قطعه کد، انتخاب ستون های ID و name و ... را از جدول book بیان می کند.

دو خط آخر جدولی با یک ستون به نام BookID بر می گرداند. و شرط WHERE بررسی می کند که کلید Book.ID از ستون های انتخاب شده به وسیله ی دستور SELECT در جدول مجازی تک ستونی که به وسیله ی دستورات دو خط آخر ایجاد شده است، موجود نباشد. یعنی با هیچکدام از BookID ها مساوی نباشد. یعنی در امانت نباشد.

برای ردیف کردن خروجی بر اساس ستون name انتخاب شده در دستور SELECT، کد زیر را اضافه می کنیم:

ORDER BY name DESC;

قید DESC بیان کننده ی ترتیب نزولی است. اگر بخواهیم لیست بصورت صعودی مرتب شود از قید ASC استفاده می کنیم. توجه داشته باشید که در پایان درخواست باید ";" قرار دهیم.

حال اگر کد بالا را در صفحه سفید query که در اکسس ایجاد کرده اید کپی کنید، جدولی مجازی ایجاد می شود که با باز کردن آن با دابل کلیک، خروجی مورد نظر را مشاهده می کنید. می توانید جدولهای book و member را با داده های دلخواه پر کنید و خروجی query بالا را چک کنید.

مثال2:

نام و شماره ی کتابهایی که در امانت هستند به همراه شماره ی عضویت امانت گیرنده نمایش داده شود:

SELECT Book.ID, book.name, trust.memberID

FROM book INNER JOIN trust ON book.ID = trust.bookID;

توضیح:

دستور INNER JOIN یک دستور پیوند شرطی است که در اینجا جدول book و trust را به شرطی که ID از جدول کتاب با bookIDاز جدول trust مساوی باشد با هم پیوند می دهد. جدول حاصل از این پیوند، شامل تمام ستون های جدول اول و دوم می باشد بجز ستون bookID که معادل book.ID است. میتوانید این کد را نیز در یک query ذخیره کنید و حاصل اجرای آن را مشاهده نمایید.

- لازم به ذکر است که از آنجا که خروجی این دستور ها رابطه است، می توان آنها را در بخش FROM از دستور SELECT نیز بکار گرفت.

موفق باشید

---

 
برای مشاهده بهتر سایت از مرورگر فایرفاکس ، اُپرا و یا گوگل کروم استفاده نمایید