0% found this document useful (0 votes)
74 views18 pages

1-sql Chapter

يتناول المستند موضوع لغة الاستعلام SQL. يتضمن تعريفًا لتاريخها ومميزاتها ومكوناتها الرئيسية مثل DDL، DML، DCL. كما يشرح أساسيات جملة SELECT.

Uploaded by

mohamed kamal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views18 pages

1-sql Chapter

يتناول المستند موضوع لغة الاستعلام SQL. يتضمن تعريفًا لتاريخها ومميزاتها ومكوناتها الرئيسية مثل DDL، DML، DCL. كما يشرح أساسيات جملة SELECT.

Uploaded by

mohamed kamal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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