You are on page 1of 25

1

‫اﻟﺴﻼم ﻋﻠﻴﻜﻢ ‪ ,‬اﺣﻤﺪاﷲ اﻟﺬي اﻋﺎﻧﻨﻲ ﻓﻲ آﺘﺎﺑﺔ هﺬا اﻟﻜﺘﺎب ﻟﻼﻣﻪ اﻟﻌﺮﺑﻴﻪ و اﻻﺳﻼﻣﻴﻪ ‪ ,‬و اﺣﻤﺪﻩ ﻋﻠﻰ‬
‫ﺗﻮﻓﻴﻘﻲ ﻓﻲ ﺗﻌﻠﻢ هﺬﻩ اﻟﻠﻐﻪ ‪ ,‬اﺗﻤﻨﻰ ان اآﻮن ﻗﺪ ﻗﺪﻣﺖ وﻟﻮ اﻟﻘﻠﻴﻞ ﻟﻼﻣﻪ اﻟﻌﺮﺑﻴﻪ و اﻻﺳﻼﻣﻴﻪ ﻋﻠﻰ‬
‫اﻻﻧﺘﺮﻧﺖ ‪ ,‬ﻧﺘﻤﻨﻰ ﻟﻬﺬﻩ اﻻﻣﻪ داﺋﻤﺎ اﻟﺮﻗﻲ و اﻻزدهﺎر ﻓﻲ اﻻﻧﺘﺮﻧﺖ ‪ ,‬و هﺎ اﻧﺎ اآﺘﺐ هﺬا اﻟﻜﺘﺎب اﻟﺒﺴﻴﻂ ﻟﻜﻲ‬
‫ﺗﺘﻌﻠﻢ هﺬﻩ اﻻﻣﻪ و ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻧﻔﺴﻬﺎ ‪ ,‬و ﻧﺘﻤﻨﻰ اﻟﺘﻮﻓﻴﻖ ﻟﻠﺠﻤﻴﻊ ‪,,,‬‬

‫اهﺪي هﺬا اﻟﻜﺘﺎب إﻟﻰ آﻞ اخ ﻏﺎﻟﻲ ﻋﻠﻰ ﻗﻠﺒﻲ و اهﺪﻳﻪ إﻟﻰ آﻞ اﺳﺎﺗﺬﺗﻲ ﻓﻲ هﺬﻩ اﻟﻠﻐﻪ و ﻓﻲ ﻏﻴﺮ هﺬﻩ‬
‫اﻟﻠﻐﻪ ‪ ,‬وﻻ ارﻳﺪ ذآﺮ اي اﺳﻢ ﻟﻜﻲ ﻻ اﻧﺴﻰ اﺣﺪ ‪,,,‬‬

‫ﺟﻤﻴﻊ اﻟﺡﻘﻮق ﻣﺡﻔﻮﻇﻪ ﻟﻤﻮﻗﻊ و ﻣﻨﺘﺪﻳﺎت اﻟﺡﺰن ‪ , www.el7zn.com‬و هﺬا اﻟﻜﺘﺎب ﻣﺠﺎﻧﻲ وﻻ ﻳﺡﻖ ﻷي‬
‫ﺷﺨﺺ ﺑﻴﻌﻪ ‪ ,‬هﺬا اﻟﻜﺘﺎب ﻣﻦ ﺗﺄﻟﻴﻒ ‪. MaaSTaaR‬‬

‫‪2‬‬
‫ﻋﻦ هﺬا اﻟﻔﺼﻞ ‪:‬‬
‫ﻳﺡﺘﻮي هﺬا اﻟﻔﺼﻞ ﻋﻠﻰ ﻣﻘﺪﻣﻪ ﺑﺴﻴﻄﻪ ﻋﻦ ال ‪ SQL‬ﻣﻌﻠﻮﻣﺎت ﺳﻮف ﺗﻔﻴﺪك ﺑﺈذن اﷲ و ﺗﺰﻳﺪ ﻣﻦ رﺻﻴﺪ‬
‫ﻣﻌﻠﻮﻣﺎﺗﻚ ﻓﻲ اﻻﻧﺘﺮﻧﺖ و ﻟﻐﺎت ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﺎ هﻮ اس آﻴﻮ ال ؟‬
‫اﻟﻜﻠﻤﻪ ‪ SQL‬هﻲ اﺧﺘﺼﺎر ‪ Structured Query Language‬و ﻣﻌﻨﺎهﺎ )ﻟﻐﺔ اﻻﺳﺘﻌﻼم اﻟﺒﻨﻴﻮﻳﻪ( ‪ ,‬ﺗﺴﺘﺨﺪم‬
‫هﺬﻩ اﻟﻠﻐﻪ ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺗﺴﺘﺨﺪم ﻻﺳﺘﺨﺮاج و ﺗﺡﺪﻳﺚ و اﺿﺎﻓﺔ اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت و ﻏﺎﻟﺒﺎ ﻣﺎ ﻳﺘﻢ اﺳﺘﺨﺪام هﺬا اﻟﻨﻮع ﻣﻦ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻓﻲ اﻟﻤﻮاﻗﻊ اﻟﺘﻲ ﺗﺴﺘﺨﺪم اﻟﺘﻘﻨﻴﺎت‬
‫اﻟﺸﻬﻴﺮﻩ ﻣﺜﻞ اﻟـ ‪ , PHP‬و آﻤﺎ ﻧﺮى ان اﻏﻠﺐ ﺑﺮاﻣﺞ اﻟﻮﻳﺐ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟــ ‪ SQL‬ﻣﻦ ﺧﻼل اﻟﻤﺡﺮك اﻟﺸﻬﻴﺮ‬
‫‪,,, MySQL‬‬

‫أﻳﻦ ﻳﻤﻜﻨﻨﻲ اﻟﺡﺼﻮل ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻋﻦ ال ‪ MySQL‬؟‬


‫اﻏﻠﺐ اﻟﻤﻮاﻗﻊ اﻟﺘﻲ ﺗﻬﺘﻢ ﻓﻲ ال ‪ PHP‬ﻻ ﺑﺪ ان ﺗﺡﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت وﻟﻮ آﺎﻧﺖ ﺑﺴﻴﻄﻪ ﻋﻦ ال ‪, MySQL‬‬
‫ﻋﺎﻣﻪ ﻗﺪ ﺗﻔﻴﺪك هﺬﻩ اﻟﻮﺻﻼت ‪:‬‬

‫‪http://www.rafiaphp.com/news.php?action=list&cat_id=10‬‬
‫‪http://www.phpvillage.com/p.php?page=0&idp=48&search=mysql&total=8371‬‬
‫‪http://www.phpvillage.com/p.php?page=0&idp=49&search=mysql&total=8831‬‬
‫‪http://www.phpvillage.com/p.php?page=0&idp=52&search=mysql&total=7058‬‬
‫‪http://www.phpvillage.com/p.php?page=0&idp=55&search=mysql&total=5400‬‬
‫‪http://www.mysql.com‬‬

‫‪ ,‬ﺣﺴﻨﺎً ﻻ ﺑﺄس ﻣﻦ اﺧﺬ ﺑﻌﺪ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ هﺬا اﻟﻤﺡﺮك ‪ ,‬دﻋﻮﻧﺎ‬ ‫ﻣﻬﻼ !! ال ‪ MySQL‬ﻟﻴﺲ ﻣﻮﺿﻮﻋﻨﺎ‬
‫ﻧﻨﻄﻠﻖ إﻟﻰ اﻟﺨﻄﻮﻩ اﻟﺘﺎﻟﻴﻪ ‪,,‬‬

‫أﻳﻦ ﻳﻤﻜﻨﻨﻲ ﺗﻄﺒﻴﻖ اواﻣﺮ ‪ SQL‬اﻟﺘﻲ ﺳﻮف ﻧﺪرﺳﻬﺎ ﻓﻲ هﺬا اﻟﻜﺘﺎب ؟‬


‫ﻓﻲ اﻟﺡﻘﻴﻘﻪ هﻨﺎﻟﻚ ﻋﺪﻩ ﻃﺮق و ﺳﻮف اذآﺮ اﺛﻨﻴﻦ ﻣﻨﻬﺎ ‪,,‬‬

‫اﻟﻄﺮﻳﻘﻪ اﻻوﻟﻰ ‪ :‬اذا آﻨﺖ ﻣﺒﺮﻣﺞ ‪ PHP‬ﻣﻦ ﻗﺒﻞ ﻳﻤﻜﻨﻚ ﺗﻄﺒﻴﻖ اﻻواﻣﺮ اﻟﺘﻲ ﺳﻮف ﻧﺪرﺳﻬﺎ ﻣﻦ ﺧﻼل اﻟﺪاﻟﻪ‬
‫;)(‪ mysql_query‬ﻟﻜﻦ ﻳﺠﺐ ﻋﻠﻴﻨﺎ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و اﻧﺸﺎء اﻟﻘﺎﻋﺪﻩ ‪ ,‬ﻓﺈذا آﻨﺖ ﻣﺒﺘﺪئ ﻻ اﻧﺼﺡﻚ‬
‫ﺑﻬﺬﻩ اﻟﻄﺮﻳﻘﻪ ‪ ,‬ﻟﻨﺮى اﻟﻄﺮﻳﻘﻪ اﻟﺜﺎﻧﻴﻪ ﻓﻬﻲ اﻓﻀﻞ ‪,,,‬‬

‫اﻟﻄﺮﻳﻘﻪ اﻟﺜﺎﻧﻴﻪ ‪ :‬ﻣﻦ ﺧﻼل ﺑﺮﻧﺎﻣﺞ اآﺴﺲ اﻟﺬي ﻳﺄﺗﻲ ﻣﻊ ﺣﺰﻣﺔ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ اوﻓﻴﺲ ‪ ,‬ﺳﻮف ﻧﺸﺮح‬
‫ﻃﺮﻳﻘﺔ اﻻآﺴﺲ ﺑﺎﻟﺼﻮر ﺑﺈذن اﷲ ‪,,,‬‬

‫‪3‬‬
‫ﻣﺎ اﻟﺬي ﺳﻮف اﺳﺘﻔﻴﺪﻩ ﻣﻦ ﺗﻌﻠﻢ ‪ SQL‬؟‬
‫‪ ,‬ﻓﻲ اﻟﺡﻘﻴﻘﻪ اذا آﻨﺖ ﻣﺒﺮﻣﺞ اﺣﺪ ﻟﻐﺎت اﻟﻮﻳﺐ ﻓﺴﻮف ﺗﺴﺘﻔﻴﺪ آﺜﻴﺮاً ‪ ,‬ﻻﻧﻚ ﺳﻮف ﺗﺘﻌﻠﻢ‬ ‫ﺳﺆال ﺟﻴﺪ‬
‫ﻃﺮﻳﻘﻪ ﺻﻴﻐﺔ اﻻواﻣﺮ ﻓﻲ ‪ SQL‬و ذﻟﻚ ﻳﺴﺎﻋﺪك ﻓﻲ اﺳﺘﻌﻤﺎل ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻓﻲ ﺑﺮﻧﺎﻣﺠﻚ ‪ ,‬اﻳﻀﺎ ﺳﻮف‬
‫ﺗﺘﻜﻤﻦ ﻣﻦ اﺳﺘﺨﺪام اﻻآﺴﺲ و ﺟﻤﻴﻊ اﻟﺒﺮاﻣﺞ و ﻣﺡﺮآﺎت ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ‪ SQL‬ﻣﺜﻞ‬
‫‪ MySQL , PostgerSQL , SQL Server‬أي اﻧﻚ ﺳﻮف ﺗﺠﻴﺪ اﺳﺘﺨﺪام اي ﺷﺊ ﻳﺘﻌﺎﻣﻞ ﻣﻊ ال ‪,,, SQL‬‬

‫ﻣﺎ اﻟﺬي ﻳﻤﻜﻨﻨﻲ ﻓﻌﻠﻪ ﻓﻲ اﻟـ ‪ SQL‬؟‬


‫‪ \1‬إﻧﺸﺎء ﺟﺪول ﺑﺎﻟﻤﻮاﺻﻔﺎت اﻟﺘﻲ ﺗﺡﺘﺎﺟﻬﺎ‬
‫‪ \2‬اﺿﺎﻓﺔ ﺣﻘﻮل او ﺣﺬف ﺣﻘﻮل ﺑﻌﺪ اﻧﺸﺎء اﻟﺠﺪول‬
‫‪ \3‬ﺗﻔﺮﻳﻎ اﻟﺠﺪول‬
‫‪ \4‬ﺣﺬف اﻟﺠﺪول‬
‫‪ \5‬ادﺧﺎل اﻟﻤﻌﻠﻮﻣﺎت‬
‫‪ \6‬ﺗﺡﺮﻳﺮ اﻟﻤﻌﻠﻮﻣﺎت‬
‫‪ \7‬ﺣﺬف اﻟﻤﻌﻠﻮﻣﺎت‬
‫‪ \8‬إﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت‬
‫‪ \9‬ﺣﺬف ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت‬
‫‪ \10‬اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت‬
‫‪ \11‬اﺳﺘﺨﺪام اﻟﺸﺮوط ﻓﻲ اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت )ﺗﺼﺎﻋﺪي ‪ ,‬ﺗﻨﺎزﻟﻲ ‪ 10 ,‬ﻣﻌﻠﻮﻣﺎت ‪ ,‬ﻣﻌﻠﻮﻣﺎت ﻋﻦ‬
‫ﻣﺴﺘﺨﺪم ﻣﻌﻴﻦ إﻟﺦ ‪(...‬‬

‫هﻞ ﺗﺸﻮﻗﺖ ﻟﺘﺘﻌﻠﻢ اﻟﻤﺰﻳﺪ ﻋﻦ هﺬﻩ اﻟﻠﻐﻪ ؟ اذاً ارح ﻋﻴﻨﻴﻚ ﻗﻠﻴﻼً ﻻ ﺑﺄس‬
‫ﻣﻦ ﻓﻨﺠﺎن ﻗﻬﻮﻩ او آﻮب ﺷﺎي ‪ ,‬ﺑﻌﺪﻣﺎ ﺗﻨﺘﻬﻲ اﺗﺒﻌﻨﻲ إﻟﻰ اﻟﻔﺼﻞ اﻟﻘﺎدم‬
‫‪...‬‬

‫‪4‬‬
‫ﻋﻦ هﺬا اﻟﻔﺼﻞ ‪:‬‬
‫ﻳﺘﺡﺪث هﺬا اﻟﻔﺼﻞ ﻋﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و ﻣﺎ ﺗﺡﺘﻮي وﻣﺎ اهﻤﻴﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺑﺎﻟﻨﺴﺒﻪ ﻟــ ‪,,, SQL‬‬

‫ﻣﺎ هﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ؟‬


‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﺒﺎرﻩ ﻋﻦ ﻗﺎﻋﺪة ﺗﺡﺘﻮي ﻋﻠﻰ ﻋﺪة ﺟﺪاول او ﺟﺪول واﺣﺪ و هﺬﻩ اﻟﺠﺪاول ﺗﺡﺘﻮي ﻋﻠﻰ‬
‫اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﻤﺖ اﺿﺎﻓﺘﻬﺎ ﻣﻦ ﺧﻼل اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ‪,,,‬‬

‫ﻣﺎ اهﻤﻴﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻟــ ‪ SQL‬؟‬


‫ﻳﻤﻜﻨﻨﺎ وﺻﻔﻬﺎ ﺑﻌﺼﺐ اﻟـ ‪ SQL‬ﻻﻧﻪ و ﻓﻲ اﻟﺡﻘﻴﻘﻪ ‪ ,‬ﻻ ﻳﻤﻜﻨﻨﺎ اﻟﻌﻤﻞ ﺑﺎﻟــ ‪SQL‬ﻣﻦ دون ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺗﺡﺘﻮي‬
‫ﻋﻠﻰ ﺟﺪاول ‪,,,‬‬

‫هﻞ ﻳﻤﻜﻨﻨﻲ إﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻣﻦ ﺧﻼل ال ‪ SQL‬؟‬


‫ﻃﺒﻌﺎً ﻳﻤﻜﻦ ذﻟﻚ ‪,,‬‬

‫آﻴﻒ ؟‬
‫ﻣﻦ ﺧﻼل اﻻواﻣﺮ اﻟﺘﻲ ﺳﻮف ﺗﻨﻄﺮق إﻟﻴﻬﺎ ﻓﻲ اﻟﻔﺼﻮل اﻟﻘﺎدﻣﻪ ﺑﺈذن اﷲ ‪.‬‬

‫ﻣﺎ هﻲ اﻟﺠﺪاول ؟‬
‫هﻲ ﻋﺒﺎرﻩ ﻋﻦ ﺟﺪاول ﺗﺡﺘﻮي ﻋﻠﻰ ﺣﻘﻮل و ﻳﻤﻜﻦ اﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت ﺣﺴﺐ اﻟﺡﻘﻮل اﻟﻤﻮﺟﻮدﻩ ‪ ,‬ﻣﺜﻼ ﻳﻮﺟﺪ‬
‫ﻟﺪﻳﻨﺎ ﺣﻘﻞ ﻓﻲ اﻟﺠﺪول ﺑﺈﺳﻢ ‪ name‬ﻳﻤﻜﻨﻨﺎ ﻣﻦ ﺧﻼل هﺬا اﻟﺡﻘﻞ اﺿﺎﻓﺔ اﺳﻤﻨﺎ ﻓﻲ اﻟﺠﺪول ‪,,,‬‬

‫ﻣﺎ اهﻤﻴﺔ اﻟﺠﺪاول ﻟــ ‪ SQL‬؟‬


‫ﻳﻤﻜﻨﻨﻲ ان اﺻﻔﻬﺎ ﺑﺎﻟﻌﺼﺐ اﻟﺜﺎﻧﻲ ﻟـ ‪ SQL‬ﻻﻧﻨﺎ ﻣﻦ ﺧﻼل اﻟﺠﺪاول ﻳﻤﻜﻨﻨﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻴﺎﻧﺎت و هﺬا اﻟﺬي‬
‫ﻧﻮدﻩ ‪ ,‬ان ﻧﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدﻩ و ان ﻧﻀﻴﻒ ﺑﻴﺎﻧﺎت ﺟﺪﻳﺪﻩ ‪.‬‬

‫‪5‬‬
‫هﻞ ﻳﻤﻜﻨﻨﻲ إﻧﺸﺎء اﻟﺠﺪاول ﻣﻦ ﺧﻼل ال ‪ SQL‬؟‬
‫‪,,,‬‬ ‫ﻧﻌﻢ ﻳﻤﻜﻦ ذﻟﻚ ﻃﺒﻌﺎً‬

‫آﻴﻒ ؟‬
‫ﻻ ﺗﺘﻌﺠﻞ اﻻﻣﻮر ﻓﻲ اﻟﻔﺼﻮل اﻟﻘﺎدﻣﻪ ﺑﺈذن اﷲ ﺳﻮف ﻳﺘﻢ ﺷﺮح ذﻟﻚ و ﺑﺎﻟﺘﻔﺼﻴﻞ اﻟﻤﻤﻞ ﺑﺈذن اﷲ ‪,,‬‬

‫ﺣﺴﻨﺎً آﻢ ﻋﺪد اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﻳﻤﻜﻨﻨﻲ اﺿﺎﻓﺘﻬﺎ ﻓﻲ اﻟﺠﺪول اﻟﻮاﺣﺪ ؟‬


‫ﻳﻤﻜﻨﻚ اﺿﺎﻓﺔ ﻋﺪد ﺷﺒﻪ ﻻ ﻧﻬﺎﺋﻲ ‪ ,‬ﻗﺪ ﺗﺘﺴﺎﺋﻞ آﻴﻒ ؟ ﺷﺒﻪ ﻻ ﻧﻬﺎﺋﻲ ﻻﻧﻚ ﺗﻘﺮﻳﺒﺎ ﻳﻤﻜﻨﻚ ان ﺗﻀﻴﻒ‬
‫او اآﺜﺮ ﻣﻦ ذﻟﻚ ‪ ,‬ﻳﻤﻜﻨﻚ اﺿﺎﻓﺔ آﻢ هﺎﺋﻞ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬ ‫‪ 9999999999‬ﻣﻌﻠﻮﻣﻪ‬

‫هﻞ اﻟﻜﻢ اﻟﻬﺎﺋﻞ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺳﻴﻀﻐﻂ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ؟‬


‫ﻻ اﻋﺘﻘﺪ ان ذﻟﻚ ﺳﻮف ﻳﺆﺛﺮ وﻟﻜﻦ ﺳﻮف ﻳﻜﻮن ﻋﻤﻞ ﻧﺴﺨﻪ اﺣﺘﻴﺎﻃﻴﻪ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺻﻌﺒﻪ ‪ ,‬او ﺗﺄﺧﺬ‬
‫وﻗﺘﺎً ﻃﻮﻳﻼً ‪.‬‬

‫ﺣﺴﻨﺎً ﺑﻌﺪ ان اﺧﺬﻧﺎ ﻣﻌﻠﻮﻣﺎت ﻋﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و اﻟﺠﺪاول ﻟﻨﺬهﺐ إﻟﻰ‬


‫اﻟﻔﺼﻞ اﻟﺘﺎﻟﻲ ‪,,,‬‬

‫‪6‬‬
‫ﻋﻦ هﺬا اﻟﻔﺼﻞ ‪:‬‬
‫ﻋﻦ ﻃﺮﻳﻖ هﺬا اﻟﻔﺼﻞ ﺳﻮف ﺗﺘﻌﻠﻢ آﻴﻔﻴﺔ آﺘﺎﺑﺔ اواﻣﺮ اﻻس آﻴﻮ ال ﻓﻲ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ اآﺴﺲ ‪.‬‬

‫‪,,,‬‬ ‫اوﻻً ﻗﻢ ﺑﺘﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺞ ‪ Microsoft Access‬و اﺿﻐﻂ ﻋﻠﻰ ‪New‬‬

‫اﻵن اﺧﺘﺮ ‪ , Blank Database‬ﺳﻮف ﺗﻈﻬﺮ ﻟﻚ هﺬﻩ اﻟﺸﺎﺷﻪ ‪:‬‬

‫اﻟﺸﺮح واﺿﺡ ﻓﻲ اﻟﺼﻮرﻩ ‪,,‬‬

‫ﺑﻌﺪ إﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺳﻮف ﺗﻈﻬﺮ ﻟﻚ هﺬﻩ اﻟﻨﺎﻓﺬﻩ ‪:‬‬

‫‪7‬‬
‫ﺑﻌﺪ اﻟﻀﻐﻂ ﺳﻮف ﺗﻈﻬﺮ هﺬﻩ اﻟﻨﺎﻓﺬﻩ ‪,,,‬‬

‫ﺑﻌﺪ اﻟﻀﻐﻂ ﺳﻮف ﺗﻈﻬﺮ هﺬﻩ اﻟﻨﺎﻓﺬﻩ‬

‫)‪(7‬‬

‫‪8‬‬
‫ﺑﻌﺪ اﻟﻀﻐﻂ ﻻﺣﻆ ﻓﻲ اﻻﻋﻠﻰ ‪ ,‬ﺷﺮﻳﻂ اﻻدوات ‪ ,‬اول اداة ﺗﻜﻮن ﺑﻬﺬا اﻟﺸﻜﻞ ‪:‬‬

‫‪ ,‬ﺳﻮف ﺗﻈﻬﺮ هﺬﻩ ﻟﻚ هﺬﻩ اﻟﻨﺎﻓﺬﻩ ‪,,‬‬ ‫ﺑﻜﻞ ﺑﺴﺎﻃﻪ اﺿﻐﻂ ﻋﻠﻰ هﺬﻩ اﻻداة‬

‫ﺑﻌﺪ آﺘﺎﺑﺔ اﻻﻣﺮ ﺗﻀﻐﻂ ﻋﻠﻰ هﺬا اﻟﺰر ﻟﻜﻲ ﻳﺘﻢ ﺗﻨﻔﻴﺬﻩ ‪:‬‬

‫‪9‬‬
‫اﻵن و ﺑﻌﺪ ان ﺗﻌﺮﻓﻨﺎ ﻋﻠﻰ ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ اﻻواﻣﺮ ﻓﻲ اﻻآﺴﺲ ﺳﻮف ﻧﺒﺪأ‬
‫ﺑﺈﺳﺘﺨﺪام اﻻواﻣﺮ ﺑﺈذن اﷲ‬

‫‪10‬‬
‫ﻋﻦ اﻟﻔﺼﻞ ‪:‬‬
‫ﻣﻦ ﺧﻼل هﺬا اﻟﻔﺼﻞ ﺳﻮف ﺗﺘﻌﻠﻢ آﻴﻔﻴﺔ إﻧﺸﺎء و ﺣﺬف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ,‬ﺗﻔﻀﻞ و ﺗﺎﺑﻊ ﻣﻌﻨﺎ ‪.‬‬

‫إﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺟﺪﻳﺪﻩ ‪:‬‬


‫آﻤﺎ ﻓﻬﻤﻨﺎ ﺳﺎﺑﻘﺎً ان ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت هﻲ ﻋﺼﺐ ﻟﻐﺔ اﻟــ ‪ SQL‬و ﻣﻦ ﺧﻼﻟﻬﺎ ﻳﺘﻢ إﻧﺸﺎء اﻟﺠﺪاول و ﺗﻌﺒﺌﺔ‬
‫اﻟﻤﻌﻠﻮﻣﺎت ‪ ,‬ﻓﻲ هﺬا اﻟﻔﺼﻞ ﺳﻮف ﻧﺘﻌﻠﻢ آﻴﻒ ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺟﺪﻳﺪﻩ ‪,‬‬

‫ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ اﻻﻣﺮ ‪:‬‬


‫آﻮد ‪:‬‬
‫;‪CREATE DATEBASE dbname‬‬

‫ﺳﻮف ﻧﻘﺮأ هﺬا اﻻﻣﺮ ﺑﺎﻟﻠﻐﻪ اﻟﻌﺮﺑﻴﻪ ‪ ,‬آﺄﻧﻚ ﺗﻘﻮل )أﻧﺸﺊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ اﺳﻤﻬﺎ ‪. (dbname‬‬

‫ﻃﺒﻌﺎً اﻟــ ‪ dbname‬ﻳﻤﻜﻨﻚ ﺗﻐﻴﺮﻩ إﻟﻰ اﺳﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺗﺮﻳﺪﻩ ﻣﺜﻼً ﺗﻮد اﺳﻢ اﻟﻘﺎﻋﺪﻩ ‪ SQL‬او ‪db‬‬
‫ﻣﺜﻼً ‪ ,‬أي اي اﺳﻢ ﺗﺮﻳﺪﻩ ‪ ,,‬ﻟﻨﻔﺮض اﻧﻨﺎ ﻧﻮد اﺳﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ SQLDataBase‬ﺳﻮف ﻧﺒﺪل ال ‪dbname‬‬
‫إﻟﻰ اﺳﻢ اﻟﻘﺎﻋﺪﻩ اﻟﺘﻲ ﻧﺮﻳﺪهﺎ ‪,,‬‬

‫ﻓﻲ اﻟﺡﻘﻴﻘﻪ ﻟﻦ ﻳﻔﻴﺪﻧﺎ هﺬا اﻻﻣﺮ ﻓﻲ اﻻآﺴﺲ ‪,,‬‬ ‫ﻟﻜﻦ‬

‫ﻗﺪ ﺗﺴﺄل ‪.‬‬

‫ﻟﻤﺎذا ؟‬
‫هﻞ ﺗﺘﺬآﺮ ﻓﻲ اﻟﻔﺼﻞ اﻟﺜﺎﻟﺚ ﻋﻨﺪﻣﺎ ﺿﻐﻄﻨﺎ ﻋﻠﻰ ‪ new‬ﺛﻢ ‪ Blank Database‬ﻓﻲ هﺬﻩ اﻟﺨﻄﻮﻩ ﻗﻤﻨﺎ ﺣﻘًﺎ‬
‫ﺑﺈﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و ﺗﺴﻤﻴﺘﻬﺎ ﻣﻦ دون اواﻣﺮ اﻻس آﻴﻮ ال ‪ ,‬اﻵن ﺣﺎول آﺘﺎﺑﺔ اﻣﺮ اﻻﺿﺎﻓﻪ ﺳﻮف ﻳﻈﻬﺮ‬
‫‪,,‬‬ ‫ﻟﻚ ﺧﻄﺄ ‪ ,‬ﻻﻧﻪ ﻓﻲ اﻟﺡﻘﻴﻘﻪ ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء اﻟﻘﺎﻋﺪﻩ ﺳﺎﺑﻘﺎً‬

‫ﻗﺪ ﺗﺘﺴﺎﺋﻞ ‪,‬‬

‫اذا آﻨﺖ اﺳﺘﺨﺪم اﻻآﺴﺲ ﻣﺎ اﻟﻔﺎﺋﺪﻩ ﻣﻦ اﻣﺮ اﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ؟‬


‫آﻤﺎ ذآﺮﻧﺎ اﻧﻨﺎ ﻓﻲ اﻻآﺴﺲ ﻧﻘﻮم ﺑﺈﻧﺸﺎء اﻟﻘﺎﻋﺪﻩ ﻓﻲ اول اﻟﺒﺮﻧﺎﻣﺞ ﻟﻜﻦ هﺬا اﻻﻣﺮ ﺳﻮف ﻳﻔﻴﺪك ﻓﻲ ال‬
‫‪ MySQL‬ﻣﺜﻼً ‪ ,‬ﺣﺎول ﺗﺡﻤﻴﻞ ﻧﺴﺨﻪ ﻣﻦ اﻟﻤﺎي اس آﻴﻮ ال و ﺟﺮب ذﻟﻚ ‪ ,‬ﺳﻮف ﻳﺘﻢ اﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫‪,‬‬ ‫ان ﺷﺎء اﷲ‬

‫ﻟﻤﺎذا ؟‬
‫ﺑﻜﻞ ﺑﺴﺎﻃﻪ ﻻﻧﻪ اﻟﻤﺎي اس آﻴﻮ ال ﻻ ﻳﻨﺸﺊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﻨﺪ ﺗﺸﻐﻴﻠﻪ ﺑﻞ ﻳﻄﻠﺐ ﻣﻨﻚ ان ﺗﻜﺘﺐ اﻻﻣﺮ‬
‫ﻟﻜﻲ ﺗﻨﺸﺊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬

‫‪11‬‬
‫ﺣﺬف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫ﺑﻌﺪﻣﺎ ﺗﻌﺮﻓﻨﺎ آﻴﻔﻴﺔ اﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻵن ﺳﻮف ﻧﺘﻌﻠﻢ آﻴﻒ ﻧﺡﺬف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪,‬‬

‫ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ اﻻﻣﺮ ‪:‬‬


‫آﻮد ‪:‬‬
‫;‪DROP DATABASE dbname‬‬

‫آﻤﺎ ﺗﻼﺣﻆ ﻟﻢ ﻳﺘﻐﻴﺮ ﻣﻦ اﻻﻣﺮ ﺳﻮا آﻠﻤﺔ ‪ CREATE‬و ﺗﺡﻮﻟﺖ إﻟﻰ ‪ , DROP‬و آﻤﺎ ذآﺮﻧﺎ ﺳﺎﺑﻘﺎ ‪dbname‬‬
‫إﺳﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺗﻮد ﺣﺬﻓﻬﺎ ‪,,‬‬

‫ﺗﺡﺬﻳﺮ هﺎم ‪ :‬ﺳﻮف ﻳﺘﻢ ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎت و اﻟﺠﺪاول ﻓﻲ اﻟﻘﺎﻋﺪﻩ اﻟﻤﺡﺬوﻓﻪ أي ﻻ ﺗﻔﺮط‬ ‫•‬
‫ﺑﺈﺳﺘﺨﺪام هﺬا اﻻﻣﺮ ‪.‬‬

‫اﻵن وﺑﻌﺪﻣﺎ ﺗﻌﺮﻓﻨﺎ ﻋﻠﻰ آﻴﻔﻴﺔ اﻧﺸﺎء و ﺣﺬف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ,‬ﻟﻨﻨﺘﻘﻞ‬
‫ﻟﻠﻔﺼﻞ اﻟﺬي ﺑﻌﺪﻩ ﻟﻜﻲ ﻧﺘﻌﺮف ﻋﻠﻰ آﻴﻔﻴﺔ إﻧﺸﺎء اﻟﺠﺪاول و ﻣﻌﺮﻓﺔ اﻧﻮاع‬
‫اﻟﺡﻘﻮل ‪,,‬‬

‫‪12‬‬
‫ﻋﻦ اﻟﻔﺼﻞ ‪:‬‬
‫ﺳﻮف ﻧﺘﻌﻠﻢ ﻣﻦ هﺬا اﻟﻔﺼﻞ آﻴﻔﻴﺔ إﻧﺸﺎء اﻟﺠﺪاول و أﺧﺬ ﻓﻜﺮﻩ ﻋﻦ اﻧﻮاع اﻟﺡﻘﻮل و ﺑﻌﺪهﺎ ﺳﻮف ﻧﺘﻌﻠﻢ آﻴﻒ‬
‫ﻧﻔﺮغ اﻟﺠﺪول ﻣﻦ ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻮﺟﻮدﻩ ﻓﻴﻪ و اﺧﻴﺮا ﺳﻮف ﻧﺘﻌﻠﻢ آﻴﻒ ﻧﺡﺬف اﻟﺠﺪول ﻧﻬﺎﺋﻴﺎ ﻣﻦ ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت ‪,,‬‬

‫إﻧﺸﺎء ﺟﺪول ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬


‫آﻤﺎ درﺳﻨﺎ ﻣﺴﺒﻘﺎ ان اﻟﺠﺪاول ﺗﻌﺘﺒﺮ اﻟﻌﺼﺐ اﻟﺜﺎﻧﻲ ﻟﻠﻐﺔ اس آﻴﻮ ال ﻻﻧﻪ ﻣﻦ ﺧﻼل اﻟﺠﺪاول ﻳﻤﻜﻨﻨﺎ ﺗﺨﺰﻳﻦ‬
‫‪ ,‬ﺳﻮف ﻧﺘﻌﺮف اوﻻ ﻋﻠﻰ‬ ‫اﻟﻤﻌﻠﻮﻣﺎت و ﻧﺡﻦ ﻧﺴﺘﺨﺪم اﻻس آﻴﻮ ال اﺳﺎﺳﺎ ﻟﻠﺘﺡﻜﻢ ﻓﻲ اﻟﻤﻌﻠﻮﻣﺎت‬
‫ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ اﻻﻣﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫( ‪CREATE TABLE tablname‬‬
‫‪Falid1 type null or not null ,‬‬
‫‪Falid2 type null or not null ,‬‬
‫;)‬

‫ﺣﺴﻨﺎً ‪ ,‬ﻟﻨﺒﺪأ اﻟﺸﺮح ﺧﻄﻮﻩ ﺑﺨﻄﻮﻩ ‪ ,‬ﻓﻲ اول اﻟﺴﻄﺮ ﻧﻘﻮل ﺑﺈﻧﻨﺎ ﻧﻮد إﻧﺸﺎء اﻟﺠﺪول ‪ tablname‬ﻃﺒﻌﺎً ﻳﻤﻜﻨﻨﺎ‬
‫ﺗﻐﻴﻴﺮ هﺬﻩ اﻟﻜﻠﻤﻪ إﻟﻰ اﺳﻢ اﻟﺠﺪول اﻟﺬي ﻧﻮد اﺿﺎﻓﺘﻪ ‪ ,‬ﺑﻌﺪﻩ ﺳﻮف ﻧﻘﻮم ﺑﺈﺿﺎﻓﺔ اﻟﺡﻘﻮل اﻟﺘﻲ ﺳﻮف‬
‫ﻧﺴﺘﺨﺪﻣﻬﺎ ﻟﺘﻌﺒﺌﺔ اﻟﻤﻌﻠﻮﻣﺎت ‪,,‬‬

‫‪ : Falid1 , Falid2‬هﺬان اﻻﺛﻨﺎن ﻳﻌﻨﻴﺎن اﻧﻬﻢ اﺳﻤﺎء ﻟﻠﺡﻘﻮل و هﺎ ﻧﺡﻦ ﻧﻮد اﺿﺎﻓﺔ ﺣﻘﻼن اﻻول ﺑﻤﺴﻤﻰ‬
‫‪ Falid1‬و اﻟﺜﺎﻧﻲ ‪ Falid2‬ﺑﻌﺪهﺎ ﻧﺒﺪأ ﺑﻮﺻﻒ ﻣﻤﻴﺰات هﺬا اﻟﺡﻘﻞ و ﻧﻮع اﻟﺒﻴﺎﻧﺎت و ﺳﻴﺘﻢ ﺷﺮح ﻧﻮع اﻟﺒﻴﺎﻧﺎت‬
‫ﻓﻲ اﻟﺴﻄﻮر اﻟﻘﺎدﻣﻪ ‪.‬‬

‫‪ : Type‬اﻧﻮاع اﻟﺒﻴﺎﻧﺎت او اﻟﺡﻘﻮل و ﺳﻴﺘﻢ ﺷﺮﺣﻬﺎ ﻗﺮﻳﺒﺎ ﺑﺈذن اﷲ‬

‫‪ : Null or not null‬هﺬا ﻳﻌﻨﻲ اﻧﻪ هﻞ ﺗﺮﻳﺪ ان ﻳﻜﻮن اﻟﺡﻘﻞ ﺧﺎﻟﻲ ؟ ﻣﺜﻼ هﻞ ﺗﺮﻳﺪ ان اﺳﻢ اﻟﻤﺴﺘﺨﺪم هﻞ‬
‫ﻳﺠﺐ ان ﻳﻜﺘﺒﻪ اﻟﻤﺴﺘﺨﺪم ام اﺧﺘﻴﺎري ‪.‬‬

‫ﺣﺴﻨﺎً ‪ ,‬ﺑﻌﺪﻣﺎ رأﻳﻨﺎ آﻴﻒ ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﺟﺪول و ﺗﻌﺮﻓﻨﺎ ان هﻨﺎﻟﻚ اﻧﻮاع ﻟﻠﺡﻘﻮل او اﻟﺒﻴﺎﻧﺎت ‪ ,‬ﺣﺴﻨﺎً ﺗﻤﻌّﻦ ﻓﻲ‬
‫اﻟﺠﺪول اﻟﺘﺎﻟﻲ اﻟﺬي ﺳﻮف ﻳﺸﺮح اﻧﻮاع اﻟﺡﻘﻮل ‪,,‬‬

‫‪13‬‬
‫ﻧﻮﻋﻴﺔ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﻳﻤﻜﻦ ﺗﺨﺰﻳﻨﻬﺎ‬ ‫اﻟﻨﻮع‬
‫ارﻗﺎم ﺻﺡﻴﺡﻪ ﺻﻐﻴﺮﻩ ﺟﺪاً‬ ‫)(‪TINYINT‬‬
‫ارﻗﺎم ﺻﺡﻴﺡﻪ ﺻﻐﻴﺮﻩ‬ ‫)(‪SMALLINT‬‬
‫ارﻗﺎم ﺻﺡﻴﺡﻪ ﻣﺘﻮﺳﻄﺔ اﻟﺡﺠﻢ‬ ‫)(‪MEDIUMINT‬‬
‫ارﻗﺎم ﺻﺡﻴﺡﻪ اﻋﺘﻴﺎدﻳﻪ‬ ‫)(‪INT‬‬
‫ﻣﺮادف ﻟــ ‪INT‬‬ ‫)(‪INTEGER‬‬
‫ارﻗﺎم ﺻﺡﻴﺡﻪ آﺒﻴﺮﻩ ﺟﺪاً‬ ‫)(‪BIGINT‬‬
‫ﺟﺪول ﻻﻧﻮاع اﻻرﻗﺎم اﻟﺼﺡﻴﺡﻪ‬

‫ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﻳﻤﻜﻦ ﺗﺨﺰﻳﻨﻬﺎ‬ ‫اﻟﻨﻮع‬


‫ﺗﺎرﻳﺦ ‪ ,,‬ﺳﻴﻈﻬﺮ آـ ‪YYYY-MM-DD‬‬ ‫‪DATE‬‬
‫وﻗﺖ ‪ ,,‬ﺳﻴﻈﻬﺮ ‪HH:MM:SS‬‬ ‫‪TIME‬‬
‫ﺗﺎرﻳﺦ ووﻗﺖ ‪ ,,‬ﺳﻴﻈﻬﺮ آـ‬ ‫‪DATETIME‬‬
‫‪YYY-MM-DDHH:MM:SS‬‬
‫ﺧﺘﻢ زﻣﻨﻲ‬ ‫)(‪TIMESTAMP‬‬
‫ﺳﻨﻪ‬ ‫)(‪YEAR‬‬
‫ﺟﺪول اﻧﻮاع ﺑﻴﺎﻧﺎت اﻟﺘﺎرﻳﺦ و اﻟﻮﻗﺖ‬

‫اﻟﻮﺻﻒ‬ ‫اﻟﻨﻮع‬
‫ﺣﻘﻞ آﺎﺋﻦ ‪ BLOB‬ﺻﻐﻴﺮ ﺟﺪا‬ ‫‪TINYBLOB‬‬
‫ﺣﻘﻞ ‪ TEXT‬ﺻﻐﻴﺮ ﺟﺪا‬ ‫‪TINYTEXT‬‬
‫ﺣﻘﻞ ‪ BLOB‬ﺣﺠﻤﻪ ﻋﺎدي‬ ‫‪BLOB‬‬
‫ﺣﻘﻞ ‪ TEXT‬ﺣﺠﻤﻪ ﻋﺎدي‬ ‫‪TEXT‬‬
‫ﺣﻘﻞ ‪ BLOB‬ﻣﺘﻮﺳﻂ اﻟﺡﺠﻢ‬ ‫‪MEDIUMBLOB‬‬
‫ﺣﻘﻞ ‪ TEXT‬ﻣﺘﻮﺳﻂ اﻟﺡﺠﻢ‬ ‫‪MEDIUMTEXT‬‬
‫ﺣﻘﻞ ‪ BLOB‬ﻃﻮﻳﻞ‬ ‫‪LONGBLOB‬‬
‫ﺣﻘﻞ ‪ TEXT‬ﻃﻮﻳﻞ‬ ‫‪LONGTEXT‬‬
‫اﻻﻧﻮاع ‪ TEXT‬و ‪BLOB‬‬

‫اﻟﻮﺻﻒ‬ ‫اﻟﻨﻮع‬
‫ﺣﻘﻞ ﻳﻘﻮم ﺑﺘﺨﺰﻳﻦ ‪ 1‬إﻟﻰ ‪ 255‬ﺣﺮف‬ ‫‪CHAR‬‬
‫ﻧﻔﺲ ﻋﻤﻞ اﻟﺴﺎﺑﻖ‬ ‫‪VARCHAR‬‬
‫اﻧﻮاع اﻟﺴﻼﺳﻞ اﻻﻋﺘﻴﺎدﻳﻪ‬

‫اﻵن و ﻗﺪ ﺗﻨﺎوﻟﻨﺎ اﻧﻮاع اﻻﻋﻤﺪﻩ اﻵن ﻳﻤﻜﻨﻨﺎ اﻧﺸﺎء ﺟﺪول ﻟﻠﺒﻴﺎﻧﺎت ‪ ,‬ﺣﻴﺚ ﻧﻘﻮم ﺑﺈﺳﺘﺨﺪام هﺬﻩ اﻻﻧﻮاع‬
‫ﺣﺴﺐ ﺑﻴﺎﻧﺎت اﻟﺠﺪول ‪ ,‬ﺣﺴﻨﺎً اﻵن ﻧﺮﻳﺪ اﻧﺸﺎء ﺟﺪول ﻟﻜﻦ ﻣﺎ هﻮ ﻣﻮﺿﻮﻋﻪ ‪ ,‬ﻟﻨﻔﻜﺮ ‪......‬‬

‫ﻟﻨﻔﺮض إن ﻟﺪﻳﻨﺎ ﺷﺮآﺔ إﺳﺘﻀﺎﻓﻪ ﻹﺳﺘﻀﺎﻓﺔ اﻟﻤﻮاﻗﻊ ‪ ,‬و ﻧﺮﻳﺪ ﺟﺪول ﻳﻘﻮم ﺑﺘﺨﺰﻳﻦ اﺳﻤﺎء و‬ ‫اهﺎ وﺟﺪﺗﻬﺎ‬
‫‪.‬‬ ‫ارﻗﺎم هﻮاﺗﻒ زﺑﺎﺋﻨﻨﺎ ‪ ,‬ﺣﺴﻨﺎً ﻟﻨﻔﻜﺮ ﻣﺎ هﻲ اﻟﺡﻘﻮل‬

‫ﺣﺴﻨﺎ ﻟﻨﻔﺮض اﻧﻨﺎ ﺑﺡﺎﺟﻪ إﻟﻰ ‪ 4‬ﺣﻘﻮل ‪ ,‬و ﺳﻨﻌﺪد ﻣﺎهﻲ ‪:‬‬

‫اﻟﺡﻘﻞ اﻻول ‪ :‬وﺳﻮف ﻳﻜﻮن اﻟﻤﻌﺮف اﻟﺨﺎص ﻟﻜﻞ زﺑﻮن ‪ ,‬ﺣﻴﺚ ﻳﻜﻮن رﻗﻢ ﺧﺎص ﻟﻠﺰﺑﻮن ﻳﻤﻴﺰﻩ ﻋﻦ ﻏﻴﺮﻩ ﻣﻦ‬
‫اﻟﺰﺑﺎﺋﻦ ‪.‬‬
‫اﻟﺡﻘﻞ اﻟﺜﺎﻧﻲ ‪ :‬اﺳﻢ اﻟﺰﺑﻮن ‪ ,‬ﻃﺒﻌﺎً ﻣﻌﺮوﻓﻪ وﻻ ﺗﺡﺘﺎج ﻟﺸﺮح‬
‫اﻟﺡﻘﻞ اﻟﺜﺎﻟﺚ ‪ :‬رﻗﻢ هﺎﺗﻒ اﻟﺰﺑﻮن‬
‫اﻟﺡﻘﻞ اﻟﺮاﺑﻊ ‪ :‬ﻋﻨﻮان ﻣﻮﻗﻊ اﻟﺰﺑﻮن‬

‫‪14‬‬
‫ﻳﺠﺐ ﻋﻠﻴﻨﺎ ان ﻧﺡﺪد ﻧﻮﻋﻬﺎ ‪.‬‬ ‫ﺣﺴﻨﺎً اﻵن و ﺑﻌﺪ ﺗﺡﺪﻳﺪ اﻟﺡﻘﻮل ووﻇﺎﺋﻔﻬﺎ‬

‫اﻟﺡﻘﻞ اﻻول ‪ :‬ﺑﻤﺎ اﻧﻪ ﺣﻘﻞ ﻳﺡﻤﻞ رﻗﻢ ﺧﺎص ﻟﻜﻞ زﺑﻮن اذاً ﺳﻮف ﻧﺮﺟﻊ إﻟﻰ ﺟﺪول اﻧﻮاع اﻻرﻗﺎم ‪ ,‬ﺳﻮف‬
‫ﻧﺨﺘﺎر اﻟﻨﻮع )(‪ INT‬ﺑﺡﻴﺚ ﻳﻜﻮن رﻗﻢ اﻋﺘﻴﺎدي ﺻﺡﻴﺡ‬

‫ﺣﺴﻨﺎً ‪,‬‬ ‫ﺣﺴﻨﺎً ‪ ,‬اﻵن ﻟﺪﻳﻨﺎ ﻣﺸﻜﻠﻪ ؟!‪ ..‬ﻧﻔﺮض اردﻧﺎ اﺿﺎﻓﺔ زﺑﻮن ﻃﺒﻌﺎ اﻟﺰﺑﻮن اﻻول ﺳﻮف ﻳﻜﻮن رﻗﻤﻪ ‪1‬‬
‫ﻧﺮﻳﺪ اﺿﺎﻓﺔ زﺑﻮن ﺛﺎﻧﻲ و ﺳﻮف ﻧﻜﺘﺐ ﻓﻲ اﻟﺡﻘﻞ اﻻول رﻗﻢ ‪ , 2‬ﻟﻜﻦ ﻣﺎذا ﻟﻮ وﺻﻠﻮا ﻋﺪد زﺑﻨﺎﺋﻨﺎ ﻣﻠﻴﻮن زﺑﻮن !!‬
‫هﻞ ﺳﻮف ﻧﻜﺘﺐ ﻓﻲ اﻟﺡﻘﻞ اﻻوﻟﻰ ﻣﻠﻴﻮن ﻣﻠﻴﻮن وواﺣﺪ ﻣﻠﻴﻮن و اﺛﻨﻴﻦ !! ﻃﺒﻌﺎً ﻻ ﻳﻤﻜﻨﻨﺎ ذﻟﻚ ﺑﻞ ﺳﻮف‬
‫‪.‬‬ ‫ﻧﻬﺮب ﻣﻦ هﺬﻩ اﻟﻠﻐﻪ و ﻣﻦ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻗﺪ ﺗﺘﺴﺎﺋﻞ ﻣﺎهﻮ ﺣﻞ هﺬﻩ اﻟﻤﺸﻜﻠﻪ اﻟﻜﺒﻴﺮﻩ اﻟﺘﻲ ﻗﺪ ﺗﻌﺮﻗﻠﻨﺎ ‪ ,‬ﻗﺪ ﻳﻘﻮل اﻟﺒﻌﺾ ﻻ ﻧﺡﺘﺎج اﻟﺡﻘﻮل اﻻوﻟﻰ وﻻ‬
‫ﻧﺮﻳﺪ ﺗﺮﻗﻴﻢ هﺬا اﻟﺰﺑﻮن ‪.‬‬

‫اﻟﺡﻤﺪﷲ‬ ‫وﻟﻜﻨﻨﻲ ارد ﻋﻠﻴﻬﻢ و اﻗﻮل ﺑﻞ ﻳﻤﻜﻨﻨﺎ ﺗﺮﻗﻴﻤﻪ و ﺑﺴﻬﻮﻟﻪ ﺑﺎﻟﻐﻪ و ﻣﻦ دون اي ﺗﻌﺐ او ﺷﻘﺎء‬
‫هﻨﺎك ﺧﺎﺻﻴﻪ ﺑﺈﺳﻢ ‪ auto_increment‬وهﻲ اوﺗﻮﻣﺎﺗﻴﻜﻴﻪ ﺣﻴﺚ آﻠﻤﺎ ﻗﻤﺖ ﺑﺈﺿﺎﻓﺔ زﺑﻮن ﻳﻜﺘﺐ رﻗﻢ ﺁﺧﺮ زﺑﻮن‬
‫‪ , 1 +‬ﻳﻌﻨﻲ ﻻ ﺗﺸﻘﻰ وﻻ ﺗﺘﻌﺐ اﺟﻌﻞ ﻋﻤﻠﻴﺔ اﻋﻄﺎء اﻟﺰﺑﻮن رﻗﻢ ﺧﺎص ﻟﻠﻐﺔ اﻟـ‪. SQL‬‬

‫ﺗﻜﻠﻤﺖ آﺜﻴﺮاً ﺻﺡ ؟‬

‫( ‪ ,‬اﻵن ﻧﺮﻳﺪ‬ ‫ﺣﺴﻨﺎً اﻵن ﻗﻤﻨﺎ ﺑﻮﺻﻒ ﺟﺪوﻟﻨﺎ ‪ ,‬او ﻣﺎ ﻳﺴﻤﻰ ﺑﻬﻨﺪﺳﺔ اﻟﺠﺪول )ﻋﻦ اﻟﻔﻠﺴﻠﻔﻪ ﻳﺎ ﻣﺎﺳﺘﺮ‬
‫‪.‬‬ ‫آﺘﺎﺑﺔ اﻣﺮ ﻹﻧﺸﺎء ﺟﺪوﻟﻨﺎ و ﻟﻜﻦ !! ﻧﺮﻳﺪ ﺗﺡﺪﻳﺪ اﺳﻤﺎء اﻟﺡﻘﻮل‬

‫ﻟﻨﻔﺮض ان اﻟﺡﻘﻞ اﻻول إﺳﻤﻪ ‪ id‬اي ‪ identify‬و اﻟﻤﻘﺼﻮد رﻗﻢ اﻟﻤﻌﺮف آﻤﺎ ذآﺮﻧﺎ ﻣﺴﺒﻘﺎً ﺳﻮف ﻳﻜﻮن ﻧﻮﻋﻪ‬
‫‪ INT‬اي ﻋﺪد ﺻﺡﻴﺡ و ﺳﻮف ﻧﺸﻐﻞ ﻓﻴﻪ اﻟﺨﺎﺻﻴﻪ ‪ auto_increment :‬ﻟﻜﻲ ﻳﻜﻮن اوﺗﻮﻣﺎﺗﻴﻜﻴﺎً ‪.‬‬

‫ﻟﻨﻔﺮض ان اﻟﺡﻘﻞ اﻟﺜﺎﻧﻲ اﻟﺬي هﻮ إﺳﻢ اﻟﺰﺑﻮن وﻳﻜﻮن اﺳﻤﻪ ‪ name‬ﻃﺒﻌﺎً ﻳﻜﻮن ﻧﻮﻋﻪ ﻣﻦ ‪ varchar‬اي‬
‫ﺳﻠﺴﻠﻪ ‪.‬‬

‫ﻟﻨﻔﺮض ان اﻟﺡﻘﻞ اﻟﺜﺎﻟﺚ وهﻮ رﻗﻢ اﻟﻬﺎﺗﻒ إﺳﻤﻪ ‪ phone‬ﻃﺒﻌﺎً ﻳﻜﻮن ﻧﻮﻋﻪ ‪ INT‬اي رﻗﻢ ﺻﺡﻴﺡ )ﻻﻧﻪ ﻋﻤﺮي‬
‫ﻣﺎ ﺷﻔﺖ رﻗﻢ ﺗﻴﻠﻔﻮن ﻓﻴﻪ ﺣﺮوف (‬

‫ﻟﻨﻔﺮض ان اﻟﺡﻘﻞ اﻟﺮاﺑﻊ و اﻻﺧﻴﺮ و هﻮ ﻋﻨﻮان ﻣﻮﻗﻌﻪ ﻳﻜﻮن ال ‪ varchar‬ﻻﻧﻪ ﺗﻌﺘﺒﺮ ﺳﻠﺴﻠﻪ واﺳﻤﻪ ‪. domin‬‬

‫‪.‬‬ ‫ﻧﺴﻴﺖ ان اذآﺮ ﺷﺊ ﻣﻬﻢ و ان اﻟﺴﻠﺴﻠﻪ ﺗﺨﺰن ارﻗﺎم و ﺣﺮوف‬

‫اﻵن ﻟﻨﻜﺘﺐ اﻻﻣﺮ اﻟﻤﻨﺘﻈﺮ‬

‫وهﻮ اﺳﻢ اﻟﺠﺪول ‪ ,‬ﻟﻨﻔﺮض ان اﺳﻤﻪ ‪client‬‬ ‫ﻟﺡﻈﻪ !! ﻧﺴﻴﻨﺎ ﺷﺊ ﻣﻬﻢ ﺟﺪا‬

‫)‪(14‬‬

‫‪15‬‬
‫ﺣﺴﻨﺎً اﻵن ﻟﻨﻜﺘﺐ اﻻﻣﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫( ‪CREATE TABLE client‬‬
‫‪id INT(9) NOT NULL auto_increment ,‬‬
‫‪name varchar(200) NOT NULL ,‬‬
‫‪phone INT(9) NOT NULL ,‬‬
‫‪domin varchar(150) NOT NULL ,‬‬
‫)‪primary key (id‬‬
‫;)‬

‫ﻗﺪ ﺗﻜﻮن ﻻﺣﻈﺖ اﻵﺗﻲ ‪:‬‬

‫ﻓﻲ اﻻﻣﺮ ﻳﻜﻮن هﻨﺎك اآﺜﺮ ﻣﻦ آﻠﻤﻪ ‪:‬‬

‫اﻻوﻟﻰ ‪ :‬اﺳﻢ اﻟﺡﻘﻞ‬ ‫اﻟﻜﻠﻤﻪ‬


‫اﻟﺜﺎﻧﻴﻪ ‪ :‬ﻧﻮع اﻟﺡﻘﻞ‬ ‫اﻟﻜﻠﻤﻪ‬
‫اﻟﺜﺎﻟﺜﻪ ‪ :‬ﻗﺪ ﺗﻜﻮن ‪ NULL‬او ‪ NOT NULL‬و ﺗﻢ ﺷﺮﺣﻬﺎ ﻣﻦ ﻗﺒﻞ‬ ‫اﻟﻜﻠﻤﻪ‬
‫اﻟﺮاﺑﻌﻪ ‪ :‬و هﻨﺎ ﺗﻜﻮن اﻟﺨﺼﺎﺋﺺ اﻻﺿﺎﻓﻴﻪ‬ ‫اﻟﻜﻠﻤﻪ‬

‫ﺣﺴﻨﺎً و اﺧﻴﺮاً اﻧﺸﺌﻨﺎ اﻟﺠﺪول‬

‫ﻃﺒﻌﺎ ﺑﻌﺪ إﻧﺸﺎء اﻟﺠﺪول ﻧﻀﻴﻒ اﻟﻤﻌﻠﻮﻣﺎت و ﻧﺡﺬﻓﻬﺎ و ﻧﺡﺪّﺛﻬﺎ ‪ ,‬وﻟﻜﻦ ﻟﻦ ﻧﺘﻨﺎول اﻵن ﻃﺮﻳﻘﺔ اﺿﺎﻓﺔ‬
‫اﻟﻤﻌﻠﻮﻣﺎت و ﺣﺬف و ﺗﺡﺪﻳﺜﻬﺎ ‪ ,‬ﺑﻞ ﺳﻮف ﻧﻜﻤﻞ ﻃﺮﻳﻘﻨﺎ ﻣﻊ اﻟﺠﺪاول ﺛﻢ ﺑﺈذن اﷲ ﻧﺒﺪأ ﺑﺎﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫ﺗﻔﺮﻳﻎ ﻣﺡﺘﻮﻳﺎت اﻟﺠﺪول ‪:‬‬

‫ﻧﻔﺘﺮض اﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺈﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت !! ‪ ,‬و ﻧﺮﻳﺪ ﺣﺬﻓﻬﺎ ﺟﻤﻴﻌﻬﺎ ‪.‬‬

‫ﺣﺴﻨﺎً ﻟﻨﻔﺮض ان اﻟﺡﻞ هﻮ آﺘﺎﺑﺔ اواﻣﺮ ﺣﺬف اﻟﻤﻌﻠﻮﻣﺎت ﻟﻜﻞ زﺑﻮن ﺣﺘﻰ ﻧﺡﺬﻓﻬﻢ آﻠﻬﻢ ‪ ,‬وﻟﻜﻦ !! ﻧﻔﺮض ان‬
‫ﻟﺪﻳﻨﺎ ‪ 1000‬زﺑﻮن !! هﻞ ﺳﻨﻜﺘﺐ اﻻﻣﺮ ‪ 1000‬ﻣﺮﻩ ؟!‪..‬‬

‫ﺑﻞ ﻳﻮﺟﺪ ﺣﻞ اﺳﻤﻪ ﺗﻔﺮﻳﻎ اﻟﺠﺪول ﺑﻮاﺳﻄﺔ اﻻﻣﺮ ‪. DELETE‬‬

‫ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ اﻻﻣﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫;‪DELETE FROM tablename‬‬

‫ﻃﺒﻌﺎً اﻟﻤﻘﺼﻮد ب‪ tablename‬اﺳﻢ اﻟﺠﺪول ‪ ,‬ﺣﺴﻨﺎً اﻵن ﻋﻨﺪ آﺘﺎﺑﺔ هﺬا اﻻﻣﺮ ﺳﻮف ﻳﺡﺬف آﻞ اﻟﻤﻌﻠﻮﻣﺎت‪.‬‬

‫ﻗﺪ ﺗﺘﺴﺎﺋﻞ هﻞ ﻳﻤﻜﻨﻨﻲ ﺣﺬف ﻣﻌﻠﻮﻣﻪ واﺣﺪ ﻓﻘﻂ !‬

‫اﻟﺠﻮاب ﻃﺒﻌﺎً ﻧﻌﻢ و ﺑﺈﺳﺘﺨﺪام ﻧﻔﺲ اﻻﻣﺮ ﻟﻜﻦ ﺑﺈﺿﺎﻓﺔ اﻟﺠﻤﻠﻪ اﻟﺸﺮﻃﻴﻪ ‪ WHERE‬اﻟﺘﻲ ﺳﻮف ﻧﺪرﺳﻬﺎ ﻓﻲ‬
‫اﻟﻔﺼﻮل اﻟﻘﺎدﻣﻪ ان ﺷﺎء اﷲ‪.‬‬

‫‪16‬‬
‫ﺣﺬف اﻟﺠﺪول ‪:‬‬

‫( هﻨﺎك اﻣﺮ ﺑﺴﻴﻂ ﻟﺡﺬف اﻟﻤﻌﻠﻮﻣﺎت‬ ‫ﺣﺴﻨﺎً ‪ ,‬ﻟﻨﻔﺮض اﻧﻨﺎ اﻧﺸﺎﺋﻨﺎ ﺟﺪول وﻻ ﻧﺮﻳﺪﻩ )ﺗﻮهﻘﻨﺎ ﻓﻴﻪ و ﻣﺎ ﻧﺒﻴﻪ‬
‫و ﺣﺬﻓﻪ ﻧﻬﺎﺋﻴﺎً ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬

‫اﻵن ﻟﻨﻌﺮف ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ هﺬا اﻻﻣﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫;‪DROP TABLE tablename‬‬

‫‪.‬‬ ‫ﻃﺒﻌﺎً ُﻳﻘﺼﺪ ﺑﺎﻟـ ‪ tablename‬اﺳﻢ اﻟﺠﺪول اﻟﺬي ﻧﺮﻳﺪ ﺣﺬﻓﻪ‬

‫ﺣﺴﻨﺎً اﻵن ارﺗﺎح ﻗﻠﻴﻼً ﻟﻨﺪﺧﻞ ﺑﺎﻟﻔﺼﻞ‬ ‫هﻞ اﺗﻌﺒﻚ هﺬا اﻟﻘﺴﻢ ؟!‪..‬‬
‫اﻟﺴﺎدس ‪.‬‬

‫‪17‬‬
‫ﻋﻦ اﻟﻔﺼﻞ ‪:‬‬
‫ﻓﻲ هﺬا اﻟﻔﺼﻞ ﺳﻮف ﻧﺘﻌﻠﻢ ﻃﺮﻳﻘﺔ اﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ,‬ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﺣﺬف و ﺗﺡﺪﻳﺚ‬
‫هﺬﻩ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫اﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت ‪:‬‬


‫آﻤﺎ درﺳﻨﺎ ﻓﻲ اﻟﻔﺼﻮل اﻟﺴﺎﺑﻘﻪ ﻋﻦ ﻃﺮﻳﻘﺔ اﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺛﻢ ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء ﺟﺪول ‪ ,‬و‬ ‫ﺣﺴﻨﺎً‬
‫اﻓﺘﺮﺿﻨﺎ ان ﻟﺪﻳﻨﺎ ﺷﺮآﺔ اﺳﺘﻀﺎﻓﻪ و ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء ﺟﺪول ﻋﻠﻰ هﺬا اﻻﺳﺎس ‪ ,‬ﺣﺴﻨﺎً ﻻ ﻳﻌﻘﻞ ﺟﺪول ﺑﻼ‬
‫ﻧﻔﺮض ان ﻟﺪﻳﻨﺎ زﺑﻮن ﺟﺪﻳﺪ و ﻧﺮﻳﺪ ﺗﺴﺠﻴﻞ ﻣﻌﻠﻮﻣﺎﺗﻪ ﻓﻲ اﻟﺠﺪول ‪. client‬‬ ‫ﻣﻌﻠﻮﻣﺎت‬

‫هﻨﺎك اﻣﺮ ﺧﺎص ﻓﻲ اﻟـ ‪ , SQL‬ﺣﻴﺚ ﻳﺴﻤﺡ ﻟﻨﺎ ﺑﺈﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ اﻟﻜﻮد ‪:‬‬

‫آﻮد ‪:‬‬
‫;)'‪INSERT INTO tablename VALUES ('info1','info2‬‬

‫ﻃﺒﻌﺎً اﻟﻤﻘﺼﻮد ﺑـ ‪ : tablename‬اﺳﻢ اﻟﺠﺪول اﻟﺬي ﻧﺮﻳﺪ اﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت ﻓﻴﻪ‬

‫ﺑﺎﻟﻨﺴﺒﻪ ﻟـ ‪ info1‬و ‪ info2‬هﻢ اﻟﻤﻌﻠﻮﻣﺎت ‪ ,‬ﻃﺒﻌﺎ ﻻ ﺗﻜﻮن اﻟﻤﻌﻠﻮﻣﺎت ﺑﻌﺪد ﺛﺎﺑﺖ ‪ ,‬ﻣﺜﻼ ﻟﺪﻳﻨﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻘﻪ‬
‫اﺿﻔﻨﺎ ﻣﻌﻠﻮﻣﺘﻴﻦ ‪ ,‬ﻟﻜﻦ ﻟﻴﺲ آﻞ ﺟﺪول ﻳﺘﻢ اﺿﺎﻓﺔ ﻣﻌﻠﻮﻣﺘﻴﻦ ﻟﻪ ﺑﻞ ﺣﺴﺐ ﻋﺪد اﻟﺡﻘﻮل ‪.‬‬

‫ﻟﻜﻦ ﺳﻮف ﻳﻜﻮن اوﺿﺡ ﻋﻨﺪﻣﺎ اﻋﻄﻴﻚ ﻣﺜﺎل ﻋﻠﻰ‬ ‫اﻋﻠﻢ اﻧﻚ ﻟﻢ ﺗﻔﻬﻢ ﻻن اﻟﻜﻼم ﻏﻴﺮ واﺿﺡ ‪%100‬‬
‫ﺟﺪوﻟﻨﺎ اﻟﺨﺎص ﺑﺸﺮآﺔ اﻻﺳﺘﻀﺎﻓﻪ ‪.‬‬

‫ﺣﺴﻨﺎً ﻧﻔﺮض اﺗﻰ ﻟﻨﺎ اﺣﺪ اﻟﻌﻤﻼء و ﻃﻠﺐ ﻣﻨّﺎ ﻣﺴﺎﺣﻪ ‪ ,‬و ﻧﺮﻳﺪ ﺗﺴﺠﻴﻞ ﻣﻌﻠﻮﻣﺎﺗﻪ ﻓﻲ اﻟﺠﺪول ‪ ,‬ﺳﻮف‬
‫ﻧﻜﺘﺐ اﻣﺮ اﻻﺿﺎﻓﻪ ‪ ,‬ﻟﻜﻦ !!‬

‫آﻴﻒ ﺳﻴﻜﻮن ﺗﺮﺗﻴﺐ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻨﺪ اﻻﺿﺎﻓﻪ ؟!‪..‬‬

‫و آﻞ ﻣﻌﻠﻮﻣﻪ ﺳﻮف ﻧﻀﻴﻒ ؟!‪..‬‬

‫آﻤﺎ ذآﺮﻧﺎ ﺳﺎﺑﻘﺎً ان ﻋﺪد اﻟﻤﻌﻠﻮﻣﺎت ﺣﺴﺐ ﺣﻘﻮل اﻟﺠﺪول ‪ ,‬ﻧﺡﻦ ﻋﺮﻓﻨﺎ ﺳﺎﺑﻘﺎً ان ﺟﺪوﻟﻨﺎ ﻳﺡﺘﻮي ﻋﻠﻰ‬
‫ارﺑﻌﺔ ﺣﻘﻮل ‪ ,‬اي ﺳﻮف ﻧﻀﻴﻒ ‪ 4‬ﻣﻌﻠﻮﻣﺎت ‪.‬‬

‫و اﺗﻔﻘﻨﺎ إن اﻟﺡﻘﻮل هﻲ ‪:‬‬

‫‪ : id‬و ذآﺮﻧﺎ اﻧﻪ اﻻﺳﻢ اﻟﺨﺎﺻﻪ ﻟﻠﺰﺑﻮن ﺣﻴﺚ ﻳﻜﻮن رﻗﻢ اوﺗﻮﻣﺎﺗﻴﻜﻲ‬
‫‪ : name‬وآﻤﺎ ذآﺮﻧﺎ اﻧﻪ اﺳﻢ اﻟﺰﺑﻮن‬
‫‪ : phone‬وذآﺮﻧﺎ اﻧﻪ رﻗﻢ هﺎﺗﻒ اﻟﻌﻤﻴﻞ‬
‫‪ : domin‬وذآﺮﻧﺎ اﻧﻪ ﻋﻨﻮان ﻣﻮﻗﻊ اﻟﻌﻤﻴﻞ‬

‫‪18‬‬
‫ﺣﺴﻨﺎً اﻵن ﺑﻌﺪ ﻣﺎ ﻋﺮﻓﻨﺎ اﻧﻨﺎ ﻧﺮﻳﺪ اﺿﺎﻓﺔ ‪ 4‬ﻣﻌﻠﻮﻣﺎت ‪ ,‬ﻳﺠﺐ ان ﻧﻜﺘﺒﻬﺎ ﺑﺎﻟﺘﺮﺗﻴﺐ ﺣﺴﺐ اﻟﺡﻘﻞ ‪,‬‬

‫ﻳﻌﻨﻲ ﻋﻨﺪﻣﺎ اﻧﺸﺌﻨﺎ اﻟﺠﺪول آﺎن هﻨﺎك ﺗﺮﺗﻴﺐ ﺧﺎص ﻟﻠﺡﻘﻮل ‪ ,‬آﺎن اﻟﺡﻘﻞ ‪ id‬هﻮ اﻻول و ‪ name‬هﻮ اﻟﺜﺎﻧﻲ و‬
‫اﻟﺜﺎﻟﺚ هﻮ ‪ phone‬و اﻻﺧﻴﺮ هﻮ ‪ , domin‬ﺣﺴﺐ اﻟﺘﺮﺗﻴﺐ اﻟﺘﺎﻟﻲ ﺳﻮف ﻧﻜﺘﺐ اﻟﻤﻌﻠﻮﻣﺎت ﻻﻧﻪ اﻟﺘﺮﺗﻴﺐ اﻟﺬي‬
‫ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء اﻟﺠﺪول ﺑﻪ ‪.‬‬

‫و زودﻧﺎ ﺑﺎﻟﻤﻌﻠﻮﻣﺎت‬ ‫ﺣﺴﻨﺎً ‪ ,‬اﻵن ﻧﻔﺘﺮض ان اﺣﺪ اﻟﻌﻤﻼء اﺗﻰ إﻟﻰ اﻟﺸﺮآﻪ و ﻃﻠﺐ اﺳﺘﻀﺎﻓﺔ ﻣﻮﻗﻌﻪ‬
‫اﻟﺘﺎﻟﻴﻪ ‪:‬‬

‫اﺳﻤﻪ ‪nawaf :‬‬


‫رﻗﻢ هﺎﺗﻔﻪ ‪1234567 :‬‬
‫(‬ ‫ﻋﻨﻮان ﻣﻮﻗﻌﻪ ‪) yahoo.com :‬ﻣﺜﺎل ﻓﻘﻂ‬

‫آﻤﺎ ذآﺮﻧﺎ اﻧﻪ رﻗﻢ اوﺗﻮﻣﺎﺗﻴﻜﻲ ﺗﻀﻌﻪ ﻟﻐﺔ اﻟـ ‪. SQL‬‬ ‫ﻻﺗﺴﺄﻟﻨﻲ ﻋﻦ اﻟـ ‪id‬‬

‫اﻵن ﻧﻜﺘﺐ اﻻﻣﺮ‬

‫آﻮد ‪:‬‬
‫;)'‪INSERT INTO client VALUES ('NULL','nawaf','1234567','yahoo.com‬‬

‫ﻋﻠﻰ ﻓﻜﺮﻩ ‪ ,‬ﻗﺪ ﺗﺘﺴﺎﺋﻞ اوﻻً ﻋﻦ ﺳﺒﺐ آﺘﺎﺑﺘﻲ ﻟﻺﺳﻢ ﺑﺎﻟﻠﻐﻪ اﻻﻧﺠﻠﻴﺰﻳﻪ ﻗﺪ ﺗﺘﺴﺎﺋﻞ ان اﻟﻠﻐﻪ ﻻ ﺗﺪﻋﻢ‬
‫اﻟﻌﺮﺑﻴﻪ ‪ ,‬ﺑﻞ ﺗﺪﻋﻤﻬﺎ دﻋﻢ آﺎﻣﻞ ان ﺷﺎء اﷲ ‪ ,‬ﻟﻜﻨﻨﻲ آﺘﺒﺖ اﻻﺳﻢ ﺑﺎﻟﻠﻐﻪ اﻻﻧﺠﻠﻴﺰﻳﻪ ﻟﻜﻲ ﻳﻈﻬﺮ اﻟﻤﺜﺎل‬
‫واﺿﺡ ﻓﻲ اﻟﻜﺘﺎب ‪.‬‬

‫ﺑﺎﻟﻨﺴﺒﻪ ﻟﻠﺘﺴﺎﺋﻞ اﻟﺜﺎﻧﻲ اﻟﺬي ﻗﺪ ﺗﺘﺴﺎﺋﻠﻪ هﻮ وﺿﻊ ‪ NULL‬ﻓﻲ ﻣﻜﺎن ﺣﻘﻞ اﻟـ ‪ id‬هﺎ ﻧﺡﻦ ﻧﺬآﺮهﺎ ﻣﺮﻩ‬
‫اﺧﺮى ‪ ,‬آﻤﺎ ذآﺮﻧﺎ اﻧﻪ رﻗﻢ اوﺗﻮﻣﺎﺗﻴﻜﻲ وﻻ ﻳﺠﺐ ﺗﺡﺪﻳﺪ ﻗﻴﻤﺔ اﻟﺡﻘﻞ ﻓﻘﻂ ﻧﻀﻊ اﻟﻜﻠﻤﻪ ‪) NULL‬أي ﻓﺎرغ( ﻟﻜﻲ‬
‫ﺗﻘﻮم ﻟﻐﺔ ال‪ SQL‬ﺑﻮﺿﻊ رﻗﻢ ﻣﻤﻴﺰ ﺧﺎص ﺑﻪ ‪.‬‬

‫( آﻴﻒ ﻧﺘﺼﺮف ؟!‪ ..‬هﻞ ﻧﻀﻊ‬ ‫ﺣﺴﻨﺎً ‪ ,‬ﻧﻔﺮض ان اﺣﺪ اﻟﻌﻤﻼء ﻻ ﻳﺮﻳﺪ اﻋﻄﺎﺋﻨﺎ رﻗﻢ هﺎﺗﻔﻪ )ﺛﻘﻴﻞ دم ﺻﺡ‬
‫ﻣﻜﺎن رﻗﻢ هﺎﺗﻔﻪ اﺻﻔﺎر ﻣﺜﻼً ؟!‪..‬‬

‫ﻻ ﻃﺒﻌﺎً ﻳﻮﺟﺪ ﺣﻞ اﻓﻀﻞ ﻣﻦ هﺬا اﻟﺡﻞ ‪ ,‬و هﻮ ﺗﻌﺒﺌﺔ ﺣﻘﻮل ﻣﻌﻴﻨﻪ ﻓﻘﻂ ‪ ,‬ﻣﺜﻼً ‪ ,‬ارﻳﺪ ان اﺿﻴﻒ ﻣﻌﻠﻮﻣﺎت اﺣﺪ‬
‫اﻟﺰﺑﺎﺋﻦ و ارﻳﺪ آﺘﺎﺑﺔ اﺳﻤﻪ ﻓﻘﻂ و ارﻳﺪ ﺗﺠﺎهﻞ رﻗﻢ هﺎﺗﻔﻪ و ﻋﻨﻮان ﻣﻮﻗﻌﻪ ‪ ,‬او ﻣﺜﻼً اﻧﺎ ﻻ اﺣﻔﻆ ﺗﺮﺗﻴﺐ اﻟﺡﻘﻮل‬
‫ﻟﻠﺠﺪول ‪ ,‬و ارﻳﺪ ان اآﺘﺐ اﻟﻤﻌﻠﻮﻣﺎت ﺣﺴﺐ ﺗﺮﺗﻴﺒﻲ اﻟﺨﺎص ﻟﻠﺡﻘﻮل ‪ ,‬ﻃﺒﻌﺎً ﻳﻤﻜﻦ ذﻟﻚ و ﻣﻦ ﺧﻼل اﺿﺎﻓﺔ‬
‫ﻗﻮﺳﻴﻦ ﺑﻌﺪ اﺳﻢ اﻟﺠﺪول و آﺘﺎﺑﺔ اﺳﻤﺎء اﻟﺡﻘﻮل اﻟﻤﻄﻠﻮﺑﻪ ‪.‬‬

‫ﻟﻨﺄﺧﺬ ﻣﺜﺎل ‪ ,‬آﻤﺎ ذآﺮﻧﺎ ﻻ ﻧﺮﻳﺪ اﺿﺎﻓﺔ رﻗﻢ اﻟﻬﺎﺗﻒ ﻟﻠﺰﺑﻮن ﻧﻮاف ﻣﺜﻼً ‪:‬‬

‫آﻮد ‪:‬‬
‫;)'‪INSERT INTO client(id,name,domin) VALUES ('NULL','nawaf','yahoo.com‬‬

‫‪19‬‬
‫ﻟﻘﺪ اﺿﻔﻨﺎ اﻟﺰﺑﻮن ﻧﻮاف ﺑﺪون رﻗﻢ هﺎﺗﻔﻪ ‪ ,‬و ﻳﻤﻜﻨﺎ ﺗﺮﺗﻴﺐ اﻣﺎآﻦ اﻟﺡﻘﻮل آﻤﺎ ﻧﺸﺎء ‪ ,‬ﻣﺜﻼً ‪:‬‬

‫آﻮد ‪:‬‬
‫;)'‪INSERT INTO client(id,domin,name) VALUES ('NULL','yahoo.com','nawaf‬‬

‫آﻤﺎ ﺗﺮى !! ﺟﻌﻠﻨﺎ ﻋﻨﻮان ﻣﻮﻗﻊ اﻟﺰﺑﻮن ﻧﻮاف ﻗﺒﻞ اﺳﻤﻪ ‪ ,‬و ذﻟﻚ ﺑﺘﻐﻴﻴﺮ ﺑﺴﻴﻂ ﺟﺪاً ‪.‬‬

‫ﺑﻌﺪﻣﺎ اﻧﺘﻴﻬﻨﺎ ﻣﻦ ﻃﺮﻳﻘﺔ اﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت ﻟﻨﺮى آﻴﻒ ﻳﻤﻜﻨﻨﺎ ﺣﺬف هﺬﻩ اﻟﻤﻌﻠﻮﻣﺎت‬

‫ﺣﺬف اﻟﻤﻌﻠﻮﻣﺎت ‪:‬‬


‫اﻵن ‪ ,‬ﺑﻌﺪ ان اﺿﻔﻨﺎ اﻟﺰﺑﺎﺋﻦ ‪ ,‬ﻟﻨﻔﺮض ان اﺣﺪهﻢ ﻳﺮﻳﺪ ﺳﺡﺐ اﺳﺘﻀﺎﻓﺘﻪ ﻣﻦ اﻟﺸﺮآﻪ وﻻ ﻳﺮﻳﺪ اﻟﻤﺴﺎﺣﻪ‬
‫اﻟﻤﻮﺟﻮدﻩ ‪ ,‬و ﻗﻤﻨﺎ ﺑﺡﺬﻓﻬﺎ ﻣﻊ ﻣﻠﻔﺎﺗﻬﺎ ﻃﺒﻌﺎً ﻻ ﺑﺪ ﻣﻦ ﺣﺬف ﺳﺠﻞ اﻟﺰﺑﻮن ﻣﻦ ﺟﺪول ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬

‫ﻃﺒﻌﺎً ﻳﻤﻜﻨﻨﺎ ذﻟﻚ ﻣﻦ ﺧﻼل اﻻﻣﺮ اﻟﺬي ﺗﻨﺎوﻟﻨﺎﻩ ﺳﺎﺑﻘﺎً وهﻮ ‪ DELETE‬ﻣﻊ اﺳﺘﺨﺪام اﺣﺪ اواﻣﺮ اﻟﺸﺮط اﻟﺬي‬
‫ﺳﻮف ﻧﺪرﺳﻪ ﻓﻲ اﻟﻔﺼﻮل اﻟﻘﺎدﻣﻪ ﺑﺈذن اﷲ وهﻮ ‪. WHERE‬‬

‫ﺣﺴﻨﺎً اﻵن ﻧﻔﺮض اﻧﻨﺎ ﻧﺮﻳﺪ ﺣﺬف اﻟﺰﺑﻮن ﻧﻮاف اﻟﺬي ﻋﻨﻮان ﻣﻮﻗﻌﻪ ‪ yahoo.com‬ﻃﺒﻌﺎً ﻧﺡﻦ ﻧﻌﺮف ان اﻟﺡﻘﻞ‬
‫اﻟﺨﺎص ﺑﺈﺳﻢ اﻟﻤﻮﻗﻊ هﻮ ‪ , domin‬ﺣﺴﻨﺎً اﻻﻣﺮ ‪ WHERE‬ﻳﺮﻳﺪ ﻣﻨّﺎ اﺳﻢ اﻟﺡﻘﻞ و اﻟﻘﻴﻤﻪ ‪.‬‬

‫ﺣﺴﻨﺎً ﻟﻨﻜﺘﺐ اﻻﻣﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫;'‪DELETE FROM client WHERE domin='yahoo.com‬‬

‫اﻵن ﻗﺪ ﺗﺴﺄل ﻟﻤﺎذا ﻟﻢ ﻧﺡﺬف اﻟﺰﺑﻮن ﺑﺪﻻﻟﺔ اﻻﺳﻢ ؟!‪..‬‬

‫اي ﻟﻤﺎذا ﻟﻢ ﻧﻀﻊ ﻓﻲ اﻻﻣﺮ اﻟﺡﻘﻞ ‪ name‬و ﺑﻌﺪ = ﻧﻀﻊ ‪. nawaf‬‬

‫ﺣﺴﻨﺎً ﻻﺟﻴﺒﻚ ‪ ,‬ﻟﻨﻔﺮض ان ﺟﺪوﻟﻨﺎ ﻳﺡﺘﻮي ﻋﻠﻰ ‪ 100‬زﺑﻮن ‪ 10 ,‬ﻣﻦ هﺆﻻء اﻟﺰﺑﺎﺋﻦ اﺳﻤﺎﺋﻬﻢ )ﻧﻮاف( !!‬

‫اذا آﻨّﺎ ﻗﺪ ﺣﺬﻓﻨﺎ هﺬا اﻟﺰﺑﻮن ﺑﺪﻻﻟﺔ اﻻﺳﻢ ‪ ,‬اي ﻧﻮاف ﺳﻮف ﻳﺘﻢ ﺣﺬف ال‪ 10‬زﺑﺎﺋﻦ !! ﻻن اﺳﻤﺎﺋﻬﻢ )ﻧﻮاف( ‪,‬‬
‫و ﻟﻜﻦ ﻋﻨﻮان اﻟﻤﻮﻗﻊ ﻟﻦ ﻳﻜﻮن ﻣﺘﻜﺮر ‪ ,‬ﻣﺜﻼ ﻋﻨﻮان ﻣﻮﻗﻊ ﻧﻮاف رﻗﻢ ‪ yahoo.com 1‬اﻟﺬي ﻳﻠﻴﻪ ‪. nawaf.com‬‬

‫هﺎ ﻗﺪ ﺣﺎن وﻗﺘﻪ ‪ ,‬ﻟﻘﺪ ذآﺮﻧﺎ‬ ‫ﺣﺴﻨﺎً ﻗﺪ ﻳﻜﻮن هﻨﺎك ﺗﺸﺎﺑﻪ ﻓﻲ ﻋﻨﻮاﻳﻦ اﻟﻤﻮاﻗﻊ !! ‪ ,‬هﻞ ﺗﺘﺬآﺮ اﻟﺡﻘﻞ ‪id‬‬
‫ﺳﺎﺑﻘﺎً ان ﻓﻲ هﺬا اﻟﺡﻘﻞ رﻗﻢ ﻣﻤﻴﺰ ‪ ,‬أي ﻟﻜﻞ زﺑﻮن رﻗﻢ ﻣﻤﻴﺰ ﻓﻲ هﺬا اﻟﺡﻘﻞ ‪.‬‬

‫‪.‬‬ ‫هﺎ ﻗﺪ ﻗﻤﻨﺎ ﺑﺡﻞ اﻟﻤﺸﻜﻠﻪ ﻣﻦ ﺟﺬورهﺎ‬

‫‪.‬‬ ‫اﻵن ﻟﻨﻨﺘﻘﻞ ﻟﻠﺘﺎﻟﻲ‬

‫‪20‬‬
‫ﺗﺡﺪﻳﺚ اﻟﻤﻌﻠﻮﻣﺎت ‪:‬‬
‫‪ ,‬ﻟﻨﻔﺮض ان اﺣﺪ اﻟﺰﺑﻨﺎء ﻗﺎم ﺑﺘﻐﻴﻴﺮ رﻗﻢ هﺎﺗﻔﻪ !! وﻳﺮﻳﺪﻧﺎ ان ﻧﻀﻊ رﻗﻢ هﺎﺗﻔﻪ‬ ‫هﺎ ﻧﺡﻦ ﻧﻔﺮض ﻓﺮﺿﺎً ﺟﺪﻳﺪاً‬
‫اﻟﺠﺪﻳﺪ ﻟﺪﻳﻨﺎ ‪ ,‬أي ﺳﻨﺒﺪل رﻗﻢ هﺎﺗﻔﻪ اﻟﻘﺪﻳﻢ ﺑﺎﻟﺠﺪﻳﺪ ‪.‬‬

‫ﻗﺪ ﻳﻔﺘﺮض اﺣﺪاً ان اﻟﺡﻞ هﻮ ﺣﺬﻓﻪ و اﻋﺎدة اﺿﺎﻓﺘﻪ إﻟﻰ اﻟﺠﺪول ﺑﺎﻟﻤﻌﻠﻮﻣﺎت اﻟﺠﺪﻳﺪﻩ ‪.‬‬

‫ﻃﺒﻌﺎً هﺬا اﻟﺡﻞ ﻏﻴﺮ ﻣﻨﺎﺳﺐ ‪ ,‬هﻨﺎك ﺣﻞ اﻓﻀﻞ ﻣﻨﻪ وهﻮ اﻣﺮ ﺑﺈﺳﻢ ‪. UPDATE‬‬

‫ﻃﺮﻳﻘﺔ آﺘﺎﺑﺔ هﺬا اﻻﻣﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫;'‪UPDATE tablename SET field='newinfo‬‬

‫اﻟﻤﻘﺼﻮد آﺎﻟﻌﺎدﻩ ﺑـ ‪ tablename‬هﻮ اﺳﻢ اﻟﺠﺪول‬


‫اﻟﻤﻘﺼﻮد ﺑــ ‪ field‬اﺳﻢ اﻟﺡﻘﻞ اﻟﻤﻮﺟﻮد ﺑﻪ اﻟﻘﻴﻤﻪ اﻟﺘﻲ ﻧﺮﻳﺪ ﺗﻐﻴﻴﺮهﺎ‬
‫اﻟﻤﻘﺼﻮد ﺑـ ‪ newinfo‬اﻟﻤﻌﻠﻮﻣﻪ اﻟﺠﺪﻳﺪﻩ‬

‫‪.‬‬ ‫اﻋﺮف اﻧﻚ ﻟﻢ ﺗﻔﻬﻢ ﻣﻌﻨﻰ ‪ , field‬ﺳﻮف اﺷﺮﺣﻬﺎ ﺑﺎﻟﺘﻔﺼﻴﻞ‬

‫ﻧﺡﻦ ذآﺮﻧﺎ ان اﺣﺪ اﻟﻌﻤﻼء ﻗﺎم ﺑﺘﻐﻴﻴﺮ رﻗﻢ هﺎﺗﻔﻪ ‪ ,‬و ذآﺮﻧﺎ آﺬﻟﻚ ان اﻟﺡﻘﻞ اﻟﺨﺎص ﺑﺮﻗﻢ اﻟﻬﺎﺗﻒ اﺳﻢ‬
‫‪.‬‬ ‫‪ , phone‬هﻞ وﺻﻠﺖ اﻵن‬

‫ﺣﺴﻨﺎً ﺳﻮف اآﺘﺐ ﻟﻚ اﻟﻜﻮد ﻟﻜﻲ ﺗﻔﻬﻤﻬﺎ اآﺜﺮ ‪:‬‬

‫آﻮد ‪:‬‬
‫;'‪UPDATE client SET phone='87654321' WHERE domin='yahoo.com‬‬

‫‪.‬‬ ‫هﻞ ﻓﻬﻤﺖ اﻵن‬

‫اﻵن ﻻﺣﻆ اﻧﻨﺎ وﺿﻌﻨﺎ اﻟﺸﺮط ‪ WHERE‬و ﺧﺼﺼﻨﺎ اﻟﺘﻐﻴﻴﺮ ﻟﻠﺰﺑﻮن ﻧﻮاف ﺻﺎﺣﺐ اﻟﻤﻮﻗﻊ ‪ , yahoo.com‬ﻟﻨﻔﺮض‬
‫اﻧﻨﺎ ﻟﻢ ﻧﻀﻊ هﺬﻩ اﻟﺠﻤﻠﻪ !!‬

‫ﺳﻮف ﺗﺘﻐﻴﺮ هﻮاﺗﻒ آﻞ اﻟﺰﺑﺎﺋﻦ ﻟﺪﻳﻨﺎ ‪.‬‬

‫اﺗﺬآﺮ ﻓﻲ ﻣﺮﻩ ﻣﻦ اﻟﻤﺮات و ﻋﻨﺪﻣﺎ آﻨﺖ اﻃﻮر اﺣﺪ اﻟﺴﻜﺮﺑﺘﺎت ﻃﺒﻌﺎً آﻨﺖ )وﻻ زﻟﺖ( اﺳﺘﺨﺪم اﻟـ ‪ SQL‬ﻓﻲ‬
‫ﺳﻜﺮﺑﺘﺎﺗﻲ ‪ ,‬آﻨﺖ ارﻳﺪ ﻋﻤﻞ ﺗﺡﺪﻳﺚ ﻟﺡﻘﻞ واﺣﺪ ‪ ,‬ﻧﺴﻴﺖ اﻟﻜﻠﻤﻪ ‪ WHERE‬ﻓﺬهﺒﺖ ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎت‬
‫‪ ,‬ﻓﻨﺼﻴﺡﺘﻲ ان ﻻ ﺗﺘﺴﺮع ﻓﻲ آﺘﺎﺑﺔ اﻻﻣﺮ و ﻻ ﺗﺘﻌﺠﻞ اﻻﻣﻮر ‪ ,‬ﻓﻔﻲ‬ ‫اﻟﻤﻬﻤﻪ و اﺿﻄﺮﻳﺖ ﻻﻋﺎدة آﺘﺎﺑﺘﻬﺎ‬
‫اﻟﻌﺠﻠﻪ اﻟﻨﺪاﻣﻪ و ﻓﻲ اﻟﺘﺄﻧﻲ اﻟﺴﻼﻣﻪ‬

‫‪.‬‬ ‫ﺣﺴﻨﺎً ‪ ,‬اﻵن اﻧﺘﻴﻬﻨﺎ ﻣﻦ هﺬا اﻟﻔﺼﻞ ‪ ,‬ﻟﻨﻨﺘﻘﻞ إﻟﻰ اﻟﻔﺼﻞ اﻟﺘﺎﻟﻲ‬

‫‪21‬‬
‫ﻋﻦ اﻟﻔﺼﻞ ‪:‬‬
‫ﻓﻲ هﺬا اﻟﻔﺼﻞ ﺳﻮف ﻧﺘﻌﻠﻢ ﻃﺮﻳﻘﺔ اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺧﺰﻧﺎهﺎ ‪ ,‬ﺳﻮاء آﻞ اﻟﻤﻌﻠﻮﻣﺎت ‪ ,‬او ﺑﻌﺾ‬
‫اﻟﻤﻌﻠﻮﻣﺎت ‪ ,‬او اي ﻣﻌﻠﻮﻣﻪ ﻣﺡﺪدﻩ ‪.‬‬

‫إﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت ‪:‬‬


‫‪ ,‬ﻟﻨﻔﺮض اﻧﻨﺎ ﻧﺮﻳﺪ اﺳﺘﺨﺮاج ﻣﻌﻠﻮﻣﺎت اﻟﺰﺑﺎﺋﻦ ﻟﺪﻳﻨﺎ ؟!‪..‬‬ ‫هﺎ ﻧﺡﻦ ﻧﻌﻮد إﻟﻰ اﻻﻓﺘﺮاﺿﺎت‬

‫هﺬا ﺑﺴﻴﻂ ﺟﺪاً ‪ ,‬و هﻮ ﻣﻦ ﺧﻼل اﻻﻣﺮ ‪ SELECT‬اﻟﺬي ﻳﻜﺘﺐ ﺑﻬﺬﻩ اﻟﻄﺮﻳﻘﺔ ‪:‬‬

‫آﻮد ‪:‬‬
‫;‪SELECT * FROM tablename‬‬

‫اﻟﻤﻘﺼﻮد ﺑــ ‪ tablename‬هﻮ اﻟﺠﺪول ‪.‬‬

‫ﻋﻨﺪ آﺘﺎﺑﺘﻨﺎ هﺬا اﻻﻣﺮ ﺗﻠﻘﺎﺋﻴﺎً ‪ ,‬ﺳﻮف ﺗﻈﻬﺮ اﺳﻤﺎء آﻞ اﻟﺡﻘﻮل و اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺨﺰﻧﻪ ﻓﻴﻬﺎ ‪.‬‬

‫ﺣﺴﻨﺎً ‪ ,‬ﻟﻨﻔﺮض اﻧﻚ ﺗﺮﻳﺪ ﻓﻘﻂ اﺳﺘﺨﺮاج ارﻗﺎم هﻮاﺗﻒ اﻟﻌﻤﻼء ‪.‬‬

‫ﻃﺒﻌﺎً ﻳﻤﻜﻨﻚ ذﻟﻚ و هﻮ ﻣﻦ ﺧﻼل ﺗﻐﻴﻴﺮ * إﻟﻰ اﺳﻢ اﻟﺡﻘﻞ وهﻮ ‪. phone‬‬

‫ﻧﺴﺘﻨﺘﺞ ﻣﻦ ذﻟﻚ اﻧﻪ اذا اردﻧﺎ اﺳﺘﺨﺮاج ﺟﻤﻴﻊ اﻟﺡﻘﻮل و ﻣﻌﻠﻮﻣﺎﺗﻬﺎ ﻧﻜﺘﺐ * ﺑﻴﻦ اﻟﻜﻠﻤﺘﻴﻦ ‪ SELECT‬و ‪FROM‬‬
‫آﻤﺎ هﻮ ﻣﻮﺿﺡ اﻋﻼﻩ ‪ ,‬و اذا اردﻧﺎ اﺳﺘﺨﺮاج ﻣﻌﻠﻮﻣﺎت ﺣﻘﻞ ﻣﻌﻴﻦ ﻧﻘﻮم ﺑﻜﺘﺎﺑﺔ اﺳﻢ اﻟﺡﻘﻞ ﺑﺪﻻً ﻣﻦ اﻟﻨﺠﻤﻪ ‪.‬‬

‫ﻣﺜﺎل ‪:‬‬

‫آﻮد ‪:‬‬
‫;‪SELECT phone FROM client‬‬

‫ﻟﻨﻔﺮض اﻧﻨﺎ ﻧﺮﻳﺪ اﺳﺘﺨﺮاج ﻣﻌﻠﻮﻣﺎت اآﺜﺮ ﻣﻦ ﺣﻘﻞ ﻳﻤﻜﻦ ذﻟﻚ ﺑﻮﺿﺡ ﻓﺎﺻﻠﻪ ﺑﻴﻦ آﻞ ﺣﻘﻞ ‪,‬‬

‫ﻣﺜﺎل ‪:‬‬

‫آﻮد ‪:‬‬
‫;‪SELECT phone,id FROM client‬‬

‫‪22‬‬
‫ﻟﻨﻔﺮض اﻧﻨﺎ ﻧﺮﻳﺪ اﺳﺘﺨﺮاج ﻣﻌﻠﻮﻣﺎت آﻞ اﻟﻌﻤﻼء اﻟﺬﻳﻦ ﻳﺡﻤﻠﻮن اﻻﺳﻢ ﻧﻮاف ‪.‬‬

‫ﻃﺒﻌﺎً ﻧﺴﺘﺨﺪم اﻟﺸﺮط ‪ WHERE‬اﻟﺬي ﺗﻌﺮﻓﻨﺎ ﻋﻠﻴﻪ ﻣﺴﺒﻘﺎً ﺑﻬﺬﻩ اﻟﻄﺮﻳﻘﻪ ‪:‬‬

‫آﻮد ‪:‬‬
‫;'‪SELECT * FROM client WHERE name='nawaf‬‬

‫هﻜﺬا ﻧﻜﻮن ﻗﺪ اﻧﺘﻬﻴﻨﺎ‬

‫ﻋﻤﻮﻣﺎً هﺬا اﻟﻔﺼﻞ هﻮ ﻗﺒﻞ اﻻﺧﻴﺮ ‪ ,‬و اﻟﻔﺼﻞ اﻟﺬي ﻳﻠﻴﻪ‬ ‫ﻓﺼﻞ ﻗﺼﻴﺮ ﺻﺡ‬
‫هﻮ اﻻﺧﻴﺮ ‪.‬‬

‫‪23‬‬
‫ﻋﻦ اﻟﻔﺼﻞ ‪:‬‬
‫ﺑﻌﺪ ان ﺗﻨﺎوﻟﻨﺎ و درﺳﻨﺎ اﺳﺎﺳﻴﺎت هﺬﻩ اﻟﻠﻐﻪ ‪ ,‬ﻓﻲ هﺬا اﻟﻔﺼﻞ‬ ‫هﺎ ﻧﺡﻦ ﻓﻲ ﺁﺧﺮ ﻓﺼﻞ ﻣﻦ هﺬا اﻟﻜﺘﺎب‬
‫ﻓﻲ ﻧﺪرس اﺷﻴﺎء اﺿﺎﻓﻴﻪ ﻣﻜﻤﻠﻪ ﻟﺒﻌﺾ اﻻﺳﺎﺳﻴﺎت ‪.‬‬

‫اﻟﺠﻤﻠﻪ ‪: WHERE‬‬
‫ﻟﻘﺪ ﺗﻌﺮﻓﻨﺎ ﻣﺴﺒﻘﺎً ﻋﻠﻰ هﺬﻩ اﻟﺠﻤﻠﻪ و ﻟﻜﻦ ﺑﺸﻜﻞ ﺑﺴﻴﻂ ﺟﺪاً ‪.‬‬

‫‪ ,‬ﺗﺴﺘﺨﺪم هﺬﻩ اﻟﻜﻠﻤﻪ ﻟﺸﺮط ﻣﻌﻴﻦ ‪.‬‬ ‫ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻴﻬﺎ اﻵن ﺑﺸﻜﻞ ﻣﻔﺼﻞ ان ﺷﺎء اﷲ‬

‫ﻣﺜﻠﻤﺎ ذآﺮﻧﺎ ﻣﺴﺒﻘﺎً ‪ ,‬ﻣﺜﻼً ﻧﺮﻳﺪ ﺣﺬف ﻣﻮﻗﻊ ﻣﻌﻴﻦ او ﻧﺮﻳﺪ ﺗﺡﺪﻳﺚ ﻣﻮﻗﻊ ﻣﻌﻴﻦ اﻟﺡﻞ اﻟﻮﺣﻴﺪ ﻓﻲ ﻣﺜﻞ هﺬﻩ‬
‫اﻟﺡﺎﻻت هﻲ اﻟﺠﻤﻠﻪ ‪. WHERE‬‬

‫ﻧﻌﺘﺒﺮ ﺟﻤﻠﺔ ‪ WHERE‬ﻓﻲ اﻟـ ‪ SQL‬آﺄﻧﻬﺎ اﻟﺠﻤﻠﻪ اﻟﺸﺮﻃﻴﻪ ‪ if‬ﻓﻲ اي ﻟﻐﻪ ﻣﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﻪ ‪.‬‬

‫ﺣﺴﻨﺎً ‪ ,‬هﻨﺎك ﻋﺪة ﻋﻤﻠﻴﺎت ﺗﺘﻢ ﻣﻦ ﺧﻼل ﺟﻤﻠﺔ ‪ WHERE‬ﺑﻤﻌﻨﻰ اﻧﻬﺎ ﻟﻴﺴﺖ ﻓﻘﻂ ﻟﻠﻘﻴﻢ اﻟﻤﺘﺴﺎوﻳﻪ ‪ ,‬ﺑﻞ‬
‫ﻟﻌﺪّة ﻗﻴّﻢ ﻣﺜﻼ ﻏﻴﺮ ﻣﺘﺴﺎوﻳﻪ او اآﺒﺮ ﻣﻦ او ﻳﺴﺎوي او ﻏﻴﺮﻩ و هﺬا اﻟﺠﺪول ﻳﻮﺿﺡ آﻞ اﻟﻌﻤﻠﻴﺎت اﻟﺘﻲ ﻳﻤﻜﻨﻨﺎ‬
‫اﺳﺘﺨﺪاﻣﻬﺎ ﻓﻲ ﺟﻤﻠﺔ ‪. WHERE‬‬

‫وﺻﻔﻬﺎ‬ ‫اﻟﻌﻤﻠﻴﻪ‬
‫ﻳﺴﺎوي‬ ‫=‬
‫ﻻ ﻳﺴﺎوي‬ ‫>< او !=‬
‫اآﺒﺮ ﻣﻦ‬ ‫>‬
‫اﺻﻐﺮ ﻣﻦ‬ ‫<‬
‫اآﺒﺮ ﻣﻦ او ﻳﺴﺎوي‬ ‫=>‬
‫اﺻﻐﺮ ﻣﻦ او ﻳﺴﺎوي‬ ‫=<‬
‫ﺧﺎﺻﻪ ﻟﻌﻤﻠﻴﺎت اﻟﺒﺡﺚ‬ ‫‪LIKE‬‬

‫‪ ,‬ﺳﻮف ﻧﺄﺧﺬ ﻣﺜﺎل ﻻول ﻋﻤﻠﻴﺘﻴﻦ ﻓﻘﻂ ‪.‬‬ ‫ﻗﺪ ﺗﺘﺴﺎﺋﻞ ﻋﻦ ﻃﺮﻳﻘﺔ اﺳﺘﺨﺪاﻣﻬﺎ‬

‫‪ ,‬ﻧﺮﻳﺪ اﺳﺘﺨﺮاج ﻣﻌﻠﻮﻣﺎت ﻋﻦ آﻞ اﻟﻤﺴﺠﻠﻴﻦ و‬ ‫اﻟﻌﻤﻠﻴﻪ اﻻوﻟﻰ وهﻲ اﻟﻤﺴﺎواة ‪ ,‬ﻧﻌﻮد إﻟﻰ ﻋﻤﻠﻴﻨﺎ ﻧﻮّاف‬
‫اﺳﻤﺎﺋﻬﻢ ‪ , nawaf‬ﺳﻮف ﻧﺴﺘﺨﺪم اﻟﻤﺴﺎواة‬

‫ﻻﺣﻆ اﻟﻜﻮد ‪:‬‬

‫آﻮد ‪:‬‬
‫;'‪SELECT * FROM client WHERE name='nawaf‬‬

‫ﺣﺴﻨﺎً ﻧﺮﻳﺪ اﺳﺘﺨﺪام ﻻ ﻳﺴﺎوي ‪ ,‬ﻣﺜﻼ ﻧﺮﻳﺪ ان ﻧﺴﺘﺨﺮج آﻞ ﻣﻌﻠﻮﻣﺎت اﻟﻌﻤﻼء ﻣﺎ ﻋﺪا اﻟﺬي اﺳﻤﺎﺋﻬﻢ‬
‫‪ , nawaf‬ﺣﺴﻨﺎً ﺑﺴﻴﻂ‬

‫‪24‬‬
‫ﻻﺣﻆ اﻟﻜﻮد اﻟﺘﺎﻟﻲ ‪:‬‬

‫آﻮد ‪:‬‬
‫;'‪SELECT * FROM client WHERE name<>'nawaf‬‬

‫ﺣﺴﻨﺎً ‪ ,‬اﻋﺘﻘﺪ ﻗﺪ ﺗﻮﺿﺡﺖ هﺬﻩ اﻟﺠﻤﻠﻪ ‪ ,‬ﻟﻨﻨﺘﻘﻞ إﻟﻰ اﻟﺘﺎﻟﻲ‬

‫اﺳﺘﺨﺮاج اﻟﺒﻴﺎﻧﺎت ﺑﻮاﺳﻄﺔ اﻟﺘﺮﺗﻴﺐ اﻟﺘﺼﺎﻋﺪي او اﻟﺘﻨﺎزﻟﻲ ‪:‬‬


‫ﺣﺴﻨًﺎ ﻗﺪ ﺗﻜﻮن هﺬﻩ اﻟﻔﻘﺮﻩ ﻏﻴﺮ ﻣﻬﻤﻪ ﻟﺪﻳﻚ ﻟﻜﻨﻬﺎ ﻟﺰﻳﺎدة ﻣﻌﻠﻮﻣﺎﺗﻚ ﻋﻠﻰ اﻻﻗﻞ و ﻗﺪ ﺗﺡﺘﺎﺟﻬﺎ ﻓﻲ اﺣﺪ‬
‫‪.‬‬ ‫اﻻﻳﺎم‬

‫ﻟﻨﻔﺮض اﻧﻚ ﺗﺮﻳﺪ اﺳﺘﺨﺮاج اﻟﺒﻴﺎﻧﺎت ﺗﺼﺎﻋﺪﻳﺎً او ﺗﻨﺎزﻟﻴﺎً ‪ ,‬ﻳﻤﻜﻨﻚ ذﻟﻚ ﻣﻦ ﺧﻼل اﻟﺠﻤﻠﻪ ‪ORDER BY‬‬

‫و هﻨﺎك ﻋﺎﻣﻠﻴﻦ هﻤﺎ ‪:‬‬

‫‪ : DESC‬ﻳﺴﺘﺨﺮج اﻟﺒﻴﺎﻧﺎت ﺗﻨﺎزﻟﻴﺎً‬ ‫•‬


‫‪ : ASC‬ﻳﺴﺘﺨﺮج اﻟﺒﻴﺎﻧﺎت ﺗﺼﺎﻋﺪﻳًﺎ‬ ‫•‬

‫ﻃﺮﻳﻘﺔ اﻻﺳﺘﺨﺪام ‪ ,‬ﻣﺜﻼً ﻧﺮﻳﺪ ان ﻧﻮﺟﺪ اﻟﺒﻴﺎﻧﺎت ﺗﻨﺎزﻟﻴﺎً ﺣﺴﺐ اﻟﺡﻘﻞ ‪ id‬اﻟﺬي ﻳﺡﺘﻮي ﻋﻠﻰ اﻻرﻗﺎم اﻟﻤﻤﻴﺰﻩ‬

‫آﻮد ‪:‬‬
‫;‪SELECT * FROM client ORDER BY id DESC‬‬

‫‪ ,‬ﺁﻣﻞ ان ﺗﻜﻮن ﻗﺪ اﺳﺘﻤﺘﻌﺖ و‬ ‫ﺣﺴﻨﺎً ‪ ,‬اﻋﺘﻘﺪ ان اﻵن آﻞ ﺷﺊ واﺿﺡ ‪ ,‬و هﺎ ﻗﺪ وﺻﻠﻨﺎ إﻟﻰ اﻟﻨﻬﺎﻳﻪ‬
‫‪.‬‬ ‫اﺳﺘﻔﺪت ﻣﻦ هﺬا اﻟﻜﺘﺎب وﻻ ﻧﻄﻠﺐ ﺳﻮى دﻋﻮاﺗﻜﻢ‬

‫اﻧﺎ واﺛﻖ اﻧﻚ اﻵن اﺻﺒﺡﺖ ﺗﻔﻬﻢ ﻟﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت و ﺑﺈذن اﷲ ﺳﻮف ﻳﻤﻜﻨﻚ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻧﻮاع ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬
‫‪ ,‬ﺣﺴﻨﺎً ﻻ ارﻳﺪ ان اﻃﻴﻞ ﻋﻠﻴﻚ ‪.‬‬ ‫اﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ‪SQL‬‬

‫ﺑﺎﻟﺘﻮﻓﻴﻖ‬

‫‪25‬‬

You might also like