saalek110
Well-Known Member
از همان منبع: hamed_Arfaee
http://www.forum.iranled.com/showthread.php?tid=3872
----------------------------------------------------------------------
انتخاب قسمتي از جدول موجود در ديتابيس (بانك اطلاعات خودمون )
با استفاده از دستورات اس كيو ال مي توانييم بازجستهايي (Query) ايجاد كنيم و ركوردها و حتي ستونهايه خاصي رو استخراج كنيم
اولين دستور ساده :
با استفاده از دستور فوق ما تمام ركوردهاي موجود در جدول table1 رو استخراج مي كنيم
با استفاده از * مشخص مي كنيم كه تمام ستونها رو انتخاب كن (تمام ستونهاي موجود در جدول)
و يا با نوشتن نام هر يك از ستونها ميتونييم اونا رو انتخاب كنيم مثلا من در جدول خود 4 ستون دارم ولي مي خواهم براي نمايش داده ها
فقط از 3 ستون آن استفاده كنم پس با نوشتن نام آن 3 ستون در انتخاب خود محدوديت قائل مي شويم
با استفاده از كلمه where در جستجوي خود محدوديتي اعمال مي كنيم بطوريكه : ركوردهايي (سطرهايي) از جدول table1 انتخاب مي شوند
كه مقدار ستون اول برار a باشد
يعني تمام ستونها انتخاب شوند و از سطرها انهايي اتخاب شوند كه فيلد اول آنها مقدار a را دارد
مي توان در اين شرط چند گزينه ديگر را هم افزود (به مثالهاي زير توجه كنيد
در مثال بالا انتخاب بشرطي صحيح است كه در جدول table1 ما
ستوني با نام col1 و از نوع رشته ايي
ستوني بانام col2 و از نوع عددي
ستوني با نام col3 و از نوع date/time (تاريخ و زمان)
وجود داشته باشد .پس ما در مثال بالا سطرهايي را انتخاب مي كنييم كه ستون اول برابر d و ستون دوم برابر 3 و ستون سوم كه از نوع تاريخ است
از تاريخ امروز يعني 2007/08/18 كوچكتر باشد.
مي توان نتيجه گرفت كه د رمقايسه رشته و كاراكتر در اس كيو ال از علامت ' (تك كوتيشن)
براي مقايسه عدد (فيلد عددي با يك عدد) از هيچ علامتي
و براي مقايسه تاريخ و زمان # (شارپ) استفاده مي كنيم
در مثال بالا از جدول مذكور تمام سطرهايي انتخاب مي شوند كه مقدار موجود در ستون اول با حرف h شروع شده باشد (ادامه كلمه مهم نيست)
در مثال بالا ما در انتخاب خود محدوديت تعداد انتخاب را اعمال كرده ايم يعني از جدول table1 فقط 10 سطر اول انتخاب شوند
در مثال بالا ما فقط ستون اول را نمايش مي دهيم ولي با استفاده از دستور distinct تمام موارد تكراري را در ان ستون حذف مي كنيم
بعنوان مثال اگر 5 سطر داده داشته باشيم بصورت : a1,a1,a2,a3,a1
و با دستور بالا از اين داده ها انتخاب كنيم خروجي ما شامل : a1,a2,a3 خواهد بود
مي توانييم انتخابهاي محاسباتي هم داشته باشيم مثلا تعداد ركوردهاي مطابق با شرط يا (بزرگترين/كوچكترين) داده موجود در بين ركوردها
و يا معدل داده ها و جند مورد ديگر
با دستور فوق بزرگترين مقدار در فيلد اول و كوچكترين مقدار در فيلد دوم و تعداد ركوردهاي فيلد سوم را به ما خواهد داد
نكته : مي توانييم به هر يك از اين ستون ها يك نمام هم اختصاص دهيم تا هنگام استفاده راحتتر عمل كنيم بصورت زير:
براي داشتن نتيجه مرتب م يتوانييم آنها را با دستورorder by مرتب كرد بصورت زير :
با اين دستور يافته ها بر اساس ستون اول مرتب خواهند شد
نكته : پيش فرض مرتب سازي بصورت صعودي مي باشد و اگر بخواهييم اين حالت را عوض كنيم مي توانييم بعد از كلمه order by نوع مرتب سازي را نيز
مشخص كنيم مثلا براي صعودي Asc و براي نزولي از كلمه Desc استفاده مي كنيم
در استفاده از دستورات sql مي توانييم 255 select تو در تو را بنويسيم و استفاده كنيم:
در مثال بالا ابتدا ركوردهايي كه ستون دوم آنها برابر حرف s است انتخاب مي شوند سپس از ميان انها ستونهاي اول و دوم بطوري انتخاب مي شوند
كه مقدار ستون سومشان به f ختم مي شوند (حالا اينو به 10 انتخاب تودرتو ديگه تعميم بدين )
-------------------------------------
نكته : الان ساعت 5 صبح هست مثالا رو هم از خودم درآوردم و همينجا تايپ كردم پس ممكنه
توشون اشتباه تايپي يا گرامري وجود داشته باشه (اگه بود بگين درست كنم )
-------------------------------------
تا همينجا بسه خسته شدم
ادامشو هم بعدا ميگم
http://www.forum.iranled.com/showthread.php?tid=3872
----------------------------------------------------------------------
انتخاب قسمتي از جدول موجود در ديتابيس (بانك اطلاعات خودمون )
با استفاده از دستورات اس كيو ال مي توانييم بازجستهايي (Query) ايجاد كنيم و ركوردها و حتي ستونهايه خاصي رو استخراج كنيم
اولين دستور ساده :
کد:
Select * From Table1;
Select Col1,Col2,Col3 from Table1;
با استفاده از * مشخص مي كنيم كه تمام ستونها رو انتخاب كن (تمام ستونهاي موجود در جدول)
و يا با نوشتن نام هر يك از ستونها ميتونييم اونا رو انتخاب كنيم مثلا من در جدول خود 4 ستون دارم ولي مي خواهم براي نمايش داده ها
فقط از 3 ستون آن استفاده كنم پس با نوشتن نام آن 3 ستون در انتخاب خود محدوديت قائل مي شويم
کد:
Select * From Table1 Where (col1='a');
كه مقدار ستون اول برار a باشد
يعني تمام ستونها انتخاب شوند و از سطرها انهايي اتخاب شوند كه فيلد اول آنها مقدار a را دارد
مي توان در اين شرط چند گزينه ديگر را هم افزود (به مثالهاي زير توجه كنيد
کد:
Select * from table1 where(col1='d' and col2=3 and col3<#2007/08/18#);
ستوني با نام col1 و از نوع رشته ايي
ستوني بانام col2 و از نوع عددي
ستوني با نام col3 و از نوع date/time (تاريخ و زمان)
وجود داشته باشد .پس ما در مثال بالا سطرهايي را انتخاب مي كنييم كه ستون اول برابر d و ستون دوم برابر 3 و ستون سوم كه از نوع تاريخ است
از تاريخ امروز يعني 2007/08/18 كوچكتر باشد.
مي توان نتيجه گرفت كه د رمقايسه رشته و كاراكتر در اس كيو ال از علامت ' (تك كوتيشن)
براي مقايسه عدد (فيلد عددي با يك عدد) از هيچ علامتي
و براي مقايسه تاريخ و زمان # (شارپ) استفاده مي كنيم
کد:
Select * from Table1 where(col1 like 'h%');
کد:
select Top 10 *from table1;
کد:
select Distinct col1 from table1;
بعنوان مثال اگر 5 سطر داده داشته باشيم بصورت : a1,a1,a2,a3,a1
و با دستور بالا از اين داده ها انتخاب كنيم خروجي ما شامل : a1,a2,a3 خواهد بود
مي توانييم انتخابهاي محاسباتي هم داشته باشيم مثلا تعداد ركوردهاي مطابق با شرط يا (بزرگترين/كوچكترين) داده موجود در بين ركوردها
و يا معدل داده ها و جند مورد ديگر
کد:
Select max(col1),min(col2),count(col3) from table1;
نكته : مي توانييم به هر يك از اين ستون ها يك نمام هم اختصاص دهيم تا هنگام استفاده راحتتر عمل كنيم بصورت زير:
کد:
Select max(col1)as MxC1,min(col2)as MnC2,count(col3)as CnC3 from table1;
براي داشتن نتيجه مرتب م يتوانييم آنها را با دستورorder by مرتب كرد بصورت زير :
کد:
select * from tabl1 order by col1;
نكته : پيش فرض مرتب سازي بصورت صعودي مي باشد و اگر بخواهييم اين حالت را عوض كنيم مي توانييم بعد از كلمه order by نوع مرتب سازي را نيز
مشخص كنيم مثلا براي صعودي Asc و براي نزولي از كلمه Desc استفاده مي كنيم
در استفاده از دستورات sql مي توانييم 255 select تو در تو را بنويسيم و استفاده كنيم:
کد:
select col1,col2 from(select * from table1 where col2='s') where (col3 like '?f'));
كه مقدار ستون سومشان به f ختم مي شوند (حالا اينو به 10 انتخاب تودرتو ديگه تعميم بدين )
-------------------------------------
نكته : الان ساعت 5 صبح هست مثالا رو هم از خودم درآوردم و همينجا تايپ كردم پس ممكنه
توشون اشتباه تايپي يا گرامري وجود داشته باشه (اگه بود بگين درست كنم )
-------------------------------------
تا همينجا بسه خسته شدم
ادامشو هم بعدا ميگم