PDA

نسخه کامل مشاهده نسخه کامل : آموزش SQLserver




    

rahimihaghighi
31-05-2010, 14:39
آموزش SQLserver


معرفی 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


--------------------------------------------------------------------------------
1-ايجاد يك ADO Connection به يك پايگاه داده

١-1- روش DSN-LESS C:/InetPub/[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] مسير فايل نمونه
< % var conn=Server. CreateObject ( “ADODB.
Connection”) Conn. Provider=” Microsoft . Jet . OLEDB.4.0” Conn.Open
(“C:/InetPub/[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]”) % >


--------------------------------------------------------------------------------
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/[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] 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/[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]”) (Record Se


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

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

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


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

چاپ داده ها :

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



بستن Recordset و Connection :

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



خلاصه سازی داده ها

هنگامی که دو جدول در يک پيوند يک به چند سهيم هستند. وسيله محرک Query مقاديری از سطر را از يک طرف برای ارتباط دادن سطرها در طرفهای ديگری تکرار می کند. بعضی مواقع آن دقيقاً چيزی است که شما می خواهيد، اما اغلب شما می خواهيد تکرار کردن سطرها را از چندين طريق دسته بندی يا خلاصه سازيد. در اين درس، ما به دو روش برای انجام آن که عبارتند از کليد واژه DISTINCT و شرط GROUP BY نگاه خواهيم کرد.

شناختن SELECT DISTINCT
يکی از اهداف طرح پايگاه داده ارتباطی برداشتن وابستگی داده ها می باشد. اما بيشتر پايگاه داده به طور ضروری مقادير واقعی در چندين سطر را شامل خواهد شد. يک جدولی که شامل اطلاعات آدرس مشتری می باشد برای مثال احتمالاً کد ايالتی و کشوری برای چندين سطر خواهد داشت که نه اشتباه و نه تکراری می باشد. نظر به اينکه هر کد ايالتی نسبتی از يک مشتری می باشد. به همين نحو يک جدول از چندين جهت از يک ارتباط يک به چند ممکن است هر مقدار کليد خارجی معلوم که چندين بار تکرار شده را داشته باشد. آن برای يک ارتباط يکپارچه از پايگاه داده لازم می باشد. اگر چه اين تکرار می تواند بعضی مواقع نتايج Query را نامطلوب سازد. يک جدول مشتری با 1000 سطر با 90 درصد مشتری از کاليفرنيا، Query زير کد CA را 9000 بار خواهد باز گرداند که اصلاً يک نتيجه مفيدی نمی باشد.
SELECT State From Customer
کليد واژه Distinct در اين موقعيت شما را کمک می کند. Distinct که درست بعد از SELECT قرار می گيرد به SQL Server دستور داده که سطرهايی چندگانه در قرارگيری نتايج را حذف نمايد. بنابراين Query زير هر کد ايالتی را فقط يک بار باز می گرداند به طور وضوح ليستی که شما جستجو می کنيد.
SELECT DISTINCT State From Customer
راهنمايی: همتای کليد واژه Distinct ، All می باشد که SQL Server را برای بازگرداندن همه سطرها آگاه می سازد خواه آن واحد باشد يا خير. از موقعی که اين يک عملکرد پيش فرض از يک عبارت SELECT می باشد All به طور معمول استفاده نمی گردد. اما شما ممکن تصميم بگيريد به در برداشتن آن اگر ساختار دستور Query را بيشتر قابل فهم سازيد.

استفاده کردن از SELECT DISTINCT
کليد واژه Distinct می تواند در عبارت SQL از Query Distinct يا به وسيله تنظيمات Properties از Query مشخص گردد.

ايجاد کردن Distinct Query با استفاده از قاب دياگرام
1- Query Designer را برای جدول Oils به وسيله کليک راست کردن نام جدول در قاب Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنيم.
2- قاب دياگرام را به وسيله کليک کردن روی دکمه قاب دياگرام در نوار ابزار Query Designer نشان می دهيم.
3- دکمه Add Table را کليک می کنيم. Query Designer کادر محاوره ای Add Table را نشان می دهد.
4- Plantparts را در ليست جدول انتخاب می کنيم و سپس Add را کليک می کنيم. Query Designer جدول را به Query اضافه می کند.
5- Close را برای بستن کادر محاوره ای کليک می کنيم.
6- دکمه قاب SQL را در نوار ابزار Query Designer کليک می کنيم. قاب SQL ، Query Designer را نشان می دهد.
7- علامت * بعد از کليد واژه SELECT را حذف می کنيم.

8- دکمه قاب SQL را در نوار ابزار Query Designer کليک می کنيم (OK را اگر Query Designer يک متن خطا درباره ساختار دستور عبارت SELECT نشان می دهد کليک می کنيم). Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنيد حالت SQL پيش فرض معمولاً SELECT* می باشد. ستون ويژه در قاب دياگرام به سبب اينکه آنها به ليست ستون اضافه می شوند انتخاب می گردند. مايکروسافت اين را يک ويژگی در نظر می گيرد.
9- در قاب دياگرام فقط ستون Plantpart را از جدول Plantparts برای نشان دادن انتخاب می کنيم.

10- دکمه Run را برای اجرای مجدد Query کليک می کنيم. Query Designer هر مقدار Plantpart را چندين بار ليست می کند.

11- در يک ناحيه خالی از قاب دياگرام کليک راست کرده و Properties را انتخاب می کنيم. Query Designer کادر محاوره ای Properties را نشان می دهد.

12- گزينه مقادير Distinct را انتخاب می کنيم.

13- Close را برای بستن کادر محاوره ای کليک می کنيم.
14- دکمه Run را برای اجرای مجدد Query کليک می کنيم. Query Designer هر مقدار را فقط يک بار نشان می دهد.

ايجاد کردن يک SELECT DISTINCT با استفاده از قاب SQL
1- قاب دياگرام را پنهان ساخته و قاب SQL را نشان می دهيم.
2- عبارت SELECT موجود را با متن زير جايگزين می کنيم.
SELECT DISTINCT Plant Types Plant Type
FROM Oils INNER Join
Plant Types ON Oils Plant Type ID=Plant Types Plant Type ID

3- دکمه Run را برای اجرا مجدد Query کليک می کنيم. Query Designer مقدار PlantType متمايز که به وسيله جدول Oils بازگشت شده را نشان می دهد.


شناختن GROUP BY
کليد واژه Distinct امر می کند. SQL Server را به بازگرداندن سطرهای واحد نظر به اينکه شرط GROUP BY ، SQL Server را به ترکيب سطرها با مقادير يکسان در ستون يا ستونهای مشخص شده در شرط در داخل سطر تکی امر می کند.
مهم: هر ستونی که در شرط GROUP BY شامل می باشد بايد در خروجی Query شامل گردد.
شرط GROUP BY اغلب با يک aggregate Function استفاده می گردد. يک aggregate Function محاسبات در مجموعه از مقادير را به انجام می رساند و يک نتيجه تک مقداری را باز می گرداند. رايج ترين گزينه های به هم پيوسته استفاده شده در پرس و جوهایGROUP BY ، MIN می باشد که کوچکترين مقادير را در مجموعه باز می گرداند. MAX که بزرگترين مقادير در مجموعه را باز می گرداند و COUNT که تعدادی از مقادير را در يک مجموعه باز می گرداند.

استفاده کردن از GROUP BY
شرط GROUP BY می تواند مشخص شود با استفاده کردن از هر يک از قابها در Query Designer ، اما قابهای SQL و Grid بيشترين کنترل را فراهم می سازد.

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

2- ستون OilName را برای Query اضافه می کنيم.

3- دکمه Group By را در نوار ابزار Query Designer کليک می کنيم. Query Designer يک ستون Group By برای شبکه اضافه می کند و هر دوی مقادير را برای Group By قرار می دهد.

4- سل Group By را برای تغيير دادن سطر OilName به Count تغيير می دهيم.

5- دکمه Run را برای اجرا مجدد Query کليک می کنيم. Query Designer تعدادی از Oils را برای هر PlantType نشان می دهد.


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

2- عبارت SELECT موجود را با متن زير جايگزين می کنيم.
SELECT Plant parts Plant part Count (Oils Oil Name) As Number Of Oils
FROM Oils INNER Join
Plant parts ON Oils Plant part ID=Plant parts Plant part ID
GROUP BY Plant parts Plant part

3- دکمه Run را برای اجرای مجدد Query کليک می کنيم. Query Designer مقدار oils برای هر Plantpart نشان می دهد.

استفاده کردن از شرط HAVING
شرط Having سطرهای بازگردانده شده به وسيله شرط GROUP BY را از همان راهی که يک شرط Where سطرهای بازگردانده شده را به وسيله شرط SELECT محدود می سازد. هر دو شرط Where و Having می تواند در يک عبارت SELECT شامل شود که شرط Where قبل از گروه بندی علميات و شرط Having بعد از آن به کار برده می شود. ساختار دستور شرط Having همانند شرط Where می باشد به استثنای اينکه شرط Having می تواند شامل يکی از توابعهای به هم پيوسته باشد که در ليست ستونها از شرط SELECT قرار می گيرد. اگر چه شما بايد توابع به هم پيوسته را تکرار کنيد. برای مثال شرط Having که در حالت زير استفاده شده صحيح می باشد.
SELECT Plant parts Plant part Count (Oils Oil Name) As Number Of Oils
FROM Oils INNER Join
Plant parts ON Oils Plant part ID=Plant Parts Plant part ID
GROUP BY Plant parts Plant part
HAVING Count (Oils Oil Name)>3
اگر چه شما نمی توانيد از اسم مستعار برای تابع Count در شرط Having استفاده کنيد. بنابراين شرط Having زير درست نخواهد بود.
HAVING Number Of Oils>3

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

2- 5Add> را برای سل مورد نظر از ستون oil Name قرار می دهيم.

3- دکمه Run در نوار ابزار Query Designer را برای اجرای مجدد Query کليک می کنيم.


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

2- شرط Having را برای HAVING (Count (Oils Oil Name)<5) تغيير می دهيم.

3- دکمه Run در نوار ابزار Query Designer را برای اجرای مجدد Query کليک می کنيم. Query Designer فقط آن Plantparts که Oils اشتراکی کمتر از 5 دارد را نشان می دهد.



مرتب سازی و انتخاب کردن سطرها
در فصل گذشته ما بيشترين فرمهای مقدماتی از حالت SELECT را مرور کرده و آنها را برای انتخاب ستونهای يک جدول استفاده کرديم. اما بيشتر مواقع شما بازگشت به سطرها در جدول پس زمينه يا نمايش در يک قاعده خاص و فقط بازگشت به يک زير مجموعه از آنها را خواهيد خواست. شرطهای ORDER BY و WHERE در اين درس بررسی شده و اجرای آن برای شما فراهم شود.

شرط ORDER BY
شرط The ORDER BY يک ترکيب گزينه ای از يک حالت SELECT می باشد. آن به شما برای مشخص کردن ترتيب در آن سطرهايی که بازگشت خواهند کرد اجازه می دهد. ستونهای چندگانه می توانند مشخص شوند و سطرها می توانند به صورت ترتيب افزايشی يا کاهشی باز گردانده شوند.

مرتب سازی سطرها
ساده ترين فرم در شرط ORDER BY فراهم می سازد يک نام ستون تکی که برای مرتب کردن سطرها که به وسيله Query باز گردانده می شود استفاده خواهد شد.

مرتب کردن سطرها با استفاده از قاب Grid
1- Query Designer را برای جدول Oils به وسيله کليک راست کردن نام آن در قاب Details باز می کنيم. به زير منوی جدول Open رفته و همه ستونهای بازگشتی را انتخاب می کنيم. SQL Server ، Query Designer را برای جدول باز می کند.
2- قاب Grid را به وسيله کليک راست کردن دکمه قاب Grid در نوار ابزار Query Designer نشان می دهيم.

3- فقط ستونهای OilID ، Oil Name ، LatinName را برای نمايش انتخاب می کنيم. Query Designer محتويات قاب Results را که کمرنگ شده برای نشان دادن اينکه با مشخصات Query زياد مربوط نمی باشد نشان می دهد.

4- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer فقط ستونهای مشخص شده را نشان می دهد.

5- نوع Sort فيلد Oil Name را صعودی قرار می دهيم.

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

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

2- DESC را بعد از شرط ORDER BY OilName اضافه می کنيم.

راهنمايی: کليد واژه DESCبه SQL Server برگرداندن سطرها به ترتيب نزولی را ابراز می کند. کليد واژه ASC که گزينه ای می باشد سطرها را به ترتيب صعودی برمی گرداند.
3- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer نتايح را که با OilName ذخيره شده به صورت نزولی نشان می دهد.

مرتب سازی ستونهای چندگانه
شما می توانيد ستونهای چندگانه را در شرط ORDER BY مشخص کنيد. زمانی که ستونهای چندگانه مشخص می گردند ترتيب ستونها نتايج SQL Server را که به وسيله اولين ستون و سپس به وسيله دومين ستون و بنابراين چهارمين ستون مرتب خواهد شد مشخص می کند.
راهنمايی: تمرينها در اين بخش از جدول OilOdors استفاده می کند که به صورت جدول الحاقی انجام وظيفه می کند که ارتباط چندبه چند بين جدول Oils و Odors را تجزيه و تحليل می کند. معمولاً شما کليدهای خارجی ترکيب شده در اين جدول را با استفاده از يک ارتباط تجزيه می کرديد.

مرتب سازی سطرها با استفاده از قاب Grid
1- پنجره شماره 1 را از منوی Window برای برگشت به درخت Console انتخاب می کنيم.
2- Query Designer را برای جدول Oil Orders به وسيله کليک راست کردن نام آن در قاب Details باز کرده روی زير منوی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنيم. SQL Server ، Query Designer را برای جدول باز می کند.
3- قاب Grid را به وسيله کليک کردن دکمه قاب Grid روی نوار ابزار Query Designer نشان می دهيم.

4- * را در قاب Grid با نامهای دو فيلد جايگزين می کنيم. SQL Server محتويات از قاب Results را برای نشان دادن اينکه آن با مشخصات Query زياد در ارتباط نيست کم رنگ می کند.

5- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer فقط ستونهای مشخص شده شما را نشان می دهد.

6- نوع Sort هر دوی ستونها را صعودی قرار می دهيم.

7- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer سطرهای مرتب شده را با اولين OilID و سپس با OdorID در داخل OilID نشان می دهد.


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

2- ستونها را در شرط ORDER BY معکوس می کنيم.

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer نتايج مرتب شده را با اولين OdorID و سپس با OilID نشان می دهد.

4- پنجره Query Designer را می بنديم.

شرط WHERE
با استفاده از شرط اختياری WHERE از حالت SELECT شما می توانيد يک زير مجموعه از سطرها که باز گردانده می شوند را مشخص کنيد. برای مثال شما ممکن است بخواهيد فقط مشتريهايی که بيش از $1000 در 12 ماه قبل خرج کرده اند را ببينيد يا اينکه فقط نامهای Oil که با حرف R شروع می شوند را ببينيد. شما اين ملاکها را با استفاده از شرط WHERE مشخص خواهيد کرد.

شرط WHERE BASIC
Operator Meaning
مساويست با = بزرگتر از < کوچکتر از >بزرگتر يا مساويست با =<کوچکتر يا مساويست با => مساوی نيست با <>
کليد برای شرط WHERE يک ملاک انتخابی می باشد که مشخص می کند که کدام سطرها باز خواهند گشت. ساختار پايه ای از يک شرط WHERE ، WHERE می باشد. SQL Server يک حدود کاملی از اپراتورهای مقايسه ای را به طوری که در جدول B-1 نشان داده شده فراهم می سازد.


مشخص شده در شرايط WHERE می تواند يک ارزش دائمی باشد مانند Red"" يا 10000 يا می تواند باشد يک عبارتی که يک ارزش مانند GETDATE. را باز گرداند. به طور شبيه ارزش می تواند دستی ساخته شوند با استفاده از تابعهای Transact-SQL مانند LEFT که يک تعدادی از کاراکترهای مشخص شده از چپ يک رشته را باز می گرداند، ما تمام جزئيات توابع را در درس 24 مرور خواهيم کرد.
مشخص کردن يک شرط WHERE با استفاده از قاب Grid
1- پنجره شماره 2 را از منوی Window برای بازگشت به پنجره Query Designer که ما زودتر در اين درس استفاده کرده ايم انتخاب می کنيم.
2- قاب SQL را پنهان کرده و قاب Grid را به وسيله کليک کردن دکمه ها در نوار ابزار Query Designer نشان می دهيم.
3- "="Eucalyptus را در سل ملاک سطر OilName از قاب Grid وارد می کنيم.

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


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

2- شرط WHERE را با WHERE (LEFT(Oil Name,1)="R") تغيير می دهيم.

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer نامهای Oil را که با "R" شروع می گردد را نشان می دهد.




استفاده کردن از اپراتورهای ويژه
علاوه بر فرمت استاندارد برای يک شرط WHERE از ، SQL Server همچنين سه عملگر را پشتيبانی می کند: LIKE که اجازه می دهد به شما به فراهم ساختن مقدار نامشخص با استفاده از وايلد کارتهای نشان داده شده در جدول 2-13 و BETWEEN که اجازه می دهد به شما مشخص کردن يک محدوده از ارزشها و IN که اجازه می دهد به شما برای مشخص کردن يک مجموعه از مقادير.
مثال معنی Wildcard
LIKE 'a' که ارتباط می دهد at"" و "as" هر تک کاراکتر -اما نه "and"%'t'%ILKE که ارتباط می دهد "at" و bat"" و "Together" اما نه "Lucky" هر رشته از صفر يا چندين کاراکتر %LIKE '[a-c]at' که ارتباط می دهدCat"" و "bat" اما نه "fat" هر کاراکتر ويژه در داخل يک محدوده يا مجموعه []LIKE '[a-b]at' که ارتباط می دهدBat"" اما نه "Cat"LIKE '[^c]at' که ارتباط می دهد "Bat" و "fat" اما نه "Cat" هر کاراکتر ويژه که در داخل يک محدوده يا مجموعه نمی باشد [^]

مشخص کردن يک شرط WHERE با استفاده از LIKE
1- شرط WHERE را در قاب SQL برای WHERE تغيير می دهيم. )% (Oil Name LIKE 'Rose'

2- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer همه سطرهايی که با Rose شروع می گردد را نشان می دهد.


مشخص کردن يک شرط WHERE با استفاده از BETWEEN
1- شرط WHERE را در قاب SQL باWHERE(LEFT(Oil Name,1)BETWEEN A AND 'C') تغيير می دهيم.

2- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer همه سطرها که با A و B يا C شروع می گردد را نشان می دهد.

راهنمايی: Transact-SQL همچنين عملگرها Not BETWEEN را پشتيبانی می کند که دقيقاً از همان طريق کار می کند. به استثنای اينکه آن شامل يک محدوده ای از مقادير می باشد. برای مثال Left (Oil Name , 1) Not BETWEEN 'C' And 'E' همه سطرها باز خواهد گرداند به جز آنهايی که Oil Name با C و D يا E شروع می کند.

مشخص کردن يک شرط WHERE با استفاده از IN
1- شرط WHERE را در قاب SQL با WHERE (LEFT (OilName , 1) IN('G','M','V')) تغيير می دهيم.

2- دکمه Run را در نوار ابزار Query Designer برای اجرا Query کليک می کنيم. Query Designer ، 8 سطر را نشان می دهد.


ترکيب کردن ملاک انتخابی
علاوه بر مشخص کردن يک شرط WHERE با استفاده از عبارت Format شما می توانيد همچنين عبارات را با استفاده از عملگر منطقی OR يا AND ترکيب کنيد. يک شرط WHERE از فرمت FormatOR سطرهايی که به ملاک مربوط می گردند خواهد بازگرداند، نظر به اينکه يک شرط WHERE از And Format سطرهايی که به هر دو ملاکها مربوط می گردند را باز خواهد گرداند.

مشخص کردن ملاک پيچيده با استفاده از OR
1- شرط WHERE رادرقاب SQL به WHERE (OilName='Rosemary' OR OilName='Sagy) تغيير می دهيم.

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

مشخص کردن ملاک پيچيده با استفاده از AND
1- شرط WHERE را در قاب SQL به ) %(Oil Name LIKE 'Rose' WHERE تغيير می دهيم.

2- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer ، 4 سطر را نشان می دهد.

3- شرط WHERE را در قاب SQL به And (OilID<40) ) %(OilName LIKE Rose WHERE تغيير می دهيم.

4- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer سطر Roso Otto را شامل می گردد.


بازيابی سطرها
بيشتر برنامه های پايگاه داده از يک برنامه ريزی محيطی از قبيل مايکروسافت Access يا مايکروسافت Visual Basic برای فراهم آوردن رابط کاربر استفاده خواهند کرد. اگر چه Manager Enterprise يک ابزار ساده به نام Query Designer فراهم می آورد که به شما به آسانی اجازه می دهد داده ها را در يک يا چندين جدول در پايگاه داده Aromatherapy استفاده می کنيد.

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

ديدن سطرها در يک جدول
ساده ترين راه برای ديدن سطرها در يک جدول بازکردن Query Designer از طريق منوی Context جدول می باشد.

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

2- جدول Plant Parts را کليک راست کرده روی زير منوی Open Table رفته و همه سطرهای برگردانده شده را انتخاب می کنيم. SQL Server ، Query Designer را با همه سطرهای نشان داده شده در جدول باز می کند.


محدود کردن تعدادی از سطرهای نشان داده شده
1- Query Designer را اگر هنوز از تمرين قبل بازمانده است می بنديم.
2- جدول Odors را در قاب Details کليک راست کرده روی Open Table Submenu رفته و Return Top را انتخاب می کنيم. SQL Server يک کادر محاوره ای را نشان می دهد که از شما درخواست می کند که تعدادی از سطرها را که مشخص کرده ايد بياوريد.

3- 5 را به عنوان تعداد ماکزيمم برای آوردن سطر تايپ می کنيم.

4- OK را کليک کرده Query Designer را باز می کنيم. 5 سطر اول را در جدول نشان می دهد.

5- پنجره Query Designer را می بنديم.
به هنگام سازی سطرها در يک جدول
Query Designer همچنين می تواند برای تغيير مقادير از سطرهای موجود در يک جدول يا اضافه کردن سطرها استفاده گردد.

ويرايش يک سطر در Query Designer
1- جدول Plantparts را در قاب Details کليک راست کرده روی Open Table Submenu رفته و سپس همه سطرهای بازگشتی را برای بازکردن Query Designer برای جدول Plantparts انتخاب می کنيم.
2- ستون Plantparts از سطر را با يک Plantparts ID 12 از برای خواندن Fruit Kernel به جای Fruit Kernal تغيير می دهيم. Query Designer يک آيکون Edit برای انتخابگر سطر اضافه می کند. برای نشان دادن اينکه رکورد ويرايش شده است اما تغييرات هنوز ذخيره نشده است.

3- سطر ديگر را کليک می کنيم. Query Designer آيکون Edit را ذخيره، تغيير و برمی دارد.

راهنمايی: قبل از اينکه شما به ديگر سطر حرکت کنيد، شما می توانيد کليد Esc را برای اعمال نکردن تغييراتتان فشار دهيد.

اضافه کردن يک سطر جديد در Query Designer
1- در Query Designer در ستون Plantparts از آخرين سطر (که با آيکون جديد در انتخابگر سطر علامتگذاری شده) کليک می کنيم.
2- Fruit را تايپ می کنيم. Query Designer سطر را با آيکون Edit علامتگذاری کرده و يک سطر جديد در پايين جدول اضافه می کند.

3- در هر سطر ديگر در جدول کليک می کنيم. Query Designer يک PlantpartsID را برای سطر جديد تخصيص داده و آن را برای جدول ذخيره می سازد.

راهنمايی: شما نمی توانيد يک PlantpartsID را به سطر جديد اضافه کنيد زيرا آن به صورت يک ستون موجوديت تغيير داده است. اگر شما آن را انجام دهيد Query Designer يک متن Error نشان خواهد داد.

شناخت Query Designer
زمانی که شما Query Designer را با استفاده از دستور Open Table باز می کنيد. سطرها در جدول در يک شبکه شبيه به Data Sheet View يک جدول در Access نشان داده می شود که قاب Query Designers Results می باشد. Query Designer سه قاب کلی دارد. قاب Diagram قاب Grid و قاب SQL .
شما صفحه نمايشگر قابهای گوناگون را در Query Designer با استفاده از دکمه های Toolbar کنترل می کنيد. شما می توانيد قابها را در هر ترکيب نشان دهيد. Query Designer از به هنگام سازی هر صفحه نمايش قاب مواظبت خواهد کرد زمانی که شما تغييراتی را برای Query می سازيد.


قاب Diagram
دکمه قاب Diagram را در نوار ابزار Query Designer که قاب Diagram را نشان می دهد کليک می کنيم. قاب Diagram يک نمايشی از Query برای يک نمودار پايگاه داده نشان می دهد. به طور کلی برای همه مزيتها از يک نمايش گرافيکی، قاب Diagram مفيد می باشد. برای مشخص کردن جداول و نماهايی که روی هر کدام از Query هايتان پايه ريزی خواهد شد و ارتباطی بين آنها به خوبی ستونهايی که نشان داده شده است.


قاب Grid
دکمه قاب Grid را در نوار ابزار Query Designer که قاب Grid را نشان می دهد کليک می کنيم. قاب Grid شبيه به Query Designer Grid در Access می باشد. آن يک راه سريع برای تغيير سر ستون از يک ستون Query را فراهم می آورد و دستوراتی را که در هر کدام از سطرها نشان داده خواهد شد را مشخص می کند. انتخاب ملاک مانند را Surname = Jones قرار می دهد.


قاب SQL
دکمه قاب SQL را روی نوار ابزار Query Designer که قاب SQL را نشان می دهد کليک می کنيم. قاب SQL عبارت Transact-SQL واقعی را که Query را توليد خواهد کرد نشان می دهد. شما می توانيد مستقيماً عبارت Transact-SQL را با استفاده از قاب SQL وارد و ويرايش کنيد.
راهنمايی: زمانی که شما اولين Transact-SQL را می آموزيد، قاب SQL يک ابزار بزرگ آموزش می باشد. Query را با استفاده از قاب Diagram و Grid راه اندازی کرده و Query Designer عبارت Transact-SQL را برای شما خواهد ساخت.

عبارت 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 نشان می دهد.

شناخت عبارت 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 همه چهار قاب نشان داده شده را باز می کند.


ايجاد كردن جداول و تغییر دادنشان
در محيط 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 را در نوار ابزار کليک می کنيم. SQL Server کادر محاوره ای 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 Character Column را تايپ می کنيم.
4- Unknown را در سل Default Valve تايپ می کنيم (اطمينان حاصل کنيد که اطراف کلمه ويرگول داشته باشد).


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

ذخيره کردن و بستن جداول
1- دکمه Save را در نوار ابزار Table Designer کليک می کنيم. SQL Server تعريف جدول را ذخيره می سازد.
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 ، Table Designer را باز می کند.

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

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

برداشتن يک ستون
1- ستون Mydate را به وسيله کليک کردن روی gray Boy در سمت چپ از 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- Drop All را کليک می کنيم. SQL Server جدول را از پايگاه داده برمی دارد.
مهم: زمانی که شما يک جدول را حذف می کنيد، جدول و همه داده هايش به طور دائمی از پايگاه داده برداشته می شود و تنها راه برای بازگرداندن آن نسخه پشتيبان پايگاه داده می باشد.

ايجاد کردن شئی های جدول
در درسهای گذشته، شما آموختيد که چگونه خصوصيات گوناگون از قبيل مقادير پيش فرض و 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 جدول را با تعريف جديد ذخيره می سازد.


جداول موقت
جداول موقت مثل جداول عادی هستند با اين تفاوت که آنها فقط زمانی وجود دارند که از آنها استفاده می شود. آنها به طور اتوماتيک وقتی که تمام کاربران ديگر با آنها کاری ندارند توسط Microsoft SQL حذف می شود. نکته: ايجاد يک جدول موقت يک رويه تقريباً پر هزينه می باشد که مربوط به هزينه منابع Server و چرخه های CPU می باشد. بسياری از استفاده های مرسوم از جداول موقت هم اکنون می توانند با استفاده از جدول متغيرها جايگزين شوند.
استفاده از جدول موقت
جداول موقت با استفاده از همان فرمان Create و Select INTO به عنوان جداول عادی ايجاد می شوند. بعد از تهيه جدول در سؤال قابل دسترسی به ارتباط خواهد بود. (اين است که اين يک جدول محلی تهيه شده توسط ارتباط متفاوت نيست)، اين عمل همچنين مثل جداول عادی قابل استفاده می باشد.

ايجاد جدول موقت محلی
1- دکمه علامت سؤال جديد را روی Toolbar تجزيه کننده سؤال کليک کنيد تا يک پنجره سؤال جديد ظاهر شود.
2- روی دکمه Loud Script روی Toolbar تجزيه کننده سؤال کليک کنيد. تجزيه کننده سؤال جعبه پرونده گفتگو را نشان خواهد داد.
3- نسخه خطی Create Local را انتخاب کنيد و Open را کليک کنيد. تجزيه کننده سؤال نسخه خطی را پر می کند.
4- دکمه Execute Query را در Toolbar تجزيه کننده سؤال کليک کنيد. تجزيه کننده سؤال جدول موقت ايجاد می کند.
5- User Table Folder را که در پايگاه داده Tempdb در Object browser می باشد را انتخاب کنيد.
6- F5 را برای به کارگيری مجدد نمايشگر Object browser فشار دهيد و User Table Folder را گسترش دهيد. نمايشگر سؤال جدول محلی dbo.# را در ليست نشان خواهد داد.

ايجاد جدول جهانی موقت
1- بدون بستن پنجره شامل نسخه خطی Create Local بر روی دکمه New Query روی Query Analyzer Toolbar برای باز کردن يک پنجره جديد خطی، کليک کنيد.
2- بر روی دکمه Loud Script روی Query Analyzer Toolbar کليک کنيد. Query Analyzer نشانگر جعبه گفتگوی فايل Query خواهد بود.
3- خطی را که در آن Create 6 Loud وجود دارد را انتخاب کنيد و Open را کليک کنيد. تجزيه کننده سؤال خط انتخابی را Loud می کند.
4- دکمه Execute Query را که روی Query Analyzer Toolbar می باشد را کليک کنيد. Query Analyzer جدول موقت را ايجاد می کند.
5- User Folder Table که مربوط به Tempdb Database در Object browser را انتخاب کنيد.
6- F5 را برای راه اندازی مجدد نمايشگر Object browser فشار دهيد. Query Analyzer نمايشگر dbo##6 Loud Table ليست خواهد بود.

ارتباط دادن جداول


Query هايی که در فصل 3 بررسی گرديد سطرهايش از يک جدول تکی ترسيم گرديده است اما Query ها به ويژه می توانند مفيد باشند برای ترکيب ستونهايی از چندين جدول يا نما که Joining Tables ناميده می شود و آن در شرطهای FROM يا WHERE از حالت SELECT انجام می گيرد. در اين فصل ما بر روی ايجاد ارتباطها با استفاده از شرط FROM که روشی توصيه شده است متمرکز خواهيم شد.

شناختن شرط FROM
همان طوری که ما ديده ايم، ساختار پايه ای از شرط FROM به آسانی نام از يک جدول يا نما ساده را فراهم می سازد. اما برای دسترسی پيدا کردن به توانايی از مدل ارتباطی، ما بايد به بازيابی ستونها از جداول چندگانه و نماها در يک Query خاص قادر باشيم. شرط FROM يک مکانيزمی برای انجام آن با استفاده از ساختار دستور زير:FROMON
اپراتور پيوند انواع پيوند برای به انجام رسيدن را تشريح می کند. Server SQL پيوندهای داخلی و خارجی همه نوسانات را پشتيبانی می کند، همان طوری که در بخش بعدی خواهيم ديد. شرايط پيوند يک تعبيری می باشد شبيه به ملاک که در شرط WHERE استفاده شده است. آن مشخص می کند که چگونه سطرها در دو جدول ارتباط خواهند يافت. بيشتر پردازشگرهای ربطی روی پايه ای از عبارتهای برابری مانند B ستون = A ستون به انجام می رسند. اما SQL Server هر اپراتور منطقی را پشتيبانی کرده و شرايط پيوند می تواند به طور دلخواه پيچيده باشد، با عبارات چندگانه پيوند يافته که از حرف ربط AND يا OR از همان راهی که يک شرط WHERE می تواند ملاک انتخابی چندگانه را شامل باشد استفاده کند. عبارت پيوند می تواند برای اضافه کردن جداول و نماهای اضافی برای Query تکرار شود. ساختار دستور برای پيوند جداول چندگانه عبارت است از: FROM
ON
يک حدود فرضی 256 جدولی برای هر Query وجود دارد، اما آن به حد زياد غير محتمل است که شما اصلاً نياز به 5 يا 6 نياز نداريد و 2 يا 3 بيشتر معمول می باشد. در حقيقت اگر شما نياز به اتصال بيش از 10 جدول در يک Query باشيد، شما بايد به دقت طرح پايگاه داده آن را نگاه کرده برای اينکه مطمئن شويد که آن به طور صحيح به حالت عادی در آمده است.

ايجاد کردن پيوندها
پيوندها می توانند در Query Designer با استفاده هر کدام از قاب Grid يا قاب SQL ايجاد گردند. قاب Grid اغلب آسانتر می باشد اگر شما جداولی که رسماً در طرح پايگاه داده مربوط شده اند پيوند دهيد، از موقعی که Query Designer پيوندی بين آنها به طور خودکار ايجاد خواهد کرد. اما به طور معمول قاب SQL با انعطاف پذيری بيشتر برای شما فراهم می گردد.

نامگذاری شئی ها
زمانی که شما با يک جدول يا نمای تکی کار می کنيد آنجا می تواند هيچ ابهامی در حدود منابع از يک ستون نداشته باشد از موقعی که همه نام ستونها در يک جدول بايد منحصر به فرد باشند. هنگامی که شما برای بار اول کار کردن با چندين جدول در يک Query را شروع می کنيد يا شما بايد برای مشخص کردن نام ستونها صريحاً مواظب باشيد. مشخصات کامل برای هر شئی پايگاه داده چهار معرفه را در بردارد. نام سرور، نام پايگاه داده، نام صاحب، نام شئی. معرفه ها به وسيله پريودها جداسازی می گردند. بنابراين نام واجد شرايط از جدول Oils در سيستم من Bunny.Aromatherary.dbo.Oil می باشد. مقداری از شئی ها مانند نماها و جداول شامل شئی های ديگر می باشد. برای رجوع به يکی از اين شئی های گنجانده شده (در اين حالت، ستونها). شما به آسانی نام آن را به نام شئی ضميمه می کنيد. نام واجد شرايط کامل از ستون OilID از جدول Oils (Bunny.Aromatherapy.dbo.Oils.Oil ID) می باشد. خوشبختانه شما فقط نياز به مشخص کردن کافی از درجه بندی ابهام اجتناب پذير داريد.
در يک Query مبنی بر يک جدول تکی، برای مثال نام ستون به وسيله خودش دارای مشخصات کافی می باشد. اگر يک Query به بيش از يک جدول مربوط گردد، اگر چه جداول دارای ستونهايی با يک نام باشد. شما بايد نام جدول را در نام شئی (Object) Oils.OilID , OilPropertise.OilID که تمايز را به طور کامل روشن می سازد لحاظ کنيد.

پيوندهای داخلی
بيشترين فرمهای رايج پيوند يک پيوند داخلی می باشد. يک پيوند داخلی فقط آن سطرهايی که شرايط پيوند TRUE را باز می گرداند باز خواهد گرداند.

پيوند دو جدول با استفاده از قاب دياگرام
1- Query Designer جدول Oils را به وسيله کليک راست کردن نام آن در قاب Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنيم.

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

3- دکمه Add Table را روی نوار ابزار Query Designer کليک می کنيم. Query Designer کادر محاوره ای Add Table را نشان می دهد.

4- جدول PlantTypes را در ليست جدول انتخاب کرده و Add را کليک می کنيم. SQL Server جدول را به Query اضافه می کند.
5- Close را برای بستن کادر محاوره ای Add Table کليک می کنيم.

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

7- علامت * را بعد از کليد واژه SELECT حذف می کنيم.

8- دکمه قاب SQL را در نوار ابزار Query Designer کليک می کنيم. (OK را کليک کرده اگر Query Designer يک متن خطا درباره ساختار دستور SELECT نشان دهد). Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنيد، حالت SQL معمولاً * را انتخاب می کند. انتخاب کردن ستونهای مشخص در قاب دياگرام سبب می شود که آنها به ليست ستون اضافه شوند. مايکروسافت آن را به صورت يک خصيصه در نظر می گيرد.

9- در قاب دياگرام ستونهای OilID و OilName را در جدول Oils و ستون PlantType را در جدول PlantType انتخاب می کنيم.

10- دکمه Run روی نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer مقادير Planttype را برای هر Oil نشان می دهد.


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

2- حالت SQL موجود را با عبارت زير جايگزين می کنيم.


SELECT Oils.OilID,Oils.Oil Name,PlantParts.PlantPart
FROM OilsINNER Join
PlantParts ON Oils.PlantPartID=PlantParts.PlantPart ID

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer مقاديرها برای هر سطر Oils Plant Part را نشان می دهد.


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

2- دکمه Add Table را روی نوار ابزار Query Designer کليک می کنيم. Query Designer کادر محاوره ای Add Table را نشان می دهد.

3- جدول Planttypes را در ليست جداول انتخاب می کنيم. Add را کليک کرده SQL Server جدول را به Query اضافه می کند.
4- Close را برای بستن کادر محاوره ای Add Table کليک می کنيم.

5- در قاب دياگرام ستون Planttype را در جدول Planttypes برای اضافه کردن ستون به Query کليک می کنيم.

6- دکمه Run در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer هر دوی ستونهای PlantPart و Planttype را برای هر Oil نشان می دهد.


ارتباط جداول چندگانه با استفاده از قاب SQL
1- قاب دياگرام را پنهان کرده و قاب SQL را نشان می دهيم.
2- عبارت SELECT موجود را با عبارت زير جايگزين می کنيم.


SELECT Oils.Oil ID.Oils.Oil Name.odors.odor
FROM Oils
INNER Join Oilodors on Oils.OilID=Oil odors.OilID
INNER Join odors on Oilodors.odor ID=odors.odorID

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم.

4- پنجره Query Designer را می بنديم.

ارتباطات خارجی
بعضی مواقع شما می خواهيد که يک Query همه سطرها يک يا چندين جدول را باز گرداند، خواه آنها سطرهای ارتباطی در جداول ديگر داشته باشند و يا خير. که با استفاده از يک ارتباط خارجی به انجام رسيده که می تواند سه گونه باشد: چپ، راست و کامل. يک ارتباط خارجی همه سطرهايی از جدول چپ در شرط JOIN و فقط آن سطرهايی از جدول راست برای اينکه شرايط ارتباط TRUE می باشد را باز خواهد گرداند.
دستور ساختار برای يک ارتباط خارجی عبارت است از:
FROM Left Table Left Outer Join Right able on
برای مثال عبارت SELECT زير، همه سطرها در جدول Oils را باز می گرداند و مقادير PlantPart از جدول آنجايی که PlantPart مشخص شده جفت می شود. آنجا سطرهای ارتباطی در جدول Plant Parts وجود ندارد و Query ، Null را به عنوان مقدار PlantPart برای آن سطر باز می گرداند.


SELECT Oils.Oil Name.Plant Parts.Plant Part
FROM Oils Left Outer Join
Plant Parts on Oils.Plant Part ID=Plant Parts.Plant Part ID

يک ارتباط خارجی سمت راست مقابل يک ارتباط خارجی سمت چپ می باشد. آن همه سطرها از جدول راست در شرط JOIN را باز می گرداند و مقادير ارتباطی را از جدول چپ ارتباط می دهد. نظر به اينکه يک ارتباط کاملاً خارجی همه سطرها از دو جدول را با هم هماهنگ می سازد آنجايی که امکان پذير باشد.

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

3- دکمه Add Table را در نوار ابزار Query Designer کليک می کنيم. Query Designer کادر محاوره ای Add Table را نشان می دهد.

4- Cautions و Oil Cautions در ليست جدول را انتخاب و سپس Add را کليک می کنيم. Query Designer جدولی برای Query اضافه می کند.
راهنمايی: شما می توانيد يک ارتباط خارجی چپ با دو جدول ايجاد کنيد. ما حالت سوم را در ايجاد استفاده می کنيم با جدول OilCautions که به عنوان يک جدول الحاقی عمل می کند که ارتباط چندگانه بين Oils و Cautions را حل می کند.
5- Close را برای بستن کادر محاوره ای کليک می کنيم.

راهنمايی: شما می توانيد جداول را در قاب دياگرام برای پاک کردن نمايشگر درج کنيد.

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

7- علامت * را در کليد واژه SELECT حذف می کنيم.

8- دکمه قاب SQL را در نوار ابزار Query Designer کليک می کنيم. (OK را کليک کرده اگر Query Designer يک متن خطا درباره ساختار از عبارت SELECT نشان دهد) Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنيد عبارت SQL پيش فرض معمولاً * را انتخاب می کند. ستون ويژه که در قاب دياگرام انتخاب شده سبب می شود که آنها برای ليست ستون اضافه شوند. مايکروسافت اين را به عنوان يک ويژگی در نظر می گيرد.

9- در قاب دياگرام، ستونها از OilName و OilID را از جدول Oils و ستون Caution را از جدول Cautions برای خروجی انتخاب می کنيم.

10- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer فقط آن Oils که Cautions دارد را نشان می دهد.

11- خط ارتباطی بين جداول Oil Cautions و Oils را به وسيله کليک کردن آن انتخاب می کنيم و سپس دکمه Properties را در نوار ابزار Query Designer کليک می کنيم. Query Designer کادر محاوره ای Join Properties را نشان می دهد.

12- All Rows From Oils را انتخاب می کنيم.

راهنمايی: همه سطرها از Oil Cautions يک ارتباطی خارجی سمت راست ايجاد خواهد کرد و هر دوی گزينه ها را انتخاب کرده که يک ارتباط کامل خارجی ايجاد می کند.
13- Close را برای بستن کادر محاوره ای کليک می کنيم. Query Designer خط ارتباطی را برای انعکاس مشخصات ارتباطی جديد تغيير می دهد.

14- دکمه Run در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer همه سطرها در جدول Oils را نشان می دهد و مقادير از جدول Cautions را ارتباط می دهد.

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

2- حالت SELECT موجود را با عبارت زير جايگزين می کنيم.


SELECT Oils.Oil Name.Properties.Property
FROM Oils
Right OUTER JOIN Oil Properties on
Oils.Oil ID=Oil Properties.Oil ID
INNER JOIN Properties on
Oil Properties.Property ID=Properties.Property ID

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer شامل همه سطرها از جدول Oil Properties با مقادير ارتباطی از جدول Oils می باشد.

4- پنجره Query Designer را می بنديم.

UNIONS
آخرين نوع از ارتباط به صورت Union شناخته می گردد. يک Union نتايجی از دو عبارت SELECT متمايز را در داخل يک تنظيم از سطرها ترکيب می کند. ارتباطات داخلی و خارجی ستونهايی از دو جدول درگير شده در يک سطر تکی را با هم ترکيب می کند يک Union سطرهايی از دو جدول در يک ستون تکی را به هم ترکيب می کند. شما می توانيد تصور کنيد که تنظيمات دو سطر را گرفته و يکی را در بالای ديگری باز گردانيد. اگر چه قاعده اصلی از سطرها باز گردانده شده به وسيله شرط ORDER BY مشخص می گردد. ساختار دستور يک Union از پيوندها متفاوت می باشد. يک Union ساختار دستوری به صورت زير دارد:


SELECT FROM
UNION [All]
SELECT FROM
[ORDER BY ]

شما می توانيد بسياری از حالتهای UNION SELECT را همان طوری که شما برای يک Query دوست داريد اضافه کنيد. (اين موضوع برای 256 جدول محدود می باشد) اما همه عبارتهای SELECT بايد همان تعداد از ستونها را از انواع سازگار يا شبيه در همان دستور باز گرداند. اولين عبارت SELECT نامهای ستون را مشخص خواهد کرد و شرط ORDER BY از آخرين عبارت SELECT دستور Sort را تعيين خواهد کرد. به طور پيش فرض، SQL Server سطرهای چندگانه ای از نتايج را از يک Union Query برمی دارد. اگر شما Union All را مشخص کنيد، ولی سطرهای چندگانه حفظ خواهد شد.

ايجاد کردن يک UNION
1- Query Designer را به وسيله کليک کردن جدول Properties در قاب Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنيم.
2- قاب SQL را نشان می دهيم.

3- حالت SQL موجود را با عبارت زير جايگزين می کنيم.


SELECT Property Table AS Table Name.Property ID AS ID
Property AS Quality From Properties
UNION
SELECT odor Table.odor ID odor From odors
ORDER BY Quality

4- دکمه Run در نوار ابزار Query Designer را برای اجرای Query کليک می کنيم. Query Designer نتايجی از دو عبارت SELECT را با هم ترکيب می کند.

ايجاد کردن Check Constraint

شناخت Check Constraint
يکی از مهمترين بازرسی های طراحی پايگاه داده يکپارچه سازی داده ها می باشد. قاعده يکپارچگی داده ها تضمين مي کند که داده های ايجاد شده در پايگاه داده اگر درست نباشد حداقل قابل قبول می باشد. چندين سطح از يکپارچگی داده ها وجود دارد. در درس 7 ما درباره يکپارچگی رابطه ای مطالعه کرديم که تضمين می کند اجتماع بين جداول ايجاد و به طور صحيح نگهداری می گردند.
Check Constraintsبرای اجرای دو فرم اضافی از يکپارچگی پايگاه داده استفاده می شود. domain Integrity و entity Integrity . در اصطلاحات رابطه ای که Domain محدوده ای از مقاديری است که يک ستون می تواند داشته باشد. نوع داده های يک ستون يکی از ويژگيهای از يک Domain می باشد، اما تعريف نوع داده معمولاً کافی نيست. برای مثال، يک ستون Smallint می تواند شامل مقادير صحيح از 768/32- تا 767/32 می باشد که ممکن نوع داده مناسبی برای يک ستونی که شامل سالی است که يک کارمند مدرک دانشگاهي را در دريافت می کند باشد. اما حدود اصلی مقادير ستون Year Degree Awarded بيشتر محدود شده و بين 1900 و سال جاری می باشد. شما از يک Check Constraints استفاده می کنيد، برای تخمين اينکه هيچ کس به طور واقعی مقادير 1543 يا 2075 را به عنوان مقدار ستون وارد نمی کند. Entity Integrity Constraints جامعيت از موجودی خودش را اجرا می کند. مهمترين محدوديتهای يکپارچگی موجوديت آن است که هر موجوديت Entity Integrity بايد به طور واحد قابل شناسايی باشد. اين محدوديت به وسيله مشخص کردن يک کليد اصلی برای جدول انجام می گيرد. يکپارچگی موجوديت همچنين می تواند درگير ارزيابی شرطی از چندين ستون در يک جدول باشد و اين نوع از محدوديت اغلب بيشتر با استفاده از Check Constraints انجام می گيرد. برای مثال، اگر يک جدول شامل ستونهای کشور و ايالت باشد شما ممکن از يک Check Constraints برای مشخص کردن اينکه ارزش ستون State ، "AZ" معتبر می باشد فقط اگر ستون Country شامل مقادير USA باشد. Check Constraint به عنوان Boolean Expressions شناخته می شود يک Boolean Expressions برای مقادير True يا False ارزيابی می گردد. Boolean Expressions را در درس 13 می آموزيم. در اين درس ما از عبارت LEN()>=4 استفاده می کنيم. LEN يک تابع Transact-SQL می باشد که تعدادی کارکترهای يک رشته را برمی گرداند. بنابراين عبارت LEN()>=4 ارزش آن اگر شامل 4 يا بيشتر کارکتر باشد ارزش آن True و اگر کمتر از 4 باشد ارزش آن False می گردد.


ايجاد کردن Check Constraint)
مانند ايندکس ها و پيوندها شما می توانيد Check Constraints را با استفاده از کادر محاوره ای Properties از Table Designer ايجاد کنيد.
1- Table Designer را برای جدول Oils به وسيله کليک راست کردن نام جدول در قاب Details باز کرده و Design Table را انتخاب می کنيم. Table Designer , SQL Server را باز می کنيم.

2- دکمه Constraints را کليک کرده SQL Server کادر محاوره ای Table Designer Properties را با صفحه خصوصيات Constraints Check نشان داده شده باز می کنيم.

3- New را کليک کرده Ck-Oils , SQL Server را به عنوان نام محدوديت پيشنهاد می دهد. برای اين مثال اين نام را می پذيريم.

4- Len(Oil Name)>=4را به عنوان عبارت محدوديت وارد می کنيم.

راهنمايی: اگر شما يک Check Constraint جديد را ايجاد می کنيد و مراقب نيستيد که آيا داده های موجود متابعت می شوند، شما می توانيد بگويد به SQL Server که از ايجاد کردن داده به وسيله چک نکردنCheck Existing Data On Creation از محدوديت چشم پوشی کند.
5- Close را کليک کرده SQL Server کادر محاوره ای Designers Properties Table را می بندد.
6- دکمه Save را کليک کرده SQL Server کنترل می کند که همه سطرها در جدول باCheck Constraint مواجه می شوند و سپس محدوديت را ذخيره می کنيم.

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

تغيير دادن Check Constraint
Table Designer مکانيزمی برای تغيير متن از يک Check Constraint از همان کادر محاوره ای که شما برای ايجاد آن استفاده کرديد فراهم می کند.

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

2- دکمه Constraints را کليک کرده SQL Sarver کادر محاوره ایTable Designer را با صفحه خصوصيات Check Constraint باز می کند.

3- اطمينان حاصل کنيد کهCk – Oilsدر Constraint Combo Box انتخاب شده نشان داده شده است.
4- متن محدوديت را برایLEN (Oil Name )>2 به عنوان عبارت محدوديت جديد تغيير می دهيم.

5- Close را کليک کردهSQL Server کادر محاوره ایTable Designer’s Properties را می بندد.
6- دکمه Save را کليک کرده SQL Server همه سطرها در جدول را که با Check Constraint جديد مواجه است را کنترل کرده و سپس محدوديت را ذخيره می سازد.

نگهداری Check Constraints
مانند ديگر خصوصيات جدول ديگر، Check Constraints در کادر محاوره ای Properties ازTable Design نگهداری می گردد.

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

2- دکمه Constraints را کليک کرده SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصيات Check Constraint نشان داده شده باز می کند.

3- Ck-Oils را در فيلد Constraint Name انتخاب کرده و آن را به Ck-Deleteme تغيير می دهيم.

4- Close را کليک کرده SQL Server کادر محاوره ای Properties را می بندد.
5- دکمه Save را کليک کردهSQL Server همه سطرها در جدول که باCheck Constraint مواجه شده اند را کنترل می کند و سپسConstraint ذخيره می گردد.

حذف يک Check Constraint
1- Table Designer برای جدول Oils را به وسيله کليک راست کردن نام جدول در قاب Details باز کرده و جدول Design را انتخاب می کنيم. Table Designer , SQL Server را باز می کند.

2- دکمه Constraints را کليک کرده SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصياتCheck Constraint نشان داده شده باز می کنيم.

3- اطمينان حاصل کنيد که Ck-Deleteme در فيلد محدوديت انتخاب شده می باشد و سپس Delete را کليک می کنيم. SQL Server محدوديت را برمی دارد.

4- Close را کليک کرده SQL Server کادر محاوره ای Properties را می بندد.
5- دکمه Save را کليک می کنيم. SQL Server محدوديت را برمی دارد.
6- Table Designer را می بنديم.

soaleman
06-06-2010, 08:37
با سلام
چندي پيش 1 سوال مطرح كردم كه چطوري ميشه يك package رو SQL Server فراخواني كرد اما پس از مدتي يك پيام خصوصي با اين متن "The post that you created in the following thread has been moved"فرستاده شد؟! كه نفهميدم چرا؟
يعني نميشه تو اين تاپيك سوال مطرح كرد؟

armalma
07-06-2010, 23:17
سلام لطفا توضیح بدید چطور میشه با netbeans به sql server 2008 در win7 وصل شد ؟