select

از این دستور برای بدست آوردن و نمایش داده های رکوردهای جدول استفاده می شود



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



روش استفاده :

فرمول 1

اگر بدون هیچ گونه شرطی می خواهید داده های ذخیره شده در جدول را مشاهده کنید از فرمول زیر استفاده کنید :




SELECT نام فیلد یا فیلدها
FROM نام جدول ;

اگر داده های موجود در ستون چندین فیلد را می خواهید مشاهده نمائید بین اسم انها ویرگول قرار دهید

 


فرمول 2

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


SELECT *
FROM نام جدول ;



 







مثال 1:

فرض کنید جدول person بصورت  زیر وجود دارد :


P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL




 

SELECT LastName,FirstName FROM Persons




نتیجه اجرای این دستور جدول موقت زیر خواهد بود :




LastNameFirstName
hassan alavi
saed tavakoli
mohammad karami
nima hamidi
mohsen javadi





مثال 2:

فرض کنید جدول person بصورت  زیر وجود دارد :


P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL




 

SELECT * FROM Persons




نتیجه اجرای این دستور جدول موقت زیر خواهد بود :




P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL



DISTINCT

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

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




روش استفاده :

SELECT DISTINCT نام فیلد FROM نام جدول ;


مثال 1:

فرض کنید جدول person بصورت زیر موجود است :

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed alavi yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen hamidi NULL NULL




SELECT DISTINCT firstname FROM Persons;


نتیجه اجرای دستور بالا ، نمایش تمام مقادیر ستون family است ولی موارد تکراری نشان داده نمی شود .

جدول موقت زیر نتیجه اجرای دستور بالاست:

 

FirstName
alavi
karami
hamidi






مثال 2:

فرض کنید جدول person بصورت زیر موجود است :

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed alavi yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen hamidi NULL NULL




SELECT firstname FROM Persons;


نتیجه اجرای دستور بالا ، نمایش تمام مقادیر ستون family است موارد تکراری نیز نشان داده می شود .

جدول موقت زیر نتیجه اجرای دستور بالاست:

 

FirstName
alavi
alavi
karami
hamidi
hamidi





where

اگر بخواهیم رکوردهایی را که شرط یا شرط های خاصی دارند   نمایش دهیم از این کلمه در دستور select استفاده کنیم

 




روش استفاده :

SELECT نام فیلد یا فیلدها
FROM نام جدول
WHERE شرط یا شرط ها;

 

 

 عملگرهای موجود در شرط where

= مساوی
<> یا =! مساوی نیست با
> کمتر از
< بیشتر از
=> کمتر مساوی
=< بیشتر مساوی
BETWEEN بین دو مقدار
LIKE بر طبق الگوی خاص رشته ای
IN در بین مجموعه ای از مقادیر



مثال 1:

فرض کنید جدول زیر وجود دارد :

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL




رکوردهایی را نمایش دهید که مقدار فیلد p_id آنها از 3 کمتر باشد

SELECT * FROM Persons
WHERE p_id<3 ;

 


نتیجه اجرای این دستور نمایش تمام فیلدهای رکوردها یی است که مقدار فیلد p_id انها کمتر از 3 است

جدول موقت زیر بعنوان نتیجه این دستور نشان داده می شود:




 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd








دقت کنید

1:

دستور زیر اشتباه است :

SELECT * FROM Persons WHERE FirstName=alavi;

دستور زیر صحیح است :

SELECT * FROM Persons WHERE FirstName="alavi";

2:

اگر فیلد year از نوع عددی یعنی numeric  باشد آنگاه

دستور زیر درست است :

SELECT * FROM Persons WHERE Year=1965;

دستور زیر اشتباه است :

SELECT * FROM Persons WHERE Year="1965";





and , or

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

 


مثال 1:

فرض کنید جدول person به صورت زیر موجود است :



P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL



تمام فیلدهای رکوردهایی را نمایش دهید که مقدار فیلد p_id آنها یک بوده یا firstname آنها برابر javadi باشد :




select * from person

where p_id=1 or firstname="javadi";

 


نتیجه دستور بالا جدول موقت زیر خواهد بود :

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
5 mohsen javadi NULL NULL






مثال 2:

فرض کنید جدول person به صورت زیر موجود است :



P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL



تمام فیلدهای رکوردهایی را نمایش دهید که مقدار فیلد p_id آنها یک بوده و firstname آنها برابر javadi باشد :




select * from person

where p_id=1 and firstname="javadi";

 


نتیجه دستور بالا پیام  زیر خواهد بود :

empty

زیرا چنین رکوردی وجود ندارد




like

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

 

و برای شرطهایی که در مورد فیلدهای رشته ای گذاشته می شوند بکار می رود

 

در این کلمه از  نمادهای زیر استفاده می شود :

 

%: یعنی هیچ یا هر چند تا کاراکتر می تواند به جای علامت درصد قرار گیرد

 

_: یعنی به جای هر علامت خط زیر فقط و باید یک کاراکتر قرار گیرد

[کاراکتر یا کاراکترها]:برای بیان وجود کاراکتری از بین مجموعه ای از کاراکترهادر مقدار فیلد و این مجموعه کروشه فقط برای یک کاراکتر بکار می رود

 

[مجموعه ای از کاراکترها یا یک کاراکتر ^] یا [مجموعه ای از کاراکترها یا یک کاراکتر !]: برای بیان وجود نداشتن  کاراکتری از بین مجموعه ای از کاراکترهادر مقدار فیلد و این مجموعه کروشه فقط برای یک کاراکتر بکار می رود

 


مثال 1:

فرض کنید جدول person بصورت زیر وجود دارد :

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

حال نتیجه اجرای دستور زیر را خواهیم دید :

SELECT * FROM Persons
WHERE City LIKE "y%";


یعنی رکوردهایی را نمایش دهد که ا که مقدار فیلد city انها با کاراکترy شده و بعد از این کلمه هر چند کاراکتر می تواند باشدجدول موقت زیر نتیجه اجرای دستور بالاست:

 

P_IdLastNameFirstNameAddressCity
2 saed tavakoli yazd yazd





مثال 2:

فرض کنید جدول person بصورت زیر وجود دارد :

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

حال نتیجه اجرای دستور زیر را خواهیم دید :

SELECT * FROM Persons
WHERE City LIKE "%a%";


یعنی رکوردهایی را نمایش دهد که ا که در مقدار فیلد city انها  کاراکتر  a موجود باشد  جدول موقت زیر نتیجه اجرای دستور بالاست:

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan







 

مثال 3:

فرض کنید جدول person بصورت زیر وجود دارد :

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

حال نتیجه اجرای دستور زیر را خواهیم دید :

SELECT * FROM Persons
WHERE City LIKE "_a__";


یعنی رکوردهایی را نمایش دهد که  در مقدار فیلد city انها  کاراکتر  a موجود باشد  و قبل از آن یک حرف و بعد از آن دو حرف دیگر باشد جدول موقت زیر نتیجه اجرای دستور بالاست:

 

P_IdLastNameFirstNameAddressCity
2 saed tavakoli yazd yazd





مثال 4:

فرض کنید جدول person بصورت زیر وجود دارد :

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

حال نتیجه اجرای دستور زیر را خواهیم دید :

SELECT * FROM Persons
WHERE City LIKE "[syr]%";


یعنی رکوردهایی را نمایش دهد که  اولین کاراکتر در مقدار فیلد city انها  کاراکتر   s یا y یا r  باشد  و بعد از آن هر چند تا کاراکتر می تواند باشد .  جدول موقت زیر نتیجه اجرای دستور بالاست:

 

P_IdLastNameFirstNameAddressCity
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz




مثال 5:

فرض کنید جدول person بصورت زیر وجود دارد :

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

حال نتیجه اجرای دستور زیر را خواهیم دید :

SELECT * FROM Persons
WHERE City LIKE "[!syr]%";


یعنی رکوردهایی را نمایش دهد که  اولین کاراکتر در مقدار فیلد city انها  کاراکتر   s یا y یا r  نباشد  و بعد از آن هر چند تا کاراکتر می تواند باشد .  جدول موقت زیر نتیجه اجرای دستور بالاست:

 

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL




BETWEEN

برای بیان شرط که مقدار فیلد بین دو مقدار خاص باشد

روش استفاده :

SELECT فیلدیا فیلدها
FROM نام جدول
WHERE فیلد شرط
BETWEEN مقدار اول AND مقدار دوم;

 


مثال 1:

فرض کنید جدول زیر به نام person موجود است :



P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

select * from person

where p_id between 1 and 3;

یعنی مقدار فیلد p_id رکوردهای مورد نظر که می خواهیم ببینیم بین یک تا سه باشند

نتیجه بصورت زیر خواهد بود :

P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz




مثال 2:

فرض کنید جدول زیر به نام person موجود است :



P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

select * from person

where firstname between "alavi" and "javadi";

یعنی مقدار فیلد firstname رکوردهای مورد نظر که می خواهیم ببینیم از نظر ترتیب حروف الفایی  alavi تا javadiباشند

نتیجه بصورت زیر خواهد بود :



P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL





 

مثال 3:

فرض کنید جدول زیر به نام person موجود است :



P_IdLastNameFirstNameAddressCity
1 hassan alavi tehran tehran
2 saed tavakoli yazd yazd
3 mohammad karami shiraz shiraz
4 nima hamidi abadan abadan
5 mohsen javadi NULL NULL

select * from person

where firstname not  between "alavi" and "javadi";

یعنی مقدار فیلد firstname رکوردهای مورد نظر که می خواهیم ببینیم از نظر ترتیب حروف الفایی  alavi تا javadi نباشند

نتیجه بصورت زیر خواهد بود :

 

P_IdLastNameFirstNameAddressCity
2 saed tavakoli yazd yazd