Skip to main content

الجزء التاسع: جملة الأستعلام الأنتقائية SELECT Query Statement

الجزء التاسع: جملة الأستعلام الأنتقائية
SELECT Query Statement

في هذا الجزء سأشرح معظم استخدامات جملة الأستعلام الSELECT:
·       استرجاع البيانات من جميع الحقول او حقل معين.
·       استرجاع سجلات متميزة اي الشبيه لا يتم اظهارها عن طريق DISTINCT
·       تصفية  Filteringالبيانات المسترجعة عن طريق فقرة WHERE
·       ربط عدة شروط لتصفية البيانات المسترجعة عن طريق AND و OR
·       ترتيب السجلات عن طريق Order by
·       أختيار عدد محدد من الجدول عن طريق top



لجعل  الSSMS يقوم بكتابة جملة الأستعلام الSELECT كما في الصورة ادناه, اذهب الى الجدول الذي تريد كتابة جملة الأستعلام الSELECT له وأضغط على الزر الأيمن للماوس واختر Script Table as وبعدها اختر SELECT To وبعدها اختر New Query Editor Window




ستظهر لك نافة كتابة جمل الأستعلام وبها الكود التالي:
USE [test]
GO

SELECT [ID]
      ,[Name]
      ,[Email]
      ,[GenderID]
      ,[age]
  FROM [dbo].[tblPerson]
GO
ملاحظة: [dbo]هو الSchema اي الهيكلية التي تعتمدها قاعدة البيانات [test] عند انشاء جداول, وكما  تلاحظ  بعد كلمة FROM [dbo].[tblPerson]  هذا مايسمى المسار الكامل للجدول ماعدا اسم قاعدة البيانات تم ذكره بواسطة الكلمة المفتاحية USE ,يمكنك كتابة الكود اعلاه هكذا :
SELECT [ID]
      ,[Name]
      ,[Email]
      ,[GenderID]
      ,[age]
  FROM [test].[dbo].[tblPerson]
GO


عند تنفيذ جملة الأستعلام اعلاه سوف تسترجع كل البيانات من كل الحقول في جدول tblPerson يوجد طريقة اخرى مختصرة لفعل ذلك عن طريق:
SELECT * FROM [test].[dbo].[tblPerson]
ملاحظة: لايفضل استعمال هذه الجملة عند استرجاع كافة البيانات, من ناحية اداء قاعدة البيانات Performance Issue
ولكن عند التدريب لابأس بذلك (للسهولة).

* تعني جميع او كل
حيث بالأوامر اعلاه سوف تسترجع كافة البيانات من كل الحقول, ولأسترجاع البيانات من حقل معين فقط قم بتحديد ذلك الحقل الذي تريده:
SELECT [Email] FROM [test].[dbo].[tblPerson]
للعلم فقط قمت بأضافة حقل جديد لجدول tblPerson واسم هذا الحقل city وأضفت قيد القيمة الأفتراضية له غير معرفة:
alter table [test].[dbo].[tblPerson]
add  city nvarchar(20) not null
constraint DF_tblPerson_city DEFAULT 'Not defined'


والأن السؤال هو: اذا كان في الجدول مدن متشابهَ كالأتي:



جميل وصفاء من بغداد وانا اردتُ استرجاع المدن الغير متشابه:
يمكن ذلك بأستخدام DISTINCT امام اسم الحقل




سؤال لا تأخطأ به ابداً: اذا استرجعت اسم الشخص مع اسم المدينة فالناتج كالأتي :



لماذا اسم المدينة تكررت على الرغم من استخدام DISTINCT ؟ الجواب هو ان ال DISTINCT يعمل على مقارنة البيانات من كل الحقول التى تعطى اي بعبارة اخرى : صفاء من بغداد لا يساوي جميل من بغداد لأنهما بنفس المدينة ولكن يختلفان هذه الفكرة.


والأن كيفية استرجاع البيانات للأشخاص الذين هم من بغداد فقط؟
الجواب هو عن طريق  WHERE حيث بهذه الفقرة سيتم فلترة البيانات.

SELECT  [city],[Name]
  FROM [test].[dbo].[tblPerson]
  WHERE [city]='بغداد'
GO

ولكن ماذا لو اردنا ان نسترجع بيانات الأشخاص الذين اعمارهم التي تساوي 23 او 54 او  34
الجواب هو عن طريق استخدام OR  لأننا استخدما عبارة "او"

SELECT  [city],[Name]
  FROM [test].[dbo].[tblPerson]
  WHERE [age]=23 OR [age]=54 OR [age]=34
GO

يوجد طريقة اخرى لعمل ذلك بأستخدام ال:Operators




حيث بدل استخدام  OR  عدة مرات يمكن اختصار ذلك بأستخدام  IN  تعمل بنفس الفكرة :

SELECT  [city],[Name]
  FROM [test].[dbo].[tblPerson]
  WHERE [age] IN (23,54,34)
GO

ماذا لو قلنا نريد كل الأشخاص الذين اعمارهم تتراوح مابين 23 و 50 ؟
الجواب سهل بأستخدام BETWEEN

SELECT  [city],[Name]
  FROM [test].[dbo].[tblPerson]
  WHERE [age] BETWEEN 23 AND 50
GO

والأن اريد اسماء الأشخاص الذين اسمهم يبدأ بحرف الجيم (ج)؟
الجواب سهل بأستخدام Like

SELECT  [city],[Name]
  FROM [test].[dbo].[tblPerson]
  WHERE [Name] Like 'ج%'
GO

لاحظ في المثال اعلاه استخدم الرمز (%) مع ال Like حيث يرمز الى اي سلسلة من الحروف والأرقام بعد حرف الجيم شرط ان يبدأ الأسم بحرف الجيم (ج)




سؤال اخر: اريد اسماء الأشخاص الذين يبدأون بحرف مجهول وينتهون ب"مال" :
الجواب:



حيث رمز ال Underscore(_) يشير الى مكان واحد فقط لحروف او رقم والناتج هو جمال لأنه يبدأ بحرف الجيم وينتهي بسلسلة "مال"


سؤال اخر: ماذا لو اردت استرجاع اسماء الأشخاص الذين اسماءهم تبدأ بحرف الصاد(ص) والجيم(ج) والعين(ع)؟
الجواب هو بأستخدام التعبير  :
Like '[ص ع ج]%'





سؤال اخر: ماذا لو اردت استرجاع اسماء الأشخاص الذين اسماءهم لا تبدأ بحرف الصاد(ص) والجيم(ج) والعين(ع)؟
الجواب هو بأستخدام التعبير  :
Like '[ص^ ع ج]%'



سؤال ماذا لو اردت ترتيب البيانات المسترجعة في حقل الأسم  حسب الحروف الأبجدية ؟
الجواب بأستخدام ORDER BY مع تحديد اسم الحقل ونوع الترتيب ASC  او DESC





اخر سؤال لدرس اليوم افترض ان لدينا اعداد هائلة من البيانات واردت ان اعرف 10% من هذه البيانات اي اريد استرجع 10% من البيانات من ذلك الجدول؟

الجواب بأستخدام TOP Number with or without PERCENT


Comments

Popular posts from this blog

PART #2: Registration and Login System Tutorial Using PHP and MYSQL

PART #2: Registration and Login System Tutorial Using PHP and MYSQL Registration and login system using PHP and MySQL database, in this part you will do the following: 1- Creating the registration page. 2- Validating the registration form. 3- Sending the activation link on successful registration. note: you can find the mailserver tool here: [MailServerTool] Good luck. PHP,Mysql,Programming,web development,How to,Technology,web programming,web project ideas,safaa al-hayali,saf3al2a,Registration and login,Registration and login in php,php and mysql login system,registration system using php and mysql,login and register php,login and register php with database,database,php tutorial,learn php,tutorial

How To Play .srt Subtitles File in Windows Media Player

How To Play .srt Subtitles File in Windows Media Player links: https://sourceforge.net/projects/wmpsub/ wmp,.srt Subtitles File in Windows Media Player,How To Play .srt Subtitles File in Windows Media Player,How To,Safaa Al-Hayali,saf3al2a,srt subtitle in WMP,Windows,Windows Media Player,media,.ass,local subtitles

Virtual Box : How to Increase Disk Size - Windows

How to increase disk size or disk storage in oracle virtual box the command you have to use: vboxmanage.exe modifymedium "[YourPathToVdiFileOfYourVirtualMachine]" --resize [NUMBER] virtual,box,vbox,oracle,partition,size,disk,increase,resize,windows,10,microsoft,vdi,vboxmanage,configuration,Safaa AL-Hayali,saf3al2a,Oracle,VirtualBox,How to,windows 10