آموزش Sql


hossein_ok

کاربر
2006-10-24
443
650
معرفی SQL و دستورات عمومی آن

توسط SQL ميتوان درون يك بانك اطلاعاتي پرس و جو كرده (Query) و نتيجه را برگرداند. بانك اطلاعاتي شامل آبجكتي به نام جدول (Table) ميباشد.
ركوردها در بانكهاي اطلاعات در جداول ذخيره ميگردند.
جدول شامل سطر و ستون ميباشند.
در زير ميتوان يك جدول را مشاهده كرد :
Last Name First Name Address City
مثال:
Select Last name from persons
پر كاربرد ترين دستورات SQL شامل موارد زير است :
SELECT استخراج يك داده از بانك اطلاعاتي
UPDATE به روز رساني يك داده درون بانك
DELETE پاك كردن يك داده از بانك اطلاعاتي
INSERT وارد كردن يك داده جديد به بانك اطلاعاتي
همچنين در SQL ميتوان داده هايي نيز تعريف كرد :
CREATE TABLE ايجاد يك جدول جديد
ALTER TABLE تغيير دادن يك جدول
DROP TABLE پاك كردن يك جدول
CREATE INDEX ايجاد يك انديس
(كليد جستجو) DROP INDEX پاك كردن يك انديس

SQL و Active Server Pages - ASP :
SQL يكي از قسمتهاي خيلي مهم ASP ميباشد زيرا در ASP براي كار با بانكهاي اطلاعاتي از SQL استفاده ميشود. و توسط تكنولوژي ADO ميتوان از SQL در ASP استفاده كرد.
دستور SELECT :
SELECT column-name(s) FROM table-name
مثال :
نام جدول Persons است
Last Name First Name Address City
Hasani Ali Esfahan



دستور Select همراه با شرط

SELECT column FROM table WHERE column condition value
عملگر ها در SQL:
عملگر مفهوم
= معادل بودن
<> برابر نبودن
> بزرگتر


دستور DISTINCT (جداسازي) :

SELECT DISTINCT column-name(s) FROM table-name
مثال :
نام جدول Order است Company Order Number
sega 3412


--------------------------------------------------------------------------------
دستور Order By :

براي مرتب كردن سطرها
نام جدول Order است Company Order Number
sega 3412
ABS Shop 5678
w3s 3212
W3S 6778
مثال :
SELECT Company , OrderNumber


دستور Insert :

INSERT INTO Table-Name ( Column1 , Column2) VALUES

مثال :
DELETE FROM Person WHERE Lastname=’hasani’ نام جدول Persons است last name First name Adress city
alian hasani NO 40 Esfahan
Hasani Ali No 15 Tehran
نتيجه :
last name First name Adress city
alian hasani NO 40 Esfahan
SEGA
W3S
Trio


--------------------------------------------------------------------------------
دسترسي به يك پايگاه داده از يك صفحه ASP :

١-ايجاد يك ADO Connection به يك پايگاه داده
2-باز كردن Connection پايگاه داده
3-ايجاد يك
ADO Record Set 4-باز كردن
Record set 5-گرفتن داده هايي كه نياز داريم از
Record Set 6-بستن
Record Set 7-بستن
Connection
 

hossein_ok

کاربر
2006-10-24
443
650
-ايجاد يك ADO Connection به يك پايگاه داده

١-1- روش DSN-LESS C:/InetPub/wwwroot/nor.mdb مسير فايل نمونه
< % var conn=Server. CreateObject ( “ADODB.
Connection ) Conn. Provider=  Microsoft . Jet . OLEDB.4.0  Conn.Open
(“C:/InetPub/wwwroot/nor.mdb ) % >


--------------------------------------------------------------------------------
2- روش ODBC

-2- روش ODBC : در اين روش ابتدا بايد يك ODBD Connection به Data Base ايجاد كنيم و سپس از طريق ADO به فايل DSN به طريق زير Connect كنيم.
< % var conn=Server. CreateObject

--------------------------------------------------------------------------------

ايجاد يك ODBC Connection به پايگاه داده MS Access :

١- وارد شدن به ODBC از Control Panel
2- انتخاب
System DSN 3- كليك كردن روي دكمه ADD
4- انتخاب Microsoft Access Driver و كليك كردن روي دكمه
Finish 5- در مرحله بعد كليك كردن بر روي دكمه Select و تعيين محل پايگاه داده
6- دادن يك نام در قسمت
Data Source Name 7- كليك كردن روي دكمه OK براي اينكه قادر باشيم اطلاعات يك پايگاه داده را بخوانيم اطلاعات بايد ابتدا در Record Set ، Load شوند. بنابر اين بعد از ساختن يك Connection بايد يك Record Set ايجاد كنيم.
مثال :
نام Data Base = nor.mdb
نام جدول =
Customer C:/Inetpub/wwwroot/nor.mdb Data Base مسير فايل < % conn= Server. CreateObject ( “ADODB.Connection )
Connection ايجاد
conn.Provider= Micrisoft.Jet.OLEDB.4.0  conn . Open (“C:/WebData/ nor.mdb ) Connection بازكردن rs=Server. CreateObject (“ADODB.Recordset )
Record Set ايجاد rs. Open(“Customer , conn) Record Set بازكردن % > در اين مثال تمام محتويات جدول Customer به rs ريخته ميشود.
حال ميخواهيم در انتخاب محتوياتي از Customer كه ميخواهند به rs انتقال داده شوند از دستور SQL استفاده كنيم.

--------------------------------------------------------------------------------

ساختن يك Connection و Record Set و به كار بردن SQL :

< % set conn=Server. CreateObject (“ADODB .Connection 
conn. Provider= Microsoft.jet.OLEDB.4.0  conn.
Open ( “C:/Inetpub/wwwroot/nor.mdb ) (Record Se


--------------------------------------------------------------------------------

گرفتن داده هايي كه نياز داريم از Record Set :

بعد از اينكه Record Set را باز كرديم ميتوانيم به داده هايي كه نياز داريم دسترسي داشته باشيم.
مثال :
دسترسي به فيلد name از جدول rs rs(name


--------------------------------------------------------------------------------

چاپ داده ها :

مثال : چاپ فيلد name از جدول rs Response.write(rs(n



بستن Recordset و Connection :

- براي بستن Recordset
rs.close() - براي بستن Connection
 

hossein_ok

کاربر
2006-10-24
443
650
نسخه برداری کردن و باز گرداندن پايگاه داده ها


نسخه برداری کردن و باز گرداندن پايگاه داده ها
هيچ مسئله ای نيست که چگونه زمينه قرار دادن يک تکنولوژی معتبر باشد. مواردی که اتفاق می افتد: قصورهای سخت افزارهای کامپيوتر، نرم افزارهای بر هم خورده که از دور خارج می شوند و اشتباهات که کاربرها سبب می شوند بهترين محافظت تان کپی گرفتن منظم از داده ها و ذخيره سازی آنها در جای مطمئن می باشد. که
Taking a Backup ناميده می شود. اگر هر موردی پيش آيد شما می توانيد از نسخه پشتيبان برای باز گرداندن پايگاه داده که قبلاً دچار مشکل شده استفاده کرد.

نسخه برداری از يک پايگاه داده
2000
SQL Server چندين راه مختلف برای نسخه برداری از پايگاه داده فراهم می آورد. ساده ترين راه گرفتن Backup کامل يک کپی کامل از پايگاه داده در يک نقطه زمانی خاص می باشد.
راهنمايی:
SQL Server اجازه می دهد که نسخه برداريها گرفته شوند هنگامی که پايگاه داده در حال استفاده می باشد و نياز به بستن سيستم برای نگهداری آن نيست. اگر چه انواع اصلی عمليات از طريق Backup نمی تواند به انجام رسد. اينها شامل عملياتی هستند که ساختار پايگاه داده را تغيير می دهند. از قبيل ايجاد کردن و حذف کردن فايل ها يا ايجاد Index ها و به انجام رساندن عملياتهای مرتبط نشده به سيستم Non Logged همچنينSQL Server دومين نوع نسخه برداری را فراهم می آورد که به طور Differential Backup شناخته شده است. يک Differential Backupفقط اطلاعاتی را که از آخرين نسخه برداری کامل تغيير پيدا کرده است ثبت می کند. امتيازات آن اين می باشد که بيشترين محيطهایDifferential Backup از يک نسخه برداری کامل کوچکتر خواهد بود و اينکه فرآيند نسخه برداری سريعتر خواهد شد.
راهنمايی:
Differential Backup مفهوم می شود اگر يک درصد کمی از داده ها ممکن برای شما تغيير بيابد، برای مثال يک Differential Backup روزانه بسازيد و نسخه برداری کامل را يک بار در هفته صورت دهيد. سومين نوع سيستم نسخه برداری به وسيله SQL Server فراهم می گردد يک Transaction Log Backup می باشد. Kg Transaction يک رکوردی از همه تراکنش ها انجام شده است که برخلاف پايگاه داده همان Transaction Log است که آخرين بار نسخه برداری شده است.
راهنمايی:
Backups Transaction Log همچنين به شما اجازه باز گرداندن يک پايگاه داده برای يک نقطه زمانی خاص می دهد اين می تواند مفيد واقع شود. برای مثال يک اشتباه اپراتور باعث نادرست وارد شدن اطلاعات در داخل يک پايگاه داده شود.
شما می توانيد از يک
Transaction Log برای باز گرداندن پايگاه داده در حالتی که آن قبلاً بوده برای اضافه کردن اطلاعات غلط استفاده کنيد.
SQL Server از Transaction Log برای بازگرداندن پايگاه داده به طور خودکار استفاده می کند اگرServer پذيرفته شود. شما می توانيد آن را برای نسخه برداری از داده هايتان در ترکيب با يک نسخه برداری کامل يا Full And Differential Backupاستفاده کنيد. امتيازاتTransaction Log Backup هست از بيشترين تفصيل های نتايج فايل Backup که کوچکتر از Differential Backup ياFull می باشد.
راهنمايی: در بعضی از حالات يک
Transaction Log Backup ممکن بزرگتر از نسخه برداری يک پايگاه داده شود. برای مثال اگر يک گروه کوچک از رکوردها نسبتاً به طور پی در پی تغيير داده شود در اين حالتها، شما می توانيد همچنين يک نسخه برداری کامل يا Transaction Log Backupsبه طور متناوب بگيريد.

نسخه برداری يک پايگاه داده با استفاده کردن از
Database BackupWizard
مهم: اگر شما هنوز نمونه پايگاه داده را نصب نکرده ايد، نخست آن را انجام داده قبل از اينکه به اين درس برگرديم.
1- در درخت
Consol پايگاه داده Aromatherapy را انتخاب می کنيم.SQL Server يک ليست از شئی های پايگاه داده ها را در قابDetails نشان می دهد.

2- دکمه
Wizard روی نوار ابزارEnterpriseManager را کليک می کنيم. SQL Server کادر محاوره ای Select Wizard را نشان می دهد.

3- در بخش
Manager ، Backup Wizard را کليک می کنيم. SQL Server اولين صفحه از Create Database Backup Wizard را نشان می دهد.

4-
Next را کليک کرده ويزارد يک صفحه را نشان داده که به انتخاب پايگاه داده برایBackup سؤال می کند.

5- اطمينان حاصل کنيد که
Aromatherapy در کادر Combo انتخاب می شود و سپس Nextرا کليک می کنيم. ويزارد صفحه ای را نشان می دهد که از شما برای نام و شرحBackup سؤال می کند.

6- در کادر
Description ،Lesson 2 Backup را تايپ می کنيم.

7-
Next را کليک می کنيم. ويزارد يک صفحه را نشان می دهد که سؤال می کند کدام نوع از Backup را شما می خواهيد به انجام رسانيد: يکBackup کامل، يکBackup متفاوت با يک Transaction Log Backup .

8- در اين تمرين ما يک
Backup کامل را به انجام خواهيم رساند بنابراين Next را کليک می کنيم. ويزارد يک صفحه را نشان می دهد که از شما به انتخاب مقصدBackup می پرسد.

9- دکمه
Browse را کليک می کنيم. ويزارد کادر محاوره ایBackup Device Location را نشان می دهد.

10- پوشه را آنجايی که فايلهای تمرينی را نصب کرده ايد هدايت می کنيم.
مهم: در يک محيط توليد شما هرگز نبايد نسخه برداريها را روی ابزار فيزيکی ذخيره سازيد به طوری که پايگاه داده ها وجود دارند. معمولاً آنها را در جای مطمئن به طور بهتر در محل ديگر ذخيره می کنيم.
11-
OK را برای برگشت به ويزارد کليک می کنيم. در بخشProperties ، شما می توانيد Append Back Up Media يا Over Write Back UpMedia را انتخاب کنيد.

12-
Next را کليک می کنيم. ويزارد يک صفحه ای را نشان می دهد و از شما برای رسيدگی و زمانبندی کردن جزئيات سؤال می کند.

13- در اين مثال نياز به
SQL Server برای رسيدگی به نسخه برداری نداريم. بنابراين بر چسب Backup Set Expiration Data و Checkbox Media Set Name را انتخاب نمی کنيم.

14-
Next را کليک می کنيم. ويزارد يک صفحه رسيدگی کننده انتخابهايی که شما ساخته ايد را نشان می دهد.
راهنمايی:
Media , SQL Server نسخه برداری را در دستگاهMedia سازماندهی می کند. يک دستگاه Media می توانيد يک فايل تک ديسک شود يا يک مجموعه20 تايی يا بيشتر از نوارهای نسخه برداری شود.

15-
Finish را کليک می کنيم. The Create Database Backup Wizard يک کادر محاوره ای پيشرفته را نشان می دهد هنگامی که آن نسخه برداری را به انجام می رساند و سپس يک متن اشاره می کند که نسخه برداری به طور موفقيت آميز تمام شده است.

راهنمايی: همچنين شما می توانيد از يک پايگاه داده با انتخاب پايگاه داده
Backup روی منوی محتويات پايگاه داده نسخه برداری کنيد. اين گزينه يک کادر محاوره ايی دقيق تر از استفاده کردنTheCreate Database Backup می باشد اما همه گزينه ها شبيه می باشند.

باز گرداندن يک پايگاه داده
بديهی است که ساختن
Backup هايی داده هايتان زياد استفاده نمی شود مگر اينکه شما چندين راه برای برگرداندن آن داده ها در داخل سيستم توليدتان در حوادث موفقيت ناآميز داشته باشيد. که بازگرداندن پايگاه داده ها ناميده می شود و Enterprise Manager آن را به آسانی نسخه برداری پايگاه داده ها باز می گرداند.

بازگرداندن يک پايگاه داده
1- پايگاه داده
Aromatherapy را در درخت Consoleکليک راست کرده، روی همه Task ها رفته و سپس Restore Databaseرا کليک می کنيم. SQL Serverکادر محاوره ایRestore Database را نشان می دهد.

2-
OK را کليک می کنيم. SQL Server يک کادر محاوره ای Progressرا نشان می دهد هنگامی که آن عمل Restore را به انجام می رساند و سپس يک متن نشان می دهد کار Restore به طور موفقيت آميز کامل شده است.

استفاده کردن
The Database Maintenance PlanWizard
تاكنون در اين درس شما آموخته ايد كه چگونه پايگاه داده ها را نسخه برداری و بازگردانيد. اما نسخه برداريها بايد به طوري منظم به انجام برسد و آن آسان مي باشد فراموش كردن انجام آنها،
SQL Server يك مكانيزم براي شما براي به انجام رساندن نسخه برداريها به طور خودكار در برنامه زمان بندي شده فراهم مي سازد، چندين راه براي انجام آن وجود دارد. اما ساده ترين راه آن استفاده كردن ازThe DatabaseMaintenance Plan Wizard مي باشد كه اجازه مي دهد به شما براي زمانبندي چندين كار نگهداري كه بايد به طور منظم انجام شود. بيشترين اطلاعات آن به روز كردن آمارهاي پايگاه داده ها مي باشد. SQL Server اطلاعاتي درباره توزيع آماری در جداول را نگهداري مي كند. اين اطلاعات به وسيله SQL Server براي تعيين پر بازده ترين روش بازيابي اطلاعات استفاده می شود. اگر چه به مرور زمان اين داده ها قطعي مي شوند همان طوري كه داده ها تغيير يافته و داده هاي جديد اضافه مي شود. SQL Server به طور خودكار متناوباً اطلاعات آماري را به روز مي سازد. اما شما مي توانيد آن را براي به روز رساني اين اطلاعات در زمانهاي مشخص شده با استفاده از Database MaintenancePlan Wizard امر كنيد. به طور كلي شما مي توانيد از Database Maintenance PlanWizard براي زمان بندي SQL Server براي به انجام رساندن منظم تستهاي بي نقص استفاده کنيد. اينها تستهاي سطح پايين از بي نقصي فيزيكي کاربر و جدول سيستم هستند. بالاخره شما مي توانيد از Database Maintenance Plan Wizard براي راه اندازي Log Shipping استفاده كنيد. كه يك روشي براي نگهداري خودكار يك Server Back Up به وسيله كپي گرفتن دائمي از Transaction Logs براي Server مي باشد. يك رويه نگهداري پايگاه داده واحد مي تواند در هر تركيبي اين وظايف را به انجام رساند. به طور اضافی شما مي توانيد SQL Server داشته باشيد كه يك گزارش روي نتايجي از وظايف كه به انجام مي رسد ايجاد كند. اين گزارش مي تواند براي يك دايركتوري مشخص شده به عنوان يك فايل متني يا سند Html و يا آن مي تواند براي يك اپراتور پست الكترونيكي شود. در تمرين زير، ما به آساني يك نسخه برداری منظم را برپا مي كنيم.

ايجاد كردن يك رويه نگهداري ماهانه براي نسخه برداري از يك پايگاه داده
1- پايگاه داده
Aromatherapy را در درخت Console انتخاب مي كنيم. SQL Server يك ليستي از شئی هاي پايگاه داده را در قاب Details نشان مي دهد.

2- دكمه ويزارد را روي نوار ابزار
Enterprise Manager كليك مي كنيم SQL Server كادر محاوره اي Select Wizard را نشان مي دهد.

3-
Database Maintenance Plan Wizard را در قسمت Manager انتخاب مي كنيم. SQL Server اولين صفحه از Database Maintenance Plan Wizard را نشان مي دهد.

4-
Next را کليک می کنيم. ويزارد يك صفحه را نشان مي دهد كه از شما براي انتخاب پايگاه داده كه شما بر آن يك رويه نگهداري ايجاد كرده ايد. از زماني كه Aromatherapy در درخت Console انتخاب شده وقتي كه شما ويزارد را شروع مي كنيد آن به طور پيش فرض انتخاب خواهد شد. اما شما مي توانيد به وسيله چك كردن گزينه هاي مناسب در اين كادر محاوره اي انتخاب را تغيير دهيد.

5-
Next را کليک می کنيم. ويزارد يك صفحه را نشان مي دهد و از شما سؤال مي كند براي انتخاب اطلاعات بهينه براي اينكه به روز شود.

6-
Next را کليک می کنيم. ويزارد يك صفحه را نشان مي دهد سؤال مي كند كه آيا Integrity Checksرا انجام دهد.

7-
Next را كليك مي كنيم. ويزارد يك صفحه را نشان مي دهد از شما براي مشخص كردن رويه نسخه برداری پايگاه داده ها سؤال مي كند. براي اين تمرين همه تنظيمات پيش فرض را مي پذيريم و تغييرات را فقط در مورد زمانبندي Back Up صورت مي دهيم.

8-
Change را براي تغيير زمان بندي Back Up كليك مي كنيم. ويزارد كادر محاوره اي EditRecurring Job Schedule را نشان مي دهد.

9- در گروه
Occurs ، Monthly را انتخاب مي كنيم. ويزارد كادر محاوره اي را براي نمايش دادن گزينه ها براي نسخه برداريهاي ماهانه تغيير مي دهد.
10- دكمه
Option را براي زمان بندي Backup برای اولين يكشنبه از هر ماه انتخاب مي كنيم.

11-
OK را براي باز گرداندن Database Maintenance Plan Wizard كليك مي كنيم.

12-
Next را كليك مي كنيم. ويزارد يك صفحه را براي پرسيدن درباره دايركتوريBackup نشان مي دهد.
مهم: اگر شما
Database Maintenance Plan Wizard را براي زمانبندي ديگر كارهاي نگهداري استفاده كنيد و گزينهBackup را انتخاب كنيد اين صفحه نشان داده نخواهد شد.

13- استفاده كردن از دكمه
Option دايركتوري را انتخاب مي كنيم و سپس دكمه Browse را كليك مي كنيم. ويزارد كادر محاوره اي Find Backup Directory را نشان مي دهد.

14- دايركتوري را دنبال كرده تا جايي كه فايل
Sample نصب مي شوند و سپسOK را كليك مي كنيم. كادر محاوره اي The Find Backup Directory بسته مي شود.
15-
Next را كليك مي كنيم. ويزارد يك صفحه را نشان مي دهد به پرسيدن اينكه آياTransaction Log در طرحBackup موجود است.

مهم: شما بايد از اين صفحه، بيشتر از صفحه اي كه مي پرسد از شما براي شامل شدن پايگاه داده در طرح
Maintenance ، اگر شما فقط بخواهيد يكTransaction Log Backup را به انجام رسانيد (بيشتر از يك پايگاه داده کامل).
16-
Next را كليك مي كنيم. ويزارد يك صفحه را نشان مي دهد و سؤال مي كند براي توليد يك گزارش، زماني كه طرح تكميل مي گردد.

17-
Next را كليك مي كنيم. ويزارد يك صفحه را نشان مي دهد و درباره ذخيره كردن تاريخچه Maintenance روي Server محلي سؤال مي كند. براي اين مثال تنظيمات پيش فرض را مي پذيريم.

18-
Next را كليك مي كنيم.The Database Maintenance Plan Wizard يك صفحه براي تأييد انتخاباتي كه شما ساخته ايد نشان مي دهد.

19-
Cancel را كليك مي كنيم.
مهم: معمولاَ شما
Finish را براي ابزار طرح Maintenance كليك خواهيد كرد، اما ما حالا آن را نخواهيم انجام داد تا زماني كه فقط پايگاه داده تمريني وجود دارد.
راهنمايي: طرحهاي نگهداري در درخت
Console در پوشه Manager قابل ديدن مي باشد. شما مي توانيد ببينيد و طرح نگهداري را به وسيله دابل کليک كردن آن در قاب Details ويرايش كنيد.
 

hossein_ok

کاربر
2006-10-24
443
650
امنيت 2000 SQL Server

يکی از مهمترين صورتهای مديريت يک پايگاه داده مراقبت کردن از امنيت داده ها می باشد. شما بايد تضمين کنيد که برای هر کسی که به طور قانونی نياز به دسترسی داده ها دارد، بتواند داده هايش را بگيرد البته نه اينکه به کسی دسترسی نامناسب دهيد. در اين درس، ما امتحان می کنيم که چگونه امنيت 2000 SQLServer به کار برده می شود و می آموزيم که چگونه امتيازهای امنيتی را ايجاد و تخصيص دهيم.

شناختن مدهای امنيت
زمانی در مرحله ای از
SQL Server يک درخواست برای اتصال دريافت می کنيم. آن از يک Login ID عبور می کند. Login ID معرف Account می باشد که دسترسی به 2000 SQL Server را کنترل می کند. SQL Server بررسی می کند Login ID که داده شده است معتبر باشد. سپس معين می کند که آيا Login ID که پذيرفته شده است امتياز امنيتی کافی برای به انجام رساندن عمليات درخواست شده دارد. اين عمليات به عنوان authentication ناميده می شود. 2000 SQL Server ، authentication را از دو راه می تواند پشتيبانی کند. آن می تواند به NT ويندوز مايکروسافت يا امنيت ويندوز 2000 برای معتبر کردن ID اطمينان کند يا آن می تواند اعتبار سازی را خودش به انجام رساند.
Authentication (تأييد اعتبار) ويندوز
زمانی که از تأييد اعتبار ويندوز (شناخته شده به عنوان امنيت مجتمع در نسخه های قبلی از
SQL Server) مدير سيستم صورتهای امنيتی برای ويندوز NT و Account های ويندوز 2000 و گروهها را می پذيرد. نرم افزار پردازشگر ويندوز يک اتصال معتبر برای Server را درخواست می کند. يک اتصال معتبر از زمانی پذيرفته خواهد شد اگر ويندوز NT يا ويندوز 2000 قبلاً يک User را تصديق کرده باشد. 2000 SQL Server نياز دارد به تضمين Login ID که برای دسترسی پيدا کردن بهServer و پايگاه داده فراهم شده است.
مهم: زمانی که ويندوز 98 نمی تواند ارتباطات معتبر را پشتيبانی کند مواردی از 2000
SQL Server که روی ويندوز 98 اجرا می گردد نمی تواند از مد تأييد اعتبار ويندوز استفاده کند. نرم افزار پردازشگر يا Client می تواند روی ويندوز 98 اجرا شود. اگر چه با استفاده از تأييد اعتبار ويندوز تهيه شده، Server خودش روی ويندوز NT يا ويندوز 2000 اجرا می شود.

تأييد اعتبار
SQL Server
به طور کلی توانا بودن تأييد اعتبار
Login نماينده برای سيستم امنيتی ويندوز زمانی که آن را از مد تأييد اعتبار ويندوز استفاده می کند، 2000 SQL Server امنيت خودش را به کار می برد، نه به طور حيرت آور، تأييد اعتبار SQL Server (شناخته شده به عنوان امنيت استاندارد در نسخه های قبلی از SQL Server). زمانی که درخواست اتصال صورت گيرد از تأييد اعتبار SQL Server استفاده می کنيم.
2000
SQL Server هر دوی Login ID و Password را دريافت می کند. که آن برخلاف ليست از Login های مشخص شده برای آن به وسيله مدير سيستم معتبر می شود.
مهم: مايکروسافت توصيه می کند که از تأييد اعتبار ويندوز در هر جای ممکن استفاده کنيد.

User Logins
امنيت در داخل 2000 SQL Server از طريق چندين شئی امنيتی کنترل می شود. در بالاترين سطوح Login ها می باشند که يک 2000 SQLServer ، کاربر ويندوز يا يک گروه ويندوز برای Server را مشخص می کند.
مهم: برای تکميل تمرينات زير، شما بايد همچنين مديرهای امنيتی يا وظايف مديرهای سيستم در داخل
SQL Server تخصيص داده باشيد لطفاً به مدير پايگاه داده تان رجوع کنيد اگر شما درباره حق انحصاری تان در داخل سيستم مطمئن نيستيد.

ايجاد کردن
User Login
Login ها می تواند به طور دستی هدايت کردن آيکون Login از پوشه Security در يک Server ايجاد کنيد و يک Login جديد از منوی Context انتخاب کنيد اما ساده ترين راه استفاده کردن از Create Login Wizard می باشد.





ايجاد کردن
SQL Server Login
1- Server را در درخت Console انتخاب می کنيم. SQL Server يک ليستی از شئی های Server در قاب Details نشان می دهد.

2- دکمه
Wizard را روی نوار ابزار Manager Enterprise کليک می کنيم. SQL Server کادر محاوره اي SelectWizard را نشان می دهد.

3- در بخش پايگاه داده،
Create Login Wizard را انتخاب کرده و سپس OK را کليک می کنيم. SQL Server اولين صفحه از Create LoginWizard را نشان می دهد.

4-
Next را کليک می کنيم، ويزارد يک صفحه ای را نشان می دهد که از مد تأييد اعتبار Server برای Login سؤال می کند.

5- دکمه
Option برچسب شده اطلاعات SQL Server Login را انتخاب می کنيم که به وسيله سيستم به من تخصيص داده می شود (SQL Server Authentication)

6-
Next را کليک کرده، ويزارد يک صفحه که Login ID ، Password را درخواست می کند نشان می دهد.


7-
Test ID را به صورت نام و Password که شما مايل هستيد وارد می کنيد.

8-
Next را کليک کرده، ويزارد يک صفحه درخواست وظايف امنيتی برای اينکه Login بايد تخصيص داده شود را نشان می دهد.

9-
Login را برای وظايف مديرهای سيستم اضافه می کنيم.



10-
Next را کليک می کنيم ويزارد يک صفحه را که درخواست می کند از پايگاههای داده که اينLogin بايد دسترسی دهد.


وظايف
Server
وظايف Server که به يک Login تخصيص داده می شود معين می کند که چه حق ويژه امنيتی Login در سطح Server دارد. جدول 3.1 حق ويژه تخصيص داده شده به هر وظيفه را تشريح می کند.
Bulk Insert AdministratorsBulkadmin می تواند عمليات قرارگيری را به طور عمده به انجام رساند
DatabaseCreators dbCreator می تواند داده های پايگاه را ايجاد، تغيير و حذف کند
DiskAdministrators diskadmin می تواند فايلهای ديسک را مديريت کند
ProcessAdministrators Processadmin می تواند عملياتهای اجرايی را در SQL Server را مديريت کند
Security Administrators Securityadmin می تواند Logins و ايجاد پايگاه داده را مديريت کند
Server Administrator Securityadmin می تواند گزينه های قالب بندی کل SQL Server را تنظيم کند و Server را خاموش کند
Setup Administrator Setupadmin می تواند Server های Link شده، روشهای Startup و روشهای ذخيره شده را مديريت کند
System Admin Sysadmin می تواند هر فعاليتی را در SQL Server انجام دهد
توضيحات نام نام کامل


11-
Login برای پايگاه داده Aromatherapy اضافه می کنيم.

12-
Next را کليک می کنيم. ويزارد يک صفحه را برای تأييد کردن انتخابهايی که شما ساخته ايد نشان می دهد.

مهم:
Login هايی که برای وظايف Server های ويژه می باشد به ويژه وظيفه مديرهای سيستم حق ويژه روی همه پايگاه داده ها خواهند داشت، اعم از اينکه آنها برای Login به طور خاص پذيرفته شده اند يا خير.
13-
Finish را کليک کرده، ويزارد ايجاد Login يک متنی را برای تأييد اينکه Login اضافه شده است نشان می دهد.





ايجاد کردن
Login ويندوز
1-
Server را در درخت Console انتخاب می کنيم. SQL Server يک ليستی از پوشه های Object را در قاب Details نشان می دهد.

2- 2- دکمه
Wizard را در نوار ابزار Manager Enterprise کليک می کنيم SQL Server کادر محاوره ای Select Wizard را نشان می دهد.

3- ويزارد ايجاد
Login را در بخش پايگاه داده ها انتخاب کرده و سپس OK را کليک می کنيم. SQL Server اولين صفحه از Wizard Create Login را نشان می دهد.

4-
Next را کليک می کنيم ويزارد يک صفحه را نشان می دهد که برای مد تأييد اعتبار Server برای Login سؤال می کند تنظيمات پيش فرض را می پذيريم.

5-
Next را کليک می کنيم. ويزارد يک صفحه را برای درخواستID Account ويندوز نشان می دهد.

6-
Windows ID را در اين فرم وارد می کنيم. AccountName وDomain Name (account name ، می تواند کاربر يا گروه باشد). Next را کليک می کنيم. ويزارد يک صفحه نشان می دهد که وظايف امنيتی برای اينکه Login بايد تخصيص داده شود را درخواست می کند.
راهنمايی: رد دسترسی به گزينه
Server در اين صفحه می تواند به طور آشکار برای رد دسترسی به يک گروه کاربر تکی استفاده شود.

7-
Login را برای وظيفه ايجاد کننده ها پايگاه داده ها اضافه می کنيم.

8-
Next را کليک می کنيم. ويزارد يک صفحه را نشان می دهد که درخواست می کند از پايگاه داده ها که دسترسی به اين Login بايد پذيرفته شود.

9-
Login را برای پايگاه داده Aromatherapy اضافه می کنيم.



10-
Next را کليک می کنيم. ويزارد يک صفحه که انتخابهای ساخته شده را نشان می دهد تأييد می کند.

مهم:
Login هايی که برای نقشهای Server خاص می باشد، به ويژه نقش مديرهای سيستم حق انحصاری در همه پايگاه داده ها خواهند داشت اعم از اينکه آنها برای Login به طور خاص پذيرفته شده اند يا خير.
11-
Finish را کليک کرده Create Login Wizard يک متنی را نشان می دهد که Login ها اضافه شده است.


مديريت
Logins
در همان راهی که شئی های پايگاه داده ها ديگر نياز به نگهداری گاهگاهی دارند. شما ممکن است نياز به تغيير خصوصيات از يک
User Login داشته باشيد. برای مثال، شما ممکن است نياز به تغيير Security Role برای اينکه Login مقرر شود، يا پايگاه داده ها برای اينکه به آن دسترسی پيدا کند داشته باشيد. البته شما بعضی اوقات نياز خواهيد داشت به برداشتن يک Login به طور کامل که همه اين عملياتها با استفاده از Manager Enterprise ساده می باشد.






تغيير دادن خصوصيات
Properties Login
1- آيکون Logins را در پوشه Security در درخت Console راهبری می کنيم. SQLServer يک ليستی از Login در قاب Details نشان می دهد.

2-
Test ID Login را در قاب Detail دابل کليک می کنيم. SQL Server کادر محاوره ای SQL Server LoginProperties را نشان می دهد.

3- زبانه
Server Roles را انتخاب می کنيم. SQLServer ، Server Roles را برای اينکه Login برقرار شده نشان می دهد.

4-
Login را از نقش مديرهای سيستم (System Administrators Role) برمی داريم.

5- زبانه
Database Access را انتخاب می کنيم. SQL Server پايگاه داده هايی را نشان می دهد. برای اينکه دسترسی به Login مقرر شود.

6-
North Wind را به ليست پايگاه داده ها اضافه می کنيم.

7-
Ok را برای بستن کادر محاوره ای SQLServer Login Properties کليک می کنيم. SQL Server خصوصيات Login را تغيير می دهد.

برداشتن يک
Login
1- آيکون
Login را در پوشه Security در درخت Console می بريم. SQL Server يک ليستی از Login در قاب Details نشان می دهد.

2-
TestID Login را در قاب Details انتخاب می کنيم و سپس کليد Delete را فشار می دهيم. SQLServer يک متنی را نشان می دهد که از شما برای تأييد حذفيات سؤال می کند.

3-
Yes را کليک می کنيم. SQL Server ، Login را حذف می کند.

سطح امنيتی پايگاه داده

در سطح پايگاه داده، هر
User account ويندوز يا SQL Server Login برای يک User Account در يک پايگاه داده ترسيم می گردد. حتی دسترسی که به يک نمونه ServerSQL که با يک Login تخصيص داده می شود ضرورتاً نياز به دسترسی داشتن به يک پايگاه داده مشخص نخواهد داشت مگر اينکه يک شخص يک کاربر برای آن پايگاه داده ساخته باشد. همان طور Login ها می تواند به Server Roles تخصيص داده شود که يک حق انحصاری ويژه برای آنها اعطاء می کند، کاربرها می تواند به نقشهايی در سطح پايگاه داده تخصيص داده شوند که به آنها حق انحصاری ويژه اعطاء می گردد.
راهنمايی: از طريق حقوق انحصاری امنيتی که در سطح جداگانه می تواند تخصيص داده شود که به طور کلی توصيه نمی شود از زمانی که مديريت امنيت را پيچيده می کند. آن خيلی ساده تر می باشد اضافه يا برداشتن افراد برای گروههايی از پيش تعريف شده که دارند يک تنظيم ويژه ای از حقوق انحصاری امنيت از زمانی که تخصيص می گردد و مجدداً حقوق انحصاری را تخصيص می دهد.

User های پايگاه داده
زمانی که شما يک
Login جديد را با استفاده از Create Login Wizard ايجاد می کنيد و به آن دسترسی پايگاه داده را واگذار می کنيد Login به طور خودکار به ليست کاربرهای پايگاه داده اضافه خواهد شد. اگر چه زمانی که شما يک پايگاه داده جديد ايجاد می کنيد احتمالاً شما خواهيد خواست به اضافه کردن Login های موجود برای آن به عنوان کاربر.

ايجاد يک
User پايگاه داده
1- آيکون
User را در پايگاه داده Aromatherapy می بريم. SQL Server يک ليستی از User ها در قاب Details نشان می دهد.

2- دکمه
New را در نوار ابزار ManagerEnterprise کليک می کنيم.

راهنمايی: شما همچنين می توانيد کادر محاوره ای
Database User Properties را به وسيله کليک راست کردن باز کنيد. آيکون Users در درخت Console و Database User جديد را در منوی Context انتخاب می کنيم.
3- نام
Login تان را در Combo Boy انتخاب می کنيم. SQL Server نام Login را به عنوان نام User پيش فرض پيشنهاد خواهد داد اما شما می توانيد آن را تغيير دهيد اگر بخواهيد.
4-
db-Owner را برای نقشهای واگذار شده به User جديد اضافه می کنيم.

-5
OK را کليک می کنيم. SQL Server ، User را به پايگاه داده اضافه می کند.
راهنمايی: نقشهايی که به يک
User پايگاه داده تخصيص می شود تعيين می کند که چه حقوق انحصاری امنيتی، کاربر برای پايگاه داده دارد. بخش زير Database Roles را برای جزئيات بيشتر ببينيد.

برداشتن يک
User پايگاه داده
1- آيکون
Users را برای پايگاه Aromatherapy در درخت Console می بريم. SQL Server يک ليستی از کاربرها را در قاب Details نشان می دهد.

2-
User که شما در آخرين تمرين در ليست ايجاد کرديد را انتخاب می کنيم و سپس کليد Delete را فشار می دهيم. SQL Server يک متنی را نشان می دهد که از شما برای تأييد حذفيات سؤال می کند.

3-
Yes را کليک می کنيم. SQL Server ، User را از پايگاه داده حذف می کند.

DatabaseRoles
يک
Database Roles مانند يک کاربر مجازی که شما برای مديريت دسترسی پايگاه داده ايجاد می کنيد می باشد. هر تعدادی از کاربرهای پايگاه داده می تواند به يک نقش تخصيص داده شود. هر کاربر معين می تواند به چندين نقش تخصيص داده شود. زمانی که شما حقوق انحصاری به يک نقش پايگاه داده تخصيص می دهيد و سپس يک کاربر برای آن نقش تخصيص می دهيد. کاربر همه حقوق انحصاری از نقش را به ارث می برد. اين خيلی ساده تر از نگهداری حقوق انحصاری برای کاربرهای شخصی می باشد. SQL Server 2000 يک تعدادی از نقشهايی از قبل تعريف شده را تهيه می کند. به طوری که در جدول 3.2 نشان داده شده همچنين شما می توانيد نقش سفارشی که برای پايگاه داده واحد می باشند را ايجاد کنيد.
راهنمايی: نقشهای پايگاه داده ای که شما در پايگاه داده اصلی ايجاد می کنيد اضافه خواهد شد. برای هر پايگاه داده های جديد که شما برای آن
Server ايجاد می کنيد.
توضيحات نام نام کامل
Access Administrator db-Accessadmin می تواند User IDS را اضافه يا بردارد
ûackup Operator Db-Baclcupoprator می تواند DBCC ، CHECKPOINT و حالتهای BACKUP صادر کند
Data Reader db-Data Reader می تواند همه داده ها از هر جدول کاربر در پايگاه داده ها را انتخاب کند
Data Writer db-DataWriter می تواند هر داده در هر جدول کاربر در پايگاه داده ها اصلاح کند
DataDefinitionAdministrator db-dd Ladmin می تواند حالتهای زبان تعريف داده ها DDL را به انجام رساند اما نمی تواند GRANT ، REVOKE يا حالتهای DENY صادر کند
DenyData Rader db-deny Data Writer می تواند اجازات SELECT را روی هر شئی در پايگاه داده لغو کند
Data Base Owner db-Owner همه اجازات دسترسی در پايگاه داده ها را دارد
Deny Data Writer db-deny Data Writer می تواند INSERT UP DATE و اجازات دسترسی DELETE را روی هر شئی در پايگاه داده رد يا ملغی کند
SecurityAdministrator db-Securityadmin می تواند همه اجازات، حق مالکيت شئی نقشها و عضويتهای نقش را کنترل کند
Public نقش پيش فرض که به هر پايگاه داده کاربر متعلق می باشد

ايجاد کردن يک
Role پايگاه داده
1- آيکون
Roles برای پايگاه داده Aromatherapy را در درخت Console کليک می کنيم. SQL Server يک ليستی از نقشهای پايگاه داده موجود را نشان می دهد.

2- دکمه
New را روی نوار ابزار ManagerEnterprise را کليک می کنيم. SQL Server کادر محاوره ای Database Role Properties را نشان می دهد.

3- 3
Lesson را به عنوان نام نقش وارد می کنيم.

4-
OK را کليک کرده، SQL Server کادر محاوره ای Database Role Properties را می بندد.
5-
Role 3 Lesson را در قاب Details دابل کليک می کنيم. SQL Server کادر محاوره ای Database Role Properties را نشان می دهد.

مهم: شما بايد کادر محاوره ای
Database Role Properties را به ترتيب برای قادر ساختن دکمه Permissions ببنديد.




6- دکمه
Permissions را کليک می کنيم. SQL Server کادر محاوره ای Permissions را نشان می دهد.

راهنمايی: کادر محاوره ای
DatabaseRole Properties دو نوع از نقشها Standard Roles و Application را پشتيبانی می کند. نقشهايی که دراين درس بحث شده اند همه Standard Roles می باشند. يک applicationRole يک تابع ويژه ای است که احتياجات برنامه های کاربردی پيچيده را پشتيبانی می کند.
Establishing Application Security And Application Roles را در کتاب SQLServer Online برای جزئيات درباره application Role ببينيد.
7- نقش که اجازات دسترسی در جدول
Oils را انتخاب می کند فراهم می کنيم.

8-
OK را کليک کرده SQL Server کادر محاوره ای Permissions را می بندد.
9-
OK را کليک می کنيم. SQLServer يک نقش جديد را اضافه می کند.

تخصيص يک کاربر به يک نقش پايگاه داده
1- آيکون
Users را برای پايگاه Aromatherapy در درخت Console راهبری می کنيم. SQL Server يک ليستی از User ها را در قاب Details نشان می دهد.

2- نام کاربرتان را در ليست کاربرها دابل کليک می کنيم.
SQL Server کادر محاوره ای Database User Properties را نشان می دهد.

3- کاربر را برای
Role 3 Lesson با کليک کردن آن در کادر ليستDatabase Role Membership اضافه می کنيم.

4-
Ok را کليک کرده SQL Server کاربر را برای نقش اضافه می کند و کادر محاوره ای DatabaseRole Membership را می بنديم.

برداشتن يک
User از يک Database Role
1- آيکون
Users را برای پايگاه داده Aromatherapy در درخت Console راهبری می کنيم. SQLServer يک ليستی از User ها را در قاب Details نشان می دهد.

2- نام کاربرتان را در ليست دابل کليک می کنيم.
SQL Server کادر محاوره ای Database User Properties را نشان می دهد.





3- 3
Role Lesson را در ليست Database RoleMembership انتخاب نمی کنيم.

4-
OK را کليک کرده SQL Server ، UsersMembership را از نقش برمی دارد و کادر محاوره ای را می بندد.

برداشتن يک
Data Base Role
1- آيکون
Roles برای پايگاه Aromatherapy در درخت Console را راهبری می کنيم. SQL Server يک ليستی از نقشها را در قاب Details نشان می دهد.

2-
Role 3 Lesson را در قاب Details انتخاب کرده و کليد Delete را فشار می دهيم. SQL Server يک متنی را نشان می دهد که از شما برای تأييد حذفيات می پرسد.

3-
Yes را کليک می کنيم. SQL Server ، نقش را از پايگاه داده حذف می کنيم.
 

hossein_ok

کاربر
2006-10-24
443
650
شناخت ايندکس ها


در يک پايگاه داده مرتبط يک ايندکس يک شئی خاصی است که اجازه می دهد به پايگاه داده برای دسترسی سريع سطرها در يک جدول بر پايه ارزشهای يک يا بيشتر ستونها در بسياری از راههای يکسان به عنوان ايندکس از يک کتاب که دسترسی سريع به محتوياتش را مبنی بر کلمات کليدی ويژه فراهم می آورد. SQL Server مايکروسافت دو نوع مختلف از ايندکس ها را فراهم می آورد. کلاستر شده و کلاستر نشده. يک ايندکس کلاستر شده بر طبق سطرهايی از جدول که به طور فيزيکی ذخيره می شوند تعيين می گردند. از طرف ديگر يک ايندکس کلاستر نشده يک شئی جدا شده در داخل پايگاه داده می باشد که به سطرهای ويژه ای در داخل يک جدول توجه می کند اما چگونه ذخيره شدن سطرها را تعيين نمی کند. يک ايندکس مبنايی برای يک يا چند ستون در يک جدول باشد. يک ايندکس که راجع به تک ستون می باشد Simple Index ناميده می شود نظر به اينکه ايندکسی که راجع به به چندين ستون می باشد Composite Index ناميده می شود. به طور کلی برای ايندکس هايی که شما برای خودتان تعريف می کند. SQL Server به طور خودکار يک ايندکس کلاستر شده به نام Primary key Index ايجاد می کند زمانی که شما يک کليد Primary برای يک جدول تعريف می کنيد. يک کليد Primaryستون يا ستونهايی می باشد که به طور واحد برای مشخص کردن هر سطر استفاده خواهد شد.

ايجاد کردن ايندکس ها
در
EnterpriseManager ايندکس ها می توانيد با استفاده از The Create Index يا از طريق The TableDesigner به وسيله تنظيم خصوصيات The primary key يا به وسيله تعريف ايندکس در کادر محاوره ای The Tables Properties ايجاد شوند.

ايجاد يک ايندکس با استفاده از
The Create Index
1- پايگاه داده
Aromatherapy را در درخت Console راهبری می کنيم. SQL Server يک ليستی از Objects پايگاه داده را در قاب Details نشان می دهد.

2- دکمه
The Wizard را روی نوار ابزار Manager Enterprise کليک می کنيم. SQL Server کادر محاوره ای Select Wizard را نشان می دهد.

3-
CreateIndex Wizard را در قسمت پايگاه داده انتخاب کرده، و سپس OK را کليک می کنيم. SQLServer اولين صفحه از Create Index Wizard را نشان می دهد.

4-
Next را کليک کرده ويزارد يک صفحه را نشان می دهد که يک پايگاه داده و جدول را درخواست می کند برای اينکه ايندکس ايجاد خواهد شد.

5- اطمينان حاصل کنيد که
Aromatherapy ، نام پايگاه داده انتخاب شده است و Oils را به عنوان نام جدول انتخاب می کنيم.

6-
Next را کليک می کنيم ويزارد ايندکس های موجود را برای جدول نشان می دهد. ايندکس ها با نامهای متنوع به وسيلهSQL Server برای اعمال ارتباط ايجاد می گردند. ما در مورد ارتباطات در درس بعد صحبت خواهيم کرد.

7-
Next را کليک کرده ويزارد ستونهايی را در جدول نشان می دهد.

8-
Include را در سل ايندکس ستونهای Oil Name وLatin Name برای شامل کردن آنها در ايندکس کليک می کنيم.

9-
Next را کليک کرده ويزارد يک صفحه را نشان می دهد که خصوصيات ايندکس را نشان می دهد.

10- مقادير پيش فرض را به وسيله کليک کردن
Next می پذيريم. ويزارد نشان می دهد يک صفحه برای تأييد انتخابتان و يک نام برای ايندکس درخواست می کند نام پيش فرض را می پذيريم.


11- فيلد
Latin Name را انتخاب و دکمه Move Up برای تغيير ترتيب فيلدها در ايندکس کليک می کنيم.

12-
Finish را کليک کرده ويزارد نشان می دهد يک متنی برای تأييد اينکه ايندکس به وجود آمده است.


ايجاد کردن يک ايندکس کليک اصلی
1- پوشه جدول از پايگاه داده
Aromatherapy را در درخت Console راهبری می کنيم. SQL Server يک ليستی از جداول در پايگاه داده نشان می دهد.


2-
Table Designer را برای جدول Planttypes به وسيله کليک راست کردن نام جدول در قاب Details باز می کنيم و Design Table را انتخاب می کنيم SQL Server ، The TableDesigner را باز می کند.

3- ستون
PlanttypeID را در شبکه با کليک کردن سمت چپ نام ستون انتخاب می کنيم SQL Server ستون را انتخاب می کند.

4- دکمه کليد اصلی را روی نوار ابزار
Table Designer کليک می کنيم. SQL Server ستون انتخاب شده را به عنوان کليد اصلی قرار می دهد.

5- دکمه
Save را برای ذخيره سازی تغييرات کليک می کنيم و پنجره را Close می کنيم.



ايجاد کردن يک ايندکس ساده
1-
Table Designer را برای جداول Oils با کليک راست کردن نام جدول در قاب Details باز می کنيم وDesign Table را انتخاب می کنيم. SQL Server ،TableDesigner را باز می کند.

2- دکمه
Indexes/Keys را کليک می کنيم SQL Server کادر محاوره ای The Tables Properties را با صفحه خصوصيات Indexes/Keys نشان داده شده باز می کند.

راهنمايی: شما همچنين می توانيد کادرهای محاوره ای
TheTables Properties را به وسيله کليک کردن دکمه Properties و سپس زبانه/Keys Indexes باز کنيد.
3-
New را کليک کرده SQL Server ، Ix-Oils را به عنوان نام ايندکس OilId را به عنوان ستون ايندکس شده پيشنهاد می کند.

4- نام ايندکس را به
IX-OilName تغيير می دهيم.

5- نام ستون ايندکس را به
Oilname به وسيله انتخاب ستون از Combo Box تغيير می دهيم.

6-
Create Unique , Checkbox را برای ايجاد ايندکس واحد چک می کنيم. SQL Server به ايجاد کردن کادر گروه UNIQUE قادر می باشد.

7- گزينه
Index را انتخاب می کنيم.


ايندکس های واحد
يک ايندکس منحصر به فرد تضمين می کند که هيچ دو سطر در يک جدول نمی تواند شامل داده ها دوتايی شده برای ستون يا ستونهای مشخص شده در ايندکس باشد. کليدهای اصلی ايندکس ها معمولاً منحصر به فرد می باشند اما شما می توانيد به طور کلی ايندکس های منحصر به فرد را اگر مايل باشيد اضافه کنيد. مواظب باشيد در مورد ايجاد ايندکس هايی منحصر به فردی روی ستونها که مقادير
Null (تهی) را می پذيرد. اگر چه، SQL Server يک سطر تکی را با يک مقدار تهی خواهد پذيرفت اما ستونهای بعدی را به عنوان مقادير دو تايی (Duplicate) نخواهد پذيرفت.
8-
Close را کليک کرده، SQL Server کادر محاوره ای را می بندد.
-9دکمه
Save در نوار ابزار Table Designer را برای ذخيره سازی تغييرات کليک می کنيم و سپس پنجره TableDesigner را می بنديم.

ايجاد کردن يک ايندکس مرکب

1-
Table Designer را برای جدول Oil Odors به وسيله کليک راست کردن نام جدول در قاب Details و انتخاب جدول Design باز می کنيم. Table Designer , SQL Server را باز می کند.

2- دکمه
Indexes/Keys را کليک می کنيم.SQL Server کادر محاوره اي Tables Properties را با صفحه خصوصيات Indexes/Keys نشان داده شده باز می کند.

3-
New را کليک کرده SQL Server ، Ix-Oil Odors را به عنوان نام ايندکس و Oil ID را به عنوان ستون ايندکس شده در نظر می گيرد.

4- ستون
Odor ID را برای ايندکس به وسيله کليک کردن در سل نام ستون اضافه می کنيم و آن را از Combo Box انتخاب می کنيم.

5-
Close را کليک کرده SQL Server کادر محاوره ای را می بندد.
6- دکمه
Save را روی نوار ابزار Table Designer برای ذخيره سازی تغييرات کليک کرده و سپس پنجره TableDesigner را می بنديم.
نگهداری کردن ايندکس ها
مانند هر شئی ديگر در پايگاه داده، شما بعضی مواقع نياز به تغيير ايندکس ها که ايجاد کرده ايد خواهيد داشت. ايندکس ها و خصوصيات آنها در کادر محاوره ای
Table Designers Properties نگهداری می شوند.

تغيير ايندکس ها
همان طوری که شما می توانيد خصوصيات ستونها را به وسيله باز کردن
Table Designers اصلاح کنيد و در کادر محاوره ای Tables Properties نشان دهيد. شما می توانيد خصوصيات يک ايندکس را به همان صورت تغيير دهيد.

تغيير نام يک ايندکس

1-
Table Designers را برای جدول Oils به وسيله کليک راست کردن نام جدول در قاب Details باز می کنيم و Table Design را انتخاب می کنيم.

2- دکمه
Indexes/Keys را کليک می کنيم. SQL Server کادر محاوره ای Properties را با صفحه خصوصيات Indexes/Keys نشان داده شده باز می کند.


3-
IX-Oil Name را در ايندکس انتخاب شده Combo Box انتخاب می کنيم. SQL Server جزئيات ايندکس را نشان می دهد.

4- نام ايندکس را برای
IX-Nameتغيير می دهيم.

5-
Close را کليک کرده، SQL Server کادر محاوره اي را می بندد.
6- دکمه
Save را در نوار ابزار Table Designer برای ذخيره تغييرات کليک می کنيم.

تغيير ستونها در يک ايندکس
1- اگر
Table Designer برای جدولOils باز نباشد آن را به وسيله کليک راست کردن نام جدول در قاب Details باز می کنيم و جدول Design را انتخاب می کنيم.

2- دکمه
Indexes/Keys را کليک کردهSQL Server کادر محاوره اي Properties را با زبانه Indexes/Keys انتخاب شده باز می کند.

3-
IX-Oil Name را در ايندکس انتخاب شده Combo Box انتخاب می کنيم. SQL Server خصوصيات ايندکس را نشان می دهد.

4- سل
Latin Name را در فيلد Column Name را انتخاب کرده و ستون ايندکس شده را برای Plant Type ID تغيير می دهيم.

5-
Close را کليک کرده SQL Server کادر محاوره ای را می بندد.
6- دکمه
Save را در نوار ابزار Table Designer برای ذخيره سازی تغييرات کليک می کنيم.

برداشتن
Indexe ها
بعضی مواقع شما نياز به برداشتن يک ايندکس از يک جدول خواهيد داشت، به دليل اينکه آن خيلی زياد مورد نياز نمی باشد يا به دليل اينکه کارايی بازيافت داده های بهبود يافته که ايندکس فراهم می آورد به وسيله زمانهای اضافی مورد نياز برای نگهداری ايندکس موقعی که داده مورد نظر به هنگام می شود بيشتر شود. مانند همه وظايف نگهداری ايندکس، حذف کردن يک ايندکس که با استفاده کردن از زبانه
Indexes/Keys از کادر محاوره ای Table Designers Properties به انجام می رسد.

از بين بردن يک ايندکس
1- اگر
Table Designer برای جدول Oils باز نباشد، آن را به وسيله کليک راست کردن نام جدول در قاب Details باز کرده و جدول Design را انتخاب می کنيم. Table Designer SQL Server را باز می کند.

2- دکمه
Indexes/Keys را کليک کرده SQL Server کادر محاوره ای Tables Properties را با صفحه خصوصيات Indexes/Keys نشان داده شده باز می کند.






3-
IX-Name را در ايندکس انتخاب شده Combo Box انتخاب می کنيم.

4- دکمه
Delete را کليک کرده SQL Server ، ايندکس را حذف می کند.
5-
Close را کليک کرده، SQL Server کادرهای محاوره ای را می بندد.
6- دکمه
Save را در نوار ابزار Table Designer برای ذخيره سازی تغييرات کليک می کنيم و سپس پنجره Table Designer را می بنديم.
 

hossein_ok

کاربر
2006-10-24
443
650
ايجاد كردن جداول و تغییر دادنشان

در محيط SQL Server ميكروسافت، در هر پايگاه داده مرتبط، اطلاعاتي در داخل جداول سازماندهي مي شوند بر طبق ترتيب سطرها و ستونها كه داده ها را براي شئی های تکی ذخيره می کند. در اين درس، شما مي آموزيد كه چگونه يك جدول جديد را ايجاد كنيد و معين كنيد ستونهايي كه آن جدول در بردارد.
راهنمايي: در نظر گرفتن محتويات جدول به عنوان يك شبكه (
Grid) مانند يك صفحه گسترده ايده آل مي باشد. اما اين موضوع مهم مي باشد به تشخيص اينكه ركوردها در يك جدول نظم دروني ندارند. ايده هاي Previous و Next در يك ركورد جدول به كار برده نمي شوند. اگر شما نياز به انجام عملياتهاي متوالي نداشته باشيد، شما مي توانيد به وسيله ای به نام Cursor آن را انجام دهيد. يك ماهيتي كه به يك سطر ويژه در يك مجموعه از ركوردها اشاره مي كند. در مورد Cursor در درس 27 بحث خواهيم كرد.

ايجاد كردن جداول
جداول يك واحد تابعي از انبار داده ها در يك پايگاه داده های مرتبط مي باشند. به عنوان يك قاعده كلي، هر نوع از موجوديتها از قبيل
Essential Oil در پايگاه داده نمونه مان به وسيله يك جدول نشان داده مي شود، نظر به اينكه هر نمونه از آن موجوديتها از قبيلGerman Chamomile Clary Sage به وسيله يك سطر در جدول نشان داده مي شود.

طراحي پايگاه داده

در بيشترين روش رايج براي تعريف پايگاه داده ها از راهكارهاي (مفهومهاي)
Entities و Attributes استفاده مي كنيم زماني كه شما از طراحي منطقي به طراحی فيزيكي پيش مي رويد. موجوديتها معمولاً به صورت جداول پياده سازی مي شوند و مشخصه ها (Attributes) در ستونها پياده سازی مي شوند. (همچنين در فيلدها شناخته مي شوند)

شناخت انواع داده ها

هر ستون در جدول داراي خصوصيات معين مي باشد كه آن را براي
SQL Server تعريف مي كند. مهمتر از اين خصوصيات، نوع داده هاي ستون مي باشد، كه تعريفي از نوع اطلاعاتی كه درستونها ذخيره خواهند شد می باشد. SQL Server يك محدوده وسيعي از انواع داده ها را فراهم آورد كه در جدول 1-5 نشان داده شده است. به طور كلي انواع داده ها به وسيله SQL Server فراهم مي گردد، همچنين شما مي توانيد خودتان تعريف كنيد. شما خواهيد آموخت كه چگونه اين را در درس 9 انجام دهيد.


مقادير قابل قبول انواع داده
مقادير عددی
مقادير اعداد صحيح از 63^2- تا1-63^2
bight
مقادير اعداد صحيح از 31^2- تا 1-31^2
Int
مقادير اعداد صحيح از 15^2- تا 1-15^2
Smallint
مقادير اعداد صحيح از 0 تا 255
Tinyint
مقادير اعداد صحيح با ارزش 0 و 1
bit
مقادير مقياس با دقت ثابت شده از 1+38^10 تا 1-38^10
decimal
مقادير
Decimal همچنين مي تواند تعريف شود به صورتNumeric ، دامنه مقادير يكسان مي باشد.
مقادير
Monetary (مالي) از 63^2- تا 1-63^2 (مقادير Money تا 0.0001 از هرواحد دقت دارد). Money
مقادير
Monetary از 3648 . 748 . 214- تا 3647 . 748 . 214 مي باشد Smallmoney
(مقادير
Small Monetary تا 0001/0 واحد دقيق مي باشد).
مقادير صحيح شناور (متغير) از 308+
E1.79- تا 308+E1.79 (مقادير Float فقط تقريبي مي باشد) Float
مقادير صحيح شناور متغير از 38+
E3.40- تا 38+E3.40 مي باشند (مقادير real فقط تقريبي مي باشد) real
مقادير تاريخ و زمان از 1.1753 ژانويه تا 31.9999 دسامبر مي باشد
datetime
(مقادير
Date Time تا 3 هزارم ثانيه يا 3.33 ميلي ثانيه دقت دارد) Smalldatedtime
مقادير تاريخ و زمان از 1 ژانويه و 1900 تا 6 ژوئن و 2079 مي باشد (مقادير
Smalldatetime تا 1 دقيقه دقت دارند)
مقادير کاراکتری
مقادير حرفي كدگذاري نشده با طول ثابت با طول حداكثر 8000 حرف مي باشد.
Char
مقادير حرفي كدگذاري نشده با طول متغير با طول حداكثر 8000 حرف مي باشد.
Varchar
داده كدگذاري شده با طول متغير با طول حداكثر 1-31^2 (647 . 741 . 073 . 1) حرف مي باشد.
Text
داده كدگذاري شده با طول ثابت با طول حداكثر 4000 حرف مي باشد
Nchar
داده كدگذاري نشده با طول متغير با حداكثر طول 4000 حرف مي باشد
nvarchar
داده كدگذاري شده با طول متغير با حداكثر طول 1-30^2 (823 . 741 . 073 . 1) حرف مي باشد
ntext
مقادير باينری (1 و 0)
داده باينري با طول ثابت با حداكثر طول 8000 بايت مي باشد
binary
داده باينري با طول متغير با حداكثر طول 8000 بايت مي باشد
Varbinary
داده باينري با طول متغير با حداكثر طول 1-31^2 (647 . 783 . 147 . 2) بايت مي باشد
Image
مقادير ديگر
يك مرجع مبناء براي يك
Cursor مي باشد (يكCursor يك ماهيتي است كه يك مرجع مبناء را براي يك سطر مشخص در يك Result Set نشان مي دهد. Cursor
يك شمار واحد پايگاه داده است كه به هنگام مي شود هر زماني كه يك سطر به هنگام شود. (نوع داده
rowversion در نسخه قبلی از Timestamp SQL Server ناميده می شود) rowversion
مقاديري از هر نوع غير از
text ، ntext ، rowversion (timestamp) و sql - variant می باشد. يك معرف واحد کلي GUID مي باشد. Uniqveidentifier

ايجاد كردن يك جدول جديد
جداول تهيه و با استفاده از طراح جدول
Enterprise Manager نگهداري مي شوند. اولين گام ايجاد و نامگذاري جدول به وسيله باز كردن Table Designer براي يك جدول جديد مي باشد.

ايجاد يك جدول جديد
1- در پايگاه داده
Aromatherapy بر روی پوشه Table می رويم. SQL Server يک ليستی از جداول موجود را نشان می دهد.

2- دکمه
New را روی نوار ابزار کليک می کنيم. SQL Server ، Table Designer را باز می کند.




3- دکمه
Properties را در نوار ابزار کليک می کنيم. SQLServer کادر محاوره ای Tables Properties را باز می کند.

4- نام جدول را به 5
Lesson تغيير می دهيم.

5-
Close را کليک می کنيم. SQL Server کادر محاوره ای Properties را می بندد.

اضافه کردن ستونها به يک جدول
اگر چه يک جدول يک
Properties معين برای خود دارد. از قبيل نامی که ما در تمرين آخر به کار برديم. يک جدول اصولاً به وسيله ستونها که در آن موجود است تعريف می شود.

اضافه کردن يک ستون عددی به جدول

1-
My Number را در سل Column Name تايپ کرده و سپس Tab را فشار می دهيم. SQL Server، char را به عنوان نوع داده پيشنهاد می دهد.

2- نوع داده را برای
decimal تغيير می دهيم. SQL Server طول ستون را به 9 تغيير داده و صحت، مقياس و مشخصات فيلدها را تأييد می کند.

3- در سل
Description ، Sample Numeric Column را تايپ می کنيم.
4-
Precision ستون را به 5 و Scale را به 2 تغيير می دهيم. SQL Server طول ستون را به 5 برای نمايش دادن Precision جديد تغيير می دهد.


شرح ستون
توانايی اضافه کردن يک شرح برای يک ستون در
enterprise Manager در 2000 SQL Server جديد می باشد که بخشی از عامليت جديد است که به طور extended Properties شناخته می شود. مايکروسافت مقداری از خصوصيات گسترده شده را از قبيل Column description به عنوان بخشی از نصب Server استاندارد ايجاد کرده است. شما می توانيد به طور کلی خصوصيات گسترده شده را برای ذخيره اطلاعات ويژه سايت يا اطلاعات ويژه کاربردی در حدود شئی های پايگاه داده ايجاد کنيد. extended Properties نام کاربر تعريف شده و يک مقدار دارد که مقاديری از يک extended Properties مقادير sql - variant می باشد که می تواند شامل بيش از 7500 بايت از داده ها باشد. شما می توانيد extended Properties چندگانه را برای هر شئی با استفاده از روشهای ذخيره شده تعريف کنيد. برای اطلاعات بيشتر در مورد روشهای ذخيره شده (Stored Procedures) به درس 28 رجوع کنيد.

Precision و Scale (دقت و مقياس)
دقت يک ارزش عددي مقدار ماكزيمم از رقمهاي
decimal است كه ارزش آن را نشان مي دهد. براي سمت چپ و راست از نقطه Decimal . مقياس يک ارزش عددی رقمهای سمت راست از نقطه Decimal مي باشد. براي مثال، مقدار عددي 311 . 3647 يك دقت 7 دارد (مجموع شماره رقمها) و يك مقياس 3 (رقمهاي سمت راست از نقطه Decimal) را دارا مي باشد. آن مهم مي باشد كه بدانيم دقت و مقياس ارزش يك عدد بر روي طول يك ستون تأثير نمي گذارد. نوع داده طول ستون را تعيين مي كند. دقت و مقياس تعيين مي كند كه چگونه SQL Server داده هاي ذخيره شده در ستونها را تفسير مي كند.

اضافه كردن يك ستون
Identity به جدول
1- در يك سل خالي در ستون
Column Name كليك مي كنيم.Myidentity را تايپ كرده و سپسTab را فشار مي دهيم. SQL Server ، char را به عنوان يك نوع داده پيشنهاد مي كند.

2- نوع داده ها به
decimal تغيير مي دهيم. SQL Server طول ستون را به 9 تغيير داده و فيلدهاي Identity و Scale و Precision را تأييد مي كند.

3-
Allow Nulls را تيك مي كنيم.




Nulls
ارزش
Nulls يك نوع خاصي از يك ارزش در تكنولوژي رابطه اي مي باشد كه استفاده مي شود براي نشان دادن اينكه يك ارزش ناپيدا يا غير موجود مي باشد استفاده كردن از Nulls قدري پيچيده و مسئله ساز و قطعاً مورد بحث مي باشد.
4- در سل
Description و Sample Identity Column را تايپ مي كنيم.
5- فيلد
Identity را به Yes تغيير مي دهيم (نه براي Replication)SQL Server براي هر دوي از فيلد Identity Seed و فيلد Increment Identity مقدار 1 را پيشنهاد می دهد.


ارزشهاي
Identity
زماني كه شما خصوصيات
Identity يك ستون را تنظيم مي كنيد، شما به SQL Server مي گوييد كه يك مقدار را در داخل ستون كه به طور واحد هر سطر را مشخص مي كند قرار دهد. نوع داده انتخاب شده ماهيت دقيق از ستون را تعيين مي كند. ستونهاي Identity مي توانند نوع داده هايي مانند int و Smallint و tinyint يا decimal داشته باشند. زماني كه SQL Server يك سطر را در داخل يك جدول كه داراي يك ستون Identity است قرار مي دهد. آن به طور خودكار ارزشي براي ستون مبني بر ارزش استفاده شده اخير (كه با Identity Seed شروع مي شود) و Identity Increment مشخص شده زماني كه جدول ايجاد شده بود ايجاد مي كند. براي مثال، اگر يك ستون Identity به عنوان يك Small int با Identity Seed ، 50 و يک Identity Increment ، 5 تعريف شود اولين سطر عدد 50 و دومين سطر 55 و سومين سطر 60 و غيره تخصيص داده می شود فقط يک ستون در يک جدول می تواند تنظيمات Identity Property را داشته باشد.







اضافه کردن ستون
GUID به جدول
1- در يك سل خالي در ستون
Column Nameكليك کرده، My Guid را تايپ کرده و سپس Tab را فشار می دهيم. SQL Server ، نوع داده char را پيشنهاد می دهد.

2- نوع داده را به
Uniqueidentifier را تغيير می دهيم. SQL Server طول ستون را به 16 تغيير داده و فيلد IsrowGuid را تأييد می کند.

3- در سل
Description ، Sample Guid تايپ می کنيم.
4-
IsrowGuid را به Yes تغيير می دهيم. SQL Server يک مقدار پيش فرض به Newid( ) می دهد.


GUIDS
Guid که از GloballyUniqueIdentifier گرفته شده، يک مقادير باينری (1 و 0) 16 بايتی می باشد که هيچ کامپيوتر ديگری در دنيا نخواهد مقدار آن را توليد کند. نوع داده uniqueidentifier برای ذخيره کردن Guids استفاده می شود. SQL Server به طور خودکار مقادير Guid را از همان راهی که مقادير Identity ايجاد می شود، فراهم نمی کند. زيرا يک جدول می تواند شامل Guids چندگانه باشد، اما فقط يک Identity منحصر به فرد باشد. اگر چه، تابع NEWID که SQL Server آن را به صورت پيش فرض در نظر می گيرد زمانی که خصوصيات IsrowGuid ، Yes می شود. يک Guid جديد بر خواهد گشت زمانی که سطر قرار داده می شود.

اضافه کردن يک ستون
Data در جدول
1- در يک سل خالی در ستون
Column Name کليک کرده، Mydata را تايپ کرده و سپس Tab را فشار می دهيم. SQL Server ، char را به عنوان نوع داده در نظر می گيرد.

2- نوع داده را به
datetime تغيير می دهيم. SQL Server طول ستون را به 8 تغيير می دهد.

3- در سل
Sample Date Column Description را تايپ می کنيم.

اضافه کردن يک ستون
Character به جدول
1- در يک سل خالی در ستون
Column Name کليک کرده، Mychar را تايپ و سپس Tab را فشار می دهيم. SQL Server ، char را به عنوان نوع داده در نظر می گيرد.


انواع داده های
Character
SQL Server دو نوع مختلف از ستونها Character را پشتيبانی می کند. طول ثابت شده و طول متغير که هر کدام در دو ""Flavors مختلف Unicode و Non-Unicode و 3 طول متفاوت می باشند. Unicode يک روش از علامت کد گذاری می باشد که انواع بايتهای دابل را پشتيبانی می کند. اگر يک ستون به طور طول متغير نمايان شود (برای مثال، varchar يا text برای داده های Non-Unicode و nvarchar و ntext برای داده هایUnicode ) و SQL Server فقط خصوصيت داده های معين وارد شده را ذخيره خواهد ساخت. از طرف ديگر اگر ستون به صورت طول ثابت شده نمايان شود (char برای Non-Unicode داده nchar برای داده های Unicode) و SQL Server مقادير وارد شده را با فضاهای Pad خواهد کرد.
2- طول ستون را به 25 تغيير می دهيم.
3- در سل
Description ، Sample CharacterColumn را تايپ می کنيم.
4-
Unknown را در سل Default Valve تايپ می کنيم (اطمينان حاصل کنيد که اطراف کلمه ويرگول داشته باشد).


مقادير پيش فرض
يک
Default Valve يک عددی می باشد که در داخل يک ستون قرار خواهد گرفت اگر کاربر به طور آشکار يکی را فراهم نکند. ما تاکنون دو نوع ويژه از مقادير پيش فرض را ديده ايم default Values به وسيله SQL Server تهيه می شود زمانی که شما IdentityProperty را تنظيم می کنيد و تابع NEWID به وسيله SQL Server تهيه می شود زمانی که شما IsrowGuid را تنظيم می کنيد. در حقيقت، شما می توانيد مقادير پيش فرض را برای هر ستون مشخص کنيد. مقادير پيش فرض می تواند دائمی باشد مانند "Unknown" يا 123 توابعی از قبيل NEWID يا GETDATE يا عبارات رياضی مانند 5+3 .

ذخيره کردن و بستن جداول
1- دکمه
Save را در نوار ابزار Table Designer کليک می کنيم. SQLServer تعريف جدول را ذخيره می سازد.
2- پنجره را می بنديم.

مديريت جداول
اگر چه "
Best Practice" امر می کند که طراحی پايگاه داده تان بايد ثابت باشد قبل از اينکه شما پياده سازی را شروع کنيد. خوشبختانه SQL Server به انجام رسانی وظايف نگهداری را آسان می سازد.

تغيير دادن ستونها
شما می توانيد مجدد
Table Designer را برای يک جدول به وسيله کليک راست کردن نام جدول در قاب Details باز کنيد و Design Table را از منوی Context انتخاب کنيد. همان موقعی که Table Designer باز می شود شما می توانيد خصوصيات ستونهای موجود را تغيير دهيد آنها را حذف و يا ستون جديدی را اضافه کنيد.

تغيير نام يک ستون
1- پوشه
Tables را برای پايگاه داده Aromatherapy در درخت Console انتخاب می کنيم. SQL Server يک ليستی از جداول در قاب Details را نشان می دهد.

2- جدول 5
Lesson را در قاب Details کليک راست کرده و Design Table را انتخاب می کنيم. SQL Server ، TableDesigner را باز می کند.

3-
Mychar را در سل Column Name انتخاب و MyCharacter را تايپ می کنيم. SQL Server ، Column Name را تغيير می دهد.

4- دکمه
Save را در نوار ابزار Table Designer کليک کرده و تغييرات را ذخيره می سازيم.

برداشتن يک ستون
1- ستون
Mydate را به وسيله کليک کردن روی grayBoy در سمت چپ از Column Name انتخاب می کنيم.

2- کليد
Delete را فشار می دهيم. SQL Server ستون را برمی دارد.

3- کليد
Save را برای ذخيره کردن تغييرات کليک می کنيم.
4- پنجره
Table Designer را می بنديم.

تغيير دادن جداول
به طور کلی برای تغيير تعريف ستونهای يک جدول،
Enterprise Manager تغيير نام دادن جداول را آسان می سازد و جداول را از پايگاه داده حذف می کند.

تغيير نام يک جدول
1- پوشه
Table را در پايگاه داده Aromatherapy در درخت Console راهبری می کنيم. SQL Server يک ليستی از جداول در قاب Details نشان می دهد.

2- جدول 5
Lesson را در قاب Details کليک راست کرده و Rename را انتخاب می کنيم.
3-
New Lesson 5 را تايپ و Enter را فشار می دهيم. SQL Server کادر محاوره ای Rename را نشان می دهد که به شما اخطار می کند که تغيير در نام جدول هر رابط برای آن را در شئی های ديگر، باطل خواهد کرد.






4-
View Dependencies را برای نشان دادن هر شئی که ممکن است به وسيله تغييرات تأثير يابد را کليک می کنيم. SQL Server کادر محاوره ای Dependencies را باز می کند.

5-
Close را برای مرخص کردن کادر محاوره ای کليک می کنيم.
6-
Yes را در کادر محاوره ای Rename برای تأييد تغيير نام کليک می کنيم. SQL Server نشان می دهد يک متنی را که تکميل موفقيت آميز تغيير نام را تأييد می کند.


برداشتن يک جدول
1-
New Lesson 5 را در قاب Details انتخاب می کنيم.
2- کليد
Delete را فشار می دهيم. SQL Server کادر محاوره ای Drop Object را نشان می دهد.

راهنمايی: شما می توانيد دکمه
Show Dependencies را برای نشان دادن هر Objects که متأثر خواهد شد به وسيله حذف جدول کليک کنيد.
3-
DropAll را کليک می کنيم. SQL Server جدول را از پايگاه داده برمی دارد.
مهم: زمانی که شما يک جدول را حذف می کنيد، جدول و همه داده هايش به طور دائمی از پايگاه داده برداشته می شود و تنها راه برای بازگرداندن آن نسخه پشتيبان پايگاه داده می باشد.
 

hossein_ok

کاربر
2006-10-24
443
650
ايجاد کردن يک پايگاه اطلاعاتی



در محيط SQL Server شما جداول، نماها و ديگر شیءها که مربوط به تنظيم اطلاعات در يک پايگاه داده می باشد را ذخيره می کنيد. بنابراين اولين گام برای نمايش دادن يک برنامه پايگاه اطلاعاتی، به طور آشکار، ايجاد پايگاه داده می باشد و در اين درس خواهيم آموخت که چگونه آن را انجام دهيم.

ايجاد کردن پايگاه داده ها
برای هر پايگاه داده منطقی، SQL Server دو فايل فيزيکی ايجاد می کند: يکی برای Objects و ديگری برای Transaction Log .
راهنمايی: اگر چه به وسيله SQL Server پيش فرض يک محل يکسان برای هر دوی پايگاه داده فايل و Transaction Log پيشنهاد می کنيم. در يک سيستم Production شما بايد معمولاً Transaction Log را در يک محلی ديگر ترجيحاً روی يک ماشين ديگر ذخيره سازيد که آن را ممکن می سازد به بازگرداندن پايگاه داده در حالتی از ناتوانی سخت افزار که خوانده شدن از ديسک جلوگيری می کند.

ايجاد کردن يک پايگاه داده جديد
اگر چه آن ممکن است به ايجاد يک پايگاه داده جديد به وسيله انتخاب دستور New Database در منوی محتويات پوشه Database که ساده ترين راه برای استفاده کردن از Create Database Wizard می باشد.







ايجاد يک پايگاه داده جديد
1- پوشه Database را از Server که شما استفاده می کنيد برای اين درسها راهبری می کنيم. SQL Server ليستی از پايگاه داده را در قاب Details نشان می دهد.

2- دکمه Wizard را روی نوار ابزار Manager Enterprise کليک می کنيم. SQL Server کادر محاوره ای The Select Wizard را نشان می دهد.





3- Create Database Wizard را از بخش Database انتخاب کرده و OK را کليک می کنيم. SQL Server اولين صفحه از Wizard را نشان می دهد.

4- Next را کليک کرده Create Database Wizard يک صفحه که نام و محل پايگاه داده را درخواست می کند نشان می دهد.

5- 4 Lessen را در فيلد نام پايگاه داده تايپ می کنيم.
6- دکمه Brows را برای تغيير محل فايل پايگاه داده کليک می کنيم. ويزارد يک کادر محاوره ای را که محل جديد را درخواست می کند نشان می دهد.

مکانهای فايل پايگاه داده
زمانی که SQL Server اولين بار نصب می گردد، آن در محل پيش فرض MS SQL / Data برای فايلهای پايگاه داده جديد در پوشه آنجايی که Server نصب می گردد قرار می گيرد. اين پيش فرض در The Create Database Wizard تعبيه شده است. برای تغيير دائمی پيش فرض شما می توانيد يک مکان جديد روی زبانه Settings پايگاه داده از کادر محاوره ای SQL Server Properties برقرار کنيد که در دسترس می باشد. با کليک راست کردن Server در درخت Console ، Properties را انتخاب کرده سپس زبانه Settings پايگاه داده را انتخاب می کنيم.

6- پوشه Step by Step 2000 The SQL را به ريشه دايرکتوری هدايت کرده و سپس OK را کليک می کنيم. ويزارد مکان فايل پايگاه داده را برای دايرکتوری انتخاب شده فراهم می کند.
7- دکمه Browse را برای تغيير موقعيت Transaction Log کليک می کنيم. ويزارد يک کادر محاوره ای که يک موقعيت جديد را درخواست می کند نشان می دهد.

8- پوشه Step by Step 2000 SQLرا به ريشه دايرکتوری فرستاده و سپس OK را کليک می کنيم. ويزارد مکان فايل Log Transaction را برای دايرکتوری انتخاب شده تنظيم می کند.
9- Next را کليک می کنيم. ويزارد يک صفحه ای که نام و اندازه اوليه برای فايل پايگاه داده درخواست می کند نشان می دهد.

10- Next را کليک می کنيم. ويزارد نشان می دهد صفحه ای که به شما اجازه می دهد به انتخاب اينکه آيا فايلهای پايگاه داده به طور خودکار افزايش می يابد و يا اينکه فقط زمانی که شما آنها را بسط می دهيد افزايش می يابد. برای اين تمرين تنظيمات پيش فرض را می پذيريم.





11- Next را کليک کرده ويزارد يک صفحه ای را که از شما نام و سايز اصلی برای Transaction Log را درخواست می کند نشان می دهد.

12- Next را کليک کرده ويزارد يک صفحه ای را نشان می دهد که اجازه می دهد به شما انتخاب کنيد که آيا Transaction File بايد به طور خودکار افزايش يابد.

13- Next را کليک کرده ويزارد يک صفحه ای را برای تأييد انتخابهايی که شما ساخته ايد نشان می دهد.

14- Finish را کليک کرده ويزارد پايگاه داده و فايلها Transaction Log را ايجاد می کند و سپس می پرسد آيا شما می خواهيد يک طرح نگهداری برای پايگاه داده جديد ايجاد کنيد.

15- NO را کليک کرده ويزارد بسته می شود.

تنظيمات خصوصيات پايگاه داده
زمانی که شما با Create Database Wizard يک پايگاه داده ايجاد می کنيد. شما مشخصه يا خصوصيات از پايگاه داده را مشخص می کنيد مانند نام پايگاه داده و مکانهای فايل. بعد از اينکه پايگاه داده ايجاد می شود، شما می توانيد اين خصوصيات را به وسيله تغيير دادن تنظيمات appropriate در کادر محاوره ای databases Properties تغيير دهيد.
برای مثال بزرگ کردن اندازه فايل داده فيزيکی Growing The File در عبارت SQL Server هست به طور واضح يک عملياتی که به آهستگی زمان مسئوليت پذيری جواب گويی Server را پايين می آورد. اگر شما پيدا کنيد SQL Server که اغلب مجبور به بزرگ کردن فايل می باشد، ممکن است شما تغيير تنظيمات درصد رشد فايل را در کادر محاوره ای Properties مورد ملاحظه قرار دهيد. بنابراين Server فايل را بيش تر از ارزش پيش فرض 10 درصد رشد خواهد شد.

تغيير درصد رشد فايل پايگاه داده
1- پايگاه داده 4Lesson را در درخت Console انتخاب می کنيم.
2- دکمه Properties را در نوار ابزار کليک می کنيم. SQL Server کادر محاوره ای databases Properties را نشان می دهد.

3- زبانه Data Files را کليک کرده SQL Server خصوصياتی از فايلهای داده پايگاه داده را نشان می دهد.

4- درصد رشد 20 درصد قرار می دهيم.

5- را کليک می کنيم. SQL Server يک خصوصيت جديد را ايجاد کرده و کادر محاوره ای Properties را می بندد.

مديريت پايگاه داده ها
به طور کلی برای تغيير دادن خصوصيات يک پايگاه داده، شما گاه گاهی نياز به حذف همگی آنها خواهيد داشت که Manager Enterprise آن را خيلی ساده می سازد.
نکته: کارهای مديريت ديگری که شما ممکن بخواهيد به انجام رسانيد نامگذاری مجدد پايگاه داده، در داخل Manager Enterprise نمی تواند انجام شود. ما در درس 28 خواهيم آموخت که چگونه يک پايگاه داده را مجدد نامگذاری کنيم.


حذف کردن يک پايگاه داده
زمانی که پايگاه داده ای که ايجاد کرده ايد خيلی زياد مورد نياز نباشد. شما می توانيد آن را از Server حذف کنيد. حذف يک پايگاه داده هر دوی فايلهای فيزيکی گردآوری شده با پايگاه داده و همه منابع پايگاه داده در جداول سيستم را برمی دارد.
راهنمايی: آن يک نظر خوبی است که يک نسخه پشتيبان از پايگاه داده های سيستم بعد از اينکه پايگاه داده حذف می گردد ايجاد کنيم.

حذف يک پايگاه داده
1- پايگاه داده 4 Lesson را در درخت Console انتخاب می کنيم.
2- کليد Delete را فشار می دهيم. SQL Server يک متنی که از شما برای تأييد حذف درخواست می کند نشان می دهد.

4- Yes را کليک کرده SQL Server جايگاه داده ها و همه منابع گردآوری شده را از Server برمی دارد.
 

hossein_ok

کاربر
2006-10-24
443
650
ايجاد کردن شئی های جدول




ايجاد کردن شئی های جدول
در درسهای گذشته، شما آموختيد که چگونه خصوصيات گوناگون از قبيل مقادير پيش فرض و Check Constraints برای ستونهای خاص از يک جدول تخصيص دهيم. بعضی مواقع اگر چه، يک نوع خاص از ستون در چندين جدول مختلف استفاده می گردد. در اين وضعيت، آن اغلب مفيد می باشد به ايجاد Properties در يک جای جداگانه به طوری که آنها را برای هر جدول به کار ببريم.
پيش فرضها، نقشها و انواع داده تعريف شده کاربر مکانيزمی را برای ايجاد و نگهداری اين شئی ها در يک مکان جداگانه فراهم می آورند. برای مثال شما يک مدل پايگاه داده برای جوابگويی به ارزيابی مشتری می سازيد. شما در ابتدا تصميم می گيريد که مقدار پيش فرض برای هر سؤالی که جواب داده نشده بايد Unknown"" شوند. اگر شما يک پيش فرض ايجاد کنيد و پيش فرضها را برای ستون مناسب پيوند دهيد. شما می توانيد بعداً پيش فرض را به Unanswered تغيير دهيد. بدون هيچ تغييری هر ستون، آن پيش فرض را استفاده می کند.

شناخت پيش فرضها
توابع پيش فرض از همان راهی که خصوصيات پيش فرض که شما مشخص می کنيد زمانی که شما يک ستون در Table Designer ايجاد می کنيد آنها مقاديری هستند که به طور خودکار به وسيله SQL Server تخصيص داده می شوند. اگر کاربر يک مقدار را زمانی که سطری را ايجاد می کند مشخص نکند. اگر چه پيش فرض، شئی های سطح پايگاه داده می باشند که می تواند برای چندين ستونها به کار برده شوند.

ايجادکردن پيش فرضها
از موقعی که پيش فرض، شئی های مستقل در داخل پايگاه داده هستند، شئی بايد پيش فرض را ايجاد کند قبل از اينکه شئی بتواند آن را برای يک ستون جدول متصل سازد.

ايجاد کردن يک پيش فرض
1- پوشه Defaults را از پايگاه داده Aromatherapy از درختConsole جستجو می کنيم. SQL Server يک ليستی از Default ها را در قالب Details نشان می دهد. (چيزی در پايگاه داده Sample وجود ندارد).

2- دکمه Newرا کليک کرده، SQL Server کادر محاوه اي Default Properties را نشان می دهد.

3- در فيلدName ، Default Unknown را تايپ مي کنيم.

4- "Unknown" را در فيلد Value تايپ می کنيم.

5- OK را کليک کرده،SQL Server پيش فرض را ايجاد می کند.

ربط دادن يک پيش فرض به يک ستون
1- پوشهTables را راهبری کرده، Table Designer را برای جدول Oil با کليک راست کردن نام جدول در قاب Details باز کرده و Table Design را انتخاب می کنيم.

2- يک ستون جديد برای جدولی که Sample ناميده شده اضافه می کنيم. انواع داده پيش فرض را پذيرفته و طول آن به وسيله SQL Server پيشنهاد می گردد.

3- فيلد Default Valve را برای ستون کليک کرده و سپس dbo.DefaultUnknown را از ليست انتخاب می کنيم.

4- دکمه Save را کليک کردهSQL Server جدول را ذخيره می کند.

قطع پيوند يک پيش فرض
1- اگر Table Designer برای جدول Oilsاز تمرين قبل باز نيست، آن را به وسيله کليک راست کردن نام جدول در قاب Pet ail> باز کرده و Design Table را انتخاب مي کنيم. SQL Server، Table Disdainer را باز مي کند.

2- ستون Sampleرا انتخاب کرده، Table Designerخصوصيات اين ستون را نشان می دهد.

3- dbo.DefaultUnknown را در فيلد Default Value انتخاب کرده و کليد Delete را برای برداشتن مقدار فشار می دهيم.

4- دکمه Save راکليک کرده SQL Server تغييرات برای تعريف ستون را ذخيره می سازد.

شناخت نقشها
نقشها مانند پيش فرضها سطوح شئی های پايگاه داده می باشند که می تواند برای ستونها در جداول چندگانه به کار برده شوند. يک نقش Check Constraint موجود می باشد که مشخص می کند مقادير داده ها در يک ستون مورد قبول می باشند، اما استفاده از آن بيشتر محدود شده است. يک ستون می تواند چندين Check Constraintداشته باشد که برای آن به کار برده می شود.
راهنمايی: مايکروسافت نقشها و توصيه ها را که با Check Constraint جايگزين می شود را درست نمی داند. اگر چه نقشها هنوز جايگاهشان را در پايگاه داده هایSQL Server دارند از زمانی که فقط يک وظيفه بتواند برای نوع داده هايی که به وسيله SQL Server تعريف شده به کار برده شود.
برخلاف Check Constraint ، يک نقش نمی تواند مبنايی برای يک ستون به طور مستقيم باشد. در عوض، مقاديری که يک نقش به کار می برد به نقشی که در يک متغيری که فرمت@Variable Name مي گيرد داده می شود. در مورد متغيرها در Detail در فصل 24 بحث خواهيم کرد.

ايجاد کردن نقشها
از زمانی که نقشها مانند Defaults مستقل از شئی های پايگاه داده می باشند، شما بايد آنها را قبل از اينکه شما بتوانيد آنها را برای يک ستون در جدول به کار ببريد ايجاد کنيد.

ايجاد يک نقش
1- پوشه نقش را از پايگاه داده در درخت Console راهبری کرده SQL Server يک ليستی از نقشها در پايگاه داده نشان می دهد. (ليست در پايگاه داده Sample خالی می باشد)

2- دکمه New را کليک کردهSQL Server کادر محاوره ای را باز می کند.

3- Sample Rule را به عنوان نام نقش تايپ می کنيم.

4- LEN(@Fldalue)>3 را به عنوان متن نقش تايپ می کنيم.

راهنمايی: به خاطر داشته باشيد LEN يک تابعTransact SQL می باشد که تعدادی از کاراکترها را در يک متن رشته ای برمی گرداند و اينکه @ قبل از يک بر چسب عبارتTransact SQL يک متغيــر را نشان می دهد، يک مقدار که برای عبارت داده می شود. بنابراين در اين حالت نقش Trueمی گردد اگر طول ستون بزرگتر از 3 باشد.
5-OK را کليک کرده، SQL Server کادر محاوره ای Rule Properties را می بندد و نقش را ايجاد می کند.

ربط دادن يک Rule به يک ستون
1- کادر محاوره ای Rule Properties را برایSample Rule به وسيله دابل کليک کردن نام Rule در قاب Details باز می کنيم. SQL Server کادر محاوره ای Rule Properties را نشان می دهد.

2- ستونBind را کليک کرده SQL Server کادر محاوره ایBind Rule to Columns را نشان می دهد.

3- [dbo].[Oils] را درTable Combo Box انتخاب می کنيم.SQL Server فيلدها را در جدول Oils نشان می دهد.

4- ستون Sample را در ليست Unbound Columns انتخاب کرده و سپس Add را کليک می کنيم. SQL Server ستون را به ليست Bound Columns حرکت می دهد.

5- SQL Server کادر محاوره ايBind Rule to Columns را می بندد.
6-OK را مجدداً برای بستن کادر محاوره ای Rule Properties کليک می کنيم.

شناخت User-Defined Data Types
نقشها و پيش فرضها مکانيزم مفيدی برای نگهداری محدوديتهای پايگاه داده ها می باشند، اما SQL Server حتی مکانيزم قوی تری در User-Defined Data Typesها فراهم می آورد. User-Defined Data Types بر مبنای هيچ نوع از پايگاه داده حقيقی مشخص نمی گردد و شامل مشخصاتی از طول ستون می باشد. به طور کلی نقشها و پيش فرضها ممکن است به طور انتخابی برای يکUser-Defined Data Types به کار برده شوند. زمانی که يک ستون بر مبنای يک User-Defined Data Typesايجاد می گردد، ستون جدول همه خصوصيات مشخص شده را برای آن نمونه به ارث خواهد برد. زمانی که مشخصات از User-Defined Data Typesتغييرمی يابد،نقشها برای ستونها بر اساس آن نمونه همچنين تغيير خواهد کرد.
راهنمايی: اگر يک User-Defined Data Type در پايگاه داده Model ايجاد گردد، همه پايگاه داده جديد به طور خودکار به آن نوع دسترسی خواهد داشت.

ايجادکردن User-Defined Data Types
User-Defined Data Types از شئی های پايگاه داده مستقل می باشند و بايد در داخل پايگاه داده تعريف شوند قبل از اينکه آنها بتوانند به ستونها تخصيص داده شوند.

ايجاد کردن يک User-Defined Data Types
1- پوشه User-Defined Data Types را از پايگاه داده Aromatherapy راهبری می کنيم. SQL Server يک ليستی ازUser-Defined Data Types را نشان می دهد (چيزی در پايگاه داده Sample وجودندارد).

2- دکمه New را کليک کرده SQL Server کادر محاوره اي User-Defined Data Types را نشان می دهد.

3- MySample را به عنوان نام User-Defined Data Types تايپ می کنيم.

4- نوع داده پايگاه را varchar و طول آن را 20 قرار می دهيم.

5- Dbo.Sample Rule را در Rule Combo Box انتخاب می کنيم.

6- مقادير پيش فرض برای Allow Nulls و گزينه های پيش فرض را می پذيريم و OKرا کليک می کنيم. SQL Server ، User-Defined Data Types را ايجاد می کند.


تخصيص يک ستون برای يک User-Defined Data Types
1- Table Designer را برای جدول Oils به وسيله کليک راست کردن نام آن در قاب Details باز می کنيم و Details Table را انتخاب می کنيم. SQL Server ، Table Designer را باز می کند.

2- ستون Sample را انتخاب کرده وMySample را از Data Type Combo Boxرا انتخاب می کنيم. Data Type , SQL Server را برای MySampleقرار می دهد.
راهنمايی: User-Defined Data Types در پايين ليست Data Type می باشد.

3- دکمهSave را کليک کردهSQL Server جدول را با تعريف جديد ذخيره می سازد.
 

hossein_ok

کاربر
2006-10-24
443
650
آموزش SQL Server (قسمت اول)

مفاهيم ابتدائي

مقدمه :*

كاربرد روز افزون بانك اطلاعاتي SQL مرا بر آن داشت تا مطالبي هر چند كوتاه جهت خوانندگان محترم سايت تهيه نماييم. قبلا از هر چيز لازم به ذكر است كه مطالب ذيل در حد آشنايي بوده و دوستا براي دستيابي به تكنيكهاي بيشتر مي بايست از كتابهاي مرجع و Book online خود SQL Server استفاده نمايند. در مطالب زير كه سلسله وار مباحث SQL Server را مرور خواهيم كرد , سعي شده تا ابتدا مطالب مقدماتي جهت آشنايي آورده شود و سپس اگر عمري باقي بود به مطالب پيشرفته آن بپردازيم. همچنين براي يادآوري خدمت دوستان ابتدا مرور سريعي بر چند دستور SQL كه كاربرد بيشتري دارند خواهيم پرداخت و سپس به SQL Server و مطالب آن خواهيم پرداخت . مطالب زير اكثرا از كتاب Microsoft SQL Server 7.0 Database Implementation Training انتخاب گرديده است . اين كتاب به همراه CD*آموزش آن به عنوان يك مرجع براي امتحانات مايكروسافت استفاده مي*شود.

جداول بكار رفته نيز همگي در SQL Server 7.0 در Database Northwind موجود هستند.

دستور Select

اين دستور كه دستوري مستقل نيست و حتما بايد با اجزايي بكار رود جهت ساخت پرس و جو بر روي بانك اطلاعاتي بكار مي*رود و ركوردهايي كه با شرايط اين دستور همخوان باشد به عنوان نتيجه پرس و جو برمي*گرداند . چهار كلمه كليدي وجود دارند كه بخشهاي ارزشمند اين دستور را تشكيل مي*دهند :

1- select

2- from

3- where

4- order by


شكل كلي دستور :

Select [*|distinct column1, column2,…]

From table[,table2,…]

Where شرط

Order by نام فيلد يا شماره فيلد

مثال :

Select * from customers

اين دستور تمام ركوردهاي جدول customers را برمي*گرداند.

كه نتيجه 91 سطر از اطلاعات اين جدول خواهد بود

حال اگر شرط Country ='uk' اضافه كنيم ، فقط اطلاعات مشتريان انگليس جواب خواهند بود كه به 7 سطر تقليل مي*يابد.


select * from customers

where Country ='uk'

حال

select City,Country from customers

order by city

فقط ستونهاي نام شهر (city) و نام كشور (Country) را بر گردانده و بر اساس نام شهر مرتب ميكند. دستور بالا با دستور پايين هردو يك جواب را ميدهند :

select City,Country from customers

order by 1

كه 91 سطر بازگردانده خواهد شد . در نتيجه پرس و جو تعدادي سطر تكراري وجود دارد مانند شهر London كه اگر از كلمه Distinct* در Select استفاده كنيم اين سطرهاي تكراري حذف خواهد شد .

select distinct City,Country from customers

order by 1

و جواب 69 سطر خواهد بود.

استفاده از توابع در Select

1- Count : تعداد سطرهاي بازگردانده شده توسط select را ميشمارد.

Select Count(*) from Customers

where Country ='uk'

در اصل تعداد مشترياني را ميشمارد كه در كشور انگليس هستند. كه عدد 7 جواب است.

2- Sum : مجموع يك فيلد عددي را برمي*گرداند.

Select sum(Quantity) from [Order Details]

where productid = 11

مجموع فيلد Quantity را براي فيلدهايي كه شماره محصول آنها ( Productid) برابر 11 است را محاسبه ميكند

نكته 1 : در دستور select مي*توان از اسم مستعار استفاده كرد ، يعني نام جديدي را براي يك ستون در نظر گرفت به عنوان مثال select قبل را به شكل زير بكار برد :

Select sum(Quantity) as Sum_QTY

from [Order Details]

where productid = 11

كه Sum_QTY يك اسم مستعار براي مجموع است. استفاده از كلمه كليديas *اختياري است.

نكته 2 : در دستور select هرگاه اسم فيلدي اسم خاص باشد و يا فاصله بين اسم باشد مثل Order Details كه فاصله بين اسم جدول است حتماُ از علامت براكت [] ميبايست استفاده كرد.

نكته 3 : استفاده از group by :

هنگامي كه از توابع count * و Sum به همراه يك فيلد ديگر در دستور select استفاده مي*شود از group by استفاده مي*كنيم .

به عنوان مثال دستور زير جمع مقادير فيلد Quantity را براي هر شماره محصول محاسبه ميكند .

Select productid, sum(Quantity) as sum_qty

from [Order Details]

group by productid

كه نتيجه مانند زير خواهد بود :

productid sum_qty

----------- -----------

61 603

3 328

32 297

6 301

41 981

64 740

9 95

12 344

در صورتيكه دستور ordr by 1 بعد از group by استفاده كنيم نتيجه بر اساس كد محصول مرتب خواهد شد.

نكته 4 : دستور where مي تواند خود شامل يك دستور select باشد :

select * from Products

where ProductID in

( select distinct ProductID from [order details] where Quantity >70)

order by ProductID

تنها نكته اي كه مي بايست توجه كرد اين است كه نام فيلدي كه در شرط آورده مي شود حتما در دستور select آورده شود, به عبارت ديگر select درون شرط تنها يك ستون را مي بايست برگرداند .

تمرين : با فرض اينكه دو جدول Products و order details داراي ستون (فيلد) يكسان ProductID هستند , يك دستور Select بنويسيد كه تمام فيلدهايي از Products را نشان دهد كه فيلد ProductID آن با ProductID جدول order details يكي باشد.؟

حل :

Select pr.*

From Products as pr , [order details] as od

Where pr. ProductID = od. ProductID


قابل به ذكر است كه بيش از 90% از كارهايي كه ما برروي جداول انجام مي دهيم با select و تركيبات آن انجام مي شود. لذا بدست آوردن تبحر در نوشتن select ها مي تواند شما را در تهيه برنامه ها ياري كند.


3- Min,max : بيشترين و كمترين مقدار فيلد را در بانك اطلاعاتي بدست مي دهد.

Select min (Quantity)

from [Order Details]



4- Top n : تعداد n سطر اول بانك اطلاعاتي را برمي گرداند.

Select top 5 *

from [Order Details]

5 سطر اول بانك را برمي گرداند.


نكته 3 : در حالت بالا اگر مقدار سطر 5 و 6 يكي باشد فقط سطر 5 جواب خواهد بود براي گريز از اين حالت از شكل زير در اين دستور استفاده ميكنيم :

Select top n with ties *

From table

5- Into

Select * from table1 into table2

اطلاعات table1 را به table2 كپي ميكند. البته table2 بايد از قبل وجود نداشته باشد.

اين دستور خود table2 را ميسازد.


دستور select قويترين و كاربردي ترين دستور در sql است كه خود ماهها نيازمند تمرين و آموزش است . براي اطلاعات بيشتر به books online خود Sql Server مراجع كنيد.

دستور Delete

براي حذف اطلاعات از يك بانك اطلاعاتي استفاده ميشود.

شكل كلي دستور :

Delete table1

Where شرط

مثال :

فرض كنيد جدول authors موجود باشد و فيلد كليد آن au_id باشد. براي حذف 10 سطر اول اين جدول از دستور زير استفاده مي كنيم :


DELETE authors

FROM (SELECT TOP 10 * FROM authors) AS t1

WHERE authors.au_id = t1.au_id

دستور insert

براي اضافه كردن اطلاعات به يك جدول از اين دستور استفاده ميشود.

Insert into table1 (f1,f2,…)

Values (v1,v2,…)

كه f1,f2 نام فيلدها و v1,v2 مقادير آنها ميباشد.

البته ميتوانيد مقادير را نتيجه يك select قرار داد.

مثال :

Insert into table1

Select top 10

From table2

مقدار 10 سطر اول را از table2 را در table1 درج ميكند. البته بايد تعداد فيلدها يكي باشد. در غير اينصورت از values استفاده كنيد.
 

hossein_ok

کاربر
2006-10-24
443
650
آموزش SQL Server (قسمت دوم)

آموزش Enterprise Manager

ميتوان گفت قلب Sql Server است. در Enterprise Manager شما ميتوانيد يك اتصال به سرور Sql برقرار كنيد . table بسازيد. User تعريف كنيد و.....

علامت فلش سبز نمايانگر فعال بودن سرور است.
سرور ميتواند local باشد مانند بالا و يا يك Sqlserver باشد برروي يك سرور . براي ايجاد يك سرور جديد يا به عبارت ديگر وصل شدن client (ويندوز 98) به يك سرور ديگر بر روي يكي Microsoft Sql Server يا SQL Server Group و يا برروي سرور موجود كليك سمت راست كرده و گزينه New Sql Server Registratin را انتخاب كنيد. سپس كليد next را انتخاب كنيد. سپس در منوي بعدي در available Server نام سرور خود را تايپ كنيد . (نام سرور SQL خود را كه برروي ويندوز 2000 خود نصب كرده ايد) و بعد كليد add را فشار دهيد.و گزينه next را انتخاب كنيد.

در پتجره بعد از شما سوال ميكند كه آيا از username ويندوز استفاده كند و يا اينكه از يك username مخصوص خود Sql Server استفاده كنيد. گزينه دوم را انتخاب كرده و سپس Login Name و Password را وارد كنيد. (در حالت پيش فرض sa بعنوان login name و فضاي خالي بجاي Password وارد كنيد.) پس از چند بار فشار كليد next شروع به وصل شدن به Server ميكند. در صورت موفقيت آميز بودن با پيامي اين كار را اطلاع ميدهد.
از ديگر گزينه ها شما بيشترين استفاده را از Databases خواهيد كرد.
به عبارت ديگر هر كار و پروژه ما بعنوان يك Database در سرور sql قرار ميگرد. همه جداول و دستورات مربوط به آنها در اين محل نگهداري مي شود.
با كليك سمت راست برروي Databases و انتخاب New Database... ميتوانيد يك Database جديد براي خودتان بسازيد.


پس از انتخاب نام آن را تاييد كنيد.
هر Database شامل موارد زير است :
1- Diagram : ارتباط جداول را نشان ميدهد.
2- Tables : جداول پروژه را نشان ميدهد.
3- Views : ديدهاي پروژه را نشان ميدهد.
4- Stored Procedure : كدهاي sql مربوط به عملياتهاي روي جداول را نگهداري ميكند.
5- Users : كاربران تعريف شده بر روي اين database را نشان ميدهد.
6- Roles: قوانين دسترسي به جداول و پروسيجرها را نشان ميدهد.
7- Rules : قوانين مربوط به داده ها را در جداول نشان ميدهد.
گزينه هاي 7 به بعد كاربرد آنچناني براي كارهاي ابتدايي ندارند

ايجاد يك جدول جديد :
براي ايجاد يك جدول جديد بروي tables كليك سمت راست كرده و گزينه New Table را انتخاب كنيد. سپس در كادر بعدي نام جدول را انتخاب كنيد. حال فيلدها و نوع آنها را مشخص كنيد .
بعد از مشخص كردن نوع و احتمالاً طول فيلد , بايد مشخص كنيد كه آيا فيلد هميشه مي بايست مقدار داشته باشد و يا مي تواند null باشد. Allow Nulls اگر تيك داشته باشد يعني اينكه اين فيلد مي تواند هيچ مقداري به خود اختصاص ندهد.

تذكر : مقدار null را با فضاي خالي اشتباه نگيريد.

در قسمت Default Value مقدار اوليه براي فيلد وارد كنيد. تا در صورتيكه هيچ مقداري درج نشد آن مقدار درج شود. (در دستور insert )
اگر Identity را تيك بزنيد اين فيلد بشكل خود افزا خواهد شد كه اولا بايد نوع فيلد عددي و ثانيا مقدار گامها در Identity increment مشخص شود. مقدار اوليه آن را هم مي توانيد در Identity Seed قرار دهيد. بدين شكل با اين مقدار شروع و با گامهاي مشخص شده حركت خواهد كرد.

تذكر : هيچ مقداري در اين فيلد نمي توانيد درج كنيد , چراكه خود سيستم اين مقدار را توليد مي كند .

براي مشخص كردن فيلد كليد (يا فيلدهاي كليدي) فيلد(ها) را انتخاب و بر روي علامت كليد بر روي Toolbar كليك كنيد .

تذكر : فيلد كليدي نمي تواند Allow Nulls باشد.
تذكر : براي تعريف index كليك سمت راست كرده و index/keys را انتخاب كنيد .
( در مورد index بطور مفصل صحبت خواهد شد )

ايجاد Stored Procedure :
مانند هر زبان ديگر رويه ها در sqlServer نيز موجود مي باشند. و بكار ميروند. سه رويه insert , Updaet و Delete را مي توانيد براحتي با ويزاردهاي خود SqlServer بسازيد. از اينجا به بعد از واژه SP بجاي رويه استفاده خواهيم كرد.
ابتدا با ساختار كلي SP آشنا شده و سپس به ويزارد موجود خواهيم پرداخت.
براي ايجاد يك SP جديد ابتدا برروي گزينه Stored Procedure كليك سمت راست كرده و گزينه new Stored Procedure... را انتخاب كنيد. در پنچره بعدي شما مي توانيد متن SP را وارد كنيد.

1- نام sp : ابتدا بجاي [PROCEDURE NAME] يك نام براي SP خود در نظر بگيريد. من خود از ساختار زير بدين منظور استفاده ميكنيم : عمليات_نام جدول
عنوان مثال اگر نام جدول Sale و عمليات مورد نظر يك عمليات insert باشد نام SP را Sale_INSERT ميگذاريم. بهتر است نام عمليات با حروف بزرگ تايپ شود . البته بعضي از دوستان از سه حرف عمليات استفاده مي كنند. براي مثال بالا خواهيم داشت :Sale_INS .

2- تعريف پارامترها : براي تعريف پارامترهاي ورودي SP قبل از كلمه كليدي As آنها را داخل پرانتز مشخص كنيد. بدين شكل كه ابتدا علامت @ سپس نام پارامتر بعد فاصله و نوع پارامتر.
تذكر : تمامي متغييرها در SP از ساختار نام متغيير@ پيروي ميكنند.
بعنوان مثال فرض كنيد يك SP داراي دو پارامتر با نامهاي Id از نوع int و Name از نوع Varchar(20) باشد , داريم
frown.gif
@id int,@name varchar(20
))
حال بعد از As دستورات مورد نظر را تايپ ميكنيم :

مثال 1 : SP بنويسيد كه چهار حرف اول فيلد LastName و فيلد FirstName را از جدول Employees انتخاب كند به شرطي كه فيلد LastName با حرف A شروع شود ؟
ابتدا برروي Stored procedure كليك سمت راست كرده و گزينه New stored procedure را انتخاب كرده و خطوط زير را تايپ كنيد. بعضي از دستورات پايين در كادر باز شده موجود هستند كه نيازي به تايپ مجدد آنها نيست .
create Stored Procedure Employees_BROWSE
As
Select substring(Lastname,1,4) as LastNmae,FirstName
From Employees
Where LastName Like ‘%A

حال بر روي دكمه ok كليك نماييد. حال SP با نام Employees_BROWSE در ليست SP اضافه شده است .
مثال 2 : تمام فيلدهاي Employees را انتخاب كنيد كه فيلد BirthDate در يك بازه تاريخي كه به شكل پارامتر وارد ميشود قرار گيرد ؟
create Stored Procedure Employees_BROWSE2
(@StartDate char(10) , @EndDate char(10))
As
Select *
From Employees
Where BirthDate between @StartDate and @EndDate

حال براي اجراي SP ها در Query Analyzer كافي است بنويسيم : نام Exec SP
بعنوان مثال :Exec Employees_browse
اگر پارامتر داشت مقدار پارامترها را هم مي آوريم :
Exec Employees_Browse2 ‘01/01/1940’ , ‘15/06/1955

3- تعريف متغيرها : براي تعريف متغيرها مي بايست از كلمه كليدي Declare استفاده كنيم. بعنوان مثال : Declare @myname varchar(50)
متغيير @myname از نوع كاركتري پويا تعريف ميكند.

4- برگرداندن كد خطا : بدين منظور از دستور return @@Error
گرچه هرمقداري را كه بخواهيم مي توانيم با دستور return برگردانيم.

5- تعريف پارامترها كه مقداري را برمي گردانند : براي اين منظور هنگامي كه پارامتر را در ابتداي پروسيجر تعريف ميكنيم بعد از نوع آن از كلمه كليدي output مي كنيم بعنوان مثال :
create Stored Procedure Employees_BROWSE2
(@StartDate char(10) , @EndDate char(10) , @pp varchar(10) output)
As
6- مقدار دهي به متغييرها : به دو روش مي توانيد اين كار را بكنيد يكي با دستور Set و ديگري با دستور Select .
7- دستورات شرطي :مانند ديگر زبانها شما مي توانيد در Sql دستورات شرطي را بكار ببريد. ساختار آن به شكل زير است :
If شرط then دستور
If شرط then
Begin
دستور1
دستور2
...
end
مثال :

If @Sdate > @Edate set @newDate = @Sdate

8- دستور Set NOCOUNT on : اين دستور از نوشت تعداد سطرهاي برگردانده شده توسط دستورات جلوگيري ميكند. كاربرد مهم آن زماني است كه شما چند كار را پشت سرهم در SP انجام ميدهيد. مثلا يك جدوي موقت ميسازيد و سپس از آن يك تعدادي از فيلدها را با دستور Select انتخاب مي كنيد. اگر اين دستور را در ابتداي SP استفاده نكتيد , هنگامي كه ميخواهيد از آن SP در يك زبان برنامه نويسي استفاده كنيد با خطاي SP هيچ dataset ي برنمي گرداند مواجه خواهيد شد.

تذكر1 : شما مي توانيد يك SP را در يك SP ديگر فراخواني كنيد. براي اين منظور همانطور كه قبلا گفته شد از دستور exec استفاده نماييد.
تذكر 2 : با دستور exec شما مي توانيد يك دستور sql را نيز اجرا كنيد. اين كار زماني بكار مي آيد كه دستور مورد نظر پويا و متغير باشد.
مثال :
Exec (“ select * From Employees Where “+@Shart)
اين شرط ميتواند بر اساس فيلدهاي بانك توليد گردد.
مثال : يك SP بنويسيد كه اختلاف تعداد سفارشاتي كه فيلد ShipCountry آنها France يا German باشد. را برگرداند ؟
create Stored Procedure Order_France_German ( @Outp int output)
as
declare @Count_France int , @Count_German int

select @Count_France = Count(*)
from orders
where ShipCountry = 'France'

select @Count_German = Count(*)
from orders
where ShipCountry = 'German'

if @Count_France is null set @Count_France = 0
if @Count_German is null set @Count_German = 0

set @outp = @Count_France - @Count_German
 

hossein_ok

کاربر
2006-10-24
443
650
آموزش SQL Server (قسمت سوم)

در اين قسمت در ادامه مطالب قبلي مبحث SP خواهيم پرداخت و آن را كامل خواهيم كرد. در قسمت بعدي مطلب با View ها آشنا خواهيم شد.
ايجاد Stored Procedure با استفاده از ويزارد ها:
براي ايجاد SP هاي استاندارد جهت عمليات درج , حذف و ويرايش شما مي توانيد از ويزاردهاي خود SQL استفاده نماييد. با اين ابزار شما قادريد طي چند دقيقه تعداد زيادي SP جهت عملياتهاي گفته شده بر روي جداول خود بسازيد. براي اين منظور در Enterprise Manager بر روي كليد ويزارد كليك نماييد مانند شكل زير :



بعد در پنجره Select Wizard بر رويDatabase كليك و گزينه Create Stored Procedure Wizard را انتخاب نماييد . مانند شكل زير :




در پنجره بعدي به شما خوش آمد گويي مينماييد . برروي كليد Next كليك نماييد.در پنجره بعدي نام Database ي را كه قرار است بر روي جداول آن كار شود انتخاب نماييد و بروي Next كليك نماييد. در پنجره بعدي جداول و عمليات مورد نظري كه مي خواهيد انجام دهيد انتخاب كنيد. در پنجره بعدي نام SP هايي كه سيستم ساخته شما خواهيد ديد. براي ويرايش نام و يا كد هركدام از آنها ميتوانيد آن Sp را انتخاب و كليد Edit را فشار دهيد. در اينصورت شما پنجره اي به شكل زير خواهيد داشت :




حال شما در قسمت Name مي توانيد نام Sp را عوض نماييد.
در قسمت Include in Set Clause شما فيلدهايي از جدول مربوطه كه مي خواهيد مقادير آن به شكل پارامتر براي Sp ارسال شود انتخاب نماييد. اگر Sp شما Update و يا Delete باشد در قسمت Include in Where Clause شما مي توانيد فيلدهايي كه قرار است در شرط (دستور Where) قرار مي گيرند انتخاب نماييد.

تذكر1 : اگر فيلدي از نوع Identity داريد در حالت Insertحتما از قسمت Include in Set Clause خارج كنيد. در غير اينصورت در زمان اجرا با خطا مواجه خواهيد شد.
تذكر2 : SQL فيلد كليدي جدول را در دستور Update در دستور Where خواهد آورد . همچنين شما اين فيلد را از Include in Set Clause خارج كنيد.

در نهايت شما با فشار كليد Finish همزمان اين Sp را خواهيد ساخت.
تا اين قسمت شما با ساخت Sp آشنا شديد. حال براي ويرايش آن نيز كافي است بر روي Sp كليد نموده و در پنجره باز شده كد آن را ويرايش نماييد
 

hossein_ok

کاربر
2006-10-24
443
650
آموزش SQL Server (قسمت چهارم)

در ادامه مطالب آموزش SQL حال به بحث ديدها (view) مي پردازيم. ديد در اصل يك جدول مجازي است كه محتوي آن توسط يك پرس و جو تعريف مي گردد. همانند جدول ديد هم داراي سطر و ستونهايي مي باشد. مي توان به موارد زير به عنوان مزاياي ديد اشاره كرد :

ديدها به كاربران اجازه ميدهند تا بر روي داده هايي كه نياز دارند متمركز شوند. بنابر اين داده هاي غير ضروري ميتوان از ديد خارج كرد. ديدها امنيت داده ها را نيز افزايش ميدهند چراكه كاربر فقط داده هايي را مي بيند كه در ديد وجود دارند.

ديدها به كاربران اجازه ميدهند تا داده ها را به روشهاي متفاوت مشاهد نمايند. ديدها ميتوانند براي مبادله داده ها با ساير برنامه هاي كاربردي بكار روند.

و ....

ايجاد ديد :

وقتي ديدي را ايجاد ميكنيد نام آن مي بايست در بين نام جداول و ديگر ديدهايي كه كاربر مورد نظر آنها را ساخته , يكتا باشد.در
SQL Server 7.0 شما امكان ايجاد شاخص بر روي ديدها را نداشتيد , ليكن اين امكان در SQL 2000 اضافه شده است.

مراحل ايجاد يك ديد :

1-
erprise Manager را باز كرده و بر روي Databases كليك كرده و پايگاه داده اي را كه مي خواهيد ديد در آن ايجاد كنيد . باز كنيد.

2- روي
Views كليك راست كرده و سپس گزينه New View... را انتخاب كنيد.

3- در پنجره بعدي كليك سمت راست كرده و گزينه
Add Table... را انتخاب كنيد.

4- دكمه هاي
Table و يا Views جدول و يا ديد هاي مورد نظر را انتخاب نماييد. و بر روي دكمه Add كليك نماييد. اين كار را براي تمام جداول و يا ديدهاي مورد نظر تكرار كنيد و سپس بر روي دكمه Close كليلك نماييد.

در قسمت
Column از پانل مشبك , ستونهايي را كه ميخواهيد در ديد به آنها ارجاع نماييد انتخاب كنيد. اگر ميخواهيد ستوني در مجموعه نتيجه ديده شود گزينه Output متناظر با آن مي بايستي حتما تيك داشته باشد.

در ستون
Criteria شرط را بنويسيد. چند شرط را ميتوانيد در ستونهاي OR تكرار كنيد. براي گروه بندي برروي ستون Criteria كليك سمت راست كرده و گزينه Group By را انتخاب نماييد. در اينصورت شما قادر خواهيد بود از توابعي همچون Sum استفاده كنيد.

تذكر : اگر
Group by را انتخاب كرده باشيد. تمام شرايط كه در ستون Criteria بنويسيد به عنوان شرايط Having در نظر گرفته ميشوند. براي اينكه اين محدوديتها به شرط Where اضافه گردند , بر روي پانل مشبك متناظر كليك كرده و از ليست مورد نظر گزينه where را بجاي Group by انتخاب كنيد.

تذكر 2 : در ستون
Alias شما ميتوانيد يك اسم مستعار براي اين ستون در نظر بگيريد.

براي ديدن نتايج ديد بر روي علامت (!) كليك نماييد.

توجه داشته باشيد كه ارتباط ها در صورتي برقرار ميشود كه كليدهاي خارجي بر روي جداول وجود داشته باشد. گرچه شما مي توانيد با انتخاب فيلد مورد نظر و حركت ماوس در حاليكه كليك سمت چپ را فشار داده ايد مابين دو جدول ارتباط را برقرار كنيد.
 

hossein_ok

کاربر
2006-10-24
443
650
آموزش SQLserver (بخش پنجم)

عبارت SELECT
پايه و اساس همه داده های رابطه ای در محيط
SQL Server يک حالت Transact-SQL تنها است که عبارت Select می باشد. در اين درس ما به مهمترين ترکيبات حالت Select و راههای استفاده کردن از Query Designer برای ساختن خودکار عبارت می پردازيم. با استفاده از Query Designer شما می توانيد يک عبارت Select را مستقيماً در قاب SQL وارد سازيد يا با داشتن Query Designer آن را به وسيله قابهای Grid و Diagram بسازيد. گزينه ها متقابلاً منحصر به فرد نمی باشند. شما می توانيد يک Query را به وسيله اضافه کردن جداول برای قاب Diagram ، تغيير نام ستون با استفاده از قاب Grid شروع کنيد و دستورات را به طوری که سطرها برگردانده می شود به وسيله وارد کردن شرط ORDER BY به صورت مستقيم در قاب SQL مشخص کنيد.
تمرينهای درس يک گونه ای از تکنيکها را به شما نشان خواهد داد. موقعی که خودتان کار می کنيد شما می توانيد يکی را که در زمان ساده تر به نظر می رسد را انتخاب کنيد.

شناختن عبارت
SELECT
ساختار دستور عبارت
Select خيلی پيچيده می باشد که دارای چندين شرط و اپراتور می باشد اما ساختار اصلی کاملاً ساده می باشد.
Select [ Top n [PERCENT] ] Column-List
From Source-List
[
Where Search-Condition ]
[
ORDER By Expression ]
فقط اولين و دومين شرط از عبارت
Select مورد نياز می باشد. اولين شرط، Select Column-List مشخص می کند ستونهايی که به وسيله Query بازگردانده خواهد شد. ليست Column می تواند شامل ستونهای اصلی از جداول و نماهايی باشد که بر روی Query پايه ريزی شده است يا اينکه می تواند شامل ستونهای محاسباتی اقتباس شده از ستونهای اصلی باشد. دومين شرط، From Source-LIST ، نماها و جداول را که در Query پايه ريزی شده مشخص می کند.

انتخاب کردن تمام ستونها
ساده ترين شکل از عبارت
Select آن انتخابی است که همه ستونها از يک جدول تکی را انتخاب می کند. با بيشترين نسخه های زبان SQL ، Transact-SQL اجازه می دهد به شما به استفاده از (*) به عنوان يک Shorthand برای مشخص کردن تمام ستونها، بنابراين اين فرم ساده از عبارت اين چنين است:
SELECT *
FROM Table-Name

انتخاب همه ستونها
1-
Query Designer را برای Properties Table به وسيله کليک راست کردن نام آن در قاب Detail Enterprise Manager باز می کنيم، روی زير منوی Open Table رفته و Return All Rows را انتخاب می کنيم. SQL Server ، Query Designer را برای جدول باز می کند.

2- قاب
SQL را به وسيله کليک کردن دکمه قاب SQL روی نوار ابزار Query Designer راه می اندازيم. Query Designer قاب SQL را نشان می دهد.

3- عبارت
SQL را برای نشان دادن همه ستونها از جدول Oils تغيير می دهيم.

4- دکمه
Run را روی نوار ابزار Query Designer برای به اجرا در آوردن Query کليک می کنيم. Query Designer همه رکوردها در جدول Oils را نشان می دهد.

راهنمايی: شما می توانيد بيشتر سطرها را در قاب
Results به وسيله درج کردن درايور قاب بين قابها نشان دهيد.

انتخاب زير مجموعه از ستونها
اگر چه ساختار دستور
Select * آسان و سريع می باشد، شما اغلب بيشتر می خواهيد که Query تان فقط به ستونهای انتخاب شده باز گردد. اين با مشخص کردن ستونها در Column-List از شرط Select به انجام می رسد.

انتخاب ستونها با استفاده از قاب
SQL
1- علامت * را در عبارت
Select با تايپ کردن نام ستون Oil Name جايگزين می کنيم.

2- دکمه
Run را روی نوار ابزار Query Designer برای به کار بستن Query کليک می کنيم. Query فقط ستون Oil Name را نشان می دهد.

انتخاب ستونها با استفاده از قاب
Diagram
1- قاب
SQL را پنهان کرده و قاب Diagram را به وسيله کليک کردن دکمه ها در نوار ابزار Query Designer نشان می دهيم.

2- فيلد
LatinName را در قاب Diagram کليک کرده Query Designer قاب Results به جهت اينکه زياد معتبر نيست کم نور نشان می دهد.

3- دکمه
Run را برای به کارگيری Query کليک کرده Query Designer هر دو ستون Latin Name و Oil Name را در قاب Results نشان می دهد.

ايجاد کردن نام مستعار ستون
به طور پيش فرض، يک ستون در يک
Query نام يکسان دارد که در جدول يا نمای مورد نظر می باشد. اگر چه اغلب تغيير دادن نام آن مفيد می باشد. نامتناسب به نظر می رسد که فيلد به کاربر بدين صورت ( "My Long Column Name With No Spaces" ) يا اينکه به طور خلاصه اين چنين 32713 PK-Varchar-50-Col نشان داده شود. عبارت Select به شما اجازه می دهد که يک ستون را در Query به وسيله ايجاد يک alias تغيير نام دهيد. نام مستعار، نام ستون را در Query تغيير می دهد نه در جدول.

ايجاد يک نام مستعار برای ستون با استفاده از قاب
Grid
1- قاب
Diagram را پنهان کرده و قاب Grid را به وسيله کليک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهيم.

2- يک نام مستعار برای ستون
OilName به وسيله تايپ کردن OilName در فيلد alias ايجاد می کنيم. Query Designer به طور خودکار در اطراف alias پرانتز اضافه کرده زيرا alias شامل يک فضا می باشد.

راهنمايی: پرانتزهای چهارگوش در خروجی
Query نشان داده نخواهند شد. آنها به نحوه آسان به SQL Server می گويند که با عبارت "Oil Name" به عنوان يک نام مجزا برخورد کنيم. پرانتزها فقط موقعی مورد نياز می باشند که نام مستعار شامل يک جای خالی باشد، اما آنها می تواند برای نام هر ستون استفاده شود.
3- دکمه
Run را روی نوار ابزار Query Designer برای مجدد به کار بستن Query کليک می کنيم. SQL Server نام را در سر ستون با جای خالی اضافه شده بين دو کلمه نشان می دهد.


ايجاد نام مستعار ستون با استفاده از قاب
SQL
1- قاب
Grid را پنهان کرده و قاب SQL را به وسيله کليک کردن دکمه ها در نوار ابزار Query Designer نشان می دهيم.

2- [
Latin Name ] را به عنوان نام مستعار برای دومين ستون اضافه می کنيم.

3- دکمه
Run را روی نوار ابزار Query Designer برای به کارگيری Query کليک می کنيم. Query Designer نام را در سر ستون با يک فضای خالی بين دو کلمه نشان می دهد.


ايجاد کردن ستونهای محاسباتی
علاوه بر اينکه ستونها به طرز ساده اطلاعات را در جداول
Underlying و نماها نشان می دهد، همچنين Query تان می تواند شامل ستونهايی باشد که محاسبه شده اند بر اساس داده های Underlying ، توابع SQL Server يا هر ترکيب دوتايی. ستون محاسباتی به وسيله مشخص کردن يک عبارت به عنوان ستون ايجاد می گردد.
ما به عبارات
Transact-SQL در Detail در درس 21 "The Transact-SQL Language" می پردازيم. بنابراين در اين تمرين ما فقط يک جفت از عبارات ساده که بر اساس اپراتور الحاق رشته Transact-SQL که دو رشته و تابع GETDATE را که داده ها و زمان سيستم جاری را باز می گرداند اضافه می کنيم.

ايجاد کردن يک ستون محاسباتی با استفاده از قاب
Grid
1- قاب
SQL را پنهان کرده و قابGrid را به وسيله کليک کردن دکمه روی نوار ابزار Query Designer نشان می دهيم.

2- در هر سل ستون خالی در قاب
Grid کليک کرده و Oil Name +' – '+ Latin Name را تايپ می کنيم.

راهنمايی: شما می توانيد سل ها را در قاب
Grid به وسيله درج کردن خطوط تقسيم بين سر ستونها عريض تر سازيد.
3- کليد
Tab را فشار می دهيم. SQL Server ، 1 Expr را به عنوان نام مستعار ستون پيشنهاد می دهد.

4- نام مستعار را برای
Extended Name تغيير می دهيم.

5- دکمه
Run را برای به کارگيری مجدد Query کليک می کنيم. Query Designer ستون جديد را در قاب Results نشان می دهد.


ايجاد کردن يک ستون محاسباتی با استفاده از قاب
SQL
1- قاب
Grid را پنهان کرده و قاب SQL را به وسيله کليک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهيم.

2-
GETDATE را به عنوان [ Today’s Data ] برای ليست ستون از شروط Select اضافه می کنيم.

راهنمايی: کاما را قبل از
GETDATE فراموش نکنيد.
3- دکمه
Run را در نوار ابزار Query Designer برای به کارگيری مجدد Query کليک می کنيم. SQL Server تاريخ جاری در هر سطر را نشان می دهد.


استفاده کردن از شرط
Top n
زمانی که شما دستور
Return Top را از منوی متن جدول انتخاب می کنيد. SQL Server شرط Top n را در پايين پوششها برای ايجاد صفحه نمايش در Query Designer استفاده می کند. علاوه بر اينکه يک شماره مشخصی از سطرها را مشخص می کنيد شما می توانيد همچنين يک درصد از سطرها را به وسيله استفاده کردن از شرط Top n Percent نشان دهيد. همان طوری که شما ممکن است انتظار داشته باشيد درصدی از سطرهای مشخص شده را باز می گردانيم.

نشان دادن سطرهای
Top s
1-
Top 5 را قبل از اولين کلمه در Column-List از شروط Select در قاب SQL اضافه می کنيم.

2- دکمه
Run را در نوار ابزار Query Designer برای به کارگيری مجدد Query کليک می کنيم. SQL Server فقط 5 سطر اول را نشان می دهد.


نشان دادن
Top 5 درصد از سطرها
1- کلمه
Percent را بعد از Top 5 در قاب SQL اضافه می کنيم.

2- دکمه
Run را در نوار ابزار Query Designer برای به کارگيری Query کليک می کنيم. SQL Server فقط 5 درصد اول از سطرها را در SQL Server نشان می دهد.
 

hossein_ok

کاربر
2006-10-24
443
650
آموزش SQLserver (بخش ششم)

شناخت عبارت INSERT
ساختار دستور عبارت Insert شبيه به عبارت Select می باشد، بيشترين شکل مبنای آن عبارت است از:
INSERT [INTO] Table-or-View [(Column-List)]
VALUES (Value-List)
هر عبارت Insert می تواند يک جدول يا نما منفرد را به هنگام سازد. زمانی که شما از عبارت Insert برای به هنگام سازی يک نما استفاده می کنيد شما بايد آگاه باشيد از محدوديتهای زير:
View نبايد شامل يک تابع به هم پيوسته مانند COUNT يا AVG باشد.
View نبايد شامل Top ، GROUP BY ، UNION يا DISTINCT باشد.
View نبايد شامل يک ستون محاسبه شده باشد.
View بايد يک جدول را در شرط From باز گرداند.
عبارت Insert ستونهاي يک جدول منفرد را فقط به هنگام می سازد.
ليست ستون در عبارت Insert اختياری می باشد. اگر آن فراهم نگردد عبارت Insert بايد شامل مقاديری برای همه ستونها در جدول يا نما باشد و آنها بايد به همان ترتيب به عنوان ستونهايی در جدول يا نما فراهم شوند. اگر چه شما می توانيد از کليدهای ويژه DEFAULT برای مشخص کردن مقادير پيش فرض برای يک سطر استفاده کنيد. زمانی که ليست ستون گنجانده می شود. آن يک فرمت شبيه از ليست ستون در عبارت Select می گيرد: يک ليستی از نامهای ستون که با کاما جدا شده است. از زمانی که يک عبارت Insert می تواند يک سطر را فقط برای يک جدول اضافه کند، شما معمولاً نياز به استفاده کردن مشخصه نام جدول برای نام ستون نخواهيد داشت.

استفاده کردن از عبارت INSERT
يک عبارت Insert می تواند با استفاده کردن از قاب Grid برای مشخص کردن ستونها يا با استفاده کردن قاب SQL برای وارد کردن مستقيم عبارت ايجاد گردد.

درج کردن سطرها با استفاده از قاب Grid
قاب Grid احتمالاً آسانترين راه برای ايجاد يک عبارت Insert می باشد از زمانی که ياد آوردن هر ساختار دستور مورد درخواست شما نباشد.

درج کردن يک سطر با استفاده از قاب Grid
پوشه Tables را از پايگاه داده Aromatherapy راهبری کرده، جدول Oils را در قاب Details کليک راست می کنيم. در زير منوی Open Table رفته و Query را انتخاب می کنيم. Query Designer همه چهار قاب نشان داده شده را باز می کند.
 
بالا