Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oracle

4,061 views

Published on

Published in: Technology, Business
  • Be the first to comment

Oracle

  1. 1. ‫1‬ ‫أوراﻛﻞ‬ ‫ﻧﻨﻌﺮض ﻓﻲ ھﺬا اﻟﻔﺼﻞ اﻟﻰ ﻣﻘﺪﻣﺔ ﻓﻲ ادارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪ Database‬وﺧﺎﺻﺔ ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت‬ ‫اﻷوراﻛﻞ واﻟﺬي ﯾﻌﺘﺒﺮ أﺣﺪ اﻟﻨﻈﻢ اﻟﻘﻮﯾﺔ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪Data Base Management‬‬ ‫)‪ System (DBMS‬ﻟﻤﺎ ﻟﮫ ﻣﻤﯿﺰات ﻣﻘﺎرﻧﺔ ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻻﺧﺮى .‬ ‫ﻣﻔﺎھﯿﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪Database‬‬ ‫ھﻲ ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻟﻤﻠﻔﺎت اﻟﻤﻨﻈﻤﺔ ﺑﺤﯿﺚ ﯾﺴﮭﻞ اﻟﻮﺻﻮل إﻟﯿﮭﺎ ﻋﻨﺪﻣﺖ ﻧﺮﯾﺪاﺳﺘﺮدادھﺎ‬ ‫ﻗﺎﻣﻮس اﻟﺒﯿﺎﻧﺎت ‪Data Dictionary‬‬ ‫ھﻮ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ ﺟﺪاول وﻓﮭﺎرس اﻟﺒﯿﺎﻧﺎت ﺗﺤﻘﻆ داﺧﻞ ھﺬا اﻟﻘﺎﻣﻮس ، ﯾﺴﺘﺨﺪﻣﮭﺎ‬ ‫ﻧﻈﺎم إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫اﻻﺳﺘﻌﻼم ‪Query‬‬ ‫ھﻮ ﻧﻈﺎم اﺳﺘﻔﺴﺎري ﻟﻼﺳﺘﻌﻼم ﻋﻦ ﺑﯿﺎﻧﺎت ﻣﻌﯿﻨﺔ وﻏﺎﻟﯿﺎ ﻻ ﯾﻐﯿﺮ اﻻﺳﺘﻌﻼم ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺣﯿﺚ‬ ‫إن ﻏﺎﻟﺒﯿﺔ ﻧﻈﻢ اﻻﺳﺘﻌﻼم ﻋﺒﺎرة ﻋﻦ ﻗﺮاءة ﻓﻘﻂ ﻟﻠﺒﯿﺎﻧﺎت‬ ‫دوال ‪Function‬‬ ‫ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺗﻌﻠﯿﻤﺎ ت أو أواﻣﺮ ﺗﺴﺘﺨﺪم ﺿﻤﻦ ﻣﺴﻤﻰ وﻇﯿﻔﻲ ﻻداء ﻋﻤﻠﯿﺔ ﻣﺤﺪدة‬ ‫وﻏﺎﻟﺒﺎ ﺗﻌﯿﺪ اﻟﺪاﻟﺔ ﻗﯿﻤﺔ ﻣﻌﯿﻨﮫ ﺑﻌﺪ ﺗﻨﻔﯿﺬھﺎ‬ ‫اﻻﺟﺮاء ‪Procedure‬‬ ‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺘﻌﻠﯿﻤﺎت ﻣﺜﻞ ﺗﻌﻠﯿﻤﺎت اﻟﺪاﻟﺔ ﺑﮭﺪف ﺗﻨﻔﯿﺬ ﻣﮭﻤﺔ ﻣﺤﺪدة ﻟﻜﻦ اﻻﺟﺮاء ﻻ ﯾﻌﯿﺪ ﻗﯿﻤﺔ‬ ‫ﻣﺜﻞ اﻟﺪاﻟﺔ‬ ‫ﻣﺨﻄﻂ ‪Schema‬‬ ‫ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺎﺋﻨﺎت ‪ Objects‬ﻣﺮﺗﺒﻄﺔ ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وﯾﺘﺄﻟﻒ ﻣﺨﻄﻂ اﻟﻜﺎﺋﻦ ﻣﻦ‬ ‫ﻛﺎﺋﻨﺎت ﻣﺜﻞ اﻟﺠﺪاول ‪ Tables‬واﻻﺟﺮاءات ‪ Procedure‬واﻟﻌﺮوض ‪ Views‬واﻟﻔﮭﺎرس‬ ‫‪... Directories‬اﻟﺦ‬ ‫ﻣﺪﯾﺮ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت )‪Database Administrator (DBA‬‬ ‫ھﻮ اﻟﺸﺨﺺ اﻟﻤﺴﺆؤل ﻋﻦ ﻋﻤﻠﯿﺎت إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وﻧﻈﻢ أداء ھﺬه اﻟﻘﻮاﻋﺪ وﻛﯿﻒ ﯾﺘﻢ ﺗﻜﻮﯾﻨﮭﺎ‬ ‫وھﻮ ﻣﺴﻮؤل أﯾﻀﺎ ﻋﻦ ﻣﺮاﻗﺒﺔ أداء ھﺬه اﻟﻘﻮاﻋﺪ ، وﻛﺬﻟﻚ إﺟﺮاء ﻋﻤﻠﯿﺎت اﻟﻨﺴﺦ اﻻﺣﺘﯿﺎﻃﻲ وﺗﺜﺒﯿﺖ‬ ‫اﻟﺒﺮاﻣﺞ ، واﻟﻤﺤﺎﻓﻈﺔ ﻋﻠﻰ أﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ، وإذاﻓﺔ ﻣﺴﺘﺨﺪﻣﯿﻦ ﺟﺪد أو إﻟﻔﺎء ﺻﻼﺣﯿﺎت ﻣﺴﺘﺨﺪﻣﯿﻦ‬ ‫وﯾﻤﻜﻦ ان ﯾﻘﻮم ﻣﺪﯾﺮ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺑﺎﻟﺘﺨﻄﯿﻂ ﻟﺘﻄﯿﺮ وﺗﻨﻤﯿﺔ اﻟﻨﻈﺎم اﻟﻤﻄﺒﻖ ، وﺗﺤﺪﯾﺪ اﻟﺤﺎﺟﻮ ﻟﮭﺬه‬ ‫اﻟﺘﻄﻮرات اﻟﻤﺴﺘﻘﺒﻠﯿﺔ .‬ ‫وﯾﺴﻌﻰ ﻓﺮﯾﻖ اﻟﻌﻤﻞ اﻟﺬي ﯾﺘﻜﻮن ﻣﻦ ﻣﺪﯾﺮي ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪ DBA‬ﻟﻠﺤﻔﺎظ ﻋﻠﻰ ﺳﯿﺮ اﻟﻌﻤﻞ داﺧﻞ‬ ‫اﻟﺸﺮﻛﺔ ﺑﺸﻜﻞ ﻣﺘﺠﺎﻧﺲ . وﺗﺘﻢ ﺗﺠﺰﺋﺔ اﻟﻤﮭﺎم ﺑﯿﻦ ھﺆﻻء اﻟﻤﺪﯾﺮﯾﻦ .‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  2. 2. ‫2‬ ‫ﻣﮭﺎم ﻣﺪﯾﺮ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت )‪(DBA‬‬ ‫ﺗﺘﺒﺎﯾﻦ ﻣﮭﺎم ﻣﺪﯾﺮ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺗﺒﻌﺎ ﻟﺤﺠﻢ اﻟﺸﺮﻛﺔ أو اﻟﻤﺆﺳﺴﺔ وﺗﺒﻌﺎ ﻟﻔﺮﯾﻖ اﻟﻌﻤﻞ‬ ‫اﻟﻤﺴﺎﻋﺪ وﺗﺸﻤﻞ ھﺬه اﻟﻤﮭﺎم اﻟﻨﻘﺎط اﻟﺘﺎﻟﯿﺔ :‬ ‫١- ﺗﺜﺒﯿﺖ اﻟﺒﺮﻣﺠﯿﺎ اﻟﺠﺪﯾﺪة‬ ‫٢- إدارة اﻟﺤﻤﺎﯾﺔ ﻟﻨﻈﺎم ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫٣- اﻟﻨﺴﺦ اﻻﺣﺘﯿﺎﻃﻲ واﻟﺪوري ﻟﻠﺒﯿﺎﻧﺎت وﻧﻈﺎم ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫اﺳﺘﻜﺸﺎف اﻷﺧﻄﺎء وﻣﻌﺎﻟﺠﺘﮭﺎ‬ ‫٤-‬ ‫٥- ﺗﺴﻮﯾﺔ وإﺻﻼح إﺧﻔﺎﻗﺎت اﻟﻤﺴﺎﺧﺪﻣﯿﻦ ﻟﻠﻮﺻﻮل إﻟﻰ ﺑﯿﺎﻧﺎﺗﮭﻢ‬ ‫٦- ﻣﺘﺎﺑﻌﺔ ﺿﺒﻂ أداء اﻟﻌﻤﻞ‬ ‫٧- ﺗﻘﺴﺴﻢ اﻷﺟﮭﺰة واﻟﻨﻄﻢ اﻟﺠﺪﯾﺪة‬ ‫٨- اﻟﻌﻤﻞ ﻋﻠﻰ ﺗﻄﻮﯾﺮ اﻟﻨﻈﺎم ﺑﺎﻟﺸﺮﻛﺔ‬ ‫ﻧﻈﺎم إدارة ﻗﺎﻋﺪ اﻟﺒﯿﺎﻧﺎت )‪Data Base Management System (DBMS‬‬ ‫ھﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ اﻷدوات اﻟﺒﺮﻣﺠﯿﮫ ) اﻟﺒﺮاﻣﺞ ( اﻟﺘﻲ ﺗﺪﯾﺮ وﺗﻨﻈﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﺗﻮﺟﺪ‬ ‫ﻋﻼﻗﺔ ارﺗﺒﺎط ﺑﯿﻦ ھﺬه اﻟﺒﯿﺎﻧﺎت ﺗﺴﻤﻰ ﻋﻼﻗﺔ )‪ (Relation‬ﻟﺬا اﺣﺒﺎﻧﺎ ﯾﻄﻠﻖ ﻋﻠﯿﮭﺎ ‪ RDBMS‬أي‬ ‫ﻧﻈﺎم إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ) اﻻرﺗﺒﺎﻃﯿﺔ (‬ ‫ﻣﻤﯿﺰات ﻧﻈﺎم إدارة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت أوراﻛﻞ‬ ‫ﯾﺘﻤﯿﺰ ﻧﻈﺎم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت أوراﻛﻞ ﻋﻦ ﻏﯿﺮه ﻣﻦ ﻧﻈﻢ إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻷﺧﺮى ﺑﺎﻵﺗﻲ:‬ ‫١- اﻟﻘﺪرة اﻟﻔﺎﺋﻘﺔ ﻋﻠﻰ اﺳﺘﯿﻌﺎب ﻛﻤﯿﺎت ﻛﺒﯿﺮة ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻗﺪ ﯾﺼﻞ ﻋﺪد اﻟﺴﺠﻼت إﻟﻰ‬ ‫اﻟﻤﻼﯾﯿﻦ ﻣﻊ اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﻤﺴﺘﻮى اﻟﻌﺎﻟﻲ ﻓﻲ اﻷداء واﻟﺴﺮﻋﺔ ﻋﻨﺪ اﺳﺘﺮﺟﺎع واﻟﺘﺨﺰﯾﻦ‬ ‫واﻟﺤﺬف‬ ‫٢- ﻻﺳﺮﯾﺔ اﻟﺘﺎﻣﺔ واﻷﻣﻦ ﻻ ﺣﺘﻮاﺋﮫ ﻋﻠﻰ ﻧﻈﺎم اﻟﺼﻼﺣﯿﺎت واﻟﺤﻘﻮق اﻟﺬي ﯾﻀﻤﻦ ﺗﻄﺒﯿﻖ‬ ‫اﻟﺸﺮوط اﻟﻘﯿﺎﺳﯿﺔ واﻷﻣﻨﯿﺔ ﻟﻠﺤﻔﺎظ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫٣- ﻓﻌﺎﻟﯿﺔ اﻟﺘﺤﻜﻢ اﻟﻤﺮﻛﺰي ﺑﺎﻟﺒﯿﺎﻧﺎت ﻻذي ﯾﻀﻤﻦ :‬ ‫• ﺗﻘﻠﯿﻞ اﻟﺘﻜﺮرات ﻋﯿﺮ اﻟﻼزﻣﺔ ﻓﻲ اﻟﺒﯿﺎﻧﺎت اﻟﺪﺧﻠﺔ )‪(No Repetition‬‬ ‫• ﺗﺠﻨﺐ اﻟﺘﻨﺎﻗﺾ ﺑﯿﻦ اﻟﺒﯿﺎﻧﺎت )‪(No Contradiction‬‬ ‫• إﻣﻜﺎﻧﯿﺔ اﻟﺘﺸﺎرك ﻓﻲ اﻟﺒﯿﺎﻧﺎت )‪(Data Sharing‬‬ ‫• اﻟﺤﻔﺎظ ﻋﻠﻰ ﺗﻜﺎﻣﻞ اﻟﺒﯿﺎﻧﺎت ﻓﯿﻤﺎ ﺑﯿﻨﮭﺎ )‪(Data Integrity‬‬ ‫٤- اﻟﺴﯿﻄﺮة اﻟﺘﺎﻣﺔ ﻋﻠﻰ ﻋﻤﻠﯿﺔ اﻟﻨﺴﺦ اﻻﺣﺘﯿﺎﻃﻲ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﺣﻤﺎﯾﺘﮭﺎ ﻣﻦ اﻟﻔﻘﺪان أو‬ ‫اﻟﺘﻠﻒ ﻣﻊ اﻣﻜﺎﻧﯿﺔ اﺳﺘﺮﺟﺎﻋﮭﺎ ﻓﻲ أي ﻟﺤﻈﺔ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  3. 3. ‫3‬ ‫ﻋﻤﻠﯿﺎت ﻧﻈﺎم إدارة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫ﯾﺸﺘﻤﻞ ﻧﻈﺎم إدارة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اوراﻛﻞ ﻋﻠﻰ اﻟﻌﻤﻠﯿﺎت اﻟﺘﺎﻟﯿﺔ‬ ‫١- أواﻣﺮ ﻟﻐﺔ ﺗﻌﺮﯾﻒ اﻟﺒﯿﺎﻧﺎت )‪Data Definition Language (DDL‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﻠﻐﺔ ﻓﻲ ﺗﻌﺮﯾﻒ وإﻧﺸﺎء اﻟﻜﺎﺋﻦ ‪ ، Object‬وﯾﻤﻜﻦ أن ﯾﻜﻮن اﻟﻜﺎﺋﻦ ﻣﻠﻔﺎت‬ ‫وﺟﺪاول ﺑﯿﺎﻧﺎت ، ﻓﯿﻤﻜﻨﻨﺎ إﻧﺸﺎء وﺗﻌﺪﯾﻞ وﺣﺬف اﻟﻜﺎﺋﻦ وﯾﻤﻜﻨﻨﺎ إﻧﺸﺎء اﻣﺘﯿﺎز ﻟﻤﺴﺘﺨﺪم‬ ‫ﻣﻌﯿﻦ ، أو اﻧﺸﺎء ﻛﺎﺋﻦ ﺧﯿﺎرات ﻟﻔﺤﺺ وإﺿﺎﻓﺔ ﺗﻌﻠﯿﻘﺎت إﻟﻰ ﻗﺎﻣﻮس اﻟﺒﯿﺎﻧﺎت وﻣﻦ ھﺬه‬ ‫اﻷواﻣﺮ : ‪CREAT , DROP and ALTER‬‬ ‫٢- أواﻣﺮ ﻟﻐﺔ ﻣﻌﺎﻣﻠﺔ اﻟﺒﯿﺎﻧﺎت )‪Data Manipulation Language (DML‬‬ ‫ﺗﺘﯿﺢ ھﺬه اﻷواﻣﺮ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت وﺗﻌﺪﯾﻠﮭﺎ ﺿﻤﻦ اﻟﻜﺎﺋﻦ اﻟﻤﻮﺟﻮد ‪ Object‬وﻣﻦ ھﺬه‬ ‫اﻷواﻣﺮ : ‪SELECT, DELETE,UPDATE and INSERT‬‬ ‫٣- أواﻣﺮ ﻟﻐﺔ اﻟﺘﺤﻜﻢ ﻓﻲ اﻟﺒﯿﺎﻧﺎت )‪Data Control Language (DCL‬‬ ‫ﺗﺘﯿﺢ ھﺬه اﻷواﻣﺮ اﻟﺘﺤﻜﻢ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وأداﺋﮭﺎ ﻛﺎﻟﺼﻼﺣﯿﺎت واﻟﻤﺴﺘﺨﺪﻣﯿﻦ واﻟﺤﻘﻮق‬ ‫وﻏﺎﻟﺒﺎ ﻣﺎﺗﻜﻮن ھﺬه اﻷواﻣﺮ ﻣﺨﺼﺼﺔ ﻟﻼﺳﺘﺨﺪام ﻣﻦ ﻗﺒﻞ ﻣﺪﯾﺮ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت )‪(DBA‬‬ ‫وﻣﻦ ھﺬه اﻻواﻣﺮ : ‪GRANT and REVOKE‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  4. 4. ‫4‬ ‫اﻟﺘﺮﻛﯿﺐ اﻟﺪاﺧﻠﻲ ﻟﻨﻈﺎم أوراﻛﻞ‬ ‫أھﺪاف اﻟﻔﺼﻞ‬ ‫ﯾﺘﻨﺎول ھﺬا اﻟﻔﺼﻞ اﻟﺘﺮﻛﯿﺐ اﻟﺪاﺧﻠﻲ ﻟﻨﻈﺎم ﻗﺘﻌﺪة اﻟﺒﯿﺎﻧﺎت أوراﻛﻞ وﻓﻲ ﻧﮭﺎﯾﺔ ھﺬا اﻟﻔﺼﻞ‬ ‫ﺳﺘﻜﻮن ﻗﺎدرا ﺑﻤﺸﯿﺌﺔ اﷲ ﻋﻠﻰ :‬ ‫١- ﻓﮭﻢ اﻟﻌﻼﻗﺎت ﺑﯿﻦ اﻟﺠﺪاول‬ ‫٢- ﺗﻌﺮﯾﻒ ﻧﻤﺬﺟﺔ اﻟﻌﻼﻗﺔ‬ ‫٣- ﻓﮭﻢ ﻣﻜﻮﻧﺎت ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ‬ ‫٤- ﻓﮭﻢ اﻟﻌﻼﻗﺔ ﺑﯿﻦ اﻟﺨﺎدم واﻟﻤﺴﺘﻔﺒﺪ‬ ‫٥- ﻗﮭﻢ اﻟﺨﺎدم ‪SERVER‬‬ ‫٦- ﻓﮭﻢ اﻟﻤﺴﺘﻔﯿﺪ ‪Client‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  5. 5. ‫5‬ ‫ﻣﻘﺪﻣﺔ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ‬ ‫ﯾﻘﺪم ھﺬا اﻟﻔﺼﻞ اﻟﺘﺮﻛﯿﺐ واﻟﺒﻨﺎء اﻟﺪاﺧﻠﻲ ﻟﻨﻈﺎم إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت أوراﻛﻞ ، ﻓﯿﺤﺘﻮي ﻋﻠﻰ‬ ‫وﺻﻒ ﺳﺮﯾﻊ ﻟﻤﻜﻮﻧﺎت أوراﻛﻞ وﺗﻌﺘﻤﺪ ﻏﺎﻟﺒﯿﺔ ﺗﻄﺒﯿﻘﺎت ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﺑﻨﺎﺋﮭﺎ ﻋﻠﻰ أﺣﺪ‬ ‫ﻧﻤﺎذج ﻗﺎﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﺘﺎﻟﯿﺔ:‬ ‫ﻧﻤﻮذج ھﯿﻜﻠﻲ )ھﺮﻣﻲ ( ‪Hierarchical Model‬‬ ‫١-‬ ‫ﻧﻤﻮذج ﺷﺒﻜﻲ ‪Network Model‬‬ ‫٢-‬ ‫ﻧﻤﻮذج ﻋﻼﺋﻘﻲ ‪Relational Model‬‬ ‫٣-‬ ‫ﻧﻤﻮذج ﺷﯿﺌﻲ ‪Object Model‬‬ ‫٤-‬ ‫ﻓﻲ اﻟﻤﺎﺿﻲ ﻛﺎن اﻟﻨﻤﻮذج اﻷول ) اﻟﮭﺮﻣﻲ ( اﻷﻛﺜﺮ اﻧﺘﺸﺎرا ﻣﻊ أﺟﮭﺰة اﻟﻜﻤﺒﯿﻮﺗﺮ اﻟﻜﺒﯿﺮة ‪Main‬‬ ‫‪ Frame‬ﺛﻢ ﺑﺪا اﻟﻨﻈﺎم اﻟﺜﺎﻧﻲ ) اﻟﺸﺒﻜﻲ ( ﻓﻲ اﻻﻧﺘﺸﺎر وﺧﺎﺻﺔ ﻣﻊ اﻟﺘﻮﺳﻊ ﻓﻲ ﺑﻨﺎء وﺗﺮﻛﯿﺐ‬ ‫ﺷﺒﻜﺎت اﻟﺤﺎﺳﺐ وﻛﺎﻧﺖ ھﻨﺎك ﺻﻌﻮﺑﺎت ﻓﻲ اﺳﺘﺨﺪام اﻟﻨﻈﺎﻣﯿﻦ اﻟﻮل واﻟﺜﺎﻧﻲ ) اﻟﮭﺮﻣﻲ واﻟﺸﺒﻜﻲ (‬ ‫ﻧﺘﯿﺠﺔ ﻻﺳﺘﺨﺪام ﻣﺆﺷﺮات اﻟﺒﺮﻣﺠﺔ ) ‪ ( Pointers‬ﻟﺮﺑﻂ ﺳﺠﻼت اﻟﺒﯿﺎﻧﺎت ﺑﻌﻀﮭﺎ ﻣﻊ ﺑﻌﺾ ، ﻟﺬا‬ ‫ﻧﺠﺪ أن إﺿﺎﻓﺔ أو ﺗﻌﺪﯾﻞ أو ﺣﺬف اﻟﺴﺠﻼت ﯾﺤﺘﺎج إﻟﻰ اﻟﻤﺰﯾﺪ ﻣﻦ ﻗﮭﻢ ﻃﺒﯿﻌﺔ وﻋﻤﻞ اﻟﻤﺆﺷﺮات‬ ‫وﻓﻲ ھﺬه اﻟﻔﺘﺮة اﻟﻤﺎﺿﯿﺔ ﻃﺮق ﺑﺮﻣﺠﺔ اﻟﻤﺆﺷﺮات ﺗﻜﺘﺐ ﺑﻠﻐﺔ اﻟﻜﻮﺑﻮل )‪.(COBOL‬‬ ‫أﻣﺎ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ )‪ (Relational‬ﻓﮭﻮ اﻷﻛﺜﺮ ﺳﮭﻮﻟﺔ ﻓﻲ اﻻﺳﺘﺨﺪام وﻓﻲ ﺑﺮﻣﺠﺔ ﺗﻄﺒﯿﻘﺎت ﻧﻈﻢ‬ ‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وﻣﻦ اﻟﻨﺎﺣﯿﺔ اﻟﻨﻈﺮﯾﺔ اﻷﻛﺎدﯾﻤﯿﺔ ﻓﯿﻠﺰﻣﻚ دراﺳﺔ اﻟﻤﻔﺎھﯿﻢ اﻷﺳﺎﺳﯿﺔ واﻟﻀﺮورﺑﺔ ﻟﮭﺬا‬ ‫اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ ﻟﮭﺬا ﺳﻨﺮﻛﺰ ھﻨﺎ ﻋﻠﻰ‬ ‫١- ھﯿﻜﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ‪Relational Data Structure‬‬ ‫٢- اﻟﻀﻮاﺑﻂ اﻟﺤﺎﻛﻤﺔ ﻟﻠﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ‪Constraint that govern organization of‬‬ ‫‪data structure‬‬ ‫٣- اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ ھﺬه اﻟﺒﯿﺎﻧﺎت ‪Operations that are performance data‬‬ ‫‪structure‬‬ ‫وﯾﻌﺘﻤﺪ ﻧﺎم ھﯿﺎﻛﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﺒﺔ )‪ (Relational Database‬ﻋﻠﻰ ھﯿﻜﻞ ﻣﻨﻄﻘﻲ‬ ‫وﯾﻄﻠﻖ ﻋﻠﯿﮫ ﻋﻼﻗﺔ )‪ (Relational‬وﻋﻠﻰ ﺷﻜﻞ ﺛﻨﺎﺋﻲ اﻷﺑﻌﺎد ‪(Tow dimensional‬‬ ‫) ‪ data structure‬ﯾﺘﻜﻮن ﻣﻦ ﺻﻔﻮف وأﻋﻤﺪة وﯾﺴﻤﻰ ﺟﺪول )‪ (Table‬ھﺬا ﺑﺎﻹﺿﺎﻓﺔ‬ ‫إﻟﻰ ﻋﻨﺎﺻﺮ اﻟﺒﯿﺎﻧﺎت )‪ (Data elements‬ﺗﺴﻤﻰ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ‪ attributes‬ﻋﻼوة‬ ‫ﻋﻠﻰ ھﺬا ﯾﺘﻢ ﺗﻨﻈﯿﻢ ھﺬه اﻟﺒﯿﺎﻧﺎت اﻟﻔﻌﻠﯿﺔ ﻓﻲ وﺣﺪة أو وﺣﺪات ﺗﺴﻤﻰ ‪ Tuples‬ﺗﻘﺴﻢ إﻟﻰ‬ ‫ﺻﻔﻮف ‪ Rows‬أو )ﺳﺠﻼت ‪ ( Records‬وأﻋﻤﺪة ‪) Columns‬ﺣﻘﻮل ‪( Fields‬‬ ‫واﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ اﻟﻌﻨﺎﺻﺮ اﻷﺳﺎﺳﯿﺔ ﻟﺠﺪول اﻟﻤﻮﻇﻘﯿﻦ ‪Employees‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  6. 6. ‫6‬ ‫اﻟﻌﻼﻗﺔ ﺑﯿﻦ اﻟﺠﺪاول‬ ‫ﻟﺮﺑﻂ ﻋﻼﻗﺔ ﺑﺄﺧﺮى ﺗﺘﺤﺘﺎج إﻟﻰ ﻃﺮﯾﻘﺔ ﻟﻼرﺗﺒﺎط . وھﺬه اﻟﻄﺮﯾﻘﺔ ﺗﺴﺘﺨﺪم ﺣﻘﻼ ‪ Field‬ﯾﻜﻮن‬ ‫ﻣﻮﺟﻮدا ﻓﺐ اﻟﺠﺪوﻟﯿﻦ وﺣﻘﻞ اﻻرﺗﺒﺎط ﯾﺴﻤﻰ ﻓﻲ اﻟﺠﺪول اﻷول ﺑﺎﻟﻤﻔﺘﺎح اﻟﺮﺋﯿﺴﻲ ‪(Primary‬‬ ‫)‪ Key‬ﻟﻠﺠﺪول اﻷل وﯾﺴﻤﻰ ﯾﺎﻟﻤﻔﺘﺎح ال )‪ (Foreign Key‬ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  7. 7. ‫7‬ ‫ﻧﻤﺬﺟﺔ اﻟﻌﻼﻓﺔ ‪Relational Model Algebra‬‬ ‫ﺗﻌﺮف ﺑﺎﻧﮭﺎ اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﯾﺘﻢ اﺟﺮاؤھﺎ ﻋﻠﻰ ﺟﺪول أو ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺠﺪاول ﺗﺒﻌﺎ ﻟﻌﻼﻗﺔ ﻣﺤﺪدة‬ ‫وﯾﻮﺟﺪ ﻣﻌﺎﻣﻼن ‪ Operators‬ھﻤﺎ ‪ Unary‬واﻟﺜﺎﻧﻲ‪ Binary‬واﻟﺠﺪول اﻟﺘﺎﻟﻲ ﯾﻌﺪد ﺳﺒﻌﺔ اﻧﻮاع‬ ‫ﻟﮭﺬه اﻟﻌﻤﻠﯿﺎت‬ ‫اﻟﻌﻤﻠﯿﺔ‪Operation‬‬ ‫ﻧﻮع اﻟﻌﻤﻠﯿﺔ ‪Type‬‬ ‫وﺻﻒ اﻟﻌﻤﻠﯿﺔ‬ ‫‪Union‬‬ ‫‪Binary‬‬ ‫ﺗﺠﻤﯿﻊ اﻟﺼﻔﻮف اﻟﺴﺠﻼت ﻣﻦ ﺟﺪوﻟﯿﻦ ﻣﻊ ﻋﺪم‬ ‫اﻟﺴﻤﺎح ﺑﻨﻜﺮار ﺳﺠﻼت‬ ‫‪Intersection‬‬ ‫‪Binary‬‬ ‫ﺗﺤﺪﯾﺪ اﻟﺴﺠﻼت )اﻟﺼﻔﻮف( اﻟﻤﺸﺘﺮﻛﺔ ﺑﯿﻦ‬ ‫ﺟﺪوﻟﯿﻦ‬ ‫‪Difference‬‬ ‫‪Binary‬‬ ‫اﻇﮭﺎر اﻟﺴﺠﻼت اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول اﻻول‬ ‫وﻻ ﺗﻮﺟﺪ ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬ ‫‪Projection‬‬ ‫‪Unary‬‬ ‫إﻇﮭﺎر اﻟﺴﺠﻼت ﻣﻊ ﺑﻌﺾ اﻷﻋﻤﺪة )ﻣﺼﺪر‬ ‫اﻟﺒﯿﺎﻧﺎت(‬ ‫‪Selection‬‬ ‫‪Unary‬‬ ‫إﻇﮭﺎر اﻟﺴﺠﻼت ﻣﻦ ﺟﺪول ﻣﺼﺪر اﻟﺒﯿﺎﻧﺎت ﺗﺒﻌﺎ‬ ‫ﻟﻤﻌﯿﺎر اﻟﺒﺤﺚ ‪Criteria‬‬ ‫‪Product‬‬ ‫‪Unary‬‬ ‫وﺻﻞ ﻛﻞ ﺳﺠﻞ ﻣﻦ ﺟﺪول اﻟﺒﯿﺎﻧﺎت اﻟﻮل ﻣﻊ ﻛﻞ‬ ‫ﺳﺠﻞ ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬ ‫‪Join‬‬ ‫‪Unary‬‬ ‫وﺻﻞ وﺗﻤﺪﯾﺪ اﻟﺴﺠﻼت ﻣﻦ اﻟﺠﺪول اﻷل ﻣﻊ‬ ‫ﻣﺎﯾﻘﺎﺑﻠﮫ ﻣﻦ ﺳﺠﻼت ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  8. 8. ‫8‬ ‫ﻣﻜﻮﻧﺎت ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ‪RDBMS Components‬‬ ‫ﺗﺘﻜﻮن ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ﻣﻦ :‬ ‫١- ﻧﻈﺎم ﺗﺸﻐﯿﻞ ﺛﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﯾﻄﻠﻖ ﻋﻠﯿﮫ ‪Kernel‬‬ ‫٢- ﻗﺎﻣﻮس اﻟﺒﯿﺎﻧﺎت ‪Data Dictionary‬‬ ‫وﯾﺘﻜﻮن ﻧﻈﺎم ﺗﺸﻐﯿﻞ وﺗﻨﻈﯿﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت )‪ (Kernel‬ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻮﺣﺪان اﻟﺒﺮﻣﺠﯿﺔ‬ ‫‪ Software‬واﻟﺬي ﺻﻤﻢ ﺑﯿﺤﻜﻢ وﯾﻨﻈﻢ وﯾﻨﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت ﻣﺎﺑﯿﻦ ﺣﻔﻆ واﺳﺘﺮﺟﺎع وﻃﺒﺎﻋﺔ‬ ‫وﻛﺬﻟﻚ ﺗﺤﺪﯾﺪ اﻟﻤﺴﺆﻟﯿﺎت وﻋﻤﻞ ﻧﻈﻢ اﻷﻣﺎن وﺣﻤﺎﯾﺔ اﻟﺒﯿﺎﻧﺎت‬ ‫وﻋﺎدة ﯾﺤﺘﻔﻆ ﻧﻈﺎم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺑﻘﺎﺋﻤﺔ ﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ اﻟﺬﯾﻦ ﻟﮭﻢ ﺻﻼﺣﯿﺔ ﻟﻠﺘﻌﻤﻞ ﻣﻊ ﺗﻄﺒﯿﻖ‬ ‫ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت واﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﻮﺿﺢ ﺑﻌﻀﺎ ﻣﻦ ﻣﻜﻮﻧﺎت اﻟـ ‪ Kernel‬ﻓﻲ ﻧﻈﺎم أوراﻛﻞ‬ ‫ﻣﻜﻮﻧﺎت اﻟـ ‪ Kernel‬ﻓﻲ ﻧﻈﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫وﯾﺤﻮي ﻗﺎﻣﻮس اﻟﺒﯿﺎﻧﺎت ‪ Data Dictionary‬وﺻﻔﺎ ﻟﺸﻜﻞ اﻟﺒﯿﺎﻧﺎت وﯾﻄﻠﻖ ﻋﻠﻰ ھﺬا اﻟﻮﺻﻒ‬ ‫‪ Meta Description‬أو ‪ Meta Data‬وھﺬا اﻟﻮﺻﻒ ﯾﺮﺗﺒﻂ ﺑﻜﺎﻓﺔ اﻟﻜﺎﺋﻨﺎ ت ‪ Objects‬ﺿﻤﻦ‬ ‫ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫وﻗﺎﻣﻮس ﺑﯿﺎﻧﺎت أوراﻛﻞ ﯾﺤﺘﻮي ﻋﻠﻰ ﻣﺠﻮﻋﺔ ﺟﺪاول ﺻﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻋﻦ ﻃﺮﯾﻖ‬ ‫اﻟـ ‪ Kernel‬وأﯾﻀﺎ ﻋﻠﻰ ﻛﺎﺋﻨﺎت اﻟﻔﮭﺎرس ‪Indexes‬ﻛﺎﺋﻨﺎت اﻟﻌﺮض ‪ Views‬ﻛﺎﺋﻨﺎت اﻻﺳﺘﻌﻼم‬ ‫واﻻﺳﺘﻘﺴﺎر ‪ SQL and Query‬ﻛﺎﺋﻨﺎت اﻹﺟﺮاء ‪ Procedure‬واﻟﺪوال ‪... Function‬إﻟﺦ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  9. 9. ‫9‬ ‫اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﻮﺿﺢ ﻛﯿﻔﯿﺔ ﻗﺮاءة أو ﺗﻌﺪﯾﻞ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام أوراﻛﻞ‬ ‫ﺷﻜﻞ اﻟﻌﻼﻗﺔ ﺑﯿﻦ ‪ Kernel‬و ‪ SQL‬و ﻗﺎﻣﻮس اﻟﺒﯿﺎﻧﺎت‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  10. 10. ‫01‬ ‫اﻟﻌﻼﻗﺔ ﺑﯿﻦ اﻟﺨﺎدم واﻟﻤﺴﺘﻔﯿﺪ)اﻟﻌﻤﯿﻞ( ‪Client/Server‬‬ ‫ﯾﺘﻜﻮن ﻧﻈﺎم أوراﻛﻞ ﻣﻦ ﻣﻜﻮﻧﯿﻦ‬ ‫١- اﻟﺨﺎدم ‪Server‬‬ ‫٢- اﻟﻤﺴﺘﻔﯿﺪ )اﻟﻌﻤﯿﻞ – اﻟﻤﺰود( ‪Client‬‬ ‫اﻟﺨﺎدم ‪Server‬‬ ‫ﯾﺤﻮي اﻟﺨﺎدم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﺮﻛﺰﯾﺔ ووﻇﺎﺋﻔﮭﺎ ، وﻛﺬﻟﻚ ﻛﺎﻓﺔ اﻟﻌﻤﻠﯿﺎت اﻟﺨﻠﻔﯿﺔ ﻟﺤﻔﻆ ھﺬه اﻟﻔﺎﻋﺪة‬ ‫وﺑﺤﻮي اﯾﻀﺎ أدوات ﺗﺸﻐﯿﻞ وإﯾﻘﺎف ﻓﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫واﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﻮﺿﺢ اﻟﺒﻨﺎء اﻟﺪاﺧﻠﻲ ﻟﻨﻈﺎم اﻟﺨﺎدم‬ ‫ﻣﺪﯾﺮ اﻟﺨﺎدم‬ ‫ﺑﺮوﺗﻜﻮل اﺗﺼﺎل‬ ‫‪Server‬‬ ‫اﻟﺸﺒﻜﺔ 8‪Net‬‬ ‫‪Manager‬‬ ‫اﻟﺨﺎدم ‪Server‬‬ ‫ﻧﻈﺎم اﻻﺳﺘﯿﺮاد‬ ‫واﻟﺘﺼﺪﯾﺮ‬ ‫ﻧﻈﻢ اﻻﺳﺘﻌﻼم‬ ‫&08‪EXP‬‬ ‫‪SQL * PLUS‬‬ ‫08‪IMP‬‬ ‫اﻟﻤﺘﺮﺟﻤﺎت‬ ‫‪Pre‬‬ ‫ﻧﻈﺎم اﻟﺘﺤﻤﯿﻞ‬ ‫‪compliers‬‬ ‫‪LOADER‬‬ ‫اﻟﻤﺴﺘﻔﯿﺪ ‪Client‬‬ ‫أﻣﺎ اﻟﻤﺴﺘﻔﯿﺪ ‪ Client‬ﻓﯿﺤﺘﻮي ﻋﻠﻰ ﺑﺮاﻣﺞ اﻟﺨﺪﻣﺎت واﻟﺒﺮاﻣﺞ اﻟﻤﺴﺎﻋﺪه واﻟﺘﻲ ﺑﻤﻜﻨﻨﺎ ﺗﺸﻐﯿﻠﮭﺎ ﻋﻦ‬ ‫ﺑﻌﺪ ﺑﺎﺳﺘﺨﺪام اﻟﺸﺒﻜﺔ ﻛﻤﺎ ﯾﺘﻀﻤﻦ ﻧﻈﺎم اﻟﻤﺴﺘﻔﯿﺪ اﻟﻮﺳﯿﻂ اﻟﺮﺳﻮﻣﻲ ‪ Graphical Interface‬اﻟﺬي‬ ‫ﯾﺴﮭﻞ ﻋﻠﯿﻨﺎ اﺳﺘﺨﺪاﻣﮫ وﺗﻮﺟﺪ أداة اﻻﺗﺼﺎل ﺑﯿﻦ اﻟﺨﺎدم واﻟﻤﺴﺘﻘﯿﺪ وھﻲ8 ‪ Net‬ﻟﺘﻘﻮم ﺑﻌﻤﻠﯿﺎت اﻟﺮﺑﻂ‬ ‫واﻻﺗﺼﺎل ﻋﺒﺮ اﻟﺸﺒﻜﺔ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  11. 11. ‫11‬ ‫و ﺗﺸﻤﻞ ﺣﺰﻣﺔ اﻟﺒﺮاﻣﺞ ﻟﻨﻈﺎم اﻟﻤﺴﺘﻔﯿﺪ ﻋﻠﻰ‬ ‫١- ﻣﺪﯾﺮ اﻟﻤﺸﺮوع ‪Enterprise Manager‬‬ ‫وﯾﺤﻮي داﺧﻠﮫ اﻟﻤﻜﻮﻧﺎت اﻟﺘﺎﻟﯿﺔ‬ ‫• ﻣﺘﺤﻜﻢ ﻣﺪﯾﺮ اﻟﻤﺸﺮوع ‪Enterprise Manager‬‬ ‫• ﻣﺪﯾﺮ ﻣﺨﻄﻂ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪Schema Manager‬‬ ‫• ﻣﺪﯾﺮ اﻟﺴﺮﯾﺔ ‪Security Manager‬‬ ‫• ﻣﺪﯾﺮ اﻟﻄﺒﻌﺔ ‪Instance Manager‬‬ ‫• ﻣﺪﯾﺮ اﻟﺘﺨﺰﯾﻦ ‪Storage Manager‬‬ ‫• ﻣﺪﯾﺮ اﻟﺒﯿﺎﻧﺎت ‪Data Manager‬‬ ‫• ﻣﺪﯾﺮ اﻟﻨﺴﺦ اﻻﺣﺘﯿﺎﻃﻲ ﻟﻠﺒﯿﺎﻧﺎت ‪Backup and Recovery Manager‬‬ ‫• ورﻗﺔ ﻋﻤﻞ اﻻﺳﺘﻌﻼم ‪SQL Worksheet‬‬ ‫• ﺷﺮﯾﻂ أدوات اﻟﻤﺴﺆول ‪Administrator Toolbar‬‬ ‫ﺑﺮوﺗﻜﻮل اﺗﺼﺎل‬ ‫٢- اﻟﻤﺴﺎﻋﺪون ‪Assistants‬‬ ‫اﻟﺸﺒﻜﺔ‬ ‫٣- ﻧﻈﺎم اﻻﺳﺘﻌﻼم ‪SQL*PLUS‬‬ ‫)8‪(Net‬‬ ‫واﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﻮﺿﺞ ﻣﻜ ﻮﻧﺎت ﺣﺰﻣﺔ اﻟﺒﺮاﻣﺞ ﻟﻠﻤﺴﺘﻔﯿﺪ ‪Client‬‬ ‫ﻧﻈﺎم اﻻﺳﺘﻌﻼم ‪SQL*PLUS‬‬ ‫اﻟﻤﺴﺎﻋﺪون ‪Assistants‬‬ ‫ﻣﺪﯾﺮ اﻟﻤﺸﺮوع ‪Enterprise Manager‬‬ ‫ﻣﺘﺤﻜﻢ ﻣﺪﯾﺮ اﻟﻤﺸﺮوع‬ ‫ورﻗﺔ ﻋﻤﻞ اﻻﺳﺘﻌﻼم ‪ SQL‬ﻣﺪﯾﺮ ﻣﺨﻄﻂ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫‪Enterprise Manager‬‬ ‫‪Schema Manager‬‬ ‫‪Worksheet‬‬ ‫ﻣﺪﯾﺮ اﻟﺴﺮﯾﺔ ‪Security‬‬ ‫ﻣﺪﯾﺮ اﻟﻨﺴﺦ اﻻﺣﺘﯿﺎﻃﻲ ﻟﻠﺒﯿﺎﻧﺎت‬ ‫ﻣﺪﯾﺮ اﻟﻄﺒﻌﺔ ‪Instance‬‬ ‫‪Manager‬‬ ‫‪Backup and Recovery‬‬ ‫‪Manager‬‬ ‫‪Manager‬‬ ‫ﻣﺪﯾﺮ اﻟﺒﯿﺎﻧﺎت ‪Data‬‬ ‫ﻣﺪﯾﺮ اﻟﺘﺨﺰﯾﻦ ‪Storage‬‬ ‫ﺷﺮﯾﻂ أدوات اﻟﻤﺴﺆول‬ ‫‪Manager‬‬ ‫‪Manager‬‬ ‫‪Administrator‬‬ ‫‪Toolbar‬‬ ‫ﻣﻠﺨﺺ اﻟﻮﺣﺪة‬ ‫ﺗﻨﺎوﺑﻨﺎ ﻓﻲ ھﺬا اﻟﻔﺼﻞ ﻧﻌﺮﯾﻒ اﻟﺘﺮﻛﯿﺐ اﻟﺪاﺧﻠﻲ ﻟﻨﻈﺎم أوراﻛﻞ وأھﻢ ﻣﻜﻮﻧﺎﺗﮫ واﻟﻌﻼﻗﺔ ﺑﯿﻦ اﻟﺠﺪاول‬ ‫، وﻛﺬﻟﻚ ﻋﻜﻠﯿﺔ ﻧﻤﺬﺟﺔ اﻟﻌﻼﻗﺔ ﻋﻠﻰ اﻟﺠﺪاول وﺗﻢ ﺗﻌﺮﯾﻒ اﻟﺨﺎدم واﻟﻤﺴﺘﻔﯿﺪ واﻟﻌﻼﻗﺔ ﺑﯿﻨﮭﻤﺎ .‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  12. 12. ‫21‬ ‫ﺟﻤﻞ ‪ SQL‬اﻟﺒﺴﯿﻄﺔ‬ ‫أھﺪاف اﻟﻔﺼﻞ‬ ‫ﻧﺘﺎاول ﻋﻤﻠﯿﺔ اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﺣﺎﻻت ﻣﺨﺘﻠﻔﺔ ﻣﺸﺘﺨﺪﻣﯿﻦ ﻓﻲ ذﻟﻚ ﺟﻤﻠﺔ ‪ SELECT‬وﻓﻲ‬ ‫ﻧﮭﺎﯾﺔ ھﺬا اﻟﻔﺼﻞ ﺳﺘﻜﻮن إن ﺷﺎء اﷲ ﻗﺎدر ﻋﻠﻰ :‬ ‫• اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﺑﻮاﺳﻄﺔ ﺟﻤﻠﺔ ‪ SELECT‬اﻟﺒﺴﯿﻄﺔ‬ ‫• ﻓﮭﻢ ﻣﺘﻄﻠﺒﺎت وإرﺷﺎدات ﻛﺘﺎﺑﺔ ﺟﻤﻞ ‪SQL‬‬ ‫• اﺳﺘﺨﺪام اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ وأوﻟﻮﯾﺎت ﺗﻨﻔﯿﺬھﺎ ﻣﻊ ﺟﻤﻞ ‪SQL‬‬ ‫• اﺳﺘﺨﺪام اﻟﺠﻤﻞ اﻹﻟﺤﺎﻗﯿﺔ ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت‬ ‫• اﺳﺘﺨﺪام ﻋﺒﺎرة ‪ DISTINCT‬ﻟﻤﻨﻊ ﺗﻜﺮار ﻋﺮض اﻟﺒﯿﺎﻧﺎت‬ ‫• ﻋﺮض ﻣﻮاﺻﻔﺎت اﻟﺠﺪول‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  13. 13. ‫31‬ ‫أﺳﺎﺳﯿﺎت ﺟﻤﻠﺔ ‪SELECT‬‬ ‫ﺟﻤﻠﺔ ‪SELECT‬‬ ‫ﺗﺴﺘﺨﺪم ﺟﻤﻠﺔ ‪ SELECT‬ﻻﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ ﺟﺪول أو ﻋﺪة ﺟﺪاول ﺣﯿﺚ أن ﻋﻤﻠﯿﺔ‬ ‫اﻻﺳﺘﺮﺟﺎع ﻻ ﺗﻌﺪل ﻓﻲ ھﺬه اﻟﺒﯿﺎﻧﺎت وﯾﻤﻜﻨﻨﺎ ﻣﻦ ﺧﻼل ﺟﻤﻠﺔ ‪ SELECT‬أن ﻧﻘﻮم ﺑﺎﻟﺘﺎﻟﻲ:‬ ‫١- اﺧﺘﯿﺎر وﻋﺮض ﻣﺠﻤﻮﻋﺔ ﻣﻌﯿﻨﺔ ﻣﻦ اﻟﺴﺠﻼت اﻟﻤﺨﺰﻧﺔ ﻓﻲ اﻟﺠﺪول‬ ‫٢- اﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎت ﺑﻌﺾ ﺣﻘﻮل اﻟﺠﺪول‬ ‫٣- اﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎت ﻣﺨﺰﻧﺔ ﻓﻲ ﺟﺪاول ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﯾﻤﻜﻦ أن ﻧﺴﺘﺨﺪم ﻛﻞ أو ﺑﻌﺾ ھﺬه اﻟﻤﺰاﯾﺎ ﻓﻲ ﺟﻤﻠﺔ اﺳﺘﻔﺴﺎر واﺣﺪة‬ ‫ﻣﻼﺣﻈﺔ‬ ‫أواﻣﺮ ﻣﺤﺮر‪SQL*PLUs‬‬ ‫ھﻨﺎﻟﻚ ﺑﻌﺾ اﻟﻮاﻣﺮ اﻟﺒﺴﯿﻄﺔ اﻟﺘﻲ ﺳﺘﺴﺎﻋﺪك ﻓﻲ ﻛﺘﺎﺑﺔ وﺗﺤﺮﯾﺮ وﺗﻨﻔﯿﺬ اﻷواﻣﺮ ﻋﻠﻰ ﻣﺤﺮر ‪SQL‬‬ ‫وﻣﻨﮭﺎ‬ ‫١- اﻻﻣﺮ ‪ EDIT‬وﯾﻤﻜﻦ ﻛﺘﺎﺑﺘﮫ ‪ : ED‬ﯾﺴﺘﺨﺪم ھﺬا اﻷﻣﺮ ﻟﺘﺤﺮﯾﺮ آﺧﺮ اﻣﺮ ﺗﻢ ﻛﺘﺎﺑﺘﮫ ﻋﻠﻰ‬ ‫ﻣﺮر ‪ SQL‬وﻋﻨﺪ ﺗﻨﻔﯿﺬ ھﺬا اﻷﻣﺮ ﺳﺘﻔﺘﺢ ﻟﻚ ﺷﺎﺷﺔ اﻟﻤﺤﺮر )اﻟﻤﻔﻜﺮة( اﻟﺘﻲ ﯾﻤﻜﻨﻚ ﺧﻼﻟﮭﺎ‬ ‫اﻋﺎدة ﺗﺤﺮﯾﺮ اﻷﻣﺮ وﻋﻨﺪ اﻻﻧﺘﮭﺎء ﻣﻦ ذﻟﻚ اﺣﻔﻆ اﻟﻤﺮ ﺛﻢ اﻏﻠﻖ ﺷﺎﺷﺔ اﻟﻤﻔﻜﺮة وﻟﻜﻦ ﻻﺣﻆ‬ ‫ﻻ ﺗﻜﺘﺐ اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ );( ﺑﻌﺪ ﻧﮭﺎﯾﺔ اﻷﻣﺮ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻓﻘﻂ‬ ‫٢- اﻷﻣﺮ ‪ R‬وﻃﺮﯾﻘﺔ ﻛﺘﺎﺑﺘﮫ )/( وﯾﺴﺘﺨﺪم ﻻﻋﺎدة ﺗﻨﻔﯿﺬ اﺧﺮ اﻣﺮ ‪SQL‬ﻣﺤﻔﻮظ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﺠﻤﻠﺔ ‪SELECT‬‬ ‫}… ,]‪SELECT { * , COLUMN [alies‬‬ ‫; ‪FROM table_name‬‬ ‫ﺣﯿﺚ أن‬ ‫‪ COLUMN‬اﺳﻢ اﻟﺤﻘﻞ‬ ‫‪ table_name‬اﺳﻢ اﻟﺠﺪول‬ ‫ﺗﺴﻤﯿﺔ اﻟﻌﻤﻮد‬ ‫‪alies‬‬ ‫ﯾﻤﻜﻦ أن ﻧﻀﻊ اﻟﺮﻣﺰ * ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ اﺳﺘﺮﺟﺎع ﺟﻤﯿﻊ ﺣﻘﻮل اﻟﺠﺪول‬ ‫ﻛﺘﺎﺑﺔ ﺟﻤﻞ ‪SQL‬‬ ‫ﻧﻮﺿﺢ ﻓﯿﻤﺎ ﯾﻠﻲ ﺑﻌﺾ اﻟﻘﻮاﻋﺪ اﻹرﺷﺎدﯾﺔ اﻟﺘﻲ ﯾﺠﺐ أن ﺗﻮﺿﻊ ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر ﻏﻨﺪ ﻛﺘﺎﺑﺔ ﺟﻤﻞ‬ ‫‪SQL‬‬ ‫١- ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ﺟﻤﻞ ‪ SQL‬ﺑﺎﻟﺤﺮوف اﻟﻜﺒﯿﺮة أو اﻟﺼﻐﯿﺮة‬ ‫٢- ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ﺟﻤﻞ ‪ SQL‬ﻓﻲ ﻋﺬة أﺳﻄﺮ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  14. 14. ‫41‬ ‫٣- ﻻ ﯾﻤﻜﻦ ﻓﺼﻞ اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة ﻋﺒﺮ اﻟﺴﻄﻮر ﻣﺜﻞ ‪FROM‬‬ ‫٤- اﺗﺮك ﻣﺴﺎﻗﺎت ﺑﯿﻦ ﻣﻜﻮﻧﺎت اﻟﺠﻤﻠﺔ ﻟﺘﺴﮭﯿﻞ ﻋﻤﻠﯿﺔ اﻟﻘﺮاءة‬ ‫٥- ﻓﻲ ﺑﺮﻧﺎﻣﺞ ‪ SQL *PLUS‬ﺗﻜﺘﺐ اﻷواﻣﺮ ﻣﻊ ﻣﺆﺷﺮ ‪ SQL‬وﯾﺘﻢ ﺗﺨﺰﯾﻦ ھﺬا اﻟﻤﺮ‬ ‫ﻣﺒﺎﺷﺮة ﻓﻲ اﻟﺬاﻛﺮة‬ ‫ﻣﺜﺎل‬ ‫;‪SELECT * FROM s_dept‬‬ ‫‪ID‬‬ ‫‪NAME‬‬ ‫‪REGION_ID‬‬ ‫--------‬ ‫-------------‬ ‫----------‬ ‫‪10 Finance‬‬ ‫1‬ ‫‪31 Sales‬‬ ‫1‬ ‫‪32 Sales‬‬ ‫2‬ ‫‪33 Sales‬‬ ‫3‬ ‫‪34 Sales‬‬ ‫4‬ ‫‪35 Sales‬‬ ‫5‬ ‫‪41 Operations‬‬ ‫1‬ ‫‪42 Operations‬‬ ‫2‬ ‫‪43 Operations‬‬ ‫3‬ ‫‪44 Operations‬‬ ‫4‬ ‫‪45 Operations‬‬ ‫5‬ ‫‪50 Administration‬‬ ‫1‬ ‫.‪12 rows selected‬‬ ‫ﻟﺘﻨﻔﯿﺬ ﺟﻤﻞ ‪SQL‬‬ ‫ﻧﻀﻊ ﻓﺎﺻﻠﺔ ﻣﻨﻘﻮﻃﺔ ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺠﻤﻠﺔ ﻓﻲ ﻣﺆﺷﺮ ‪SQL‬‬ ‫١-‬ ‫ﻧﻀﻊ ﻋﻼﻣﺔ / ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺠﻤﻠﺔ ﻓﻲ ﻣﺆﺷﺮ ‪SQL‬‬ ‫٢-‬ ‫ﻧﻀﻊ ﻋﻼﻣﺔ / ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺠﻤﻠﺔ ﻓﻲ اﻷﻣﺮ ﻓﻲ اﻟﺬاﻛﺮة )‪(BUFFER‬‬ ‫٣-‬ ‫ﻛﺘﺎﺑﺔ ﻋﺒﺎرة ‪ RUN‬ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺠﻤﻠﺔ ﻓﻲ ﻣﺆﺷﺮ ‪SQL‬‬ ‫٤-‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  15. 15. ‫51‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ‬ ‫ﯾﻤﻜﻦ أن ﻧﺴﺘﺨﺪم اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ ﻋﻨﺪ ﻋﺮض اﻟﺒﯿﺎﻧﺎت دون أن ﺗﺆﺛﺮ ھﺬه اﻟﻤﻌﺎﻟﺠﺔ ﻋﻠﻰ‬ ‫اﻟﺒﯿﺎاﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ اﻟﺠﺪول ، وﯾﻤﻜﻦ أن ﯾﺤﺘﻮي اﻟﺘﻌﺒﯿﺮ اﻟﺤﺴﺎﺑﻲ ﻋﻠﻰ اﺳﻢ اﻟﺤﻘﻞ ﻗﯿﻤﺔ ﺛﺎﺑﺘﺔ و‬ ‫اﻟﻌﻤﻠﯿﺔ اﻟﺤﺴﺎﺑﯿﺔ‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﺴﺘﺨﺪم ھﻲ:‬ ‫+‬ ‫١- اﻟﺠﻤﻊ‬ ‫-‬ ‫٢- اﻟﻄﺮح‬ ‫÷‬ ‫٣- اﻟﻘﺴﻤﺔ‬ ‫*‬ ‫٤- اﻟﻀﺮب‬ ‫وﯾﻤﻜﻦ اﺳﺘﺨﺪام ھﺬه اﻟﻌﻤﻠﯿﺎت ﻓﻲ ﺣﻤﯿﻊ أﺟﺰاء ﺟﻤﻠﺔ‪ SELECT‬ﻋﺪا اﻟﺠﺰء اﻟﺨﺎص ﺑـ‪FROM‬‬ ‫أوﻟﻮﯾﺎت اﻟﻌﻤﻠﯿﺎت‬ ‫١- اﻻﻓﻮاس اﻟﺪاﺧﻠﯿﺔ ﺛﻢ اﻟﺨﺎرﺟﯿﺔ ﺛﻢ اﻻﺳﺲ‬ ‫٢- اﻟﻀﺮب واﻟﻘﺴﻤﺔ‬ ‫٣- اﻟﺠﻤﻊ واﻟﻄﺮح‬ ‫ﻣﻼﺣﻈﺔ‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﻟﮭﺎ ﻧﻔﺲ اﻻوﻟﯿﺔ ﻛﺎﻟﺠﻤﻊ واﻟﻄﺮح ﺗﻨﻔﺬ ﻣﻦ اﻟﯿﺴﺎر اﻟﻰ اﻟﯿﻤﯿﻦ‬ ‫اﻟﻌﻤﻠﯿﺔ اﻹﻟﺤﺎﻗﯿﺔ‬ ‫ﯾﻤﻜﻦ أن ﻧﺠﺮي ﻋﻤﻠﯿﺔ إﻟﺤﺎق ﻋﺪد ﻣﻦ اﻷﻋﻤﺪة ﻟﻠﺠﺪول أو ﻣﺠﻤﻮﻋﺔ ﺣﺮﻓﯿﺔ ﻧﺼﯿﺔ إﻟﻰ ﺣﻘﻮل‬ ‫أﺧﺮى ﻋﻨﺪ اﻟﻌﺮض ﺑﺎﺳﺘﺨﺪام اﻟﻌﻤﻠﯿﺔ اﻹﻟﺤﺎﻗﯿﺔ ||‬ ‫ﻣﺜﺎل‬ ‫‪SELECT‬‬ ‫‪first_name||last_name‬‬ ‫‪FROM‬‬ ‫;‪s_emp‬‬ ‫‪Employees‬‬ ‫-------------------------------------------------‬ ‫‪CarmenVelasquez‬‬ ‫‪LaDorisNgao‬‬ ‫‪MidoriNagayama‬‬ ‫‪MarkQuick-To-See‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  16. 16. ‫61‬ ‫‪AudryRopeburn‬‬ ‫‪MollyUrguhart‬‬ ‫...‬ ‫ﻧﻼﺣﻆ ان اﻻﺳﻢ اﻻول اﺗﺼﻞ ﺑﺎﻻﺳﻢ اﻻﺧﯿﺮ ﺑﺪون وﺟﻮد ﻣﺴﺎﻓﺎت ﻓﻈﮭﺮ ﻛﺎﻧﮫ اﺳﻢ واﺣﺪ وﻟﻜﻲ‬ ‫ﺗﻮﺟﺪ ﻣﺴﺎﻓﺎت ﻧﻜﺘﺐ‬ ‫;‪SELECT first_name ||' '|| last_name FROM s_emp‬‬ ‫اﺳﺘﺨﺪام ﻋﺒﺎرة ‪DISTINCT‬‬ ‫ﺗﺴﺘﺨﺪم ﻋﺒﺎرة ‪ DISTINCT‬ﻟﻤﻨﻊ ﺗﻜﺮار ﻇﮭﻮر ﺑﯿﺎﻧﺎت اﻟﺴﺠﻞ اﻟﻤﺴﺘﺮﺟﻊ ﻓﻤﺜﻼ إذا أردﻧﺎ أن‬ ‫ﻧﻌﺮف ﻋﻠﻰ اﻟﻮاﺋﻒ اﻟﺘﻲ ﯾﻨﺘﺴﺐ إﻟﯿﮭﺎ اﻟﻤﻮﻇﻔﻮن واﻟﻤﺨﺰﻧﺔ ﻓﻲ ﺟﺪول اﻟﻤﻮﻇﻔﯿﻦ ﻧﺠﺪ أن ھﻨﺎﻟﻚ‬ ‫وﻇﺎﺋﻒ ﺗﺘﻜﺮر ﺣﺴﺐ ﻋﺪد اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﯾﻨﺘﻤﻮن إﻟﯿﮭﺎ ﻟﻤﻨﻊ ﺗﻜﺮار ﻧﺴﺘﺨﺪم ﻋﺒﺎرة‬ ‫‪DISTINCT‬‬ ‫وﯾﺄﺧﺬ اﻷﻣﺮ ‪ SELECT‬اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ:‬ ‫}… ,]‪SELECT [DITINCT] { * , COLUMN [alies‬‬ ‫; ‪FROM table_name‬‬ ‫ﺣﯿﺚ أن‬ ‫‪ COLUMN‬اﺳﻢ اﻟﺤﻘﻞ‬ ‫‪ table_name‬اﺳﻢ اﻟﺠﺪول‬ ‫ﺗﺴﻤﯿﺔ اﻟﻌﻤﻮد‬ ‫‪alies‬‬ ‫‪ DITINCT‬ﻟﻤﻨﻊ اﻟﺘﻜﺮار‬ ‫ﻣﻠﺨﺺ اﻟﻔﺼﻞ‬ ‫ﺗﻨﺎوﻟﻨﺎ ﻓﻲ ھﺬا اﻟﻔﺼﻞ ﻛﺘﺎﺑﺔ ﺟﻤﻞ ‪ SQL‬اﻟﺒﺴﯿﻄﻮ )ﺟﻤﻠﺔ ‪ (SELECT‬اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻓﻲ اﺳﺘﺮﺟﺎع‬ ‫اﻟﺒﯿﺎﻧﺎت وﻛﺬﻟﻚ ﺑﻌﺾ اﻟﻘﻮاﻋﺪ اﻹرﺷﺎدﯾﺔ اﻟﺘﻲ ﯾﺠﺐ اﺗﺒﺎﻋﮭﺎ ﻋﻨﺪ ﻛﺘﺎﺑﺔ وﺗﻨﻔﯿﺬ ﺟﻤﻞ اﻟـ‪SQL‬‬ ‫ﻛﻤﺎ ﺗﻨﺎوﻟﻨﺎ اﺳﺘﺨﺪام اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ ﻣﻊ ﺟﻤﻠﺔ ‪ SELECT‬واﻟﻌﻤﻠﯿﺔ اﻹﻟﺤﺎﻗﯿﺔ وﻛﺬﻟﻚ ﻋﺒﺎرة‬ ‫‪ DISTINCT‬اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﻤﻨﻊ ﺗﻜﺮار ﻇﮭﻮر اﻟﺴﺠﻼت‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  17. 17. ‫71‬ ‫اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﺑﺸﺮوط ﺗﺮﺗﯿﺒﮭﺎ‬ ‫اھﺪاف اﻟﻔﺼﻞ‬ ‫١- اﻟﻤﻌﺮﻓﺔ اﻟﺘﺎﻣﺔ ﻷﺳﻤﺎء اﻟﺠﺪاول وأﺳﻤﺎء اﻟﺤﻘﻮل وﺧﺼﺎﺋﺼﮭﺎ واﻧﻮاع اﻟﺒﯿﺎﻧﺎت‬ ‫٢- اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺟﻤﻠﺔ ‪ SQL‬اﻟﺒﺴﯿﻄﺔ )‪(SELECT Statement‬‬ ‫٣- اﺳﺘﺨﺪام أواﻣﺮ ﻣﺤﺮر ‪SQL‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  18. 18. ‫81‬ ‫اﺳﺘﺨﺪام ﺟﻤﻠﺔ اﻟﺸﺮط ‪WHERE CLAUSE‬‬ ‫ﻣﻘﺪﻣﺔ‬ ‫ﻟﻘﺪ ﻗﻤﻨﺎ ﻓﻲ اﻟﻮﺣﺪة اﻟﺴﺎﺑﻘﺔ ﺑﺎﻟﺘﻌﺮف اﻟﻰ ﺟﻤﻠﺔ اﻻﺳﺘﻌﻼم اﻟﺒﺴﯿﻂ )‪(SELECT Statement‬‬ ‫اﻟﺘﻲ ﻣﻦ ﺧﻼﻟﮭﺎ ﺗﻢ اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪاول . وﻓﻲ ھﺬا اﻟﻔﺼﻞ ﺳﻨﺘﺎﺑﻊ اﻟﺤﺪﯾﺚ ﻋﻦ ھﺬه‬ ‫اﻟﺠﻤﻠﺔ ﯾﺸﻜﻞ أوﺳﻊ ، ﺣﯿﺚ ﺳﻨﺴﺘﺮﺟﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪاول ﺑﻨﺎء ﻋﻠﻰ ﺷﺮوط ﻣﻌﯿﻨﺔ ، أو ﻣﺮﺗﺒﺔ‬ ‫ﺣﺴﺐ ﺑﯿﺎﻧﺎت ﺣﻘﻮل ﻣﻌﯿﻨﺔ ، أي ﺳﻨﺪرس اﻟﻤﻮر اﻟﻤﺘﻌﻠﻘﺔ ﺑﺠﻤﻠﺔ اﻟﺸﺮط ﻓﻲ ﺟﻤﻠﺔ اﻻﺳﺘﺮﺟﺎع ، ﻣﻦ‬ ‫ﺣﯿﺚ اﻟﻤﻌﺎﻣﻼت اﻟﺸﺮﻃﯿﺔ وﻃﺮﯾﻘﺔ اﻟﺘﻌﺒﯿﺮ ﻋﻦ اﻟﺸﺮط واﻟﺘﺮﺗﯿﺐ اﻟﺘﺼﺎﻋﺪي واﻟﺘﺮﺗﯿﺐ اﻟﺘﺼﺎﻋﺪي‬ ‫واﻟﺘﺮﺗﯿﺐ اﻟﺘﻨﺎزﻟﻲ ﻟﻠﺒﯿﺎﻧﺎت‬ ‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺠﻤﻠﺔ اﻟﺸﺮط‬ ‫}*|...,... ,2‪SELECT {Field1, Field‬‬ ‫1‪FROM Table‬‬ ‫;‪WHERE Condition‬‬ ‫ﺣﯿﺚ أن‬ ‫أﺳﻤﺎء اﻟﺤﻘﻮل اﻟﺘﻲ ﺳﯿﺎم اﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎﺗﮭﺎ‬ ‫2‪Field1.Field‬‬ ‫أﺳﻢ اﻟﺠﺪول اﻟﺬي ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﻣﻨﮫ‬ ‫1‪Table‬‬ ‫ﺟﻤﻠﺔ ﺷﺮﻃﯿﺔ أو أﻛﺜﺮ ﺗﻜﻮن ﻧﺘﯿﺠﺘﮭﺎ إﻣﺎ ‪ True‬او ‪ False‬وﺗﺘﻜﻮن ﻣﻦ‬ ‫‪Condition‬‬ ‫أﺳﻤﺎء ﺣﻘﻮل وﺗﻌﺒﯿﺮات وﻣﻌﺎﻣﻼت‬ ‫اﻟﺸﺮح‬ ‫ﺗﺴﺘﺨﺪم ﺟﻤﻠﺔ ‪ WHERE‬ﻟﺤﺼﺮ اﻟﺒﯿﺎﻧﺎت ﻻﺗﻲ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎﻋﮭﺎ ﻣﻦ اﻟﺠﺪاول وھﻲ ﺗﺘﻮي ﻋﻠﻰ‬ ‫ﺷﺮط وﺗﻘﻊ ﻣﺒﺎﺷﺮة ﺑﻌﺪ اﻟﻤﻘﻄﻊ ‪ FROM‬وﻋﻨﺪ ﺗﻨﻔﯿﺬ اﻟﺠﻤﻠﺔ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎﻋﮭﺎ ﺑﯿﺎﻧﺎت اﻟﺤﻘﻮل‬ ‫اﻟﻤﺬﻛﻮرة اﻟﺘﻲ ﺗﺤﻘﻖ اﻟﺸﺮط اﻟﻤﺬﻛﻮر ﻓﻲ ﺟﻤﻠﺔ ‪ WHERE‬وﯾﻤﻜﻦ أن ﺗﻘﺎرن اﻟﺠﻤﻠﺔ اﻟﺸﺮﻃﯿﺔ ﺑﯿﻦ‬ ‫ﻗﯿﻢ أو ﺣﻘﻮل ﻓﻲ اﻟﺠﺪول أو ﺗﻌﺒﯿﺮات ﺣﺴﺎﺑﯿﺔ أي أن ﺟﻤﻠﺔ ‪ WHERE‬ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﺎﯾﻠﻲ:‬ ‫أﺳﻤﺎء اﻟﺤﻘﻮل‬ ‫•‬ ‫ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ‬ ‫•‬ ‫ﻗﯿﻢ ﺛﺎﺑﺘﺔ‬ ‫•‬ ‫ﻣﺘﻐﯿﺮات وﺗﻐﺒﯿﺮات ﺣﺴﺎﺑﯿﺔ‬ ‫•‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  19. 19. ‫91‬ ‫اﻷﻣﻮر اﻟﺘﻲ ﯾﺠﺐ أﺧﺬھﺎ ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر‬ ‫١- ﻋﻨﺪ اﺳﺘﺨﺪام ﺣﻘﻮل اﻟﻨﺺ وﺣﻘﻮل اﻟﺘﺎرﯾﺦ ﻓﻲ ﺟﻤﻠﺔ اﻟﺸﺮط ﯾﺠﺐ وﺿﻊ اﻟﻘﯿﻢ ﺑﯿﻦ ﻋﻼﻣﺘﻲ‬ ‫ﺗﻨﺼﯿﺺ ﻣﻔﺮدﺗﯿﻦ )‘ ‘(‬ ‫٢- ﻓﻲ ﺣﺎﻟﺔ اﻟﺤﻘﻮل اﻟﻨﺼﯿﺔ ﯾﺠﺐ ﻣﺮاﻋﺎة ﺣﺎﻟﺔ اﻷﺣﺮف ﻛﺒﯿﺮة أو ﺻﻐﯿﺮة‬ ‫٣- ﻓﻲ اﻟﺔ ﺣﻘﻮل اﻟﺘﺎرﯾﺦ ﯾﺠﺐ ﻣﺮاﻋﺎة ﺻﯿﻐﺔ اﻟﺘﺎرﯾﺦ )‪ (FORMAT‬واﻟﺼﯿﻐﺔ اﻷﺳﻠﺴﯿﺔ ﻟﻠﺘﺎرﯾﺦ‬ ‫ھﻲ ﻛﻤﺎ ﯾﻠﻲ ‪DD-MON-YY‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  20. 20. ‫02‬ ‫ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ ‪COMPARISON OPERATORS‬‬ ‫ﺗﺸﻤﻞ ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ اﻟﺮﻣﻮز اﻟﺘﺎﻟﯿﺔ:‬ ‫اﻟﻤﻌﻨﻰ‬ ‫اﻟﻤﻌﺎﻣﻞ‬ ‫ﯾﺴﺎوي‬ ‫=‬ ‫أﻛﺒﺮ ﻣﻦ‬ ‫>‬ ‫أﻗﻞ ﻣﻦ‬ ‫<‬ ‫أﻛﺒﺮ ﻣﻦ أو ﯾﺴﺎوي‬ ‫=>‬ ‫اﻗﻞ ﻣﻦ أو ﯾﺴﺎوي‬ ‫=<‬ ‫ﻻ ﯾﺴﺎوي‬ ‫><‬ ‫ﺗﺴﺘﺨﺪم ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ ﻓﻲ ﺟﻤﻠﺔ اﻟﺸﺮط ﻟﻤﻘﺎرﻧﺔ ﺗﻌﺒﯿﺮ ﺑﺂﺧﺮ ﻓﻲ ﺟﻤﻠﺔ ‪ WHERE‬ﻛﻤﺎ ﻓﻲ‬ ‫اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ :‬ ‫ﺗﻌﺒﲑ ‪ OPERATOR‬ﺗﻌﺒﲑ ‪WHERE‬‬ ‫ﻣﺜﺎل‬ ‫’69-‪WHERE hiredate=’01-SEP‬‬ ‫0051=>‪WHERE sal‬‬ ‫’‪WHERE name=’Ahmed‬‬ ‫‪WHERE sal<> other‬‬ ‫ﻣﻌﺎﻣﻼت ﻣﻘﺎرﻧﺔ أﺧﺮى‬ ‫اﻟﻤﻌﻨﻰ‬ ‫ﻧﻔﻰ اﻟﻤﻌﺎﻣﻞ‬ ‫اﻟﻤﻌﺎﻣﻞ‬ ‫ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬ ‫‪NOT BETWEEN‬‬ ‫‪BETWEEN‬‬ ‫ﺿﻤﻦ ﻗﺎﺋﻤﺔ ﻣﻦ اﻟﻘﯿﻢ‬ ‫‪NOT IN‬‬ ‫‪IN‬‬ ‫ﻣﻄﺎﺑﻘﺔ ﻧﻤﻂ اﻟﻨﺺ‬ ‫‪NOT LIKE‬‬ ‫‪LIKE‬‬ ‫ھﻞ ھﻲ ﻗﺴﻤﺔ ﻓﺎرﻏﺔ‬ ‫‪IS NOT NULL‬‬ ‫‪IS NULL‬‬ ‫١- اﻟﻤﻌﺎﻣﻞ ‪BETWEEN‬‬ ‫ﯾﺴﺘﺨﺪم ھﺬا اﻟﻤﻌﺎﻣﻞ ﻻﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎت اﻟﺼﻔﻮف اﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻣﺪى ﻣﻦ اﻟﻘﯿﻢ أي اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ‬ ‫ﺗﻘﻊ ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬ ‫ﻣﺜﺎل‬ ‫‪SELECT * FROM S_EMP‬‬ ‫;0052 ‪WHERE sal BETWEEN 1500 AND‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  21. 21. ‫12‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع ﺟﻤﯿﻊ ﺑﯿﺎﻧﺎت اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ اﻗﻊ رواﺗﺒﮭﻢ ﺑﯿﻦ ٠٠٥١و ٠٠٥٢‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﺳﺘﻢ اﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎت اﻟﻤﻮﻇﻒ اﻟﺬي ﯾﺒﺒﻠﻎ راﺗﺒﮫ ﺗﻤﺎﻣﺎ ٠٠٥١ أو ٠٠٥٢ أي أن ﺟﻤﻠﺔ‬ ‫‪ BETWEEN‬ﺗﺘﻀﻤﻦ اﻟﺤﺪ اﻷﻋﻠﻰ واﻟﺤﺪ اﻷدﻧﻰ ﻟﻠﻘﯿﻢ اﻟﺘﻲ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎﻋﮭﺎ‬ ‫٢- اﻟﻤﻌﺎﻣﻞ ‪IN‬‬ ‫ﯾﺴﺘﺨﺪم ھﺬا اﻟﻤﻌﺎﻣﻞ ﻟﻠﺒﺤﺚ ﻋﻦ ﻗﯿﻤﺔ داﺧﻞ ﻗﺎﺋﻤﺔ ﻣﻦ اﻟﻘﯿﻢ ﻓﺘﺤﺘﻮي ھﺬه اﻟﻘﺎﺋﻤﺔ ﻗﯿﻤﺎ ﺛﺎﺑﺘﺔ أو ﻗﺪ‬ ‫ﺗﻜﻮن ھﺬه اﻟﻘﺎﺋﻤﺔ ﻋﺒﺎرة ﻋﻦ ﺟﻤﻠﺔ اﺳﺘﻌﻼم ﻓﺮﻋﻲ‬ ‫ﻣﺜﺎل‬ ‫‪SELECT name, sal , deptno FROM S_EMP‬‬ ‫;)03,01( ‪WHERE detno IN‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﺳﻢ اﻟﻤﻮﻇﻒ وراﺗﺒﮫ ورﻗﻢ اﻟﻘﺴﻢ اﻟﺬي ﯾﻌﻤﻞ ﺑﮫ ﻟﻠﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﯾﻌﻤﻠﻮن ﻓﻲ‬ ‫ﻗﺴﻢ رﻗﻢ ٠١ أو ﻗﺴﻢ رﻗﻢ ٠٣‬ ‫٣- اﻟﻤﻌﺎﻣﻞ ‪.LIKE‬‬ ‫ﯾﺴﺘﺨﺪم ھﺬا اﻟﻤﻌﺎﻣﻞ ﻟﻠﺒﺤﺚ ﻋﻦ ﻧﺺ ﻣﻌﯿﻦ داﺧﻞ ﺣﻘﻞ ﻧﺼﻲ ، ﺣﯿﺚ ﺳﯿﺘﻢ ﻣﻄﺎﺑﻘﺔ ﺣﺮوف اﻟﻨﺺ‬ ‫اﻟﻤﺬﻛﺮة ﻓﻲ ﺟﻤﻠﺔ اﻟﺸﺮط‬ ‫ﻣﺜﺎل‬ ‫‪SELECT * FROM S_EMP‬‬ ‫;’%‪WHERE name LIKE ‘S‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع ﺟﻤﯿﻊ ﺑﯿﺎﻧﺎت اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﺗﺒﺪأ أﺳﻤﺎؤھﻢ ﺑﺤﺮف ‪S‬‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﺗﺴﺘﺨﺪم اﻻﺷﺎرة % ﻋﻮﺿﺎ ﻋﻦ أي ﻗﯿﻤﺔ ﻧﺼﯿﺔ ، ﻗﺪ ﺗﻜﻮن ﻻ ﺷﻲء أو أي ﻋﺪد ﻣﻦ اﻟﺤﺮوف ﻟﻠﺒﺤﺚ‬ ‫ﻣﺜﻼ ﻋﻦ اﺳﻢ ﻣﻌﯿﻦ ﯾﻨﺘﮭﻲ ﺑﺤﺮف ‪ A‬ﻧﻜﺘﺐ ‘‪ ’%A‬وﻟﻠﺒﺤﺚ ﻋﻦ ﻧﺺ ﯾﺤﺘﻮي ﺣﺮف ‪ A‬ﻧﻜﺘﺐ‬ ‫‘ %‪ ’%A‬وھﻜﺬا ﺑﺈﻣﻜﺎﻧﻨﺎ أن ﻧﺒﺤﺚ ﻋﻦ أي ﻣﻘﻄﻊ داﺧﻞ ﺣﻘﻞ ﻧﺼﻲ ﻣﻌﯿﻦ‬ ‫ﻣﺜﺎل‬ ‫‪SELECT * FROM S_EMP‬‬ ‫;’%‪WHERE name LIKE ‘_A‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  22. 22. ‫22‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع ﺟﻤﺒﻊ ﺑﯿﺎﻧﺎت اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﯾﻜﻮن اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻓﻲ أﺳﻤﺎﺋﮭﻢ ھﻮ ‪A‬‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﺗﺴﺘﺨﺪم اﻹﺷﺎرة _ ﻋﻮﺿﺎ ﻋﻦ ﺣﺮف واﺣﺪ ﻓﻘﻂ‬ ‫٤- اﻟﻤﻌﺎﻣﻞ ‪IS NULL‬‬ ‫ﯾﺴﺘﺨﺪم ھﺬا اﻟﻤﻌﺎﻣﻞ ﻟﻔﺤﺺ اﻟﻘﯿﻤﺔ )ﻻ ﺷﻲء( أي ﻗﯿﻢ اﻟﻘﻮل اﻟﺘﻲ ﻻ ﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت‬ ‫ﻣﺜﺎل‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;‪WHERE comm. IS NULL‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﺳﻢ اﻟﻤﻮﻇﻒ وراﺗﺒﮫ ﻟﻠﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﻟﯿﺲ ﻟﮭﻢ ﻋﻤﻮﻟﺔ أو ﻟﻢ ﯾﺘﻢ ادﺧﺎل‬ ‫ﻋﻤﻮﻟﺘﮭﻢ‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﻤﻨﻄﻘﯿﺔ ‪LOGICAL OPERATORS‬‬ ‫اﻟﻤﻌﻨﻰ‬ ‫اﻟﻤﻌﺎﻣﻞ‬ ‫ﯾﺮﺟﻊ ‪ TRUE‬اذا ﻛﺎﻧﺖ ﻛﻠﺘﺎ اﻟﻘﯿﻤﺘﯿﻦ ‪TRUE‬‬ ‫‪AND‬‬ ‫ﯾﺮﺟﻊ ‪ TRUE‬اذا ﻛﺎﻧﺖ اﺣﺪى اﻟﻘﯿﻤﺘﯿﻦ ‪TRUE‬‬ ‫‪OR‬‬ ‫ﯾﺮﺟﻊ ‪ TRUE‬إذا ﻛﺎﻧﺖ اﻟﻔﯿﻤﺔ ‪FALSE‬‬ ‫‪NOT‬‬ ‫ﺗﺴﺘﺨﺪم اﻟﻤﻌﺎﻣﻼت اﻟﻤﻨﻄﻘﯿﺔ ﻟﺘﺮﺟﻊ ﻗﯿﻤﺔ واﺣﺪة ‪ TRUE‬أو ‪ FALSE‬ﻛﻨﺘﯿﺠﺔ ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬ ‫ﻣﻨﻄﻘﯿﺘﯿﻦ او ﻟﻌﻜﺲ ﻗﯿﻤﺔ ﻣﻨﻄﻘﯿﺔ ﻣﻦ ‪ TRUE‬اﻟﻰ ‪ FALSE‬واﻟﻌﻜﺲ‬ ‫ﻣﻦ ﺧﻼل اﻟﻤﻌﺎﻣﻼت اﻟﻤﻨﻄﻘﯿﺔ ﯾﻤﻜﻨﻨﺎ ﺗﻜﻮﯾﻦ أﻛﺜﺮ ﻣﻦ ﺷﺮط داﺧﻞ ﺟﻤﻠﺔ ‪ WHERE‬ﺑﺎﺳﺘﺨﺪام‬ ‫اﻟﻤﻌﺎﻣﻞ‪ AND‬او اﻟﻤﻌﺎﻣﻞ ‪OR‬‬ ‫١- اﻟﻤﻌﺎﻣﻞ ‪AND‬‬ ‫ﯾﺘﻄﻠﺐ ھﺬا اﻟﻤﻌﺎﻣﻞ أن ﺗﻜﻮن ﻛﻼ اﻟﻘﯿﻤﺘﯿﻦ ‪TRUE‬‬ ‫ﻣﺜﺎل‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;002<‪WHERE sal>=2600 AND comm‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﺳﻢ اﻟﻤﻮﻇﻒ وراﺗﺒﮫ ﻟﻠﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﯾﺰﯾﺪ راﺗﺒﮭﻢ ﻋﻦ ٠٠٦٢ وﺗﻘﻞ‬ ‫ﻋﻤﻮﻟﺘﮭﻢ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻋﻦ ٠٠٢ أي اﻧﮫ ﯾﺠﺐ ﯾﺘﺤﻘﻖ اﻟﺸﺮﻃﯿﻦ ﻻﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  23. 23. ‫32‬ ‫٢- اﻟﻤﻌﺎﻣﻞ ‪OR‬‬ ‫ﯾﺘﻄﻠﺐ ھﺬا اﻟﻤﻌﺎﻣﻞ أن ﺗﻜﻮن أي ﻣﻦ اﻟﻘﯿﻤﺘﯿﻦ ‪TRUE‬‬ ‫ﻣﺜﺎل‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;03=‪WHERE sal <200٠ OR deptno‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﺳﻢ اﻟﻤﻮﻇﻒ وراﺗﺒﮫ ﻟﻠﻤﻮﻓﯿﻦ اﻟﺬﯾﻦ ﯾﺰﯾﺪ راﺗﺒﮭﻢ ﻋﻦ ٠٠٠٢ أو ﯾﻌﻤﻠﻮن ﻓﻲ‬ ‫ﻗﺴﻢ رﻗﻢ ٠٣ أي أﻧﮫ ﯾﺠﺐ ﯾﺘﺤﻘﻖ أي ﻣﻦ اﻟﺸﺮﻃﯿﻦ ﻻﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت‬ ‫اﻟﻤﻌﺎﻣﻞ ‪NOT‬‬ ‫٣-‬ ‫ﯾﻘﻮم ھﺬا اﻟﻤﻌﺎﻣﻞ ﺑﻌﻜﺲ ﻗﯿﻤﺔ ﻣﻨﻄﻘﯿﺔ ﻣﻦ ‪ TRUE‬إﻟﻰ ‪ FALSE‬واﻟﻌﻜﺲ‬ ‫ﻣﺜﺎل‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;)04,02( ‪WHERE deptno NOT IN‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﺳﻢ اﻟﻤﻮﻇﻒ وراﺗﺒﮫ ﻟﻠﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﻻ ﯾﻌﻤﻠﻮن ﻓﻲ اﻟﻘﺴﻤﯿﻦ رﻗﻢ ٠٢ و رﻗﻢ‬ ‫٠٤ وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺗﻢ ﻋﻜﺲ ﻧﺘﯿﺠﺔ اﻟﻤﻌﺎﻣﻞ ‪IN‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  24. 24. ‫42‬ ‫أوﻟﻮﯾﺎت اﻟﻤﻌﺎﻣﻼت اﻟﻤﻨﻄﻘﯿﺔ وﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ‬ ‫إذا ورد أﻛﺜﺮ ﻣﻦ ﻣﻌﺎﻣﻞ ﻣﻨﻄﻘﻲ ﻓﻲ ﻧﻔﺲ ﻣﻠﺔ اﻟﺸﺮط ﻓﺈن أوﻟﻮﯾﺔ ﺗﻨﻔﯿﺬ ھﺬه اﻟﻤﻌﺎﻣﻼت ﻣﻦ اﻷﻋﻠﻰ‬ ‫إﻟﻰ اﻷدﺗﻰ ﻏﻲ ﻛﺎﻟﺘﺎﻟﻲ :‬ ‫اﻷﻗﻮاس‬ ‫١-‬ ‫ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ )> ، < ، = ، ><(‬ ‫٢-‬ ‫‪NOT‬‬ ‫٣-‬ ‫‪AND‬‬ ‫٤-‬ ‫‪OR‬‬ ‫٥-‬ ‫اﺳﺘﺨﺪام ﺟﻤﻠﺔ اﻟﺘﺮﺗﯿﺐ ‪ORDER BY‬‬ ‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫}*|…,…,2‪SELECT {Field1, Field‬‬ ‫1‪FROM Table‬‬ ‫‪WHERE Condition‬‬ ‫;]‪ORDER BY Field3 [ASC|DESC‬‬ ‫ﺣﯿﺚ أن‬ ‫اﺳﻢ اﻟﺠﺪول اﻟﺬي ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﻣﻨﮫ‬ ‫1‪Table‬‬ ‫اﺳﻤﺎء اﻟﺤﻘﻮل اﻟﺘﻲ ﺳﺒﺘﻢ اﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎﺗﮭﺎ‬ ‫2‪Field1, Field‬‬ ‫ﺟﻤﻠﺔ ﺷﺮﻃﯿﺔ أو اﻛﺜﺮ ﺗﻜﻮن ﻧﺘﯿﺠﺘﮭﺎ إﻣﺎ ‪ True‬أو ‪ False‬وﺗﺘﻜﻮن ﻣﻦ‬ ‫‪Condition‬‬ ‫اﺳﻤﺎء ﺣﻘﻮل وﺗﻌﺒﯿﺮات وﻣﻌﺎﻣﻼت ﻣﻨﻄﻘﯿﺔ‬ ‫اﺳﻢ اﻟﺤﻘﻞ اﻟﺬي ﺳﯿﺘﻢ اﻟﺘﺮﺗﯿﺐ ﺑﻨﺎء ﻋﻠﯿﮫ‬ ‫3‪Field‬‬ ‫اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﻣﺮﺗﺒﺔ ﺗﺼﺎﻋﺪﯾﺎ وﯾﺠﻮز ﻋﺪم ذﻛﺮھﺎ‬ ‫‪ASC‬‬ ‫اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﻣﺮﺗﺒﺔ ﺗﻨﺎزﻟﯿﺎ‬ ‫‪DESC‬‬ ‫اﻟﺸﺮح‬ ‫ﻋﻨﺪ اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﺗﺴﺘﺨﺪم ﺟﻤﻠﺔ ‪ ORDER BY‬ﻟﺘﺮﺗﯿﺐ اﻟﺒﯿﺎﻧﺎت ﺣﺴﺐ ﺣﻘﻞ ﻣﻌﯿﻦ أو ﻋﺪة‬ ‫ﺣﻘﻮل وﺗﺄﺗﻲ ھﺬه اﻟﺠﻤﻠﺔ ﻓﻲ ﻧﮭﺎﯾﺔ ﺟﻤﻠﺔ اﻻﺳﺘﺮﺟﺎع ‪ SELECT‬وﻗﺪ ﯾﻜﻮن ھﺬا اﻟﺘﺮﺗﯿﺐ ﺗﺼﺎﻋﺪﯾﺎ‬ ‫)ﻣﻦ اﻟﻘﯿﻤﺔ اﻟﺼﻐﯿﺮة إﻟﻰ اﻟﻘﯿﻤﺔ اﻟﻜﺒﯿﺮة ( ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﻤﻘﻄﻊ ‪ ASC‬وﻗﺪ ﯾﻜﻮن ﺗﻨﺎزﻟﯿﺎ )ﻣﻦ‬ ‫اﻟﻔﯿﻤﺔ اﻟﻜﺒﯿﺮة إﻟﻰ اﻟﻘﯿﻤﺔ اﻟﺼﻐﯿﺮة( ﻋﻨﺪ اﺳﺘﺨﺪﺗﻢ اﻟﻤﻘﻄﻊ ‪DESC‬‬ ‫ﻣﺜﺎل‬ ‫‪SELECT * FROM S_EMP‬‬ ‫)04,02( ‪WHERE deptno NOT IN‬‬ ‫;‪ORDER BY empno ASC‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  25. 25. ‫52‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع ﺟﻤﯿﻊ ﺑﯿﺎﻧﺎت اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﻻ ﯾﻌﻤﻠﻮن ﻓﻲ اﻟﻘﺴﻤﯿﻦ رﻗﻢ ٠٢ ورﻗﻢ‬ ‫٠٤ وﺳﺘﻜﻮن اﻟﺒﯿﺎﻧﺎت ﻣﺮﺗﺒﺔ ﺗﺼﺎﻋﺪﯾﺎ ﺣﺴﺐ رﻗﻢ اﻟﻤﻮﻇﻒ‬ ‫وﯾﺠﻮز ﻛﺘﺎﺑﺔ اﻟﺠﻤﻠﺔ اﻟﺴﺎﺑﻘﺔ دون اﻟﻤﻘﻄﻊ ‪ ASC‬ﻛﻤﺎﯾﻠﻲ:‬ ‫‪SELECT * FROM S_EMP‬‬ ‫)04,02( ‪WHERE deptno NOT IN‬‬ ‫;‪ORDER BY empno‬‬ ‫ﻣﺜﺎل‬ ‫‪SELECT * FROM S_EMP‬‬ ‫)04,02( ‪WHERE deptno NOT IN‬‬ ‫;‪ORDER BY empno DESC‬‬ ‫أي أﻧﮫ ﺳﯿﺘﻢ اﺳﺘﺮﺟﺎع ﺟﻤﯿﻊ ﺑﯿﺎﻧﺎت اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬﯾﻦ ﻻ ﯾﻌﻤﻠﻮن ﻓﻲ اﻟﻘﺴﻤﯿﻦ رﻗﻢ ٠٢ ورﻗﻢ‬ ‫٠٤وﺳﺘﻜﻮن اﻟﺒﯿﺎﻧﺎت ﻣﺮﺗﺒﺔ ﺗﻨﺎزﻟﯿﺎ ﺣﺴﺐ رﻗﻢ اﻟﻤﻮﻇﻒ‬ ‫ﻣﻠﺨﺺ اﻟﻔﺼﻞ‬ ‫ﺗﻨﺎوﻟﻨﺎ ﻣﻦ ﺧﻼل ھﺬا اﻟﻔﺼﻞ ﻣﻮﺿﻮع اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ﺑﺸﺮوط ﻣﻨﺎﻟﺪاول وﻣﻮﺿﻮع ﺗﺮﺗﯿﺐ‬ ‫اﻟﺒﯿﺎﻧﺎت ﺗﺼﺎﻋﺪﯾﺎ وﺗﻨﺎزﻟﯿﺎ ﻛﻤﺎ وﺗﻄﺮﻗﻨﺎ ﻣﻦ ﺧﻼل دراﺳﺔ ﺟﻤﻠﺔ اﻟﺸﺮط إﻟﻰ ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ‬ ‫واﻟﻤﻌﺎﻣﻼت اﻟﻤﻨﻄﻘﯿﺔ وﻣﻌﺎﻣﻼت أﺧﺮى ﻣﺜﻞ ‪BETWEEN‬و ‪IN‬و ‪ IS NULL‬وﻣﺎﯾﺘﻌﻠﻖ ﺑﮭﺎ‬ ‫ﻣﻦ ﺣﯿﺚ ﻃﺮﯾﻘﺔ اﻻﺳﺘﺨﺪام وﺗﺮﻛﯿﺐ ﺟﻤﻠﺔ اﻟﺸﺮط وأوﻟﻮﯾﺎت ﻣﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ واﻟﻤﻌﺎﻣﻼت‬ ‫اﻟﻤﻨﻄﻘﯿﺔ.‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  26. 26. ‫62‬ ‫اﻟﺪوال اﻟﺤﺮﻓﯿﺔ‬ ‫اھﺪاف اﻟﻔﺼﻞ‬ ‫ﻓﻲ ﻧﮭﺎﯾﺔ ھﺬا اﻟﻔﺼﻞ إن ﺷﺎء اﷲ ﺳﺘﻜﻮن ﻗﺎدر ﻋﻠﻰ :‬ ‫ﺗﺤﻮﯾﻞ اﻟﺤﺮوف ﻣﻦ ﺻﻐﯿﺮة إﻟﻰ ﻛﺒﯿﺮة وﺑﺎﻟﻌﻜﺲ ﻣﻦ ﺧﻼل ‪SQL‬‬ ‫١-‬ ‫ﺿﺒﻂ وﻣﺤﺎذاة اﻟﺤﺮوف داﺧﻞ اﻟﻨﺺ اﻟﻤﻮﺟﻮد ﻓﻲ‪SQL‬‬ ‫٢-‬ ‫اﻟﻘﯿﺎم ﺑﺤﺬف اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪاول‬ ‫٣-‬ ‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻠﻔﻆ اﻟﺼﻮﺗﻲ ﻟﻠﺒﯿﺎﻧﺎت‬ ‫٤-‬ ‫اﻟﻘﯿﺎم ﺑﺘﻌﺪﯾﻞ ﺑﯿ ﺎﻧﺎت اﻟﺠﺪول‬ ‫٥-‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  27. 27. ‫72‬ ‫اﻟﺪال اﻟﺤﺮﻓﯿﺔ واﻟﻀﺒﻂ واﻟﻤﺤﺎذاة‬ ‫داﻟﺔ ﺗﺤﻮﯾﻞ اﻟﺒﯿﺎﻧﺎت إﻟﻰ ﺣﺮوف ﺻﻐﯿﺮة ‪LOWER Function‬‬ ‫ﺗﺴﻨﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﺘﺤﻮﯾﻞ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺣﺮوف ﻛﺒﯿﺮة إﻟﻰ ﺣﺮوف ﺻﻐﯿﺮة وﯾﺘﻢ اﺳﺘﺨﺪام ھﺬه اﻟﺪاﻟﺔ‬ ‫ﻏﺎﻟﯿﺎ ﻣﻊ ﺟﻤﻞ أﺧﺮى‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم اﻧﻈﺮ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬ ‫ﻣﺜﺎل .‬ ‫)‪SELECT LOWER (name), LOWER (job‬‬ ‫;‪FROM S_EMP‬‬ ‫ﺳﯿﺘﻢ ﻋﺮض اﺳﻢ اﻟﻤﻮﻇﻒ ووﻇﺒﻘﺘﮫ وﻟﻜﻦ ﺑﺤﺮوف ﺻﻐﯿﺮة‬ ‫‪LOWER name‬‬ ‫‪LOWER job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪ali‬‬ ‫‪salesman‬‬ ‫‪ahmed‬‬ ‫‪analyst‬‬ ‫‪sami‬‬ ‫‪manager‬‬ ‫‪khaled‬‬ ‫‪manager‬‬ ‫داﻟﺔ ﺗﺤﻮﯾﻞ اﻟﺒﯿﺎﻧﺎت إﻟﻰ ﺣﺮوف ﻛﺒﯿﺮة ‪UPPER Function‬‬ ‫ﺗﺴﻨﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﺘﺤﻮﯾﻞ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺣﺮوف ﺻﻐﯿﺮة إﻟﻰ ﺣﺮوف ﻛﺒﯿﺮة وﯾﺘﻢ اﺳﺘﺨﺪام ھﺬه اﻟﺪاﻟﺔ‬ ‫ﻏﺎﻟﯿﺎ ﻣﻊ ﺟﻤﻞ أﺧﺮى‬ ‫ﻣﺜﺎل‬ ‫)‪SELECT UPPER (name), UPPER (job‬‬ ‫;‪FROM S_EMP‬‬ ‫داﻟﺔ ﺗﺤﻮﯾﻞ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﯿﺎﻧﺎت إﻟﻰ ﺣﺮف ﻛﺒﯿﺮ ‪INITCAP‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﺘﻮﯾﻞ أول ﺣﺮف ﻣﻦ ﺑﯿﺎﻧﺎت اﻟﻘﻞ اﻟﻤﺤﺪد إﻟﻰ ﺣﺮف ﻛﺒﯿﺮ وﯾﺘﻢ اﺳﺘﺨﺪام ھﺬه‬ ‫اﻟﺪاﻟﺔ ﻏﺎﻟﺒﺎ ﻣﻊ اﻟﺠﻤﻞ أﺧﺮى‬ ‫ﻣﺜﺎل‬ ‫)‪SELECT INITCAP (name), INITCAP (job‬‬ ‫;‪FROM S_EMP‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  28. 28. ‫82‬ ‫ﺳﯿﺘﻢ ﻋﺮض اﺳﻢ اﻟﻤﻮﻇﻒ ووﻇﺒﻘﺘﮫ وﻟﻜﻦ اول ﺣﺮف ﻓﻲ ﻛﻼھﻤﺎ ﺳﯿﻜﻮن ﻛﺒﯿﺮ‬ ‫‪INITCAP name‬‬ ‫‪INITCAP job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪Ali‬‬ ‫‪Salesman‬‬ ‫‪Ahmed‬‬ ‫‪Analyst‬‬ ‫‪Sami‬‬ ‫‪Manager‬‬ ‫‪Khaled‬‬ ‫‪Manager‬‬ ‫داﻟﺔ اﻗﺘﻄﺎع )ﻗﺺ( ﺟﺰء ﻣﻦ ﺑﯿﺎﻧﺎت اﻟﺤﻘﻞ ‪SUBSTR‬‬ ‫ﺗﺴﺘﺨﺪم ﻟﻌﺮض أو ﻗﺺ ﺟﺰء ﻣﻌﯿﻦ ﻣﻦ ﺑﯿﺎﻧﺎت اﻟﻌﻤﻮد او اﻟﺤﻘﻞ‬ ‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫)‪SUBSTR (Field1,N ,M‬‬ ‫ﺣﯿﺚ أن‬ ‫اﻟﺤﻘﻞ اﻟﻤﺮاد اﻻﻗﺘﻄﺎع ﻣﻨﮫ‬ ‫‪String‬‬ ‫اول ﺣﺮف ﯾﺒﺪأ ﻋﻨﺪه اﻻﻗﺘﻄﺎع‬ ‫‪N‬‬ ‫ﻋﺪد اﻟﺤﺮوف اﻟﻤﺮاد اﻗﺘﻄﺎﻋﮭﺎ‬ ‫‪M‬‬ ‫ﻣﺜﺎل‬ ‫)3,1,'‪SUB STR (' Ahmed‬‬ ‫ﻗﯿﻜﻮن اﻟﻨﺎﺗﺞ‬ ‫‪Ahm‬‬ ‫ﻣﺜﺎل‬ ‫)2,1 ,‪SELECT SUBSTR (name‬‬ ‫;‪FROM S_EMP‬‬ ‫ﺳﯿﺘﻢ اﻗﺘﻄﺎع اﻟﺤﺮف اﻷول واﻟﺜﺎﻧﻲ ﻣﻦ اﺳﻢ اﻟﻤﻮﻇﻒ وﻋﺮﺿﮭﺎ‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  29. 29. ‫92‬ ‫داﻟﺔ ﻧﺤﺪﯾﺪ ﻣﻮﻗﻊ ﺣﺮف ﻓﻲ ﺑﯿﺎﻧﺎت ﺣﻘﻞ ‪INSTR Function‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﺘﺤﺪﯾﺪ ﻣﻜﺎن أو ﻣﻮﻗﻊ ﺣﺮف ﻓﻲ ﺑﯿﺎﻧﺎت اﻟﻌﻤﻮد أو اﻟﺤﻘﻞ‬ ‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫)’‪INSTR (Field, ‘C‬‬ ‫ﺣﯿﺚ أن‬ ‫اﻟﺤﻘﻞ اﻟﺬي ﺳﯿﺘﻢ اﻟﺘﺤﺪﯾﺪ ﻣﻨﮫ‬ ‫‪Field‬‬ ‫اﻟﺤﺮف اﻟﻤﺮاد اﺳﺘﺨﺮاج ﻣﻮﻗﻌﮫ‬ ‫‪C‬‬ ‫ﻣﺜﺎل‬ ‫)’‪SELECT INSTR (name, ‘l‬‬ ‫;‪FROM S_EMP‬‬ ‫ﺳﯿﺘﻢ اﺳﺘﺨﺮاج ﻣﻮﻗﻊ اﻟﺤﺮف ‪ l‬ﻣﻦ ﺣﻘﻞ اﺳﻢ اﻟﻤﻮﻇﻒ‬ ‫‪INSTR name‬‬ ‫--------------------‬ ‫2‬ ‫0‬ ‫0‬ ‫4‬ ‫داﻟﺔ ﺿﺒﻂ وﻣﺤﺎذاة ﻧﺎﺣﯿﺔ اﻟﯿﻤﯿﻦ ﻟﻠﺒﯿﺎﻧﺎت ‪RPAD Function‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﻤﺤﺎذاة اﻟﺒﯿﺎﻧﺎت ﻧﺎﺣﯿﺔ اﻟﯿﻤﯿﻦ ﺣﯿﺚ ﯾﺘﻢ ﻣﻞء ﺣﺮف ﻣﻌﯿﻦ )أو ﺣﺮوف ( ﯾﻤﯿﻦ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ ‫)’‪RPAD (COL | VALUE, N, ‘ String‬‬ ‫ﺣﯿﺚ أن‬ ‫‪ COL‬اﺳﻢ اﻟﺤﻘﻞ اﻟﻤﻄﻠﻮب ﻣﺤﺎذاة ﺑﯿﺎﻧﺎﺗﮫ ، ووﺿﻊ ﺣﺮف )ﺣﺮوف( ﯾﻤﯿﻨﮫ‬ ‫ﯾﻤﻜﻦ وﺿﻊ ﻗﯿﻤﺔ أو ﻣﺘﻐﯿﺮ ﺣﺮﻓﻲ ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ )quot; quot;(‬ ‫‪VALUE‬‬ ‫ﻋﺪد ﻣﺮات ﻇﮭﻮر اﻟﻒ اﻟﺠﺪﯾﺪ‬ ‫‪N‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  30. 30. ‫03‬ ‫اﻟﺤﺮف أو اﻟﻤﺘﻐﯿﺮ اﻟﺬي ﺳﯿﺘﻢ ﻣﻞء اﻟﻔﺮاﻏﺎت ﺑﮫ‬ ‫‪String‬‬ ‫ﻣﺜﺎل‬ ‫)’$’,7 ,‪SELECT name, RPAD (sal‬‬ ‫;‪FROM S_EMP‬‬ ‫‪NAME‬‬ ‫‪RPAD SAL‬‬ ‫-------------------- --------------------‬ ‫‪Ali‬‬ ‫$$$$869‬ ‫‪Ahmed‬‬ ‫$$$6391‬ ‫‪SAMI‬‬ ‫$5.2151‬ ‫‪KHALED‬‬ ‫57.9953‬ ‫داﻟﺔ ﺿﺒﻂ وﻣﺤﺎذاة ﻧﺎﺣﯿﺔ اﻟﯿﺴﺎر ﻟﻠﺒﯿﺎﻧﺎت ‪LPAD Function‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﻤﺤﺎذاة اﻟﺒﯿﺎﻧﺎت ﻧﺎﺣﯿﺔ اﻟﯿﻤﯿﻦ ﺣﯿﺚ ﯾﺘﻢ ﻣﻞء ﺣﺮف ﻣﻌﯿﻦ )أو ﺣﺮوف ( ﯾﺴﺎر‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ ‫)’‪LPAD (COL | VALUE, N, ‘ String‬‬ ‫ﺣﯿﺚ أن‬ ‫‪ COL‬اﺳﻢ اﻟﺤﻘﻞ اﻟﻤﻄﻠﻮب ﻣﺤﺎذاة ﺑﯿﺎﻧﺎﺗﮫ ، ووﺿﻊ ﺣﺮف )ﺣﺮوف( ﯾﻤﯿﻨﮫ‬ ‫ﯾﻤﻜﻦ وﺿﻊ ﻗﯿﻤﺔ أو ﻣﺘﻐﯿﺮ ﺣﺮﻓﻲ ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ )quot; quot;(‬ ‫‪VALUE‬‬ ‫ﻋﺪد ﻣﺮات ﻇﮭﻮر اﻟﻒ اﻟﺠﺪﯾﺪ‬ ‫‪N‬‬ ‫اﻟﺤﺮف أو اﻟﻤﺘﻐﯿﺮ اﻟﺬي ﺳﯿﺘﻢ ﻣﻞء اﻟﻔﺮاﻏﺎت ﺑﮫ‬ ‫‪String‬‬ ‫ﻣﺜﺎل‬ ‫)’#’,7 ,‪SELECT name, LPAD (sal‬‬ ‫;‪FROM S_EMP‬‬ ‫‪NAME‬‬ ‫‪LPAD SAL‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪Ali‬‬ ‫869####‬ ‫‪Ahmed‬‬ ‫6391###‬ ‫‪SAMI‬‬ ‫5.2151#‬ ‫‪KHALED‬‬ ‫57.9953‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  31. 31. ‫13‬ ‫ﺣﺬف و ﺗﻌﺪﯾﻞ اﻟﺒﯿﺎﻧﺎت‬ ‫داﻟﺔ ﺣﺬف ﺑﯿﺎﻧﺎت ﻧﺎﺣﯿﺔ ﯾﻤﯿﻦ اﻟﺤﻘﻞ ‪RTRIM Function‬‬ ‫ﺗﺴﺘﻨﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﺤﺬف ﺑﯿﺎﻧﺎت ﻣﻦ ﻧﺎﯾﺔ ﯾﻤﯿﻦ اﻟﻌﻤﻮد او اﻟﺤﻘﻞ اﻟﻤﺤﺪد‬ ‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫)’‪RTRIM (COL | VALUE,‘ String‬‬ ‫ﺣﯿﺚ أن‬ ‫اﺳﻢ اﻟﻘﻞ أو اﻟﻌﻤﻮد‬ ‫‪COL‬‬ ‫اﻟﻘﯿﻤﺔ اﻟﺒﺪﯾﻠﺔ ﻟﻠﻌﻤﻮد‬ ‫‪VALUE‬‬ ‫ﻗﯿﻤﺔ اﻟﺤﺮف أو اﻟﻤﺘﻐﯿﺮ اﻟﺬي ﺳﯿﺘﻢ اﻟﺒﺤﺚ ﻋﻨﮫ‬ ‫‪String‬‬ ‫ﻣﺜﺎل‬ ‫)’‪SELECT name, RTRIM (job،’man‬‬ ‫;‪FROM S_EMP‬‬ ‫ﺳﯿﺘﻢ ﺣﺬف ‪ man‬ﻣﻦ ﯾﻤﯿﻦ اﻟﻌﻤﻮد ‪job‬‬ ‫‪name‬‬ ‫‪RTRIM job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪ALI‬‬ ‫‪Sales‬‬ ‫‪AHMED‬‬ ‫‪Analyst‬‬ ‫‪SAMI‬‬ ‫‪Manager‬‬ ‫‪Khaled‬‬ ‫‪Manager‬‬ ‫داﻟﺔ ﺣﺬف ﺑﯿﺎﻧﺎت ﯾﺴﺎر اﻟﺤﻘﻞ ‪LTRIM Function‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﺤﺬف ﺑﯿﺎﻧﺎت ﻣﻦ ﻧﺎﺣﯿﺔ ﯾﺴﺎر اﻟﻌﻤﻮد أو اﻟﺤﻘﻞ اﻟﻤﺤﺪد‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ ‫)’‪LTRIM (COL | VALUE,‘ String‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  32. 32. 32 ‫ﺣﯿﺚ أن‬ ‫اﺳﻢ اﻟﻘﻞ أو اﻟﻌﻤﻮد‬ COL ‫اﻟﻘﯿﻤﺔ اﻟﺒﺪﯾﻠﺔ ﻟﻠﻌﻤﻮد‬ VALUE ‫ﻗﯿﻤﺔ اﻟﺤﺮف أو اﻟﻤﺘﻐﯿﺮ اﻟﺬي ﺳﯿﺘﻢ اﻟﺒﺤﺚ ﻋﻨﮫ‬ String ‫ﻣﺜﺎل‬ SELECT name, LTRIM (job،’man’) FROM S_EMP; job ‫ ﻣﻦ ﯾﺴﺎر اﻟﻌﻤﻮد‬man ‫ﺳﯿﺘﻢ ﺣﺬف‬ name LTRIM job -------------------- -------------------- ALI Salesman AHMED Analyst SAMI ager Khaled ager LENGTH Function ‫داﻟﺔ ﻗﯿﺎس ﻃﻮل ﺑﯿﺎﻧﺎت اﻟﺤﻘﻞ‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻹﯾﺠﺎد ﻃﻮل ﺑﯿﺎﻧﺎت ﻣﺘﻐﯿﺮ أو اﻟﺤﻘﻞ اﻟﻤﺤﺪد‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ LENGTH (COL | VALUE) ‫ﻣﺜﺎل‬ SELECT LENGTH (name), LENGTH (‘WELCOME’) FROM S_EMP; .WELCOME ‫ﺳﯿﺘﻢ ﺣﺴﺎب ﻃﻮل اﺳﻢ اﻟﻤﻮﻇﻒ وﻃﻮل ﻛﻠﻤﺔ‬ LENGTH name LENGTH ‘WELCOME’ -------------------- -------------------- 3 7 5 7 4 7 6 7 PDF created with pdfFactory Pro trial version www.pdffactory.com
  33. 33. ‫33‬ ‫داﻟﺔ ﺗﻌﺪﯾﻞ ﺑﯿﺎﻧﺎت ﻓﻲ ﺟﺪول ‪TRANSLATE Function‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﻨﻌﺪﯾﻞ أو ﻟﺘﺒﺪﯾﻞ ﺑﯿﺎﻧﺎت ﻣﻮﺟﻮدة ﻓﻲ ﺟﺪول ﻣﻌﯿﻦ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم:‬ ‫)‪TRANSLATE (COL|VALUE, FROM, TO‬‬ ‫ﺣﯿﺚ أن‬ ‫اﺳﻢ اﻟﻘﻞ أو اﻟﻌﻤﻮد‬ ‫‪COL‬‬ ‫اﻟﻘﯿﻤﺔ اﻟﺒﺪﯾﻠﺔ ﻟﻠﻌﻤﻮد )اﻟﺒﯿﺎﻧﺎت(‬ ‫‪VALUE‬‬ ‫اﻟﺤﺮف )اﻟﺤﺮوف( اﻟﻤﻄﻠﻮب ﺗﻐﯿﯿﺮه‬ ‫‪FROM‬‬ ‫اﻟﺤﺮف )اﻟﺤﺮوف( اﻟﻤﻄﻠﻮب اﺣﻼﻟﮫ‬ ‫‪TO‬‬ ‫ﻣﺜﺎل‬ ‫)’‪SELECT name, TRANSLATE (name,’MI’,’WY‬‬ ‫;5.2151=‪FROM S_EMP WHERE sal‬‬ ‫1‬ ‫ﺳﯿﺘﻢ اﺳﺘﺒﺪال اﻟﺮﻓﯿﻦ ‪ MI‬ﺑﺎﻟﺤﺮﻓﯿﻦ ‪WY‬‬ ‫‪name‬‬ ‫)‪TRANSLATE(name‬‬ ‫-------------------- --------------------‬ ‫‪SAMI‬‬ ‫‪SAWY‬‬ ‫داﻟﺔ ﻋﺮض اﻟﻠﻔﻆ اﻟﺼﻮﺗﻲ ‪SOUNDEX Function‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻹﯾﺠﺎد اﻟﻠﻔﻆ اﻟﺼﻮﺗﻲ ﻟﻠﺒﯿﺎﻧﺎت )اﻟﻤﺘﻐﯿﺮات( اﻟﻤﻮﺟﻮدة ﻓﻲ ﺟﺪول ﻣﻌﯿﻦ ﺣﺘﻰ وﻟﻮ‬ ‫ﻛﺎن ھﻨﺎك اﺧﺘﻼف ﻓﻲ ﺑﻌﺾ اﻷﺣﺮف اﻟﮭﺠﺎﺋﯿﺔ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم:‬ ‫)‪SOUNDEX (COL|VALUE‬‬ ‫ﺣﯿﺚ أن‬ ‫اﺳﻢ اﻟﻘﻞ أو اﻟﻌﻤﻮد‬ ‫‪COL‬‬ ‫اﻟﻘﯿﻤﺔ اﻟﺒﺪﯾﻠﺔ ﻟﻠﻌﻤﻮد )اﻟﺒﯿﺎﻧﺎت(‬ ‫‪VALUE‬‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  34. 34. ‫43‬ ‫ﻣﺜﺎل‬ ‫)‪SELECT name, SOUNDEX (name‬‬ ‫;5.2151=‪FROM S_EMP WHERE sal‬‬ ‫1‬ ‫ﻣﻠﺨﺺ اﻟﻔﺼﻞ‬ ‫ﺗﻨﺎوﻟﻨﺎ اﻟﺪوال اﻟﺤﺮﻓﯿﺔ اﻟﺨﺎﺻﺔ ﺑﺘﺤﻮﯾﻞ ﺣﺎﻟﺔ اﻟﺤﺮوف ﻣﻦ ﺣﺮوف ﻛﺒﯿﺮة إﻟﻰ ﺣﺮوف ﺻﻐﯿﺮة‬ ‫واﻟﻌﻜﺲ وﻛﺬﻟﻚ ﺿﺒﻂ ﻣﺤﺎذاة اﻟﺤﺮوف داﺧﻞ اﻟﻨﺺ وﻣﻦ اﻟﺪوال اﻟﮭﺎﻣﺔ اﻟﻨﻲ ﺗﻨﺎوﻟﻨﺎھﺎ اﯾﻀﺎ دوال‬ ‫ﺣﺬف اﻟﺒﯿﺎﻧﺎت ودوال ﻋﺮض اﻟﻠﻔﻆ اﻟﺼﻮﺗﻲ وﺗﻌﺪﯾﻞ ﺑﯿﺎﻧﺎت اﻟﺠﺪاول .‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  35. 35. ‫53‬ ‫دوال اﻟﺘﺎرﯾﺦ واﻟﺘﺤﻮﯾﻞ‬ ‫أھﺪاف اﻟﻔﺼﻞ‬ ‫ﻓﻲ ﻧﮭﺎﯾﺔ ھﺬا اﻟﻔﺼﻞ إن ﺷﺎء اﷲ ﺗﻜﻮن ﻗﺎدر ﻋﻠﻰ :‬ ‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ دوال اﻟﺘﺎرﯾﺦ ﻓﻲ ‪SQL‬‬ ‫١-‬ ‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ أدوات اﻟﺘﺤﻮﯾﻞ ﻓﻲ ‪SQL‬‬ ‫٢-‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  36. 36. ‫63‬ ‫دوال اﻟﺘﺎرﯾﺦ‬ ‫اﻟﻮﻓﺖ ھﻮ اﻟﺤﯿﺎة واﻟﺘﺎرﯾﺦ ھﻮ أﺻﻞ اﻻﻣﻢ ﻟﺬا ﻟﺘﺎ ﻟﻨﺘﻌﻤﻖ ﻓﻲ ﻛﯿﻔﯿﺔ اﺳﺘﺨﺪام دوال اﻟﺘﺎرﯾﺦ‬ ‫اﻟﺪاﻟﺔ ‪Sysdate‬‬ ‫ھﺬه اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﺈﻋﻄﺎء ﺗﺎرﯾﺦ اﻟﯿﻮم اﻟﺤﺎﻟﻲ أي اﻟﺘﺎرﯾﺦ اﻟﻤﺨﺰن ﻓﻲ ﺟﮭﺎز اﻟﻜﻤﺒﯿﻮﺗﺮ اﻟﺬي ﯾﻨﻔﺬ ﻋﻠﯿﮫ‬ ‫ھﺬا اﻷﻣﺮ وﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺘﺎرﯾﺦ وھﻤﻲ ﯾﺴﻤﻰ ‪ Dual‬وھﻮ ﻣﻮﺟﻮد أﺻﻼ داﺧﻞ ﻟﻐﺔ أوراﻛﻞ ﻟﺬﻟﻚ‬ ‫ﯾﺠﺐ أن ﺗﺘﻢ ﻋﻤﻠﯿﺔ اﺳﺘﺪﻋﺎء اﻟﺘﺎرﯾﺦ ﻣﻦ ھﺬا اﻟﺠﺪول‬ ‫ﻣﺜﺎل‬ ‫ﻻﺳﺘﺪﻋﺎء ﺗﺎرﯾﺦ اﻟﯿﻮم اﻟﺤﺎﻟﻲ ﻧﻘﻮم ﺑﺎﻵﺗﻲ :‬ ‫;‪SELECT SYSDATE FROM DUAL‬‬ ‫اﻟﺪاﻟﺔ ‪NEXT_DAY‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﻌﺮض اﻟﺘﺎرﯾﺦ اﻟﺬي ﯾﻮاﻓﻖ اﻟﺘﺎرﯾﺦ اﻟﺘﺎﻟﻲ ﻟﻠﺘﺎرﯾﺦ اﻟﻤﻌﻄﻰ‬ ‫ﻓﻌﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل إذا ﻛﺎن اﻟﺘﺎرﯾﺦ اﻟﻤﻮﺟﻮد ھﻮ ٧/٧/٣٠٠٢ وﻃﻠﺐ ﻣﻦ اﻟﺠﮭﺎز ﺗﺤﺪﯾﺪ اﻟﯿﻮم اﻟﺬي‬ ‫ﯾﺼﺎدف ﯾﻮم اﻟﺠﻤﻌﺔ ﻣﻦ ﻧﻔﺲ اﻟﺸﮭﺮ ﻓﺈﻧﮫ ﯾﻌﻄﻲ ١١/٧/٣٠٠٢‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ ‫)‪NEXT_DAY (DATE,CHAR‬‬ ‫ﺣﯿﺚ إن ‪ DATE‬ھ ﻮ اﻟﺘﺎرﯾﺦ اﻟﻤﻌﻄﻰ واﻟﻤﺮاد إﯾﺠﺎد اﻟﺘﺎرﯾﺦ ﻟﻠﯿﻮم اﻟﺬي ﯾﻠﯿﮫ ﻣﻦ ﺧﻼل وﺿﻊ اﺳﻢ‬ ‫اﻟﯿﻮم داﺧﻞ اﻟﻤﺘﻐﯿﺮ ‪CHAR‬‬ ‫ﻣﺜﺎل‬ ‫;‪SELECT NEXT_DAY (‘7/7/2003’,’MONDAY’) FROM DUAL‬‬ ‫ﻧﺘﯿﺠﺔ اﻟﺘﻨﻔﯿﺬ‬ ‫‪NEXT_DAY‬‬ ‫-------------------‬ ‫3002/7/11‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
  37. 37. ‫73‬ ‫داﻟﺔ ﺗﺤﺪﯾﺪ اﻟﯿﻮم اﻷﺧﯿﺮ ﻣﻦ ﻛﻞ ﺷﮭﺮ ‪LAST_DAY‬‬ ‫ﺗﻘﻮم ھﺬه اﻟﺪاﻟﺔ ﺑﺘﺤﺪﯾﺪ آﺧﺮ ﯾﻢ ﻣﻦ ﻛﻞ ﺷﮭﺮ ﻣﻌﻄﻰ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ ‫)‪LAST_DAY (DATE‬‬ ‫ﺣﯿﺚ أن ‪ DATE‬ھﻮ ﺗﺎرﯾﺦ اﻟﺠﮭﺎز أو ﺗﺎرﯾﺦ ﺗﻘﻮم ﺑﺈدﺧﺎﻟﮫ‬ ‫ﻣﺜﺎل‬ ‫;‪SELECT LAST_DAY (SYSDATE) FROM DUAL‬‬ ‫ﺑﻔﺮض أن ﺗﺎرﯾﺦ اﻟﮭﺎز ‪ SYSDATE‬ھﻮ٢/٢/٣٠٠٢ ﻓﺈن ﻧﺘﯿﺠﺔ ﻟﻠﺠﻤﻠﺔ اﻟﺴﺎﺑﻘﺔ ھﻲ ﻛﻤﺎ ﯾﻠﻲ :‬ ‫)‪LAST_DAY(SYSDATE‬‬ ‫--------------------------------‬ ‫3002/2/82‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﯾﻤﻜﻨﻚ أن ﺗﻘﻮم ﺑﻄﺮح ﺗﺎرﯾﺦ ﻣﻦ ﺗﺎرﯾﺦ آﺧﺮ ﻛﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬ ‫‪SELECT SYSDATE – HIRDATE FROM S_EMP‬‬ ‫ﺣﯿﺚ ‪ HIRDATE‬ﺣﻔﻞ ﺗﺎرﯾﺦ .‬ ‫اﻟﺪاﻟﺔ ‪MONTHES_BETWEEN‬‬ ‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﺪاﻟﺔ ﻟﻌﺮض ﻣﺪة اﻟﻔﺮق ﺑﯿﻦ ﺷﮭﺮﯾﻦ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم‬ ‫‪MONTHES_BETWEEN‬‬ ‫)2‪(DATE1,DATE‬‬ ‫ﻣﺜﺎل‬ ‫‪MONTHES_BETWEEN‬‬ ‫)’49-‪(’01-SEP-95’,’11-JAN‬‬ ‫ﺳﯿﻜﻮن اﻟﻨﺎﺗﺞ‬ ‫4914779.1‬ ‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬

×