آموزش asp.net (جلسه7)

 

ایجاد پایگاه داده در وب سایت

به همراه  ASP.Net 2005  پایگاه داده SQLSERVER EXPRESS 2005 هم ارائه شده است که در هنگام نصب VISUAL STUDIO نصب می شود (به صورت پیش فرض برای نصب شدن انتخاب شده است ، اما شما می توانید آن را نصب نکنید) .
این نسخه از SQLSERVER  یک نسخه سبک و ساده شده است .

 

در قسمت Solution Explorer شما میتوانید پوشه ای به نام App_Data وجود دارد که این پوشه محل قرار گرفتن پایگاه داده از نوع SQLSERVER EXPRESS  می باشد

 



برای افزودن یک پایگاه داده به پروژه ابتدا بر روی پوشه App_Data راست کلیک کنید و گزینه Add New Item را انتخاب کنید .

 

 

از دیالوگی که باز می شود گزینه Sql DataBase را انتخاب کنید

 

 

با ok کردن این دیالوگ شما می بایست که کمی صبر کنید تا فایل پایگاه داده شما ساخته شود . پس از ساخته شدن این فایل Visual Studio یک ارتباط با این پایگاه داده ایجاد میکند و آن را در Server Explorer نمایش می دهد .

 

 

شما می توانید با استفاده از این Connection با پایگاه داده جدید کار کنید و جداول و آبجکت های مورد نظر خود را ایجاد کنید  .

 

 افزودن یک table جدید

 

 

طراحی table ، تعیین ستون ها و نوع داده

 

 

برای مشاهده داده های جداول و تغییر دادن داده ها

 

 

برای نوشتن دستورات sql به صورت زیر عمل می کنیم

 

 

آشنایی با دستورات پایگاه داده

پایگاه داده یا همان Database، مجموعه ای سازمان داده شده از اطلاعات است که به شکل جداول ذخیره می شوند. برای سازمان دهی این اطلاعات روشهای متفاوتی وجود دارد که هدف تمامی آنها فراهم کردن روشهایی مناسب برای سهولت در برقراری ارتباط با پایگاههای داده و استفاده از اطلاعات موجود در آنها است. سیستم مدیریت پایگاه داده (DBMS) ، مکانیزمی را جهت ذخیره سازی و بازیابی اطلاعات در پایگاه داده فراهم می نماید. در حقیقت DBMS باعث می شود تا برنامه نویس بدون نگرانی درباره چگونگی ذخیره سازی داداه ها در پایگاه داده و ساختار آنها، به اطلاعات دسترسی پیدا کند و بتواند داده های جدید را در آن ذخیره نماید.

امروزه اکثر پایگاه داده های محبوب از نوع رابطه ای (Relational) هستند. همانند پایگاه داده های عادی، در پایگاه داده های رابطه ای نیز دسترسی به اطلاعات ذخیره شده در جداول از طریق زبان پرس و جوی ساخت یافته یا همان SQL میسر میگردد که زبانی استاندارد است و توسط اکثر نرم افزارهای مرتبط با پایگاه داده مورد استفاده قرار می گیرد. از جمله سیستمهای پایگاه داده رابطه ای می توان به MS SQL Server، Oracle، Sybase، DB2، Informix و MySQL اشاره کرد.

زبانهای برنامه نویسی از طریق یک Interface ( یا همان نرم افزاری که ارتباط بین DBMS و یک برنامه را فراهم می کند) به پایگاه داده متصل شده و با آنها به تعامل میپردازند. در C# برقراری ارتباط با پایگاه داده از طریق ADO.Net انجام میشود. ADO.Net در حقیقت رابط بین نرم افزار و پایگاه داده است و امکانات ویژه ای را جهت دسترسی به اطلاعات موجود در آن در اختیار برنامه نویس قرار می دهد.

 

 

زبان پرس و جوی ساخت یافته (SQL)

در این قسمت، به بررسی مختصر زبان SQL خواهیم پرداخت. همانند زبانهای برنامه سازی، زبان SQL نیز از کلمات کلیدی و دستوراتی تشکیل شده است که دستورات کلیدی و مهم آنرا در جدول زیر مشاهده می کنید.

نام دستور SQL

توضیحات

SELECT

فیلدهای مورد نظر را از جدول یا جداولی انتخاب می کند.

FROM

جداولی را مشخص می کند که اطلاعات از آنها باید انتخاب شود و یا قرار است اطلاعات از آنها خدف گردد. در هر دستور SELECT و DELETE وجود دارد.

WHERE

شرایطی را مشخص می کند که تحت آن رکوردهایی خاص انتخاب خواهند شد.

INNER JOIN

رکوردهای متفاوتی را از جداول مختلف به یکدیگر متصل مینماید و مجموعه ای جدید از رکوردها را ایجاد مینماید.

GROUP BY

شرایطی را نشان میدهد که بوسیله آن دسته بندی اطلاعات انجام میشود.

ORDER BY

شرایطی را نشان میدهد که طی آن اطلاعات مرتب می شوند.

INSERT

داده را در جدولی خاص وارد می کند.

UPDATE

داده خاصی را در جدول مورد نظر بروز رسانی می کند. (تغییر میدهد)

DELETE

اطلاعات خاصی را از جدول مورد نظر حذف میکند.

دستور SELECT

یکی از ساده ترین دستورات در SQL، دستوری است که در آن اطلاعات از جدولی خاص انتخاب می شود. چنین عملی با استفاده از دستور SELECT صورت میگیرد و ساده ترین فرمت این دستور بصورت زیر است :

SELECT * FROM tableName

که در آن علامت "*" بیان میدارد که تمامی اطلاعات (تمامی ستونها) موجود در جدول انتخاب شده و به نمایش در خواهند آمد و tableName نام جدولی است که میخواهیم اطلاعات را از آن انتخاب نماییم.

SELECT * FROM Authors

برای انتخاب فیلد یا فیلدهایی خاص از یک جدول، میتوانیم نام فیلدهای مورد نظر آن جدول را در جلوی دستور SELECT و بجای * قرار دهیم و آنها را با کاما "," از یکدیگر جدا نماییم.

SELECT authorID, lastName FROM Authors

تنها فیلد authorID و lastName از جدول Authors را نشان میدهد.

نکته : در صورتیکه نام فیلد شامل فضای خالی (Space) باشد، در اینصورت میبایست نامو فیلد را داخل دو براکت "[]" قرار دهیم. (SELECT [author ID] FROM Authors)

دستور WHERE

در اکثر موارد کاربر در جدول به دنبال اطلاعاتی میگردد که دارای شرایط خاصی است. در این موارد تنها آن رکوردهایی که با شرایط مورد نظر کاربر همخوانی دارند میبایست نمایش داده شوند. SQL با استفاده از دستور WHERE در دستور SELECT، شرایط مورد نظر را اعمال می نماید. ساده ترین فرم دستور SELECT که بهمراه WHERE باشد، بصورت زیر است :

SELECT fieldName1,fieldName2,… FROM tableName

WHERE criteria

که در آن fieldName، نام فیلدهای مورد نظر، tableName نام جدولی که اطلاعات از آن استخراج می شود و criteria شرایطی است که بر اساس آن جستجو در جدول صورت میپذیرد. برای مقال، درصورتیکه بخواهیم عناوین کتابهایی را بیابیم که تاریخ نشر آنها بعد از سال 1999 است، از دستور SELECT زیر استفاده می کنیم :

SELECT title

FROM Titles

WHERE copyright > 1999

نکته : در زبان C# برای اجرای دستورات SQL از یک رشته استفاده می کنیم که این رشته حاوی کل دستور (Query) مورد نظر ما است. همچنین برای بالا رفتن خوانایی برنامه، دستورات SQL را در خطوط جدا مینویسیم.

دستور WHERE می تواند خاوی عملگرهای >، <، <=، >=، =، <> و عملگر LIKE باشد. عملگر LIKE برای "تطبیق الگو" (Pattern Matching) مورد استفاده قرار میگیرد و بهمراه * و ? مورد استفاده قرار میگیرد. با استفاده از تطبیق الگو، میتوان به دنبال رشته ای گشت که حاوی الگوی مورد نظر است. برای مثال، query زیر، تمامی رکوردهایی از جدول Authors را نشان میدهد که lastName آنها با کاراکتر "D" شروع شده باشند :

SELECT * FROM Authors

WHERE lastName LIKE 'D*'

توجه نمایید، استفاده از کاراکتر * بیان میدارد که برای تطبیق الگو تنها کافیست تا کاراکتر اول مقدار D داشته باشد و سایر کاراکترها هر مقداری می توانند داشته باشند. همچنین اهمیتی ندارد که چه تعدا کاراکتر بعد از کاراکتر D در رشته وجود دارد و تنها اهمیت برای ما وجود کاراکتر D در ابتدای رشته است.

نکته : تمامی سیستم های پایگاه داده از عبارت LIKE پشتیبانی نمبکنند.

نکته : در اکثر سیستمهای پایگاه داده، به جای استفاده از کاراکتر "*" در عبارت LIKE، از کاراکتر "%" استفاده میشود.

نکته : در برخی از سیستمهای پایگاه داده، کاراکترهای رشته، Case Sensitive هستند.

نکته : بهتر است برای تمیز دادن دستورات و عبارات SQL، آنها را با حروف بزگ بنویسیم.

توجه نمایید در رشته ای که مورد تطبیق الگو قرار میگیرد، درصورتیکه کاراکتر "?" قرار گیرد، بدین معناست که بجای کاراکتر "?" تنها یک کاراکتر قرار خواهد گرفت. برای مثال در query زیر، تمامی رکوردهایی از جدول Authors نمایش داده می شوند که lastName آنها با هر کاراکتری شروع شده باشد و به دنبال آن کاراکتر "i" آمده باشد و بعد از آن هر تعداد کارارکتر قرار داشته باشد :

SELECT * FROM Authors

WHERE lastName LIKE '?i*'

نکته : اکثر پایگاه های داده، به جای استفاده از کاراکتر "?" از کاراکتر "_" در عبارت LIKE استفاده میکنند.

نکته : توجه نمایید که پس از عبارت LIKE، رشته مورد نظر درون یک جفت ' ' قرار میگیرد.

دستور ORDER BY

نتیجه یک query می تواند بصورت صعودی یا نزولی مرتب گردد. این کار با استفاده از دستور ORDER BY انجام میشود. ساده ترین فرم این دستور بصورت زیر است :

SELECT fieldName1, fieldName2, … FROM tableName

ORDER BY field ASC

SELECT fieldName1, fieldName2, … FROM tableName

ORDER BY field DESC

که در field، نام فیلدی است که نتایج query بر اساس آن مرتب می شود. در صورتیکه بخواهیم نتایج بصورت صعودی مرتب شوند از کلمه ASC و درصورتیکه بخواهیم نتایج بصورت نزولی مرتب شوند از کلمه DESC استفاده می نماییم. بطور پیش فرض، نتایج query بصورت صعودی نمایش داده میشوند.

SELECT * FROM Authors

ORDER BY lastName DESC

همچنین، با استفاده از ORDER BY میتوان نتایج query را بر اساس چند فیلد مختلف نیز مرتب نمود :

ORDER BY field1 sortingOrder, field2 sortingOrder, …

که در آن field، فیلدهایی هستند که مرتب سازی بر اساس آنها صورت میگیرد و sortingOrder نوع مرتب سازی هر فیلد را نشان میدهد. توجه نمایید، در مواردی که دو یا چند فیلد برای مرتب سازی در نظر گرفته شده اند، ابتدا مرتب سازی بر اساس فیلد اول انجام می شود و پس از آن مرتب سازی بر اساس فیلدهای دیگر به پیش میرود. در مثال زیر،ابتدا نتایج query بر اساس نام خانوادگی (lastName) و سپس بر اساس نام (firstName) مرتب میشوند :

SELECT * FROM Authors

ORDER BY lastName, firstName

توجه نمایید که در یک query می توان از ترکیب دستورات WHERE و ORDER BY استفاده نمود :

SELECT isbn, title, price FROM Titles

WHERE title LIKE '%How To Program'

ORDER BY title DESC

 

اطلاعات بیشتر در مورد دستور select

 

دستور INSERT

این دستور باعث وارد کردن رکوردی جدید در جدول میشود. ساده ترین فرم این دستور بشکل زیر است :

INSERT INTO tableName (fieldName1, fieldName2, … )

VALUES (value1, value2, …)

که در آن tableName جدولی است که در آن رکورد جدید وارد میشود. به دنبال tableName لیستی از فیلدها قرار میگیرد و پس از آن عبارت VALUES و به دنبال آن لیستی از مقادیر. توجه نمایید که به ازای هر fieldName، مقدار value در جدول وارد میشود. همچنین باید توجه شود که ترتیب و نوع مقادیر وارد شده در value میبایست با نام و نوع field مورد نظر همخوانی کامل داشته باشد. برای مثال، اگر fieldName1 بعنوان firstName در نظر گرفته شود، آنگاه مقدار value1 باید رشته ای باشد که درون یک جفت

' ' قرار گرفته و بیانگر نام باشد. بعنوان یک مثال، query زیر را در نظر بگیرید :

INSER INTO Authors (lastName, firstName)

VALUES ('Smith' , 'Sue')

این query باعث میشود تا رکوردی جدید در جدول Authors وارد شود. توجه نمایید در دستور INSERT حتما برای فیلدهای Primary Key میبایست مقداری وارد گردد، اما در اینجا چون فیلد Primary Key، فیلد authorID است و این فیلد از نوع auto-increment تعریف شده، نیازی به مقداردهی ندارد، چراکه با وارد شده هر رکرود جدید بطور خودکار مقداری برای آن در نظر گرفته میشود. همچنین دقت کنید، بغییر از فیلدهای Primary Key، در صورتیکه برای فیلدی از یک جدول در دستور INSERT مقداری در نظر گرفته نشود، مقدار آن فیلد تهی (Null) در نظر گرفته خواهد شد.

نکته : SQL برای نشان دادن رشته ها از یک جفت ' ' استفاده میکند. برای نشان دادن رشته هایی که خود حاوی ' هستند (مانند O'Reily) باید از فرمت 'O' 'Reily' استفاده شود.

دستور UPDATE

این دستور باعث ایجاد تغییر در داده های جدول میشود و ساده ترین فرم آن بصورت زیر است :

UPDATE tableName

SET fieldName1 = value1, fieldName2 = value2, …

WHERE criteria

که در آن fieldName هایی که مقادیر آنها تغییر مییابند مشخص شده و مقادیر جدید (value) به آنها تخصیص داده میشود. وجود عبارت WHERE در دستور UPDATE باعث میشود تا رکوردهایی که این فیلدها در آنها تغییر می یابند معین شوند. برای مثال :

UPDATE Authors

SET lastName = 'Jones'

WHERE lastName = 'Smith' AND firstName = 'Sue'

باعث میشود تا رکوردی که در آن Sue Smith قرار داشته است، به Sue Jones تغییر یابد.

توجه : عدم استفاده از عبارت WHERE پس از دستور UPDATE ممکن است باعث بروز خطایی منطقی گردد.

دستور DELETE

دستور DELETE باعث خذف داده ها از جدول میشود و ساده ترین فرم آن بصورت زیر است :

DELETE FROM tableName

WHERE criteria

که در آن criteria مشخص کننده رکورد یا رکوردهایی است که از جدول حذف میشوند.

DELETE FROM Authors

WHERE lastName = 'Jones' AND firstName = 'Sue'

باعث خذف شدن رکوردی میشود که نام و نام خانوادگی آن Sue Jones است.

نکته : عبارت WHERE ممکن است با چندین رکورد در جدول مورد نظر همخوانی داشته باشد، از اینرو در دستور DELETE دقت نمایید که شرط نوشته شده در WHERE تنها با رکورد مورد نظر شما همخوانی داشته باشد تا از خذف شدن ناخواسته اطلاعات جلوگیری شود.

  
نویسنده : ali gooliof ; ساعت ۱٢:٢٩ ‎ق.ظ روز ۱۳۸٧/٢/۱٦
تگ ها :