You are on page 1of 18

‫اﻟﻔﺼﻞ اﻻول‬

‫ﻟﻐﺔ اﻻﺳﺘﻌﻼم ‪:sql‬‬


‫هﻰ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻواﻣﺮ اﻟﺘﻰ ﻳﺤﺘﺎﺟﻬﺎ اﻟﻤﺒﺮﻣﺠﻴﻦ وآﺬﻟﻚ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬
‫ﻟﻠﻮﺻﻮل ﻟﻠﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﺿﻤﻦ ﻗﺎﻋﺪة اورآﻞ‬
‫ﺗﺎرﻳﺨﻬﺎ‪:‬‬
‫ﺗﻢ ﺗﻄﻮﻳﺮ هﺬﻩ اﻟﻠﻐﺔ ﻓﻰ اﻟﺒﺪاﻳﺔ ﻣﻦ ﻗﺒﻞ ﺷﺮآﺔ ‪ ibm‬وذﻟﻚ ﻓﻰ ﻣﻨﺘﺼﻒ اﻟﺴﺒﻴﻌﻴﻨﺎت ﺛﻢ‬
‫ﻗﺎﻣﺖ ﺷﺮآﺔ اورآﻞ ﻓﻰ ‪ 1979‬ﺑﺘﻄﻮﻳﺮهﺎ وﺑﺎﻧﺘﺎج اول ﻧﺴﺨﺔ ﺗﺠﺎرﻳﺔ ﻣﻦ ﻟﻐﺔ ‪sql‬‬
‫ﻣﻤﻴﺰاﺗﻬﺎ‪:‬‬
‫• اﻧﻬﺎ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻗﻮﻳﺔ ﻣﻘﺎرﻧﺔ ﺑﻤﺜﻴﻠﺘﻬﺎ ﻣﺜﻞ )‪ (access‬و)‪(microsoft sql server‬‬
‫• اﻧﻬﺎ ﺗﺘﻤﺘﻊ ﺑﻘﺪر آﺒﻴﺮ ﻣﻦ اﻻﻣﺎن وهﻮ اﻟﺴﺒﺐ وراء اﻧﺘﺸﺎرهﺎ‬
‫• ﺳﺮﻳﻌﺔ ﺟﺪا ﻓﻰ ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ ﻣﻦ ﺧﻼﻟﻬﺎ‪.‬‬
‫و ﻳﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺧﻼﻟﻬﺎ وﻣﻦ ﺧﻼل هﺬﻩ اﻟﻠﻐﺔ ﻳﻤﻜﻦ اﻋﻄﺎء‬
‫ﺻﻼﺣﻴﺎت واﻣﺘﻴﺎزات ﻣﻤﺎرﺳﺔ ﻋﻤﻠﻴﺎت ﻣﻌﻴﻨﺔ ﻣﺜﻞ‪:‬‬
‫‪ -1‬اﻧﺸﺎء ﺟﺪاول )‪(create table‬‬
‫‪ -2‬اﻟﺘﻌﺪﻳﻞ ﻓﻴﻬﺎ )‪(alter‬‬
‫‪ -3‬ﺣﺬف ﺟﺪاول )‪(drop‬‬
‫‪ -4‬ﻣﻞء ﺟﺪاول اﻟﺒﻴﺎﻧﺎت )‪(insert‬‬
‫‪ -5‬ﺣﺬف اﻟﺒﻴﺎﻧﺎت اﻟﻤﺪﺧﻠﺔ )‪(delete‬‬
‫‪ -6‬اﻟﺘﻌﺪﻳﻞ ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺪﺧﻠﺔ )‪(update‬‬
‫‪ – 7‬اﻟﺒﺤﺚ ﻋﻦ اﻟﺒﻴﺎﻧﺎت )‪(query‬‬
‫ﻣﻜﻮﻧﺎﺗﻬﺎ‪:‬‬
‫ﺗﻨﻘﺴﻢ ﻟﻐﺔ ‪ sql‬اﻟﻰ ﺛﻼث اﻗﺴﺎم ﺣﻴﺚ ﺗﺸﻜﻞ آﻞ ﻣﺠﻤﻮﻋﺔ اواﻣﺮ ﻟﻐﺔ ﻓﺮﻋﻴﺔ ﻣﻦ‬
‫هﺬﻩ اﻟﻠﻐﺔ وهﻰ آﺎﻻﺗﻰ‪:‬‬
‫‪ -1‬اواﻣﺮ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت ‪(DDLl)data definition language‬‬
‫وﺗﺤﺘﻮى ﻋﻠﻰ ﺛﻼث اواﻣﺮ وهﻰ ‪:‬‬
‫• اﻣﺮ )‪ (create table‬ﻳﺴﺘﺨﺪم ﻻﻧﺸﺎء اﻟﺠﺪاول‬
‫• اﻣﺮ)‪ (alter table‬ﻳﺴﺘﺤﺪم ﻟﻠﺘﻌﺪﻳﻞ ﻓﻰ ﺟﺪول ﻣﻨﺸﺎ ﺳﺎﺑﻘﺎ‬
‫• اﻣﺮ )‪ (drop table‬ﻳﺴﺘﺨﺪم ﻓﻰ ﺣﺬف ﺟﺪول ﻏﻴﺮ ﻣﺮﻏﻮب ﻓﻴﻪ‬
‫ﺣﻴﺚ ﻳﻘﺘﺼﺮ ﻋﻤﻞ هﺬﻩ اﻻواﻣﺮ ﻋﻠﻰ اﻟﺠﺪاول وﺣﻘﻮﻟﻬﺎ ﻓﻘﻂ دون اﻟﺘﻌﺮض ﻟﻠﺒﻴﺎﻧﺎت‬
‫اﻟﺘﻰ ﺑﺪاﺧﻞ اﻟﺠﺪاول‬
‫‪ -2‬اواﻣﺮ ﻟﻐﺔ ﻣﻌﺎﻟﺠﺔ اﻟﺒﻴﺎﻧﺎت ‪(DML) data manipulation language‬‬
‫وﺗﺤﺘﻮى ﻋﻠﻰ ارﺑﻌﺔ اواﻣﺮ وهﻰ‪:‬‬
‫• اﻣﺮ )‪ (insert into‬ﻳﺴﺘﺨﺪم ﻓﻰ ادﺧﺎل اﻟﺒﻴﺎﻧﺎت اﻟﻰ اﻟﺠﺪاول‬
‫• اﻣﺮ )‪ (update‬ﻳﺴﺘﺨﺪم ﻓﻰ ﺗﻌﺪﻳﻞ اﻟﺒﻴﺎﻧﺎت ﻓﻰ اﻟﺠﺪاول‬
‫• اﻣﺮ )‪ (delete‬ﻳﺴﺘﺨﺪم ﻓﻰ ﺣﺬف اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﺠﺪول‬
‫• اﻣﺮ )‪ (select‬ﻳﺴﺘﺤﺪم ﻓﻰ اﻻﺳﺘﻌﻼم ﻋﻦ ﺷﻰء ﻣﻌﻴﻦ ﺑﻴﺎﻧﺎت اﻟﺠﺪول‬
‫‪ -3‬اواﻣﺮ اﻟﺘﺤﻜﻢ ﺑﺎﻟﺒﻴﺎﻧﺎت ‪(DCL)data control language‬‬
‫أﺳﺎﺳﻴﺎت ﺟﻤﻠﺔ ‪SELECT‬‬

‫اﻷهﺪاف‬
‫ﺑﻌﺪ إآﻤﺎلِ هﺬا اﻟﺪرسِ‪ ،‬أﻧﺖ ﻳﺠِﺐ أَن ﺗﻜﻮن ﻗﺎدر إِﻟﻰ ﻋﻤﻞ اﻟﺘﺎﻟﻲ‪:‬‬
‫‪ .1‬اﻟﻘﺪرة ﻋﻠﻰ ﺗﻨﻔﻴﺬﺟﻤﻠﺔ ‪.SELECT‬‬
‫‪ .2‬اﻟﻔﺮق ﺑﻴﻦ ‪ SQL*PLUS‬و ‪iSQL* plus‬‬

‫هﺪف اﻟﺪرسِ‬
‫أَن ﺗﺴﺘﺨﻠﺺَ اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎتِ‪ ،‬ذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام ﺟﻤﻠﺔ ‪. SELECT‬‬
‫وﻳﻤﻜﻦ ان ﺗﺤﺪد اﻷﻋﻤﺪة او اﻟﺼﻔﻮف اﻟﺘﻲ ﺳﻮف ﺗﻌﺮض‪.‬‬
‫و ﻳﻤﻜﻦ أَن ﺗﻨﺸﺊ ﺟﻤﻞ ‪ SELECT‬أآﺜﺮ ﻣﻦ ﻣﺮة‪.‬‬
‫هﺬا اﻟﺪّرسِ ﻳَﻐﻄّﻲ أﻳﻀﺎ ‪ iSQL*Plus‬ﺣﻴﺚ ﺗﻨﻔﺬ ﺟﻤﻞ ‪. Sql‬‬
‫ﻣﻼﺣﻆ ‪ iSQL* plus :‬ﻳﻌﺘﺒﺮ ﻣﻜﺎن ﺟﺪﻳﺪ ﻟﻜﺘﺎﺑﺔ اﻟﻜﻮد ﺑﺪاﺧﻠﺔ وذﻟﻚ ﻓﻰ اﻷﺻﺪار‬
‫‪ .ORACLE 9i‬ذﻟﻚ ﺑﺎﻷﺿﺎﻓﺔ اﻟﻰ اﻟﻤﻜﺎن اﻟﻘﺪﻳﻢ ‪.SQL*PLUS‬‬

‫اﺳﺘﺨﺪاﻣﺎت ﺟﻤﻠﺔ ‪: SELECT‬‬

‫* ‪ : PROJECTION‬ﻳﺴﺘﺨﺪم ﻓﻲ اﺧﺘﻴﺎر ﻋﻤﻮد أو أآﺜﺮ ﻣﻦ ﺟﺪول ﻣﻌﻴﻦ ‪.‬‬


‫* ‪ : S ELECTION‬ﻳﺴﺘﺨﺪم ﻓﻲ اﺧﺘﻴﺎر ﺻﻒ أو أآﺜﺮ ﻣﻦ ﺻﻒ ذﻟﻚ ﻣﻦ ﺟﺪول ﻣﻌﻴﻦ‪.‬‬
‫‪ :‬ﻳﺴﺘﺨﺪم ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺑﻴﺎﻧﺎت ﻣﻦ ﺟﺪوﻟﻴﻦ ﻣﻦ ﺧﻼل اﻟﺮﺑﻂ‬ ‫* ‪JOIN‬‬
‫ﺑﻴﻨﻬﻤﺎ ﺑﺎﺣﺪى اﻟﻄﺮق اﻟﻤﺨﺘﻠﻔﺔ اﻟﺘﻰ ﺳﻮف ﻧﺮاهﺎ ﻓﻰ اﻟﻔﺼﻞ اﻟﺮاﺑﻊ‪.‬‬

‫اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ ﻳﻮﺿﺢ اﻟﻤﻔﺎهﻴﻢ اﻟﺴﺎﺑﻘﺔ و ﻻﺣﻆ اﻟﺘﻈﻠﻴﻞ‪:‬‬

‫ﻊ اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎتِ ﺑﺎﺣﺪى اﻟﻄﺮق‬


‫ﺟﻤﻠﺔ ) ‪ ( SELECT Statement‬ﺗَﺴﺘﺮﺟ ُ‬
‫اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫* اﻹﺳﻘﺎط ) ‪ :( PROJECTION‬و ﺑﻬﺬا ﻳﻤﻜﻦ اﺳﺘﺨﻼص ﻋﻤﻮد أو أآﺜﺮ ﻣﻦ ﻋﻤﻮد ﻣﻦ‬


‫اﻟﺠﺪول وﻟﻜﻦ ﺑﺪون اﻣﻜﺎﻧﻴﺔ ﺗﺤﺪﻳﺪ ﺻﻒ ﻣﻌﻴﻦ‪.‬‬
‫* اﻻﺧﺘﻴﺎر ) ‪ :( SELECTION‬وهﺬا ﻳﻌﻨﻰ اﻧﺔ ﻳﻤﻜﻦ أَن ﺗﺨﺘﺎ َر ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺼﻔﻮف ذﻟﻚ‬
‫ﻋﻦ ﻃﺮﻳﻖ اَﺳﺘﻌﻤﺎل ﻣﺠﻤﻮﻋﺔ ﻣﻌﺎﻳﻴﺮ ﻳﻤﻜﻦ ﺑﻬﺎ ﺗﺤﺪّﻳﺪَ اﻟﺼﻔﻮف اﻟﺘﻲ ﺗﺮاهﺎ ) اﺧﺘﻴﺎر اﻓﻘﻰ‬
‫(‪.‬‬

‫ن ﺗَﺴﺘﻌﻤﻞَ اﻟﺮﺑﻂ ﻓﻲ ‪ SQL‬وهﺬا ﻳﻌﻨﻰ اﻣﻜﺎﻧﻴﺔ اﺳﺘﺨﻼص‬


‫ﻦ أَ ْ‬
‫* اﻟﺮﺑﻂ ) ‪ :( JOIN‬أﻧﺖَ ﻳُﻤﻜ ُ‬
‫ﺑﻴﺎﻧﺎت ﻣﻦ ﺟﺪوﻟﻴﻦ أو أآﺜﺮ ﻣﻦ ﺟﺪول ﻋﻦ ﻃﺮﻳﻖ إﻧﺸﺎءِ رﺑﻂ ﺑﻴﻨﻬﻢ ﺑﺎﺣﺪى اﻟﻄﺮق‬
‫اﻟﻤﺨﺘﻠﻔﺔ‪.‬‬

‫‪SELECT‬‬ ‫}…‪* | { [DISTINCT] column | expression [alias] ,‬‬


‫‪FROM‬‬ ‫; ‪table‬‬

‫ن ﺗَﺘﻀﻤّﻦَ اﻟﺘّﺎﻟﻲ‪:‬‬
‫ﻣﻦ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ ‪ ،‬ﺟﻤﻠﺔ ‪ SELECT‬ﻳﻤﻜﻦ أَ ْ‬

‫ض ﺳﻮاء آﺎن ﻋﻤﻮد أو أآﺜﺮ‪.‬‬ ‫ف ﺗُﻌْﺮَ ُ‬


‫* ﻓﻘﺮة ‪ ، SELECT‬ﺗُﺤﺪّ ُد اﻷﻋﻤﺪة اﻟﺘﻲ ﺳﻮ ْ‬
‫ﺖ ﻓﻲ ﻓﻘﺮة‬‫‪ ،‬ﺗُﺤﺪّ ُد اﻟﺠﺪاول اﻟﺘﻲ ﺗَﺤﺘﻮي ﻋﻠﻰ اﻷﻋﻤﺪة اﻟﺘﻲَ ﺳَﺠّﻠ ْ‬ ‫* ‪FROM‬‬
‫‪SELECT‬‬
‫اﻟﺴﺎﺑﻘﺔ ﻋﻠﻰ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲِ‪:‬‬
‫ﺗﻌﻨﻰ اﺧﺘﻴﺎر ﻋﻤﻮد أو أآﺜﺮ ﻣﻦ ﻋﻤﻮد‪.‬‬ ‫‪SELECT‬‬
‫ﺗﻌﻨﻰ اﺧﺘﻴﺎر آﻞ اﻷﻋﻤﺪةِ ﺑﺪون ﺗﺤﺪﻳﺪ اﺳﻤﺎﺋﻬﻢ‪.‬‬ ‫*‬
‫اﺧﻔﺎء اﻟﺘﻜﺮار ﻓﻰ ﺑﻴﺎﻧﺎت اﻟﻌﻤﻮد‪.‬‬ ‫‪DISTINCT‬‬
‫اﻟﻌﻤﻮدَ اﻟﺬى ﺗﻢ اﻟﻌﻤﻞ ﻋﻠﻴﺔ ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ ﺑﺪاﺧﻞ ﺟﻤﻠﺔ‬ ‫‪column/expression‬‬
‫‪. SELECT‬‬
‫) اﻻﺳﻢ (اﻟﻤﺴﺘﻌﺎر ﻳَﻌﻄﻲ اﻷﻋﻤﺪةَ اﻟﻤﺨﺘﺎرةَ ﻋﻨﺎوﻳﻦ ﻏﻴﺮ‬ ‫‪alias‬‬
‫أﺳﻤﺎﺋﻬﺎ‬
‫اﻟﺤﻘﻴﻘﻴﺔ‪.‬‬

‫آﻴﻔﻴﺔ ﻋﻤﻞ ) ‪( ALIAS‬‬


‫ﻋﻨﺪﻣﺎ ﺗﺮﻳﺪ ﺗﻐﻴﺮ اﺳﻢ اﻟﻌﻤﻮد ﻣﻦ ‪ last_name‬اﻟﻰ ‪ name‬آﻤﺎ ﻓﻰ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ ﻓﻬﺬا‬
‫هﻮ ﻣﺎ ﻳﺴﻤﻰ ‪ alias‬و هﺬا ﻳﻜﻮن ﻓﻰ اﻟﺠﺪول اﻟﻤﻌﺮوض ﻓﻘﻂ و ﻳﺒﻘﻰ اﺳﻢ اﻟﻌﻤﻮد‬
‫ﺑﺎﻟﺠﺪول داﺧﻞ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت آﻤﺎ هﻮ دون ﺗﻐﻴﺮ‪.‬‬
‫ﺗُﺤﺪّ ُد اﻟﺠﺪاول اﻟﺘﻲ ﺗَﺤﺘﻮي ﻋﻠﻰ اﻷﻋﻤﺪة‬ ‫‪FROM table‬‬
‫ﻃﺮق اﺳﺘﺨﺪام ‪-: alias‬‬
‫„ ﻳﻤﻜﻦ آﺘﺎﺑﺔ اﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر) ‪ ( ALIAS‬ﺑﻌﺪ آﺘﺎﺑﺔ اﺳﻢ اﻟﻌﻤﻮد اﻟﺤﻘﻴﻘﻰ‬
‫ﺑﺸﺮط وﺟﻮد ﻣﺴﺎﻓﺔ ﺑﻴﻦ اﻻﺳﻤﻴﻦ وان ﻳﻜﻮن اﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر ﻻ ﻳﺤﺘﻮى‬
‫ﻋﻠﻰ ﻣﺴﺎﻓﺔ‪.‬‬
‫„ ﻳﻤﻜﻦ آﺘﺎﺑﺔ اﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر) ‪ ( ALIAS‬ﺑﺔ ﻣﺴﺎﻓﺔ وﻟﻜﻦ ﻻﺑﺪ ﻣﻦ آﺘﺎﺑﺔ‬
‫اﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر ﺑﻴﻦ ‪double quotation‬‬
‫‪Example 1‬‬
‫; "‪Select ename NAME from "T emp‬‬

‫ﺗﻢ وﺿﻊ ‪ double quotation‬ﻻن اﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر ﻳﺤﺘﻮى ﻋﻠﻰ ﻣﺴﺎﻓﺔ‪.‬‬


‫‪Example 2‬‬
‫‪Select FIRST_NAME as namesss ,job_id‬‬
‫‪from employees‬‬
‫ﻧﻼﺣﻆ ان هﻨﺎ ‪ frist_name‬ﺗﺤﻮل اﺳﻤﻪ اﻟﻰ ‪namesss‬‬

‫ﻣﺜﺎل ﻻﺧﺘﻴﺎر آﻞ اﻷﻋﻤﺪة ﺑﺪون ذآﺮ اﺳﻤﺎﺋﻬﺎ ‪:‬‬

‫ﻓﻲ اﻟﻤﺜﺎل ﺗﻢ ﻋﺮض آﻞ اﻟﺼﻔﻮف ﺑﺎﻟﺠﺪول وذﻟﻚ ﻷن أﻣﺮ ‪ SELECT‬ﻟﻢ ﻳﺘﺒﻌﻪ ﺷﺮط ﺗﺤﺪﻳﺪ‬
‫ﻋﺪد اﻟﺼﻔﻮف‪.‬‬
‫‪SELECT‬‬ ‫اﺳﺘﺨﺪام أواﻣﺮ ‪SQL‬‬
‫وهﻮ ﻳﺴﺘﻌﺮض ﺑﻴﺎﻧﺎت اﻟﺠﺪول وﺗﺸﻴﺮ اﻟﻨﺠﻤﺔ اﻟﻤﺴﺘﺨﺪﻣﺔ * اﻟﻰ إﻇﻬﺎر ﺟﻤﻴﻊ أﻋﻤﺪة‬
‫اﻟﺠﺪول ﺛﻢ ﻧﻜﺘﺐ أﻣﺮ ‪ FROM‬ﻳﻠﻴﻪ أﺳﻢ اﻟﺠﺪول اﻟﺬي ﻳﺮاد اﻻﺳﺘﻌﻼم ﻋﻦ ﺑﻴﺎﻧﺎﺗﻪ وﺑﻌﺪ‬
‫اﻧﺘﻬﺎء اﻷﻣﺮ ﻳﺘﻢ وﺿﻊ ;‬
‫ﻻﺣﻆ أن أواﻣﺮ ‪ SQL‬ﺗﻄﻠﺐ آﺘﺎﺑﺔ ﻓﺼﻠﺔ ﻣﻨﻘﻮﻃﺔ) ; ( ﻓﻲ ﺁﺧﺮ اﻷﻣﺮ وهﻨﺎ ﺳﻴﺘﻢ اﺳﺘﻌﺮاض‬
‫ﺟﻤﻴﻊ ﺑﻴﺎﻧﺎت أﻋﻤﺪة اﻟﺠﺪول ﻣﻠﺤﻮﻇﺔ أواﻣﺮ ‪ SQL‬ﻻ ﺗﺨﺘﺼﺮ ﻣﺜﻞ آﺘﺎﺑﺔ ‪ . SEL‬أﻧﺖَ ﻳُﻤﻜ ُ‬
‫ﻦ‬
‫ن ﺗَﻌْﺮضَ آﻞ أﻋﻤﺪةِ اﻟﺠﺪول ﺑﻜﺘﺎﺑﺔ اﻟﻜﻠﻤﺔ اﻟﺮﺋﻴﺴﻴﺔ ‪ SELECT‬وﻳﻠﻴﻬﺎ ﺑﻨﺠﻤﺔِ)*(‬
‫أَ ْ‬

‫ﻣﻦ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻧﺠﺪ أن ﺟﺪول اﻻﻗﺴﺎم ﻳَﺤﺘﻮي ﻋﻠﻲ أرﺑﻌﺔ أﻋﻤﺪةَ وهﻢ‪:‬‬
‫‪DEPARTMENT_ID , DEPARTMENT_NAME, MANAGER_ID , LOCATION_ID .‬‬

‫ن ﺗَﻌْﺮضَ أﻳﻀﺎ آﻞ اﻷﻋﻤﺪةِ ﻓﻲ اﻟﺠﺪاول ﺑﺘَﺴﺠﻴﻞِ آﻞ اﻷﻋﻤﺪةِ ﺑﻌﺪ‬


‫ﻦ أَ ْ‬
‫أﻧﺖَ ﻳُﻤﻜ ُ‬
‫آﻠﻤﺔ ‪SELECT‬‬
‫ﺑﺪﻻ ﻣﻦ اﺳﺘﺨﺪام اﻟﻨﺠﻤﺔ)*(‪.‬‬
‫‪Example:‬‬

‫‪SELECT department_id, department_name, manager_id,location_id‬‬


‫‪FROM‬‬ ‫; ‪departments‬‬

‫وﻳﻤﻜﻦ ان ﻧﺨﺘﺎر ﻋﺪد ﻣﺤﺪد ﻣﻦ اﻻﻋﻤﺪة ﻓﻘﻂ ذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ آﺘﺎﺑﺔ اﺳﻤﺎء اﻻﻋﻤﺪة اﻟﻤﺮاد‬
‫ﻋﺮﺿﻬﺎ ﺑﻌﺪ آﻠﻤﺔ ‪ SELECT‬ووﺿﻊ ‪ (,) coma‬ﺑﻴﻦ آﻞ ﻋﻤﻮد آﻤﺎ ﻓﻰ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ‪:‬‬

‫اﺧﺘﻴﺎر اﻷﻋﻤﺪة اﻟﻤﺤﺪدة‬

‫وهﺬا ﻳﻌﻨﻰ اﻧﻨﺎ ﻣﻦ اﻟﻤﻤﻜﻦ ﻋﺮض أﻋﻤﺪة ﻣﺤﺪدة وﻟﻴﺴﺖ آﻞ اﻷﻋﻤﺪة‪.‬‬

‫وﻻﺣﻆ ان ﺗﺮﺗﻴﺐ ﻇﻬﻮر اﻻﻋﻤﺪة ﻳﻜﻮن ﻋﻠﻰ اﺳﺎس ﺗﺮﺗﻴﺐ ﺗﻠﻚ اﻻﻋﻤﺪة ﻓﻰ ﺟﻤﻠﺔ‬
‫‪. SELECT‬‬
‫ﻓﺎﻟﻔﺮق ﺑﻴﻦ اﻟﻤﺜﺎﻟﻴﻦ ﺣﻴﺚ اﻷول آﺎن ‪ SELECT‬ﺑﻌﺪهﺎ ‪ department_id‬وﻋﺮﺿﺖ أوﻻ‬
‫ﻳﺴﺎرا ﻓﻲ اﻟﺠﺪول ﻋﻜﺲ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ ﺣﻴﺚ ﺟﺎءت ﻓﻲ اﻟﺘﺮﺗﻴﺐ اﻟﺜﺎﻧﻲ ‪.‬‬

‫‪SELECT‬‬ ‫‪location_id, department_id‬‬


‫‪FROM‬‬ ‫; ‪departments‬‬
‫‪LOCATION_ID‬‬ ‫‪DEPARTMENT_ID‬‬
‫‪1700‬‬ ‫‪10‬‬
‫‪1800‬‬ ‫‪20‬‬
‫‪1500‬‬ ‫‪50‬‬

‫‪: dept‬‬ ‫اﺧﺘﻴﺎر ‪ 2‬ﻋﻤﻮد ﻣﻦ ‪table‬‬

‫آِﺘﺎﺑَﺔ ﺟﻤﻞ ‪SQL‬‬


‫ن ﺗﻜﻮن ﻓﻰ ﺳﻄﺮ أو أآﺜﺮ ﻣﻦ ﺳﻄﺮ أي ﻳﻤﻜﻦ آﺘﺎﺑﺘﻬﺎ ﻓﻰ‬ ‫‪ .1‬ﺟﻤﻞ ‪ SQL‬ﻳُﻤﻜ ُ‬
‫ﻦ أَ ْ‬
‫ﻋﺪة ﺳﻄﻮرِ‪.‬‬
‫ن ﺗُﺨﺘَﺼﺮَ أو ﺗﻨﻔﺼﻞ ﻋﺒﺮ اﻟﺴﻄﻮر ‪.‬‬
‫ﻦ أَ ْ‬
‫‪ .2‬آﻠﻤﺎﺗﻬﺎ اﻟﺮﺋﻴﺴﻴﺔ ﻻ ﻳُﻤﻜ ُ‬
‫ﻊ ﻋﺎدة ﻋﻠﻰ ﺳﻄﻮر ﻣﻨﻔﺼﻠﺔِ ﻟﺘﺴﻬﻴﻞ ﻣﺮاﺟﻌﺘﻬﺎ ‪.‬‬ ‫‪ .3‬ﻓﻘﺮاﺗﻬﺎ ﺗَﻮﺿ ُ‬
‫‪ .4‬ﺗﺮك ﻣﺴﺎﻓﺎت ﺑﻴﻦ ﻣﻜﻮﻧﺎت اﻟﺠﻤﻠﺔ آﻲ ﺗُﺤﺴّﻦَ اﻟﻘﺮاءة‪.‬‬

‫ﺗَﻨﻔﻴﺬ ﺟﻤﻞ ‪SQL‬‬

‫ﻓﻲ ‪ ،iSQL*Plus‬اﻧﻘﺮ ﻋﻠﻰ زر اﻟﺘﻨﻔﻴﺬ)‪ (Execute‬ﻟﻜﻲ ﻳﺘﻢ اﻟﺘﻨﻔﻴﺬ‪.‬‬


‫ﻣﻼﺣﻈﺔ‬
‫ﻊ );( ‪ semicolon‬ﻓﻲ ﻧﻬﺎﻳﺔِ اﻟﻔﻘﺮةِ‬ ‫ﺐ ﻓﻲ ‪ ISQL*PLUS‬او ‪ SQL*PLUS‬أن ﺗَﻀ ُ‬ ‫ﻳَﺘﻄﻠّ ُ‬
‫اﻷﺧﻴﺮةِ‬

‫أﺧﺘﻼف ﻋﻨﻮان اﻟﻌﻤﻮد ﺑﻴﻦ ‪sql*plus & iSQL*Plus:‬‬ ‫•‬

‫‪:sql*plus‬‬
‫‪ .1‬ﻋﻨﺎوﻳﻦ اﻟﺤﺮوف و اﻟﺘﻮارﻳﺦ ﻟﺮأس اﻟﻌﻤﻮد ﺗﻈﻬﺮ ﻳﺴﺎرا ‪.‬‬
‫‪ .2‬ﻋﻨﺎوﻳﻦ رأس اﻟﻌﻤﻮد ﻟﻸرﻗﺎم ﺗﻈﻬﺮ ﻳﻤﻴﻨﺎ‪.‬‬
‫‪ .3‬ﺗﻌﺮض اﻟﻌﻨﺎوﻳﻦ ﺑﺤﺮوف آﺒﻴﺮة‬
‫‪SELECT ename, date, sal‬‬
‫‪FROM emp‬‬ ‫;‬
‫‪ENAM‬‬ ‫‪DATE‬‬ ‫‪SAL‬‬
‫‪KING‬‬ ‫‪17-JUN-87‬‬ ‫‪1500‬‬

‫‪:iSQL*Plus‬‬
‫* ﻋﻨﻮان اﻟﻌﻤﻮد ﻳﻮﺿﻊ ﻓﻲ اﻟﻤﻨﺘﺼﻒ‪.‬‬
‫• ﻋﺮض اﻟﻌﻨﻮان )ﻓﻲ أﻋﻠﻰ اﻟﺼﻔﺤﺔ( ﺑﺤﺮوف آﺒﻴﺮة وﻓﻰ اﻟﻮﺳﻂ‪.‬‬

‫‪SELECT last_name, hire_date, salary‬‬


‫;‪FROM employees‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ‬ ‫‪1-9‬‬

‫اﻟﻮﺻﻒ‬ ‫اﻟﻌﻤﻠﻴﺔ‬
‫اﻹﺿﺎﻓﺔ‬ ‫‪+‬‬
‫اﻟﻄﺮح‬ ‫‪-‬‬
‫اﻟﻀﺮب‬ ‫*‬
‫اﻟﻘﺴﻤﺔ‬ ‫‪/‬‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ‬

‫ن ﺗُﻌﺪّلَ ﻃﺮﻳﻘﺔﻋﺮض اﻟﺒﻴﺎﻧﺎت ﻟﺘُﺆدّي ﺣﺴﺎﺑﺎتَ ﻣﻌﻴﻨﺔ ‪،‬دون أن ﺗﺆﺛﺮ ﻋﻠﻰ‬ ‫ج أَ ْ‬


‫و رُﺑَﻤﺎ ﺗَﺤﺘﺎ ُ‬
‫ن ﻳَﺤﺘﻮي‬
‫ﻦ أَ ْ‬
‫ل اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ‪ .‬ﻳُﻤﻜ ُ‬ ‫اﻟﺒﻴﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ اﻟﺠﺪول‪ .‬هﺬا ﻳﺘﻢِ ﺑﺎَﺳﺘﻌﻤﺎ ُ‬
‫اﻟﺘﻌﺒﻴﺮ اﻟﺤﺴﺎﺑﻲ ﻋﻠﻲ أﺳﻢ اﻟﻌﻤﻮد‪،‬او ﻗﻴﻤﺔ ﺛﺎﺑﺘﺔ‪ ،‬واﻟﻌﻮاﻣﻞ اﻟﺤﺴﺎﺑﻴﺔ ﻣﺜﻞ )‪.(/,+,*,-‬‬
‫اﻟﻌﻮاﻣﻞ اﻟﺤﺴﺎﺑﻴﺔ‬
‫ن ﺗَﺴﺘﻌﻤﻞَ‬ ‫ﻦ أَ ْ‬
‫ح اﻟﺠﺪول اﻟﺴﺎﺑﻖ اﻟﻌﻮاﻣﻞ اﻟﺤﺴﺎﺑﻴﺔ اﻟﻤﺘﻮﻓﺮة ﻓﻲ ‪ . SQL‬أﻧﺖَ ﻳُﻤﻜ ُ‬ ‫ﻳﺸﺮ ُ‬
‫اﻟﻌﻮاﻣﻞ اﻟﺤﺴﺎﺑﻴﺔ ﻓﻲ أي ﻓﻘﺮة ‪ SQL‬ﻣﺎﻋﺪا ﻓﻰ اﻟﻔﻘﺮة ‪FROM‬‬
‫ﻣﻼﺣﻈﺔ‪:‬‬
‫ن ﺗَﺴﺘﻌﻤﻞَ ﻣﻊ اﻟﺘﺎرﻳﺦ اﻟﻌﻮاﻣﻞ اﻟﺠﻤﻊ واﻟﻄّﺮحِ ﻓﻘﻂ‪.‬‬ ‫ﻦ أَ ْ‬
‫ﻳُﻤﻜ ُ‬

‫اﺳﺘﺨﺪام اﻟﻌﻤﺎﻟﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ‬


‫اﻟﻤﺜﺎل ‪ :‬ﻳﻮﺿﺢ اﺳﺘﻌﻤﺎل ﻋﻤﻠﻴﺔ اﻟﺠﻤﻊ ﺣﻴﺚِ ﻳَﺤْﺴﺐَ زﻳﺎدة ﻟﻠﺮاﺗﺐِ ‪ $300‬ﻣﻊ آﻞ‬
‫اﻟﻤﻮﻇﻔﻮن‬
‫و ﻳَﻌْﺮﺿﻮنَ اﻟﻤﺮﺗﺐ اﻟﺠﺪﻳﺪ ‪ 300+‬ﻓﻲ اﻟﻌﻤﻮد‪.‬‬
‫ﺖ ﻋﻤﻮدَ ﺟﺪﻳﺪَ ﻓﻲ ﺟﺪول‬ ‫ﻣﻼﺣﻈﺔ اﻟﻨّﺎﺗﺞ ﻣﻦ ﺣَﺴﺎبَ)راﺗﺐ اﻟﻌﻤﻮدَ ‪ ( 300+‬ﻟَﻴﺴ ْ‬
‫اﻟﻤﻮﻇﻔﻴﻦ إﻧﻤﺎ هﻮ ﻋﻤﻮد ﻟﻠﻌﺮضِ ﻓﻘﻂ‪.‬‬
‫أﺳﻢ اﻟﻌﻤﻮدِ اﻟﺠﺪﻳﺪِ ﻳَﺠﻲ ُء ﻣﻦ ﻧﺎﺗﺞ ﺣﺴﺎب ‪ +‬اﻟﻤﺮﺗﺐ) راﺗﺐ ‪ (300 +‬وهﻨﺎ ﻳﻤﻜﻦ‬
‫اﺳﺘﻌﻤﺎل‬
‫)‪ (ALIAS‬ﺣﺘﻰ ﻧﺘﻤﻜﻦ ﻣﻦ ﺗﺴﻤﻴﺔ ﺗﻠﻚ اﻟﻌﻤﻮد‪.‬‬
‫ﻞ اﻟﻤﺴﺎﻓﺎت َاﻟﻔﺎرﻏﺔَ ﻗﺒﻞ وﺑﻌﺪ اﻟﻌﻮاﻣﻞ اﻟﺤﺴﺎﺑﻴﺔِ‪.‬‬‫اﻟﻤﻼﺣﻈﺔ‪ُ ORACLE i 9 :‬ﻳﻬﻤ ُ‬

‫اﺳﺒﻘﻴﺔ ﻋﻤﻞ اﻟﻌﻮاﻣﻞ اﻟﺤﺴﺎﺑﻴﺔ‪:‬‬

‫*‬ ‫‪/‬‬ ‫‪+‬‬ ‫‪-‬‬

‫‪ .1‬اﻷوﻟﻮﻳﺔ ﺗﻜﻮن ﻟﻠﻀﺮب اﻷول ﺛﻢ اﻟﻘﺴﻤﺔ ﺛﻢ اﻟﺠﻤﻊ ﺛﻢ اﻟﻄﺮح‪.‬‬


‫‪ .2‬اﻷوﻟﻮﻳﺔ ﻣﻦ اﻟﻴﺴﺎر ﺁﻟﻲ اﻟﻴﻤﻴﻦ‪.‬‬
‫‪ .3‬ﺗﺴﺘﺨﺪم اﻷﻗﻮاس ﺣﺘﻰ ﺗﺘﻤﻜﻦ ﻣﻦ ﺗﻨﻔﻴﺬ اﻟﺠﻤﻊ او اﻟﻄﺮح اوﻻ ﻗﺒﻞ اﻟﻀﺮب‬
‫او اﻟﻘﺴﻤﺔ‪.‬‬
‫أﺳﺒﻘﻴﺔ اﻟﻌﻮاﻣﻞ‬
‫ن‬
‫ﻦ أَ ْ‬
‫إذا آﺎن هﻨﺎك اآﺜـﺮ ﻣـﻦ ﻋﻤﻠﻴـﺔ ﻣﺨﺘﻠﻔـﺔ ‪ ،‬ﺿـﺮب وﻗـﺴﻤﺔ وﺟﻤـﻊ و ﻃـﺮح‪ .‬أﻧـﺖَ ﻳُﻤﻜـ ُ‬
‫ﺗَﺴﺘﻌﻤﻞَ اﻷﻗﻮاس ﻟﻀﻤﺎن ﺗﻨﻔﻴﺬ اﻟﻌﻤﻠﻴﺎت اﻟﺘﻰ ﺑﺪاﺧﻞ اﻷﻗﻮاس أوﻻً ‪ .‬ﺛﻢ اﻟﺒﺎﻗﻲ ﺑﺎﻟﺘﺮﺗﻴـﺐ‬
‫ﻣﻦ اﻟﻴﺴﺎر إﻟﻰ اﻟﻴﻤﻴﻦ‪.‬‬
‫ﺗﺴﺘﻄﻴﻊ أن ﺗﺴﺘﺨﺪم اﻷﻗﻮاس آﻲ ﺗﻨﻔﺬ اﻟﺬى ﺑﺪاﺧﻠـﺔ اوﻻ‪ .‬أي اﻧـﻚ ﻋﻨـﺪﻣﺎ ﺗـﻀﻌﻬﻢ ﻓـﻰ‬
‫اﻷﻗﻮاس ﻳﻨﻔﺬ اﻻﻗﻮاس اوﻻ ﺳﻮاء آﺎن ﺟﻤﻊ أو ﻃﺮح ﺣﻴﺚ ان ﺑﻴﻦ اﻷﻗﻮاس ﻳﻨﻔﺬ اوﻻ‪.‬‬

‫أﺳﺒﻘﻴﺔ اﻟﻌﻮاﻣﻞ‬ ‫ﻣﺜﺎل ﻋﻠﻰ‬

‫أﺳﺒﻘﻴﺔ اﻟﻌﺎﻣﻞ‪:‬‬
‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻳﻌﺮض )اﻻﺳﻢ اﻷﺧﻴﺮِ‪ ،‬اﻟﻤﺮﺗﺐ‪ ،‬اﻟﻤﺮﺗﺐ*‪.(100+12‬‬

‫ﻣﻠﺤﻮﻇﺔ ﻋﻤﻠﻴﺔ اﻟﻀّﺮبِ ﻳﺘﻢ ﺗﻨﻔﻴﺬهﺎ ﻗﺒﻞ إﺿﺎﻓﺔ رﻗﻢ ‪.100‬‬


‫ﻣﻼﺣﻈــﺔ‪ :‬ﺗ ـﺴﺘﺨﺪام اﻷﻗــﻮاس آــﻲ ﺗﻮﺿــﺢ اوﻟﻮﻳــﺔ اﻟﻌﻤﻠﻴــﺔ اﻟﺤــﺴﺎﺑﻴﺔ وﺗــﺴﻬﻞ ﺗــﺼﺤﻴﺢ‬
‫اﻻﺧﻄﺎء‪.‬‬
‫ن ُﻳﻜْﺘَﺐَ ) ‪ 100+ ( salary *12‬ﻻ ﻳﺤﺪث ﺗﻐﻴﻴﺮُ ﻓﻲ اﻟﻨّﺘﻴﺠﺔ اﻟﺴﺎﺑﻘﺔ‬
‫ﻦ أَ ْ‬
‫ﻻﺣﻆ ﻳُﻤﻜ ُ‬
‫ﻟﻜﻦ اﻟﺘﻌﺒﻴﺮ اﺻﺒﺢ اآﺜﺮ وﺿﻮﺣﺎً‪.‬‬

‫‪SELECT‬‬ ‫‪EMPLOYEE_ID , SALARY *15/100‬‬


‫‪FROM‬‬ ‫;‪employees‬‬

‫ﻧﻼﺣﻆ ﻓﻰ هﺬا اﻟﻤﺜﺎل ان ﺗﻢ ﺿﺮب اﻟﻤﺮﺗﺐ ‪ salary‬ﻓﻰ ‪ 15‬ﺛﻢ اﻟﻘﺴﻤﺔ ‪100/‬‬

‫اﺳﺘﺨﺪام اﻷﻗﻮاس‬

‫اﺳﺘﺨﺪام اﻷﻗﻮاس‪:‬‬

‫ن ﺗَﺘﺠﺎوزَ ﻗﻮاﻋﺪ اﻷﺳﺒﻘﻴﺔِ ﻓﻰ ﺗﻨﻔﻴﺬ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻷﻗﻮاس‬


‫ﻦ أَ ْ‬
‫ﻳُﻤﻜ ُ‬
‫ﻟﺘُﺤﺪّدَ ﺗﺮﺗﻴﺐ ﺣﺴﺎب اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﺘﻲ ﺗﻨﻔﺬ اوﻻ ﺣﺴﺐ اﺣﺘﻴﺎﺟﺎﺗﻚ‪.‬‬
‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻳﻘﻮم ﺑﻌﺮض اﻻﺳﻢ اﻷﺧﻴﺮِ‪ ،‬اﻟﻤﺮﺗﺐ‪) ،‬اﻟﻤﺮﺗﺐ‪.12*(100+‬‬
‫هﻮ ﺑﺬﻟﻚ ﻳﻘﻮم ﺑﺠﻤﻊ ‪ 100‬ﻋﻠﻰ اﻟﻤﺮﺗﺐ اوﻻ آﻞ ﻣﻮﻇﻒ ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﻘﻮم ﺑﻀﺮب اﻟﻨﺎﺗﺞ‬
‫ﻓﻰ ‪.12‬‬
‫ﺑﺴﺒﺐ اﻷﻗﻮاس‪،‬ﻳﻤﻜﻦ ﻟﻌﻤﻠﻴﺔ اﻟﺠﻤﻊ ان ﺗﻨﻔﺬ ﻗﺒﻞ اﻟﻀّﺮبِ‪.‬‬
‫ﻓﺒﺴﺒﺐ اﻷﻗﻮاس ﻳﺘﻢ ﺣﺴﺎب ) ‪ ( salary+100‬أوﻻ ﺛﻢ ﻳﻀﺮب اﻟﻨﺎﺗﺞ × ‪.12‬‬

‫ﻣﺜﺎل اﺧﺮ‬

‫‪SELECT‬‬ ‫) ‪EMPLOYEE_ID, 15*(SALARY +100‬‬


‫‪from‬‬ ‫;‪employees‬‬

‫ﻧﻼﺣﻆ ان ﻋﻤﻠﻴﺔ اﻟﺠﻤﻊ ﺗﻤﺖ اوﻻ ﺛﻢ ﻋﻤﻠﻴﺔ اﻟﻀﺮب‬

‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻘﻴﻤﺔ ‪Null‬‬

‫‪ Null‬هﻲ ﻗﻴﻤﺔ ﻏﻴﺮ ﻣﺘﺎﺣﺔ ﻏﻴﺮ ﻣﺤﺪدة ﻏﻴﺮ ﻣﻌﺮوﻓﺔ وﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻻﺟﺮاء اى‬ ‫•‬
‫ﻋﻤﻠﻴﺔ‬
‫ﺣﺴﺎﺑﻴﺔ ﻋﻠﻴﻬﺎ‪.‬‬
‫‪ Null‬ﻟﻴﺴﺖ ﻣﺴﺎوﻳﺔ ﺻﻔﺮ أو ﻣﺴﺎﻓﺔ‪.‬‬ ‫•‬

‫ﻗﻴﻢ ‪Null‬‬
‫اى ﺧﻠﻴﺔ ﻓﻰ اﻟﺠﺪول ﻓﺎرﻏﺔ ﺗَﻜُﻮن ‪. NULL‬‬
‫‪ Null‬ﻗﻴﻤﺔ ﻏﻴﺮ ﻣﺘﺎﺣﺔ ﻏﻴﺮ ﻣﺤﺪدة ﻏﻴﺮ ﻣﻌﺮوﻓﺔ وﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻻﺟﺮاء ﻋﻤﻠﻴﺎت ﺣﺴﺎﺑﻴﺔ ﻋﻠﻴﻬﺎ‪.‬‬
‫‪ Null‬ﻻ ﺗﺴﺎوى ﺻَﻔّ ْﺮ أو ﻣﺴﺎﻓﺔ ﻓﺎرﻏﺔ ‪.‬ﺣﻴﺚ ان اﻟﺼَﻔّ ْﺮ ﻋﺪدُ‪ ،‬واﻟﻔﺮاغ ﻳﻌﺘﺒﺮ ﺣﺮف‪.‬‬
‫ن ﺗَﺤﺘﻮي ﻋﻠﻰ ‪. null‬‬‫ﻦ أَ ْ‬
‫أي ﻧﻮع ﻣﻦِ اﻟﺒﻴﺎﻧﺎتِ ﻳُﻤﻜ ُ‬
‫ﻋﻠﻰ أﻳﺔ ﺣﺎل‪ ،‬ﻳﻤﻜﻦ وﺿﻊ ﺑﻌﺾ اﻟﻘﻴﻮد ﻋﻠـﻰ اﻟﺠـﺪول ﻣﺜـﻞ ‪ NOT NULL‬و ‪PRIMARY‬‬
‫‪KEY‬‬
‫وهﺬا ﻳﻌﻨﻰ ﻋﺪم اﻣﻜﺎﻧﻴﺔ أﺣﺘﻮاء اﻟﻌﻤﻮد ‪. NULL‬‬
‫ذﻟﻚ آﻤﺎ ﺳﻮف ﻧﺮى ﻓﻴﻤﺎ ﺑﻌﺪ‪.‬‬

‫ﻻﺣﻆ ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ان اﻟـﺬي ﻟﺪﻳـﻪ ﻋﻤﻮﻟـﻪ هـﻮ ﻣـﺪﻳﺮ ﻣﺒﻴﻌـﺎتِ أو ﻣﻨـﺪوب اﻟﻤﺒﻴﻌـﺎت‬
‫وﺑﺎﻗﻰ اﻟﻤﻮﻇﻔﻮن ﻟﻴﺲ ﻟﺪﻳﻬﻢ ﻧﺴﺒﺔ ﻋﻤﻮﻻت ﻟﺬﻟﻚ ﻗﻴﻢ اﻟﻌﻤﻮﻟﺔ ﻋﻨﺪهﻢ ‪. null‬‬

‫ﻗﻴﻤﺔ ‪ Null‬ﻓﻲ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ‬


‫ﻻ ﻳﻤﻜﻦ اﺟﺮاء ﻋﻤﻠﻴﺎت ﺣﺴﺎﺑﻴﺔ ﻋﻠﻰ ‪. NULL‬‬ ‫•‬

‫ﻣﻠﺤﻮﻇﺔ‪:‬‬
‫ﺢ اﻟﻨﺘﻴﺠﺔ ﺧﻄﺄ‪ .‬واﻳﻀﺎ ﻋﻨﺪﻣﺎ ﺗﺤﺎول‬
‫ن ﺗﻘﺴﻢ أي رﻗﻢ ﻋﻠﻲ ﺻﻔﺮ‪ ،‬ﺗُﺼﺒ ُ‬ ‫ل أَ ْ‬
‫ﻋﻨﺪﻣﺎ ﺗُﺤﺎو ُ‬
‫اﺟﺮاء اى‬
‫ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ ﻋﻠﻰ ‪ ، Null‬ﻓﺘﻜﻮن اﻟﻨّﺘﻴﺠﺔ ‪. NULL‬‬
‫ﻞ ﻋَﻠﻰ أي ﻋﻤﻮﻟﺔ وﻟﻜﻨﺔ ﻳﺤﺼﻞ ﻋﻠﻰ‬ ‫ﻣﻦ اﻟﻤﺜﺎلِ اﻟﺴﺎﺑﻖ ﻻﺣﻆ ان )‪ ِ(KING‬ﻻ ﻳَﺤﺼَ ُ‬
‫ﻣﺮﺗﺐ‪.‬وﻣﻊ ذﻟﻚ اﻟﻨّﺘﻴﺠﺔ اﺻﺒﺤﺖ ‪ ُNull‬ﻓﻰ اﻟﺨﻠﻴﺔ اﻟﺨﺎﺻﺔ ﺑﺔ و هﺬا ﻳﺆآﺪ ان اﺟﺮاء اى‬
‫ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ ﻋﻠﻰ ‪ NULL‬ﺗﺆدى اﻟﻰ ‪.NULL‬‬

‫‪---‬ﻟﻠﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت‪ ،‬ﻳَﺮى ﻣﺮﺟﻊ ‪BASIC ELEMENTS OF “ ، ORACLE i 9 SQL‬‬


‫‪”SQL‬‬

‫ﻋﻼﻣﺔ اﻟﻠﺼﻖ )اﻟﻀﻢ( ) || (‬


‫‪Concatenation‬‬

‫وهﻲ ﺗﺴﺘﺨﺪم ﻟﻜﻲ ﻧﻀﻢ ﻋﻤﻮدﻳﻦ ﻓﻰ ﻋﻤﻮد واﺣﺪ ﻓﻴﺘﻢ اﺳﺘﺨﺪام ﻋﻼﻣﺔ || آﻲ ﺗﻠﺼﻖ‬
‫اﻷﻋﻤﺪة‪.‬‬
‫‪Example‬‬

‫ﺗﻢ دﻣﺞ ﻋﻤﻮد اﺳﻢ اﻟﻤﻮﻇﻒ ﻣﻊ وﻇﻴﻔﺘﺔ ﻓﻰ ﻋﻤﻮد واﺣﺪ وﺳﻤﻰ ‪. Employees‬‬

‫ﻧﻼﺣﻆ ﻣﻦ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ان اﻻﺳﻢ اﻻول واﻟﺜﺎﻧﻰ اﺻﺒﺤﺎ ﻣﻌﺎ ﺗﺤﺖ اﺳﻢ ‪name of‬‬
‫‪employee‬‬

‫ﺳﻠﺴﻠﺔ اﻟﺤﺮوف اﻟﺤﺮﻓﻴﺔ‬


‫ﻦ ﻓﻲ ﺟﻤﻠﺔ ‪.SELECT‬‬ ‫‪ LITERAL‬ﺗﻌﺒﺮ ﻋﻦ ﺣﺮف او ﻋﺪد أو ﺗﺎرﻳﺦ و ﺗﺘﻀﻤّ ُ‬ ‫‪.1‬‬
‫‘(‪.‬‬ ‫ن ﺗَﻜُﻮنَ ﻣُﺮﻓَﻘﺔ ﺿﻤﻦ اﻟﻌﻼﻣﺔ ) ‘‬‫ﺐ أَ ْ‬
‫اى ﻗِ َﻴﻢِ ﺣﺮﻓﻴﺔِ ﻳَﺠِ ُ‬ ‫‪.2‬‬
‫‪ LITERAL‬ﺗﻜﻮن ﺣﺮف او ﻋﺪد أو ﺗﺎرﻳﺦ ‪.‬‬ ‫‪.3‬‬
‫‘( ‪.‬‬ ‫اﻟﺤﺮوف و اﻟﺘﻮارﻳﺦ ﻳﻮﺿﻌﺎن ﺑﻴﻦ اﻟﻌﻼﻣﺔ ) ‘‬ ‫‪.4‬‬

‫اﺳﺘﺨﺪام ﻣﺠﻤﻮﻋﺔ اﻟﺤﺮوف‬


‫اﻟﺤﺮﻓﻴﺔ‬
‫ﻣﺜﺎل اﺧﺮ‬
‫اﻟﻤﺜﺎل ﻳﻌﺮض اﻷﺳﻤﺎء و اﻟﻮﻇﻴﻔﺔ ﻟﻜﻞ اﻟﻤﻮﻇﻔﻮن‪ .‬وﻋﻨﻮان اﻟﻌﻤﻮد ‪. Employee Details‬‬
‫ﻦ ﻗﺮاءة اﻟﻨّﺎﺗﺞِ‪.‬‬
‫اﻟﻔﺮاغ ﻳﺤﺴّ ُ‬
‫ﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ ان ﻧﻀﻴﻒ آﻠﻤﺔ او اآﺜﺮ ﻣﻦ آﻠﻤﺔ ﻗﺒﻞ او ﺑﻌﺪ ﻇﻬﻮر اﻟﻌﻤﻮد ﻻﺑﺪ ﻣﻦ‪:‬‬
‫اوﻻ‪ :‬ﻳﺠﺐ وﺿﻊ اﻟﻜﻠﻤﺎت اﻟﺘﻰ ﺗﺮﻳﺪ ادراﺟﻬﺎ ﺑﻴﻦ ‪. single quotation‬‬
‫ﺛﺎﻧﻴﺎ‪ :‬ﻋﻤﻞ ‪ concatenation‬ﻣﻊ هﺬة اﻟﻜﻠﻤﺎت‪.‬‬
‫ﻓﻔﻰ اﻟﻤﺜﺎلِ اﻟﺘّﺎﻟﻲِ‪ ،‬ﺗﻢ ﺿﻢ اﻻﺳﻢ اﻷﺧﻴﺮ ﻣﻊ ﺟﻤﻠﺔ )= ‪ (: 1 month salary‬ﻣﻊ اﻟﺮّاﺗﺐ‬
‫ﻟﻜﻞ ﻣﻮﻇﻒ وﻻﺣﻆ اﻧﻚ ﻻﺑﺪ ﻣﻦ وﺿﻊ ﺗﻠﻚ اﻟﺠﻤﻠﺔ ﺑﻴﻦ ‪. single quotation‬‬
‫‪SELECT last_name ||’: 1 Month salary = ’||salary Monthly‬‬
‫;‪FROM employees‬‬

‫)أي أﻧﻚ ﻋﻨﺪ اﻟﺮﻏﺒﺔ ﻓﻲ وﺿﻊ ﺣﺮوف ﺑﻴﻦ ﻋﻤﻮدﻳﻦ ﻳﺮاد ﻟﺼﻘﻬﻤﺎ ﻓﺄﻧﻨﺎ ﻧﻜﺘﺐ هﺬﻩ اﻟﺤﺮوف‬
‫ﺑﻴﻦ ﻋﻼﻣﺘﻴﻦ ﺗﻨﺼﻴﺺ ﻣﻔﺮدﺗﻴﻦ )|| ‘ ‪ ( || ‘ ..‬وﻟﻮ أرﻗﺎم ﻓﻼ ﺗﻮﺿﻊ ﺑﻴﻦ ﺷﺊ‪.‬‬

‫آﻴﻔﻴﺔ ازاﻟﺔ اﻟﺼﻔﻮف اﻟﻤﺘﻜﺮرة‬

‫إنّ اﻻﺳﺘﻌﻼم ﻳﻜﻮن ﻟﻜﻞ اﻟﺼﻔﻮف ﺑﺎﻟﺠﺪول و ﻳﺸﻤﻞ اﻟﺼﻔﻮف اﻟﻤﺘﻜﺮرة‪.‬‬


‫ﻣﻠﺤﻮﻇﺔ أﻋﺪاد اﻟﻘﺴﻢ ﺗﺘﻜﺮر‪.‬‬

‫إزاﻟﺔ اﻟﺼﻔﻮف اﻟﻤﺘﻜﺮرة‬


‫إزاﻟﺔ اﻟﺼﻔﻮف اﻟﻤﺘﻜﺮرة ﺑﺎﺳﺘﺨﺪام ‪DISTINCT‬‬

‫ﻲ ﺗُﺰﻳﻞَ اﻟﺼﻔﻮف اﻟﻤﺘﻜﺮرة ﻳﺠﺐ وﺿﻊ آﻠﻤﺔ ‪ DISTINCT‬ﻗﺒﻞ اﺳﻢ اﻟﻌﻤﻮد اﻟﻤﺮاد ازاﻟﺔ‬
‫ﻟﻜ ْ‬
‫اﻟﺘﻜﺮار ﻣﻨﺔ ﻓﻔﻰ اﻟﻤﺜﺎلِ اﻟﺴﺎﺑﻖ‪،‬ﺟﺪول اﻟﻤﻮﻇﻔﻮن اﻟﻔﻌﻠﻲ ﻳﺘﻜﻮن ﻣﻦ ‪ 20‬ﺻﻒ ﻟﻜﻨﺔ ﻇﻬﺮ‬
‫ﺑﺪون ﺗﻜﺮارات ﺑﻌﺪ اﺳﺘﺨﺪام آﻠﻤﺔ ‪. DISTINCT‬‬

‫‪Example:‬‬
‫‪SELECT DISTINCT department_id‬‬
‫;‪FROM employees‬‬
‫اﻟﻔﺮق ﺑﻴﻦ ‪ ISQL*PLUS‬و ‪SQL‬‬

‫‪ SQL*PLUS‬هﻲ أواﻣﺮ ﺛﺎﺑﺘﺔ ﻣﺘﻌﺎرف ﻋﻠﻴﻬﺎ و ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪.‬‬

‫‪ iSQL*PlUS‬هﻲ أواﻣﺮ ﺧﺎﺻﺔ ﻟﻠﻌﻤﻞ ﻓﻲ ﻣﻜﺎن ‪isql*plus‬‬

‫و‪iSQL* PLUS‬‬ ‫اﻟﻔﺮق ﺑﻴﻦ ‪SQL*PLUS‬‬

‫‪SQL‬‬ ‫‪iSQL* PLUS‬‬


‫أواﻣﺮ ‪ sql‬هﻲ أواﻣﺮ ﺛﺎﺑﺘﺔ ﻣﺘﻌﺎرف ﻋﻠﻴﻬﺎ‬ ‫هﻲ أواﻣﺮ ﺧﺎﺻﺔ ﺑﺎﻟﻌﻤﻞ ﻓﻲ ‪isql*plus‬‬
‫وﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬
‫ﺑﻜﺎﻓﺔ اﺷﻜﺎﻟﻬﺎ‪.‬‬
‫ﻻ ﻳﻤﻜﻦ اﺧﺘﺼﺎر أواﻣﺮهﺎ‪.‬‬ ‫ﻳﻤﻜﻦ اﺧﺘﺼﺎر أواﻣﺮ ‪isql*plus‬‬

‫ﺗﺬهﺐ أواﻣﺮ ‪ sql‬إﻟﻰ ﺟﺰء ﻓﻲ اﻟﺬاآﺮة‬ ‫ﻻ ﻳﺬهﺐ ﺁﺧﺮ أﻣﺮ ﻓﻲ ‪ isql*plus‬إﻟﻰ‬


‫ﻳﺴﻤﻲ ‪ buffer‬وذﻟﻚ ﻟﺤﻔﻆ ﺁﺧﺮ أﻣﺮ‬ ‫‪buffer‬‬
‫ﻟﺴﻬﻮﻟﺔ ﺗﻌﺪﻳﻠﻪ‬
‫وهﻮ ﺟﺰء ﻓﻲ اﻟﺬاآﺮة ﻳﺤﻔﻆ ﺁﺧﺮ أﻣﺮ ‪sql‬‬
‫ﻟﺴﻬﻮﻟﺔ اﻻﺳﺘﺮﺟﺎع واﻟﺘﻌﺪﻳﻞ‬

‫‪SQL‬‬ ‫‪Isql*Plus‬‬
‫ﺗﺎﺗﻰ ﺑﺎﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﻠﻰ ‪ SERVER‬ﻣﺒﺎﺷﺮة‬ ‫ﺗﺎﺗﻰ ﺑﺎﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﻠﻰ ‪ SERVER‬ﺑﻄﺮﻳﻘﺔ‬
‫ﺑﻤﻌﻨﻰ اﻧﺔ ﻻﺑﺪ ﻣﻦ وﺟﻮد ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت‬ ‫ﻏﻴﺮ ﻣﺒﺎﺷﺮة ‪ .‬ﺑﻤﻌﻨﻰ ﻋﺪم وﺟﻮد ﻗﺎﻋﺪ‬
‫ﻋﻠﻰ ﻧﻔﺲ اﻟﺠﻬﺎز ‪.‬‬ ‫ﺑﻴﺎﻧﺎت ﻋﻠﻰ ﻧﻔﺲ اﻟﺠﻬﺎز‪.‬‬
‫ﻻ ﻳﻤﻜﻨﻚ ﻣﻦ ﻣﻦ اﺳﺘﺨﺪام ﺗﻠﻚ اﻟﻌﻼﻣﺔ‪.‬‬ ‫ﻳﻤﻜﻨﻚ اﺳﺘﺨﺪام ﻋﻼﻣﺔ )‪ (--‬ﻟﻜﻰ ﻳﻤﻜﻨﻚ‬
‫ﻣﻦ اﻳﻘﺎف اﻟﻜﻮد اﻟﺬى ﻋﻠﻰ ﻧﻔﺲ اﻟﺴﻄﺮ‪.‬‬

‫ﻳﻤﻜﻨﻚ ﻣﻦ ﺗﻌﺪﻳﻞ اﻟﻜﻮد اذا ﺣﺪث ﺑﺔ ﺧﻄﺄ‬ ‫ﻳﻤﻜﻨﻚ ﻣﻦ ﺗﻌﺪﻳﻞ اﻟﻜﻮد اذا ﺣﺪث ﺑﺔ ﺧﻄﺄ‬
‫ﻋﻦ ﻃﺮﻳﻖ آﺘﺎﺑﺔ ‪ ED‬ﺛﻢ اﺿﻐﻂ ‪ENTER‬‬ ‫ﺑﺴﻬﻮﻟﺔ‪.‬‬
‫ﻓﺘﻈﻬﺮ ﻟﺔ ‪ NOT PAD‬ﻳﺘﻢ ﻋﻤﻞ ﺗﻌﺪﻳﻞ‬
‫اﻟﻜﻮد ﺑﺪاﺧﻠﻬﺎ‪.‬‬

‫ﺗَﺴﺠﻴﻞ اﻟﺪﺧﻮل إِﻟﻲ‪iSQL*Plus‬‬

‫ﻣﻦ ﺑﻴﺌﺔِ ﻣﺴﺘﻌﺮضِ ﻧﻮاﻓﺬكَ‬

‫ﺗَﺴﺠﻴﻞ اﻟﺪﺧﻮل إِﻟﻲ‪iSQL*Plus:‬‬

‫‪ -1‬أﻧﻘﺮ ﻋﻠﻲ ﻋﻨﻮان ) ‪ ( URL‬ﻓﻲ ﺑﻴﺌﺔ ‪iSQL*Plus‬‬


‫‪ -2‬أدﺧﻞ أﺳﻢ اﻟﻤﺴﺘﺨﺪم و اﻟﺮﻗﻢ اﻟﺴﺮي‪.‬‬

‫‪1-28‬‬ ‫ﺑﻴﺌﺔ ‪iSQL*Plus‬‬


‫ﺑﻴﺌﺔ ‪iSQL*Plus‬‬
‫ﺿﻤﻦ ﻣﺴﺘﻌﺮض اﻟﻨّﻮاﻓﺬِ ‪ iSQL*Plus‬ﺗﻤﻠﻚ ﻣﻔﺎﺗﻴﺢ ﻋﺪﻳﺪة‪:‬‬
‫‪ -1‬ﻣﻜﺎن ﻟﻜﺘﺎﺑﺔ اﻟﻜﻮد‪.‬‬
‫ﻲ ﺗُﻨﻔّﺬَ اﻻواﻣﺮ‪.‬‬
‫‪ -2‬زر اﻟﺘﻨﻔﻴﺬ‪ :‬اﻟﻨّﻘﺮة آ ْ‬
‫‪ -3‬اﺧﺘﻴﺎر اﻟﻨﺎﺗﺞِ‪ :‬اﺧﺘﻴﺎر ﺷﺎﺷﺔ اﻟﻌﻤﻞ‪.‬‬
‫‪ -4‬زرّ ﻣﺴﺢ ﺷﺎﺷﺔِ‪:‬ﻋﻨﺪ اﻟﻨّﻘﺮة ﻋﻠﻴﻪ ﻳﻘﻮم ﺑﻤﺴﺢ اﻟﻨﺎﻓﺬة‪.‬‬
‫‪ -5‬زر ﺣﻔﻆ اﻟﻤﻠﻒ‪ :‬ﺣﻔﻆ اﻟﻤﺤﺘﻮﻳﺎتِ اﻟﺘﻲ ﻓﻲ اﻟﻨﺎﻓﺬة ﻋﻠﻰ ﻣﻠﻒِ ﻓﻰ اﻟﺤﺎﺳﺐ‪.‬‬
‫ﺪ أن‬ ‫ﻊ اﻟﻜﻮد اﻟﻤﻜﺘﻮب ﺳﺎﺑﻘﺎً وﺗﻢ ﺣﻔﻈﺔ و ﺗُﺮﻳ ُ‬
‫‪ -6‬ﻣﺴﺎر اﻟﻤﻠﻒ‪ :‬ﻳﺤﺘﻮى ﻋﻠﻰ اﺳﻢ وﻣﻮﻗ ُ‬
‫ﻳﻨﻔﺬ‪.‬‬
‫‪ -7‬زر )اﻟﻤﺴﺘﻜﺸﻒ(‪ :‬ﻳﺴﺘﺨﺪم ﻟ َﻠﺒْﺤﺚ ﻋﻦ اﻟﻤﻠﻒِ اﻟﺬى ﺗﺮﻳﺪة و ﻳﻈﻬﺮ ﻧﺎﻓﺬةَ ﺻﻨﺪوقَ‬
‫اﻟﺤﻮارَ ﻟﻔﺘﺢ اﻟﻤﻠﻒ‪.‬‬
‫ﻊ‬
‫‪ -8‬أﻳﻘﻮﻧﺔ ﺧﺮوجِ ﻟﻠﻤﺴﺘﺨﺪم‪ :‬ﻳﺆدى اﻟﻰ أَﻧﻬﺎءاﻟﻤﺴﺘﺨﺪم اﻟﺤﺎﻟﻰ ﻓﻰ ‪ , iSQL*Plus‬وﻳَﺮْﺟ ُ‬
‫إِﻟﻲ ﻧﺎﻓﺬة ﺷﺒﻜﺔ اﻟﻤﻌﻠﻮﻣﺎت ‪. iSQL*Plus‬‬
‫‪ -9‬أﻳﻘﻮﻧﺔ ﻣﺴﺎﻋﺪةِ ‪.HELP‬‬
‫‪ -10‬هﺬا اﻟﺰر ﻻﻣﻜﺎﻧﻴﺔ دﺧﻮل ﻣﺮة ﺛﺎﻧﻴﺔ‪.‬‬

‫ﻟﻌﺮض )هﻴﻜﻞ( ﺟﺪول ‪:‬‬

‫ﻧﺴﺘﺨﺪم ﻣﻊ ‪ iSQL*Plus‬أﻣﺮ ‪ DESCRIBE‬آﻲ ﻳﻌﺮض هﻴﻜﻞ اﻟﺠﺪول‪.‬‬

‫ﻋَﺮْض إﻧﺸﺎء اﻟﺠﺪول‬

‫ن ﺗَﻌْﺮضَ هﻴﻜﻞ اﻟﺠﺪول ﻋﻦ ﻃﺮﻳﻖ اَﺳﺘﻌﻤﺎل أﻣﺮ اﻟﻮﺻﻒ) ‪( DESCRIB‬‬


‫ﻦ أَ ْ‬
‫ﻳُﻤﻜ ُ‬
‫او اﺧﺘﺼﺎرة اﻟﻰ )‪.( DESC‬‬

‫و ﺑﻬﺬا اﻷﻣﺮ ﻳﻈﻬﺮ ﻟﻨﺎ أﺳﻢ اﻟﻌﻤﻮد و أﻧﻮاع اﻟﺒﻴﺎﻧﺎت اﻟﺨﺎﺻﺔ ﺑﺔ‪ ،‬وأﻳﻀﺎ اﻣﻜﺎﻧﻴﺔ اﺣﺘﻮاء‬
‫اﻟﻌﻤﻮد‬
‫ﻋﻠﻰ ﺑﻴﺎﻧﺎت او اﺣﺘﻮاﺋﻬﺎ ﻋﻠﻰ ‪. NULL‬‬
‫ﺗﻔﺴﻴﺮ إﻧﺸﺎء اﻟﺠﺪول‪:‬‬

‫اﻟﻌﻤﻮد ‪ : Null‬اﻣﻜﺎﻧﻴﺔ ﻗﺒﻮل اﻟﻌﻤﻮد ‪ Null‬ام ﻻ‪.‬‬ ‫•‬


‫ﻳﻌﺮض ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﻓﻲ اﻟﻌﻤﻮد‪.‬‬ ‫اﻟﻌﻤﻮد ‪: Type‬‬ ‫•‬
‫اﻟﻌﻤﻮد ‪ : NAME‬ﻳﻌﺮض اﺳﻢ اﻟﻌﻤﻮد‪.‬‬ ‫•‬

‫أﻧﻮاعَ اﻟﺒﻴﺎﻧﺎتِ ‪:‬‬


‫‪:‬‬
‫ﻧﻮع اﻟﺒﻴﺎﻧﺎت‬ ‫اﻟﻮﺻﻒ‬
‫)‪NUMBER(p , s‬‬ ‫‪ P‬ﻳﻌﻨﻰ ﻋﺪد ﺧﺎﻧﺎت اﻻرﻗﺎم‪.‬‬
‫‪ S‬ﻳﻌﻨﻰ ﻋﺪد ﺧﺎﻧﺎت اﻟﻌﺪد اﻟﻌﺸﺮى‪.‬‬
‫)‪VARCHAR2(s‬‬ ‫اﻣﻜﺎﻧﻴﺔ اﺣﺘﻮاء اﻟﻌﻤﻮد ﻋﻠﻰ ﺣﺮوف‪ S .‬هﻮ‬
‫ﺳﻌﺔ او ﻋﺪد اﻟﺤﺮوف اﻟﻤﻤﻜﻨﺔ ﻟﻠﻌﻤﻮد‪.‬‬
‫‪DATE‬‬ ‫ﺗﺎرﻳﺦ ووﻗﺖ‬

‫)‪CHAR(s‬‬ ‫ﻧﺺ ﺣﺮﻓﻰ ﻃﻮﻟﻪ ﻋﺪد ‪ S‬ﻣﻦ اﻟﺤﺮوف‬

You might also like