You are on page 1of 27

PDF created with pdfFactory Pro trial version www.pdffactory.

com
‫‪  ‬‬

‫اھﺪي ھﺬا اﻟﻜﺘﺎب إﻟﻰ ‪..‬‬

‫اﻟﻠﺬان وﺻﺎﻧﺎ ﺑﮭﻤﺎ رب اﻟﻌﺎﻟﻤﯿﻦ ورﺳﻮﻟﻨﺎ اﻷﻣﯿﻦ ﻣﺤﻤﺪ ﺻﻠﻰ اﷲ وﻋﻠﯿﮫ وﺳﻠﻢ‬

‫إﻟﻰ أﻣﻲ اﻟﻐﺎﻟﯿﺔ اﻟﺘﻲ ﻧﻮرت ﻟﻲ اﻟﻄﺮﯾﻖ أﻣﺎﻣﻲ‪.‬‬

‫إﻟﻰ واﻟﺪي اﻟﻌﺰﯾﺰ اﻟﺬي ﻟﮫ اﻟﻤﻘﺎم اﻷول ﻟﺘﺸﺠﯿﻌﻲ ﻟﻌﻤﻞ اﻟﺨﯿﺮ واﻻﺟﺘﮭﺎد‪.‬‬

‫أھﺪي ھﺬا اﻟﻜﺘﺎب اﻟﻰ أﺻﺪﻗﺎﺋﻲ وزﻣﻼﺋﻲ ﻟﻤﻦ ﯾﺮﯾﺪ ﺗﻌﻠﻢ ھﺬا اﻟﻜﺘﺎب‪.‬‬

‫إھﺪاﺋﻲ اﻟﺨﺎص ﻟﻸﺳﺘﺎذ‪:‬‬

‫ﺧﺎﻟﺪ اﻟﺼﺮﻣﻲ اﻟﺬي ﺣﻔﺰﻧﺎ ﻟﺤﺐ ھﺬه اﻟﻤﺎدة واﻟﻠﻐﺔ ﺧﺎﺻﺔ‪.‬‬

‫ﺗﺤﯿﺎﺗﻲ ‪،،،،‬‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫اﻟﻤﺤﺘﻮﯾﺎت‬

‫اﻟﻤﻮﺿﻮع‬

‫اﻟﺮﻗﻢ‬
‫اﻟﺼﻔﺤﺔ‬

‫‪٤‬‬ ‫اﻟﻤﻘﺪﻣﺔ وﻣﻤﯿﺰات أوراﻛﻞ‬ ‫‪١‬‬

‫‪٥‬‬ ‫ﻣﻔﮭﻮم ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫‪٢‬‬

‫‪٦‬‬ ‫ﻣﺎھﻲ ‪ SQL‬وأﻗﺴﺎﻣﮫ‬ ‫‪٣‬‬

‫‪٦‬‬ ‫أواﻣﺮ ‪DML‬‬ ‫‪٤‬‬

‫‪٧‬‬ ‫أواﻣﺮ ‪ DDL‬و‪DCL‬‬ ‫‪٥‬‬

‫‪٧‬‬ ‫ﺑﯿﺌﺔ ‪Sal*plus‬‬ ‫‪٦‬‬

‫‪٨‬‬ ‫ﻛﯿﻔﯿﺔ أﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﯾﺪ‬ ‫‪٧‬‬

‫‪٩‬‬ ‫أﻧﻮاع اﻟﺒﯿﺎﻧﺎت‬ ‫‪٨‬‬

‫‪١٢ -١٠‬‬ ‫ﺷﺮح أواﻣﺮ ‪DDL‬‬ ‫‪٩‬‬

‫‪١٣‬‬ ‫اﻟﻘﯿﻮد‪Constraint‬‬ ‫‪١٠‬‬

‫‪١٧ -١٣‬‬ ‫ﻃﺮق إﻧﺸﺎء اﻟﻘﯿﻮد وﺷﺮﺣﮭﺎ‬ ‫‪١١‬‬

‫‪١٧،١٨‬‬ ‫أواﻣﺮ ﻣﮭﻤﺔ‬ ‫‪١٢‬‬

‫‪٢٢ -١٩‬‬ ‫أواﻣﺮ ‪ DML‬وﺷﺮﺣﮭﺎ‬ ‫‪١٣‬‬

‫‪٢٣‬‬ ‫اﻟﺒﯿﺎﻧﺎت)‪(DCL‬‬ ‫اﻟﺘﺤﻜﻢ ﺑﺤﺮﻛﺔ‬ ‫‪١٤‬‬


‫‪١٥‬‬
‫‪٢٤‬‬ ‫ﺟﻤﻠـــــــــــــــﺔ ‪Select‬‬
‫‪١٦‬‬
‫‪٢٦-٢٥‬‬ ‫اﻟﺸﺮوط ‪where Condition‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫ﻘﺪﻣﺔ‬ ‫ﺍ‬
‫‪‬‬
‫‪ ‬‬
‫إن اﻟﻨﺸﺎط اﻟﯿﻮﻣﻲ ﻟﻠﻤﺆﺳﺴﺎت ﻓﻲ ﻛﺎﻓﺔ ﻣﺠﺎﻻت اﻟﻌﻤﻞ ﯾﻌﺘﻤﺪ اﻋﺘﻤﺎد ﻛﺒﯿﺮ ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت وﺗﺤﺮص‬
‫اﻟﻤﺆﺳﺴﺎت ﻋﻠﻰ اﻣﺘﻼك ﻗﺪر ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﯿﺚ ﺑﺪا اﻟﻌﻤﻞ ﻓﻲ ﻣﺨﺘﻠﻒ اﻟﻤﺆﺳﺴﺎت ﻣﻦ ﺧﻼل اﻟﻌﻤﻞ‬
‫اﻟﯿﺪوي واﻟﺘﻲ ﻛﺎن ﻟﮭﺎ ﻛﺜﯿﺮ ﻣﻦ اﻟﻌﯿﻮب ﻣﺜﻞ اﻟﺠﮭﺪ اﻟﺰاﺋﺪ واﻟﺒﻂء ﻓﻲ ﺗﺴﺠﯿﻞ ﻣﺌﺎت أو اﻻﻵف اﻟﺒﯿﺎﻧﺎت‬
‫اﻟﯿﺪوﯾﺔ ﺣﯿﺚ ﻗﻠﺖ اﻟﺪﻗﺔ وﺻﺤﺔ اﻟﺒﯿﺎﻧﺎت إﻟﻰ درﺟﺔ ﻛﺒﯿﺮة ﺑﺴﺒﺐ اﻟﺘﻌﺐ واﻟﺨﻄﺄ اﻟﺒﺸﺮي ﺣﯿﺚ ﻛﺎﻧﺖ‬
‫اﻟﺒﯿﺎﻧﺎت ﺗﺘﻌﺮض ﻟﻠﻀﯿﺎع واﻟﺴﺮﻗﺔ وﻻ ﯾﻮﺟﺪ ﻧﺴﺦ أﺧﺮى ﻟﮭﺎ‪.‬‬
‫وﻣﻦ ﺧﻼل ذﻟﻚ ﻋﻤﻞ اﻟﻌﻠﻤﺎء ﻟﻠﺘﻮﺻﻞ إﻟﻰ ﻃﺮق ﺟﺪﯾﺪة ﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت وﺧﺎﺻﺔ ﻣﻊ ﺗﺰاﯾﺪ ﻛﻤﯿﺔ‬
‫ﻛﺒﯿﺮة ﻣﻦ اﻟﺒﯿﺎﻧﺎت وﻇﮭﻮر اﻟﺤﻮاﺳﯿﺐ واﻧﺘﺸﺎرھﺎ وﺗﺒﺴﯿﻂ اﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﯿﺔ ﺣﯿﺚ ﻇﮭﺮت اﻟﻤﻠﻔﺎت‬
‫اﻟﻤﻌﺪة ﻋﻦ ﻃﺮﯾﻖ اﻟﺤﺎﺳﻮب واﻟﺘﻲ ﻣﺜﻠﺖ ﺗﻘﺪم ھﺎﺋﻞ ﻓﻲ ﺑﯿﺌﺔ اﻷﻋﻤﺎل ‪.‬‬

‫ﻣﻘﺪﻣﺔ ﺃﻭﺭﺍﻛﻞ‪:‬‬
‫أن اﻷوراﻛﻞ ﻻ ﺗﻌﺘﺒﺮ ﻟﻐﺔ ﺑﺮﻣﺠﺔ وإﻧﻤﺎ ھﻲ ﻟﻐﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﺒﺮﻣﺠﺔ ﻟﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﯿﺠﺐ‬
‫ﻋﻠﯿﻨﺎ أن ﻧﻌﺮف ھﺬا اﻟﻔﺮق اﻷﺳﺎﺳﻲ ﺑﯿﻦ ﻟﻐﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻷوراﻛﻞ وﺑﯿﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ‬
‫اﻷﺧﺮى‬
‫ﻓﮭﻲ ﺷﺒﯿﮭﺔ إﻟﻰ‪ Microsoft Access‬وأﻗﺮب إﻟﻰ ‪Microsoft SQL Server‬‬

‫‪ ‬‬
‫‪ -١‬إﻧﮭﺎ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻗﻮﯾﺔ وآﻣﻨﺔ ؛ﺗﺘﻤﺘﻊ ﺑﺄﻣﺎن ﻋﺎﻟﻲ ﺟﺪاً‪،‬وھﻮ ﺳﺒﺐ أﺳﺎﺳﻲ ﻻﻧﺘﺸﺎرھﺎ اﻟﮭﺎﺋﻞ‬
‫رﻏﻢ اﻟﺘﻜﻠﻔﺔ اﻟﻌﺎﻟﯿﺔ ﻟﮭﺎ‪.‬‬
‫‪ -٢‬أﻧﮭﺎ ﺗﻌﺘﺒﺮ ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت ﺿﺨﻤﺔ‪.‬‬
‫‪ -٣‬ﯾﻮﺟﺪ ﻟﺪﯾﮭﺎ أدوات ﺗﺴﺎﻋﺪھﺎ ﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ وإﻇﮭﺎرھﺎ ﻓﻲ أﺷﻜﺎل ﻣﺘﻌﺪدة‪،‬ﺑﻤﺎ ﯾﺴﻤﻰ ﺗﻄﺒﯿﻘﺎت‬
‫أوراﻛﻞ أي‪:‬إل‪، DEVELOPER‬ﺣﯿﺚ ﺗﻤﻜﻨﻚ ﻣﻦ إدﺧﺎل اﻟﺒﯿﺎﻧﺎت واﺳﺘﺨﺮاﺟﮭﺎ ﻋﻦ ﻃﺮﯾﻖ‬
‫ﻧﻤﺎذج وﺗﻘﺎرﯾﺮ ورﺳﻮم ﺑﯿﺎﻧﯿﺔ ‪،‬ﻟﻜﻦ ﻻ ﯾﻤﻜﻨﮭﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻏﯿﺮ أوراﻛﻞ‪.‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫‪  Databases‬‬

‫ھﻲ ﻋﺒﺎرة ﻋﻦ ﺗﺠﻤﯿﻊ ﻟﻜﻤﯿﺔ ﻛﺒﯿﺮة ﻣﻦ اﻟﺒﯿﺎﻧﺎت واﻟﻤﻌﻠﻮﻣﺎت وﻋﺮﺿﮭﺎ ﺑﻄﺮﯾﻘﺔ أوأﻛﺜﺮ ﻣﻦ ﻃﺮﯾﻘﺔ‬

‫ﻟﯿﺴﮭﻞ اﻻﺳﺘﻔﺎدة ﻣﻨﮭﺎ‪.‬‬

‫ﺑﻤﻌﻨﻰ آﺧﺮ‪ :‬ھﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﺮاﺑﻄﺔ ﻣﻊ ﺑﻌﻀﮭﺎ اﻟﺒﻌﺾ ﺑﻌﻼﻗﺎت ﻣﻨﻄﻘﯿﺔ‬

‫واﻟﻤﺨﺰﻧﺔ ﻓﻲ ﻣﻠﻔﺎت ﺑﻄﺮﯾﻘﺔ ﻣﻨﻈﻤﺔ ﺗﻤﻨﻊ اﻟﺘﻜﺮار اﻟﻐﯿﺮ ﻣﺒﺮر )ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت أ‪/‬أروى اﻹرﯾﺎﻧﻲ(‬

‫‪‬‬
‫‪SQL‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫ﻣﺎ ھﻰ ‪(Structured Query Language) : SQL‬‬
‫ھﻲ ﻟﻐﺔ ﻗﯿﺎﺳﯿﺔ ﻣﻦ ﻟﻐﺎت اﻟﺤﺎﺳﺐ ﻟﺪﺧﻮل وﻣﻌﺎﻟﺠﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪ ،‬وھﻲ ﻟﻐﺔ ﺑﻨﺎء اﻻﺳﺘﻌﻼﻣﺎت‬
‫اﻟﮭﯿﻜﻠﯿﺔ ‪.‬‬

‫ﻭﻇﻴﻔﺘﻬﺎ‪:‬‬
‫‪American‬‬ ‫‪ -١‬ﻟﻐ ﺔ ﻗﯿﺎﺳ ﯿﺔ ﻣ ﻦ ﻟﻐ ﺎت اﻟﺤﺎﺳ ﺐ اﻟﺨﺎﺻ ﺔ ﺑﻤﻌﮭ ﺪ ‪)ANSI‬‬
‫‪(National Standards Institute‬‬
‫‪ -٢‬ﺗﻤﻜﻨﻚ ﻣﻦ اﻟﺪﺧﻮل ﻟﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪ -٣‬ﺗﻤﻜﻨﻚ ﻣﻦ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺎﻋﺪة‬
‫‪ -٤‬ﺗﻤﻜﻨﻚ ﻣﻦ إﺿﺎﻓﺔ ﺑﯿﺎﻧﺎت إﻟﻰ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬
‫‪ -٥‬ﺗﻤﻜﻨ ﻚ ﻣ ﻦ اﻟﺤ ﺬف واﻟﺘﻌ ﺪﯾﻞ ﻋﻠ ﻰ اﻟﺒﯿﺎﻧ ﺎت اﻟﻤ ﺴﺠﻠﺔ ﻓ ﻲ اﻟﻘﺎﻋ ﺪة‬
‫ﻣﻼﺣﻈﺔ‪:‬‬
‫‪ : SQL‬ھﻲ ﻟﻐﺔ ﺳﮭﻠﺔ اﻟﺘﻌﻠﻢ واﻟﻔﮭﻢ ﻟﻤﻦ أراد اﻟﺘﻌﻠﻢ‬

‫ﺗﻨﻘﺴﻢ ﻟﻐﺔ ‪ SQL‬إﻟﻰ اﻷﻗﺴﺎم اﻟﺘﺎﻟﯿﺔ‪:‬‬


‫‪ -١‬اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ ﻣﻌﺎﻟﺠﺔ اﻟﺒﯿﺎﻧﺎت‬
‫)‪SQL Data Manipulation Language (DML‬‬
‫* أواﻣﺮ )‪(DML‬‬
‫‪ : Select‬اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬
‫‪ :Insert into‬إﺿﺎﻓﺔ ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة‬
‫‪ :Update‬اﻟﺘﻌﺪﯾﻞ ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت‬
‫‪ : Delete‬ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺎﻋﺪة‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫‪ -٢‬اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ ﺗﻌﺮﯾﻒ اﻟﺒﯿﺎﻧﺎت‬
‫)‪SQL Definition Language (DDL‬‬

‫* أواﻣﺮ )‪:(DDL‬‬
‫إﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة‬ ‫‪: Create Database -‬‬
‫إﻧﺸﺎء ﺟﺪول داﺧﻞ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫‪: Create Table -‬‬
‫ﻟﻠﺘﻌﺪﯾﻞ ﻋﻠﻰ اﻟﺠﺪول‬ ‫‪: Alter Table -‬‬
‫ﺣﺬف اﻟﺠﺪول ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫‪:Drop Table -‬‬
‫إﻧﺸﺎء ﻓﮭﺮس أو ﻣﻔﺘﺎح ﻟﻠﺒﺤﺚ‬ ‫‪: Create Index -‬‬
‫ﺣﺬف اﻟﻔﮭﺮس‬ ‫‪: Drop Index -‬‬

‫‪-٣‬اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ اﻟﺘﺤﻜﻢ ﺑﺎﻟﺒﯿﺎﻧﺎت‬


‫)‪Data Control language(DCL‬‬
‫أواﻣﺮ ‪DCL‬‬
‫أﻣﺮ أﻋﻄﺎء اﻟﺼﻼﺣﯿﺎت )ﻣﻨﺢ اﻟﺼﻼﺣﯿﺔ(‬ ‫‪Grant -‬‬
‫أﻣﺮ إﻟﻐﺎء اﻟﺼﻼﺣﯿﺎت)ﻣﻨﻊ اﻟﺼﻼﺣﯿﺔ(‬ ‫‪Revoke -‬‬

‫ﺑﻴﺌﺔ ‪Sal*plus‬‬
‫ﻳﻮﺟﺪ ﰲ ﺑﻴﺌﺔ )‪ (SQL*Plus‬ﻣﺴﺘﺨﺪﻣﲔ ﺍﻓﱰﺍﺿﻴﲔ ﻫﻤﺎ‪:‬‬

‫‪ system‬وﻛﻠﻤﺔ اﻟﻤﺮور ‪ manager :‬ﺑﻐﺾ اﻟﻨﻈﺮ ﻓﻲ ﺣﺎﻟﺔ اﻟﺘﺤﻤﯿﻞ ﻓﯿﻤﺎ‬


‫اذا ﺗﻢ ﺗﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﻤﺮور ﻓﺈﻧﮫ ﯾﻜﺘﺐ ﻛﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪﯾﺪة‪.‬‬
‫‪ Scott‬وﻛﻠﻤﺔ اﻟﻤﺮور ‪tiger :‬‬
‫‪ Sys‬وﻛﻠﻤﺔ اﻟﻤﺮور ‪Change_on_install:‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫ﻛﻴﻔﻴﺔ ﺇﻧﺸﺎء ﻣﺴﺘﺨﺪﻡ ﺟﺪﻳﺪ‬
‫ﻛﯿﻔﯿﺔ إﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﯾﺪ ﻓﻲ ﺑﯿﺌﺔ ) ‪ (sql * plus‬ھﻲ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬
‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‪:‬‬
‫اﺳﻢ اﻟﻤﺴﺘﺨﺪم‬ ‫ﻛﻠﻤﺔ اﻟﻤﺮور‬
‫;]‪SQL> create user [user name] identified [password‬‬

‫ﻻ ﯾﺴﻤﺢ ﺑﺈﻧﺸﺎء ﻣﺴﺘﺨﺪم وﻣﻨﺤﮫ ﺻﻼﺣﯿﺎت اﻻّ ﺑﻌﺪ اﻷﻧﺼﺎل ﺑﺎﻟﻨﻈﺎم‪ system‬وﯾﻜﻮن‬
‫اﻷﻧﺼﺎل ﺑﺎﻟﻨﻈﺎم وﺑﺄي ﻣﺴﺘﺨﺪم ﺑﺎﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫‪SQL>Connect [user name] OR‬‬ ‫]‪SQL>conn [user name‬‬
‫ﻷﻋﻄﺎء ﺻﻼﺣﯿﺔ اﻷﺗﺼﺎل ﻣﻊ ﺑﺎﻗﻲ اﻟﺼﻼﺣﯿﺎت ﻟﻤﺴﺘﺨﺪم ﻧﺴﺘﺨﺪم اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫]‪SQL>Grant connect,resource to [user name‬‬
‫وﺑﮭﺬا ﯾﺘﻢ ﻣﻨﺢ اﻟﺼﻼﺣﯿﺔ ﺑﺎﻟﻌﺒﺎرة اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫‪Grant succeeded‬‬

‫ﺷﺮوط ﺧﺎﺻﺔ ﺑﺎﺳﻢ اﻟﺠﺪول‪:‬‬


‫أن ﻻ ﯾﺤﻤﻞ ﺟﺪول ﻗﺪﯾﻢ ﻧﻔﺲ اﻻﺳﻢ )ﺑﻤﻌﻨﻰ اﻻّ ﯾﺘﻜﺮر اﺳﻢ اﻟﺠﺪول (‪.‬‬
‫أن ﻻﯾﺒﺪا اﻻّ ﺑﺤﺮف ﻣﻦ ]‪ [A-Z‬أو]‪.[a-z‬‬
‫أن ﻻ ﯾﺤﻤﻞ رﻣﻮز وﻻ ﻓﺮاﻏﺎت ﻣﺎﻋﺪا اﻟﺮﻣﻮز اﻟﺘﺎﻟﯿﺔ ]‪[, _ $ #‬‬
‫أن ﻻﯾﺰﯾﺪ ﻋﺪد اﻷﺣﺮف ﻋﻦ ‪ ٣٠‬ﺣﺮﻓﺎً‪.‬‬
‫أن ﻻ ﯾﻜﻮن ﻣﻦ اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة‪.‬‬

‫ﻣﻼﺣﻈﺔ‪ ‬ﻟﻐﺔ أوراﻛﻞ ﻏﯿﺮ ﺣﺴﺎﺳﺔ ﻓﻲ ﺣﺎﻟﺔ اﻷﺣﺮف‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


 
Char raw

Varchar , Varchar2 Long raw


number CLOB

Date BLOB

Long  BFile

 

 SQL
 
‫اﻟﺘﺮﻛﯿﺰ وﻓﮭﻢ اﻷواﻣﺮ‬

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


 DDL
Create table :‫ اﻷﻣﺮ‬: ‫أوﻻ‬
Create table table_name
(
:‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬
column_name1 data_type,
column_name2 data_type,
.......
) ‫ ﺟﺪول اﻟﻄﻼب‬: ‫ﻣﺜﺎل‬
SQL> Create table student
(
St_no number(5),
St_name varchar2(50),
St_address varchar2(30),
St_phone number(20)
);

Create index ‫ﻋﻤﻞ إﻧﺸﺎء اﻟﻔﮭﺎرس‬


‫اﻟﻔﮭﺮس ﯾﺼﻤﻢ ﻓﻲ اﻟﺠﺪول ﺣﺘﻰ ﯾﺠﻌﻞ ﻋﻤﻠﯿﺔ اﻻﺳﺘﻌﻼم أﺳﺮع ﻛﻤﺎ ﯾﻤﻜﻦ أﻧﺸﺎء أﻛﺜﺮ ﻣﻦ ﻓﮭﺮس ﻧﻔﺲ اﻟﺠﺪول‬
.‫اﻟﻤﺴﺘﺨﺪم ﻻﯾﺮى ھﺬه اﻟﻔﮭﺎرس إﻧﻤﺎ ھﻰ ﻟﺘﺴﺮﯾﻊ ﻋﻤﻠﯿﺔ اﻷﺳﺘﻌﻼم ﻓﻘﻂ‬


.‫ ﻻﯾﻤﻜﻦ أن ﺗﺘﻜﺮر ﻓﯿﮫ اﻟﺒﯿﺎﻧﺎت‬: ‫اﻟﻨﻮع اﻷول‬
.‫ ﯾﻤﻜﻦ ﺗﻜﺮار اﻟﺒﯿﺎﻧﺎت ﻓﯿﮫ‬:‫اﻟﻨﻮع اﻟﺜﺎﻧﻲ‬
: ‫ وﺻﯿﻐﺘﮭﺎ‬Unique index(‫ﺑﻨﺎء ﻓﮭﺮس ﻣﻦ اﻟﻨﻮع اﻟﻔﺮﯾﺪ )اﻟﺬي ﻻ ﯾﺘﻜﺮر‬

CREATE UNIQUE INDEX index_name


ON table_name (column_name

Simple Index‫ﺑﻨﺎء ﻓﮭﺮس ﻣﻦ اﻟﻨﻮع اﻟﻌﺎدي‬


CREATE INDEX index_nam
ON table_name (column_name)

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


:‫اﻷﻣﺜﻠﺔ‬
Create index studentindex (1)
On student (st_name)
:‫ﻹﻧﺸﺎء ﻓﮭﺮس ﺑﺘﺮﺗﯿﺐ ﻋﻜﺴﻲ‬
Create index studentindex
On student (st_name Desc)
:‫ﻹﻧﺸﺎء ﻓﮭﺮس ﻓﻲ ﺣﻘﻠﯿﻦ ﻓﻲ ﻧﻔﺲ اﻟﺠﺪول‬
Create index studentindex
On student (st_name ,st_address)

Drop Table‫ اﻷﻣﺮ‬:ً‫ﺛﺎﻧﯿﺎ‬


‫ﯾﻘﻮم ھﺬا اﻷﻣﺮ ﺑﺤﺬف اﻟﺠﺪول ﺑﻤﺎ ﯾﺤﺘﻮﯾﮫ ﻣﻦ ﺣﻘﻮل وﻗﯿﻮد‬
‫وﺑﯿﺎﻧﺎت‬

DROP TABLE table_name : ‫اﻟﺼﯿﻐﺔ‬

: ‫ﻣﺜﺎل‬
SQL> Drop table student;


:‫ﺣﺬف ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﯾﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‬
SQL>drop Database database_name

:‫ﺣﺬف ﻓﮭﺮس ﯾﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‬


SQL>drop index index_name

Alter Table ‫ اﻷﻣﺮ‬:ً‫ﺛﺎﻟﺜﺎ‬


‫ھﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷواﻣﺮ اﻟﺘﻲ ﺗﻘﻮم ﺗﺴﺮي ﺑﻌﻤﻠﯿﺎت ﻋﻠﻰ ھﯿﻜﻞ اﻟﺠﺪول ﻣﻦ ﺣﻘﻮل وﻗﯿﻮد‬
.‫ﻛﺎﻹﺿﺎﻓﺔ واﻟﺤﺬف واﻟﺘﻌﺪﯾﻞ‬
:Alter Table ‫أﻧﻮاع اﻷﻣﺮ‬
1-Add
2-Drop
3-modify
4-Rename
alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤ ﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


Alter Table‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟــ‬
SQL>Alter table <table_name>
(Add / Drop / Modify / Rename) ‫اﺧﺘﯿﺎر اﻟﻤﻄﻠﻮب‬
(‫) اﻟﺤﻘــــــــــــــــــــــﻮل اﻟﻤﻄﻠﻮب‬
Add : ً‫اوﻷ‬
SQL>Alter table student add(st_Gender char(1));
SQL>Alter table student add st_Gender ‫ﻃﺮﯾﻘﺔ أﺧﺮى‬
char(1);
  
‫اﻷﻗﻮاس ﻓﻲ ﺣﺎﻟﺔ أﺿﺎﻓﮫ ﺣﻘﻞ واﺣﺪ ﯾﻜﻮن اﺧﺘﯿﺎري أﻣﺎ ﻓﻲ ﺣﺎﻟﺔ ﺗﻌﺪد اﻟﺤﻘﻮل ﯾﻜﻮن‬
.Alter table ‫ ھﺬا وﻓﻲ ﻛﻞ اواﻣﺮ أﻧﻮاع‬.....‫إﺟﺒﺎري‬

Drop : ً‫ﺛﺎﻧﯿﺎ‬
SQL>Alter table student drop column st_address ;
()‫ ﻓﻲ ﻗﻮﺳﯿﻦ‬St_address‫ ﺑﺠﻌﻠـــ‬column ‫ﯾﻤﻜﻦ اﻻﺳﺘﻐﻨﺎء ﻋﻦ ﻛﻠﻤﺔ‬

Modify:ً‫ﺛﺎﻟﺜﺎ‬
SQL>Alter table student Modify st_no number(10) ;
Or
SQL>Alter table student Modify st_no number(2) ;
‫ﻓﻲ ﺣﺎﻟﺔ اﻟﺘﻌﺪﯾﻞ اﻟﺤﺠﻢ ﻓﻲ اﻟﺮﻗﻢ إﻟﻰ اﻷﺻﻐﺮ ﯾﺸﺘﺮط أن ﻻ ﯾﻜﻮن ﻓﻲ اﻟﺠﺪول ﺑﯿﺎﻧﺎت‬ :‫ﻣﻼﺣﻈﺔ‬
Rename:ً‫راﺑﻌﺎ‬
SQL>Alter table student Rename column st_no To S_number ;

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫‪Data Constraint‬‬ ‫اﻟﻤﺤﺪدات ) اﻟﻘﯿﻮد(‬
‫ھﻨﺎك ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﺤﺪدات ﯾﻤﻜﻨﻨﺎ اﺳﺘﺨﺪاﻣﮭﺎ ﻋﻠﻰ اﻟﺤﻘﻮل وھﻲ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬
‫‪* Not Null‬‬ ‫ﯾﺠﺐ إدﺧﺎل ﻗﯿﻤﺔ ﻓﻲ اﻟﺤﻘﻞ‬
‫‪* Unique‬‬ ‫أن ﻻ ﺗﺘﻜﺮر ﻗﯿﻤﺔ اﻟﺤﻘﻞ‬
‫‪* Default‬‬ ‫وﺿﻊ ﻗﯿﻤﺔ اﻓﺘﺮاﺿﯿﺔ ﻟﻠﺤﻘﻞ‬
‫‪* Check‬‬ ‫إﺟﺮاء ﻓﺤﺺ ﻣﻌﯿﻦ ﻋﻠﻰ اﻟﺤﻘﻞ‬
‫‪* Primary key‬‬ ‫إﻧﺸﺎء ﻣﻔﺘﺎح رﺋﯿﺴﻲ‬
‫‪* Foreign key‬‬ ‫إﻧﺸﺎء ﻣﻔﺘﺎح أﺟﻨﺒﻲ‬

‫ﻃﺮق إﻧﺸﺎء اﻟﻘﯿﻮد‪:‬‬


‫‪- ١‬إﻧﺸﺎء اﻟﻤﺤﺪد ﻋﻠﻰ ﻧﻔﺲ اﻟﺤﻘﻞ ]‪، [In Line‬أي ﯾﻜﺘﺐ ﻓﻲ ﻧﻔﺲ اﻟﺴﻄﺮ ﺗﻌﺮﯾﻒ اﻟﺤﻘﻞ أو ﻓﻲ‬
‫اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ ﻣﺒﺎﺷﺮة‪.‬‬
‫–إﻧﺸﺎء ﺟﻤﯿﻊ اﻟﻤﺤﺪدات ﺑﻌﺪ اﻻﻧﺘﮭﺎء ﻣﻦ ﺗﻌﺮﯾﻒ اﻟﺤﻘﻮل]‪ ، [Out Line‬وھﻲ اﻷﻓﻀﻞ ﺣﺴﺐ‬ ‫‪٢‬‬

‫‪.‬‬ ‫رأي اﻟﻜﺜﯿﺮﯾﻦ‬

‫ﻣﻼﺣﻈﺔ‪:‬‬
‫اﻟﻄﺮﯾﻘﺘﯿﻦ ﺗ ﺴﺮﯾﺎن إﻟ ﻰ ﺟﻤﯿ ﻊ اﻟﻤﺤ ﺪدات)اﻟﻘﯿ ﻮد( اﻟ ﺴﺘﺔ اﻟﻤ ﺬﻛﻮرة ‪ ،‬ﻣﺎﻋ ﺪا اﻟﻤﺤ ﺪد ذو‬
‫اﻟﻘﯿﻤﺔ اﻻﻓﺘﺮاﺿﯿﺔ ﻟﻠﺤﻘﻞ)‪(Default‬ﻓﯿﻨﻔﺬ ﻋﻠﯿﮫ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ‪.‬‬

‫ﺷﺮوط اﻟﻤﺤﺪد )اﻟﻘﯿﺪ(‪:‬‬


‫‪ -١‬أن ﻻ ﯾﺘﻜﺮر‬
‫‪ -٢‬أن ﻻ ﯾﺰﯾﺪ ﻋﻦ ‪ ٣٠‬ﺣﺮﻓﺎً‬
‫‪ -٣‬اﻟﻤﺤﺪد ذو اﻟﻘﯿﻤﺔ اﻻﻓﺘﺮاﺿﯿﺔ ﻟﻠﺤﻘﻞ)‪(Default‬ﻓﯿﻨﻔﺬ ﻋﻠﯿﮫ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ]‪.[In Line‬‬

‫*اﻟﻤﺤﺪد اﻷول )‪(Not Null‬‬


‫وھﻮ وﺿﻊ ﻗﯿﺪ ﻋﻠﻰ ﺣﻘﻞ ﻣﺎ ‪ ،‬ﺑﺤﯿﺚ ﻻ ﯾﻜﻮن ھﺬا اﻟﺤﻘﻞ ذو ﻗﯿﻤﺔ ﻓﺎرﻏﺔ‪ ،‬أي ﯾﺠﺐ أن ﯾﺤﺘﻮي ﻋﻠﻰ‬
‫ﻗﯿﻤﺔ‪.‬‬
‫ﻛﺤﻘﻞ اﻟﻄﺎﻟﺐ واﺳﻤﮫ ﻣﺜﻼً ﯾﺠﺐ أن ﯾﺤﻮﯾﺎن ﻋﻠﻰ ﻗﯿﻤﺔ‪..‬‬
‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ ]‪ [In Line‬ﻓﻲ اﻟﻤﺜﺎل‪:‬‬
‫‪SQL>Create table student‬‬
‫(‬
‫‪St_no number(5) Not Null,‬‬
‫‪St_name varchar2(50)Not Null,‬‬
‫)‪St_address varchar2(20‬‬
‫;)‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


:‫[ ﻓﻲ اﻟﻤﺜﺎل‬Out Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻟﺜﺎﻧﯿﺔ‬
SQL>Create table student
(
St_no number(5) ,
St_name varchar2(50),
St_address varchar2(20),
Constraint st_no_ch check(st_no is not null),
Constraint st_name_ch check(st_name is not null)
);

: (Unique) ‫* اﻟﻤﺤﺪد اﻟﺜﺎﻧﻲ‬


‫ﻓﻤﺜﻼ ﻟﻮ وﺿﻌﻨﺎ ھﺬا اﻟﻘﯿﺪ ﻋﻠﻰ‬،‫وﻣﻌﻨﺎه أﻻ ﺗﺘﻜﺮر ﻗﯿﻤﺔ ھﺬا اﻟﺤﻘﻞ اﻟﺬي ﺳﻨﻀﻊ ھﺬا اﻟﻘﯿﺪ ﻋﻠﯿﮫ‬
.‫ﺣﻘﻞ رﻗﻢ اﻟﻄﺎﻟﺐ ﻧﺴﺘﻨﺘﺞ ﻣﻦ ذﻟﻚ أﻧﻨﺎ ﻻ ﻧﺮﯾﺪ أن ﯾﺘﻜﺮر رﻗﻢ اﻟﻄﺎﻟﺐ‬
:(Unique) ‫[ ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد‬In Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ‬
SQL>Create table student
(
St_no number(5) Unique,
St_name varchar2(50)Not Null,
St_address varchar2(20)
);

:(Unique) ‫[ ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد‬Out Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻟﺜﺎﻧﯿﺔ‬


SQL>Create table student
(
St_no number(5) ,
St_name varchar2(50),
St_address varchar2(20),
Constraint st_no_un unique(st_no)
);

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


: (Default) ‫* اﻟﻤﺤﺪد اﻟﺜﺎﻟﺚ‬
‫ﻧﻀﻊ ﻗﯿﻤﺔ اﻓﺘﺮاﺿﯿﺔ‬،‫ ﻣﺜﻼً ﻋﻤﺮ اﻟﻄﺎﻟﺐ‬، ‫وﻧﺴﺘﻔﯿﺪ ﻣﻨﮫ ﻓﻲ وﺿﻊ ﻗﯿﻤﺔ اﻓﺘﺮاﺿﯿﺔ ﻟﺤﻘﻞ ﻣﺎ‬
‫ وھﻮ اﻟﻘﯿﺪ اﻟﻮﺣﯿﺪ اﻟﺬي ﯾﻜﺘﺐ‬..‫وذﻟﻚ ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم إدﺧﺎل اﻟﻤﺴﺘﺨﺪم أي ﻗﯿﻤﺔ‬،‫ﻟﻌﻤﺮه‬
..‫[ﻓﻘﻂ‬In Line] ‫ﺑﻄﺮﯾﻘﺔ اﻷوﻟﻰ‬
: ‫ﻣﺜﺎل‬
SQL>Create table student
(
St_no number(5) Not Null,
St_name varchar2(50)Not Null,
St_age number(2) default 20,
St_Nation varchar2(20) default 'Yemani',
St_address varchar2(20)
);

: (Check) ‫* اﻟﻤﺤﺪد اﻟﺮاﺑﻊ‬


. ‫وﻧﺴﺘﻔﯿﺪ ﻣﻨﮫ ﻋﻨﺪﻣﺎ ﻧﺮﯾﺪ أن ﻧﻔﺤﺺ ﻗﯿﻤﺔ ﻣﺪﺧﻠﺔ ﻟﺤﻘﻞ ﻣﻌﯿﻦ ﯾﻘﺒﻞ ﻣﺠﻤﻮﻋﺔ ﻗﯿﻢ ﻣﺤﺪدة‬
..‫ﺣﯿﺚ ﯾﻘﻮم اﻟﻘﯿﺪ ﺑﻔﺤﺺ اﻟﻘﯿﻤﺔ اﻟﻤﺪﺧﻠﺔ ﻣﻦ ﺑﯿﻦ اﻟﻘﯿﻢ اﻟﻤﻮﺟﻮدة‬
:(Check) ‫[ ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد‬In Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ‬

SQL>Create table student


(
St_no number(5) Not Null,
St_name varchar2(50)Not Null,
St_sex char(1) check(St_sex in('m','f')),‫ذﻛﺮ‬,
St_age number(2) check(St_age between 19 and 30),
St_address varchar2(20)
);

:(Check) ‫[ ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد‬Out Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻟﺜﺎﻧﯿﺔ‬


SQL>Create table student
(
St_no number(5) Not Null,
St_name varchar2(50)Not Null,
St_sex char(1),
St_age number(2)
St_address varchar2(20),

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫‪Constraint st_sex_ch check(st_sex in('m','f')),‬‬
‫)‪Constraint st_age_ch check(st_age between 20 and 30‬‬
‫;)‬

‫* اﻟﻤﺤﺪد اﻟﺨﺎﻣﺲ )‪: (Primary key‬‬


‫وﻇﯿﻔﺔ ھﺬا اﻟﻘﯿﺪ إﻋﻄﺎء ﺣﻘﻞ ﻣﻌﯿﻦ ﻣﻦ ﻋﺪة ﺣﻘﻮل ﻓﻲ ﺟﺪول ﻣﺎ؛ ﺻﻔﺔ اﻟﻤﻔﺘﺎح اﻟﺮﺋﯿﺴﻲ‬
‫ﻓﻲ ھﺬا اﻟﺠﺪول ‪ .‬ﯾﺤﺪد ﺑﺸﻜﻞ وﺣﯿﺪ وﻣﺘﻔﺮد ﺑﺤﯿﺚ ﯾﺘﻤﯿﺰ ﻋﻦ ﻏﯿﺮه‪.‬ﻓﻼ ﺗﺘﻜﺮر ﻗﯿﻤﺘﮫ ﻓﻲ‬
‫أﻛﺜﺮ ﻣﻦ ﺣﻘﻞ واﺣﺪ وﻻ ﯾﻘﺒﻞ ﻗﯿﻢ )‪ (Null‬أي ﻻ ﯾﻤﻜﻨﻨﺎ أن ﻧﺘﺮك اﻟﺤﻘﻞ ﻓﺎرﻏﺎً ﺑﺪون ﻗﯿﻤﮫ‪.‬‬

‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ ]‪ [In Line‬ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد )‪:(Primary key‬‬
‫‪SQL>Create table student‬‬
‫(‬
‫‪St_no number(5) primary key ,‬‬
‫‪St_name varchar2(50),‬‬
‫)‪St_address varchar2(20‬‬
‫;)‬
‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻟﺜﺎﻧﯿﺔ ]‪ [Out Line‬ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد )‪:(Primary key‬‬
‫‪SQL>Create table student‬‬
‫(‬
‫‪St_no number(5) ,‬‬
‫‪St_name varchar2(50),‬‬
‫‪St_address varchar2(20),‬‬
‫)‪Constraint St_no_pk Primary key(St_no‬‬
‫;)‬

‫* اﻟﻤﺤﺪد اﻟﺴﺎدس )‪: (forgein key‬‬


‫وﻇﯿﻔﺔ ھﺬا اﻟﻘﯿﺪ إﻋﻄﺎء ﺣﻘﻞ ﻣﻌﯿﻦ ﻣﻦ ﻋﺪة ﺣﻘﻮل ﻓﻲ ﺟﺪول ﻣﺎ‪.‬وﺳﻤﻲ اﻟﻤﻔﺘﺎح اﻷﺟﻨﺒﻲ ﺑﮭﺬا اﻻﺳﻢ ﻷﻧﮫ‬
‫ﻟﯿﺲ ﻣﻦ اﻟﺤﻘﻮل اﻟﻤﻮﺟﻮدة أﺻﻼً ﻓﻲ اﻟﺠﺪول ‪،‬أي أﻧﮫ ﻋﺒﺎرة ﻋﻦ ﺣﻘﻞ أو أﻛﺜﺮ ﺗﻀﺎف إﻟﻰ ﺟﺪول ﻟﺮﺑﻄﮫ‬
‫ﻣﻊ ﺟﺪول آﺧﺮ‪.‬‬

‫ﻣﻼﺣﻈﺔ‪ :‬ﻧﻜﻮن ﺟﺪوﻟﯿﻦ ﻟﺒﯿﺎن اﻟﻤﻔﺘﺎح اﻷﺟﻨﺒﻲ‬


‫‪‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


:(forgein key) ‫[ ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد‬In Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ‬

‫(اﻷب‬Mister) ‫ﺟﺪول‬ Table section :‫ﺟﺪول اﻷﻗﺴﺎم‬


SQL>Create table section
(sec_no number(2) primary key,
Sec_name varchar2(20) not null
);
‫( اﻻﺑﻦ‬Detail) ‫ﺟﺪول‬ Table student :‫ﺟﺪول اﻟﻄﻼب‬
SQL>Create table student
(st_no number(7) primary key,
St_name varchar2(30) not null,
sec_no number(2) references section(sec_no)
);

:(forgein key) ‫[ ﻟﻠﻤﺜﺎل ﻋﻠﻰ ھﺬا اﻟﻤﺤﺪد‬Out Line] ‫ﺗﻄﺒﯿﻖ اﻟﻄﺮﯾﻘﺔ اﻟﺜﺎﻧﯿﺔ‬
SQL>Create table student
(st_no number(7) primary key,
St_name varchar2(30) not null,
sec_no number(2),
constraint fk_sec_no foreign key(sec_no) references
section(sec_no)
);
‫ أﻣﺮ ﻟﻠﺘﻌﺪﯾﻞ ﻋﻠﻰ أﺳﻢ اﻟﺠﺪول‬:Rename: ‫اﻷﻣﺮ‬
SQL> Rename student to student2; : ‫ﻣﺜﺎل‬

Alter ‫وﯾﻤﻜﻦ أن ﻧﻌﺪل اﻟﺠﺪول ﻣﻦ داﺧﻞ‬


SQL> Alter table student Rename to student2 ;
‫ ﯾﻌﻤﻞ ﻋﻠﻰ ﻋﻤﻞ اﻟﺘﻌﻠﯿﻖ ﻟﻠﺠﺪول ﻓﻲ ﺣﺎﻟﺔ ﻧﺴﯿﺎن‬: Comment ‫اﻷﻣﺮ‬ 
.‫وﻇﯿﻔﺔ اﻟﺠﺪول أو اﻟﺤﻘﻞ اﻟﻤﻄﻠﻮب ﻋﻤﻞ ﻟﮫ اﻟﺘﻌﻠﯿﻖ‬
:‫ﻣﺜﺎل ﻋﻠﻰ ﺟﺪول‬
SQL>comment on table student is ' ‫; ' ھﻨﺎ ﻧﻜﺘﺐ اﻟﺘﻌﻠﯿﻖ‬

‫ﯾﻜﻮن اﻟﺘﻌﻠﯿﻖ ﺑﯿﻦ ﻋﻼﻣﺔ ﺗﻨﺼﯿﺺ ﻣﻔﺮدة‬

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫ﻣﺜﺎل ﻋﻠﻰ اﻟﺘﻌﻠﯿﻖ ﻓﻲ ﺣﻘﻞ‪:‬‬
‫; 'ھﻨﺎ ﻧﻜﺘﺐ اﻟﺘﻌﻠﯿﻖ ' ‪SQL>comment on Column student.st_no is‬‬

‫ﻹﻟﻐﺎء اﻟﺘﻌﻠﯿﻖ ﻓﻲ ﺟﺪول‬


‫;'' ‪SQL>comment on table student is‬‬

‫ﻹﻟﻐﺎء اﻟﺘﻌﻠﯿﻖ ﻓﻲ ﺣﻘﻞ‬


‫;'' ‪SQL>comment on Column student.st_no is‬‬

‫أﻣﺮ اﺳﺘﺮﺟﺎع ﺟﺪول ﺑﻌﺪ اﻟﺤﺬف}‪ {Drop‬ﯾﻌﻤﻞ ]ﻣﻦ إﺻﺪار ‪10g‬وﻣﺎ ﻓﻮق[‬

‫‪Flashback table‬‬
‫;‪SQL> Flashback table student to before drop‬‬
‫ﯾﺮﺟﻊ اﻟﺠﺪول وﺣﻘﻮﻟﮫ وﺑﺪون اﻟﻘﯿﻮد‬
‫* اﻻﺳﺘﻌﻼم أو أﻇﮭﺎر اﻟﺠﺪاول اﻟﻤﺤﺬوﻓﺔ اﻟﻠﻲ ﻋﻤﻠﻨﺎ ﻟﮭﺎ ‪Drop‬‬
‫ﻧﺴﺘﺨﺪم‪:‬‬
‫;‪SQL> show Recyclebin‬‬
‫* أﻣﺮ ﻟﺤﺬف اﻟﺠﺪول ﻧﮭﺎﺋﯿﺎً ﻣﻦ ‪Recyclebin‬‬
‫;‪SQL> purge table student‬‬
‫*وﯾﻤﻜﻦ ﺣﺬف ﺟﻤﯿﻊ اﻟﺠﺪاول ﻓﻲ ‪Recyclebin‬‬
‫;‪SQL> purge Recyclebin‬‬
‫* ﺣﺬف ﺟﺪول ﻧﮭﺎﺋﯿﺎ ﺑﺪون اﺳﺘﺮﺟﺎع وﺑﺪون ‪Recyclebin‬‬
‫;‪SQL> drop table student purge‬‬
‫‪ : :Pruge‬أﻣﺮ ﻟﺤﺬف ﺟﺪول ﻧﮭﺎﺋﯿﺎً‪.‬‬
‫‪ :Recyclebin‬ﯾﺤﺠﺰ أوراﻛﻞ ﻣﺴﺎﺣﺔ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻟﺴﻠﺔ اﻟﻤﺤﺬوﻓﺎت ھﺬه‬
‫اﻟﻤﺤﺬوﻓﺎت ﯾﻤﻜﻦ اﺳﺘﻌﺎدھﺎ إﻟﻰ اﻟﻘﺎﻋﺪة وﯾﻤﻜﻦ ﺣﺬﻓﮭﺎ ﻧﮭﺎﺋﯿﺎً ‪.‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


 DML
  ‫ﯾﻘﻮم ھﺬا اﻷﻣﺮ ﺑﺈﺿﺎﻓﺔ ﺳﺠﻞ ﻟﻠﺠﺪول‬Insert into
INSERT INTO table_name
VALUES (value1, value2,....) ‫وﺻﯿﻐﺘﮭﺎ اﻟﻌﺎﻣﺔ‬
INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)

 

SQL>insert into student(st_no ,st_name ,


birth_date)
  Values(10,'alsaeedi','22-dec-1987')

date ‫ أو‬varchar‫ أو‬varchar2‫ أو‬char ‫ أي ﺣﻘﻞ ﻣﻦ ﻧﻮع‬:‫ﻣﻼﺣﻈﺔ‬


.‫ﯾﻜﺘﺐ ﻓﻲ اﻟﻘﯿﻢ ﺑﯿﻦ ﻋﻼﻣﺔ ﺗﻨﺼﯿﺺ ﻣﻔﺮده‬

:‫ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﺑﻄﺮﯾﻘﺔ أﺧﺮى‬


SQL>insert into student(st_no ,st_name , birth_date)
Values(&st_no , &st_name , & birth_date)

:‫ﻣﺜﺎل آﺧﺮ‬
SQL> INSERT INTO STUDENT (Last_Name, Address)
Values ('alsaeedi', sana a')

Select ‫وھﻨﺎك اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻄﺮق ﻹﺿﺎﻓﺔ ﺑﯿﺎﻧﺎت وﯾﻤﻜﻦ أﺿﺎﻓﺘﮭﺎ ﻣﻦ ﺟﺪول آﺧﺮ ﻋﻦ ﻃﺮﯾﻖ‬

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫ ﯾﻘﻮم ھﺬا اﻷﻣﺮ ﺑﺘﻌﺪﯾﻞ ﺑﯿﺎﻧﺎت ﻋﻤﻮد ﻛﺎﻣﻞ أو ﻣﺠﻤﻮﻋﺔ‬:Update
.‫ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻟﻌﻤﻮد ﺑﺤﺴﺐ ﺷﺮط ﻣﻌﯿﻦ‬
:‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬
UPDATE table_name
SET column_name = new_value
WHERE column_name = some_value

 

  SQL>update student set st_age=20;

SQL>update student set st_age=20


  Where section_no=2; ‫ﺑﺸﺮط‬

SQL>update student
set st_city='albyda a'
  where dept_name='computer sciences';
SQL> update student
SET Address = 'alrabaad street', City = 'sana a'
WHERE Last_Name = 'alsaeedi'

: ‫ﻣﻼﺣﻈﺎت‬
‫اﻟﺘﻌﺪﯾﻞ ﻋﻠﻰ ﺑﯿﺎﻧﺎت اﻟﺠﺪول ﯾﺘﻢ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﻌﻤﻮد‬
‫إن ﻟﻢ ﺗﻮﺟﺪ ﺟﻤﻠﺔ ﺷﺮط ﻓﻲ اﻟﺘﻌﺪﯾﻞ ﻓﺄﻧﮫ ﺳﻮف ﯾﺘﻢ ﺗﻌﺪﯾﻞ ﺟﻤﯿﻊ‬
.‫ﺑﯿﺎﻧﺎت اﻟﻌﻤﻮد‬

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫‪:Delete‬ﯾﻘﻮم ھﺬا اﻷﻣﺮ ﺑﺤﺬف ﺑﯿﺎﻧﺎت اﻟﺠﺪول أﻣﺎ ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت‬
‫ﻟﻠﺴﺠﻼت أو ﻣﺠﻤﻮﻋﺔ ﺳﺠﻼت أو ﺳﺠﻞ ﻣﻌﯿﻦ ﺑﺸﺮط ﻣﻌﯿﻦ‪.‬‬
‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‪:‬‬
‫‪DELETE from table_name‬‬
‫‪WHERE column_name = some_value‬‬

‫اﻷﻣﺜﻠﺔ‪:‬‬

‫;‪SQL> Delete from student‬‬

‫‪SQL> Delete from student‬‬


‫;'‪Where st_name='alsaeedi‬‬
‫ﺣﺬف ﻣﻊ اﻟﺸﺮط‬

‫‪SQL> Delete from student‬‬


‫;‪Where st_age>=18‬‬
‫ﺣﺬف ﻣﻊ اﻟﺸﺮط‬

‫ﻣﻼﺣﻈﺎت‪:‬‬
‫اﻟﺤﺬف ﻓﻲ اﻟﺠﺪول ﻟﻠﺒﯿﺎﻧﺎت ﯾﺘﻢ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺴﺠﻞ ﻛﺎﻣﻞ‬
‫إن ﻟﻢ ﯾﺤﺘﻮي أﻣﺮ اﻟﺤﺬف ﻋﻠﻰ ﺟﻤﻠﺔ ﺷﺮط ﻓﺴﻮف ﯾﺘﻢ ﺣﺬف ﺑﯿﺎﻧﺎت ﺟﻤﯿﻊ‬
‫اﻟﺴﺠﻼت‪.‬‬
‫‪-‬ﻋﻨﺪﻣﺎ ﻧﻤﻠﻚ ﺟﺪوﻟﯿﻦ ﻣﺜﻼ)اﻟﻄﻼب واﻷﻗﺴﺎم( ﻓﺈﻧﻨﺎ ﻻ ﻧﺴﺘﻄﯿﻊ ﺣﺬف ﺑﯿﺎﻧﺎت وﺧﺎﺻﺔ إذا ﻛﺎﻧﺖ ھﻨﺎك‬
‫ﺑﯿﻦ اﻟﺠﺪوﻟﯿﻦ ﻋﻼﻗﺔ ‪ many to one‬ﻓﻤﺜﻼ ﻓﻲ اﻟﺠﺪوﻟﯿﻦ اﻟﻄﻼب واﻷﻗﺴﺎم ﻓﺈﻧﻨﺎ ﻻ ﻧﺴﺘﻄﯿﻊ ﺣﺬف‬
‫ﺑﯿﺎﻧﺎت اﻷﻗﺴﺎم ﻣﺒﺎﺷﺮة وھﻨﺎك ﺳﺠﻼت ﻓﻲ اﻟﻄﻼب ﻣﺮﺗﺒﻄﺔ ﺑﮭﺎ إﻻ ﺑﺄﺣﺪ اﻟﻄﺮق اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫اﻟﻄﺮﯾﻘﺔ اﻷوﻟﻰ‪:‬‬
‫; ‪SQL>delete student‬‬ ‫‪ - ١‬ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻟﻄﻼب‬
‫; ‪SQL>delete section‬‬ ‫‪ -٢‬ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻷﻗﺴﺎم‬
‫اﻟﻄﺮﯾﻘﺔ اﻟﺜﺎﻧﯿﺔ‪:‬‬
‫ﻋﻨﺪ إﻧﺸﺎء ﻗﯿﺪ اﻟﻤﻔﺘﺎح اﻟﺜﺎﻧﻮي ﻧﻀﯿﻒ ‪On delete cascade‬‬
‫)‪Constraint FK foreign key(sec_no) references section(sec_no‬‬
‫;)‪on delete cascade‬‬
‫;‪SQL>delete section‬‬ ‫‪ -‬ﺛﻢ ﻧﺤﺬف ﺑﯿﺎﻧﺎت‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


‫أﻣﺮ ﯾﻘﻮم ﺑﻨﺴﺦ ﺳﺠﻼت ﻟﺠﺪول أو ﻣﻨﻈﻮر أو اﺳﺘﻌﻼم إﻟﻰ‬:Merge
‫داﺧﻞ ﺟﺪول ﺟﺪﯾﺪ وﻓﻲ ﺣﺎﻟﺔ أن ﯾﻜﻮن اﻟﺴﺠﻞ ﻣﻮﺟﻮد ﯾﻘﻮم ﺑﻌﻤﻠﯿﺔ اﻟﺘﻌﺪﯾﻞ وان ﻟﻢ ﯾﻮﺟﺪ‬
.‫اﻟﺴﺠﻞ ﻓﯿﻘﻮم ﺑﻌﻤﻠﯿﺔ إﺿﺎﻓﺔ ﻟﻠﺴﺠﻞ‬

Merge into table_name alias :‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬


Using (table /view/sub-Query) alias
On (join condition)

When matched then


Update set
Col 1 = col_val ,
Col 2 = col_val

When not matched then


Insert (column _ list)
Values (column_values) ;

: ‫ﻣﺜﺎل‬
SQL> Merge into student S
using old-student O
On (s.s_ no=o. s_no)
When matched then
update set
s . s_no =o . s_no ,
s . s_name =o . s_name ,
s . s_Age =o . s_Age,
s . sec_no =o . sec_no
when not matched then
insert values (o . s_no , o . s_name , o . s_Age , o . sec_no );

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫ﻗﺒﻞ ﺟﻤﻞ ‪ select‬ﻧﺬﻛﺮ اﻷواﻣﺮ اﻟﻤﺘﻌﻠﻘﺔ اﻟﺘﺤﻜﻢ ﺑﺤﺮﻛﺔ اﻟﺒﯿﺎﻧﺎت‬

‫‪ -٤‬اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ اﻟﻠﻐﺔ اﻟﺘﺤﻜﻢ اﻟﺤﺮﻛﺔ اﻟﺒﯿﺎﻧﺎت)‪(TCL‬‬


‫‪Transaction control language‬‬

‫ﻋﻤﻠــــــــــــــــــــــــــــــــﮫ‬ ‫اﻷﻣﺮ‬
‫ھﺬا اﻷﻣﺮ ﯾﻘﻮم ﺑﺘﺜﺒﯿﺖ ﻋﻤﻞ أواﻣﺮ ‪ DML‬ﻋﻠﻰ ‪Data base‬‬ ‫; ‪SQL>Commit‬‬
‫ﯾﻘﻮم ھﺬا اﻷﻣﺮ ﺑﺎﻟﺘﺮاﺟﻊ ﻋﻦ ﺟﻤﯿﻊ أواﻣﺮ ‪ DML‬اﻟﺘﻲ ﺗﻢ ﺗﻨﻔﯿﺬھﺎ‬ ‫‪SQL>Rollback‬‬
‫ﺳﺎﺑﻘﺎً ﺣﺘﻰ آﺧﺮ‪Commit‬‬ ‫; ]‪[to savepoint‬‬
‫‪ SQL>savepoint‬وﺿﻊ إﺷﺎرة ﻣﺤﺪدة ﺑﯿﻦ ﻣﺠﻤﻮﻋﺔ أواﻣﺮ ‪ DML‬ﯾﺘﻢ ﺗﻨﻔﯿﺬھﺎ ﻟﯿﺘﻢ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ‬
‫>‪ <savepoint name‬أﻣﺮ‪ Rollback‬ﻟﺮﺟﻮع ﻋﻦ ﺟﻤﯿﻊ أواﻣﺮ‪ DML‬اﻟﺘﻲ ﻧﻔﺬت وﺣﺘﻰ آﺧﺮ أﻣﺮ ﺑﻌﺪ‬
‫‪ Savepoint‬اﻟﻤﺴﺘﺨﺪﻣﺔ‪.‬‬
‫;‬

‫ﻣﺜﺎل ‪:‬‬
‫;‪SQL>savepoint huzam‬‬
‫;‪SQL>Rollback to savepoint huzam‬‬
‫ﻣﻼﺣﻈﺔ‪:‬‬
‫أواﻣﺮ‪ DML‬ﻻ ﯾﺘﻢ ﺗﺜﺒﯿﺘﮭﺎ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت إﻻ ﺑﺎﺳﺘﺨﺪام اﻷﻣﺮ ‪ Commit‬ﺑﻌﺪ ﺗﻨﻔﯿﺬھﺎ‬

‫ﺟﺪول اﺧﺘﺼﺎرات‪SQL Plus‬‬


‫ﻋﻤﻠﮫ‬ ‫اﻷﻣﺮ‬
‫ﻋﺮض ﺣﻘﻮل اﻟﺠﺪول‬ ‫>‪Desc<table name‬‬
‫ﻇﮭﻮر ﻣﺤﺮر اﻟﻨﺼﻮص‬ ‫‪Ed‬‬
‫إﻇﮭﺎر ﻣﺤﺘﻮﯾﺎت ﻣﻠﻒ‬ ‫‪Get filename‬‬
‫ﺗﻨﻔﯿﺬ أواﻣﺮ ﻣﻮﺟﻮدة ﻓﻲ ﻣﻠﻒ‬ ‫‪Start filename‬‬
‫ﺗﻨﻔﯿﺬ آﺧﺮ أﻣﺮ‬ ‫‪Run OR R OR /‬‬
‫ﺗﻨﻔﯿﺬ ﻣﻠﻒ ﺗﻨﻔﯿﺬي‬ ‫‪Host txt‬‬
‫ﻟﻜﺘﺎﺑﺔ ﻣﺠﻤﻮﻋﺔ أواﻣﺮ وﻧﺎﺗﺠﮭﺎ ﻓﻲ ﻣﻠﻒ‬ ‫‪Spool on‬‬
‫‪Spool off‬‬
‫ﻟﻠﺨﺮوج ﻣﻦ ‪SQLPlus‬‬ ‫‪Exit‬‬
‫ﻟﻼرﺗﺒﺎط ﺑﺎﻟﻤﺴﺘﺨﺪم‬ ‫‪Conn username‬‬
‫ﻓﻚ اﻻرﺗﺒﺎط‬ ‫‪Disc‬‬

‫‪alsaeedi 999@hotmail.com‬‬ ‫أﻋﺪاد‪ /‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬


Select
‫ﺟﻤﻠﺔ اﻻﺳﺘﻌﻼم ﺗﻘﻮم ﺑﺠﻠﺐ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﻋﺮﺿﮭﺎ ﻋﻠﻰ ﺷﺎﺷﺔ‬
.‫ ﺑﺸﺮوط ﻣﻌﯿﻨﺔ أو ﺑﺪون ﺷﺮوط‬SQLplus
:‫وﺻﯿﻐﮭﺎ اﻟﻌﺎﻣﺔ‬
1- SELECT column_name(s)
FROM table_name
2- SELECT DISTINCT column_name(s)
FROM table_name‫اﺳﺘﻌﻼم ﺑﺪون ﺗﻜﺮار‬
3- SELECT column FROM table
WHERE column operator value
‫اﺳﺘﻌﻼم اﻟﺸﺮط‬
4- SELECT column FROM table
WHERE column LIKE pattern

:‫اﻷﻣﺜﻠﺔ‬
SQL> Select * from ‫ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ﺟﺪول اﻟﻄﻼب‬
student;
(‫)اﻟﺼﯿﻐﺔ اﻷوﻟﻰ‬ .‫ اﻻﺳﺘﻌﻼم ﻋﻦ رﻗﻢ اﻟﻘﺴﻢ واﺳﻤﮫ ﻣﻦ ﺟﺪول اﻷﻗﺴﺎم‬-
SQL> Select sec_no ,sec_name
From section;
.‫ اﻻﺳﺘﻌﻼم ﻋﻦ اﻻﺳﻢ اﻷﺧﯿﺮ واﻻﺳﻢ اﻷول ﻣﻦ ﺟﺪول ﺑﯿﺎﻧﺎت اﻟﻄﻼب‬-
(‫)اﻟﺼﯿﻐﺔ اﻷوﻟﻰ‬
SQL> SELECT LastName,FirstName FROM student;

(‫)اﻟﺼﯿﻐﺔ اﻟﺜﺎﻧﯿﺔ‬ .‫اﺧﺘﯿﺎر رﻗﻢ اﻟﻄﺎﻟﺐ ﻣﻦ ﺟﺪول اﻟﻄﻼب ﺑﺪون ﺗﻜﺮار‬-


SQL> SELECT DISTINCT st_no FROM student;

‫)اﻟﺼﯿﻐﺔ‬ .‫اﺧﺘﯿﺎر أرﻗﺎم اﻟﻄﺎﻟﺐ وأﺳﻤﺎﺋﮭﻢ ﻣﻦ ﺟﺪول اﻟﻄﻼب ﺑﺪون ﺗﻜﺮار‬-


(‫اﻟﺜﺎﻧﯿﺔ‬
SQL> SELECT DISTINCT st_no,st_name FROM
student;

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


Where condition ‫اﻟﺸﺮوط‬
‫وھﻮ اﻟﺸﺮط اﻟﺬي ﻣﻦ ﺧﻼﻟﮫ ﺳﯿﺤﺪد اﻟﺴﺠﻼت اﻟﺬي ﺳﯿﺘﻢ ﻋﺮﺿﮭﺎ ﻣﻦ ﺧﻼل‬
. ‫ﺟﻤﻠﺔ اﻻﺳﺘﻌﻼم‬
: ‫واﻟﺸﺮط ﯾﺤﺘﻮي ﻋﻠﻰ ﻋﺪة ﻋﻤﻠﯿﺎت ھﻲ‬
(1)- comparison operators ‫ﻋﻤﻠﯿﺎت اﻟﻤﻘﺎرﻧﺔ اﻟﻤﻌﺮوﻓﺔ‬
‫ﻣﻌﻨﺎه‬ ‫اﻟﻤﻌﺎﻣﻞ‬
‫ﻻ ﺗﺴﺎوي‬ <> OR != OR ^=
‫ﻋﻤﻠﯿﺔ اﻟﻤﺴﺎواة‬ =
‫أﺻﻐﺮ ﻣﻦ‬ <
‫اﻛﺒﺮ ﻣﻦ‬ >
‫اﺻﻐﺮ ﻣﻦ أو ﯾﺴﺎوي‬ <=
‫اﻛﺒﺮ ﻣﻦ أو ﯾﺴﺎوي‬ >=

(2)- Logical operators ‫ﻋﻤﻠﯿﺎت اﻟﻤﻨﻄﻘﯿﺔ اﻟﺜﻼث‬


[ AND , OR , NOT]

:‫اﻷﻣﺜﻠﺔ‬
SQL> select st_no ,st_name
From student
Where sec_no = 2 and st_mark > 50 ;

SQL> select st_no ,st_name


From student
Where sec_no = 2 and (st_mark < 50 OR st_Age
< 20) ;

(2)- SQL operators ‫ﻋﻤﻠﯿﺎت إﺿﺎﻓﯿﺔ ﻟﺰﯾﺎدة اﻟﺘﺤﻜﻢ‬


[ IN , Between , is null , like]
:‫أﻣﺜﻠﺔ‬
SQL> select st_no ,st_name
From student
Where sec_no in (1 , 2)
And st_mark between 60 and 90
And st_Age is null ;

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


SQL> select st_no ,st_name
From student
Where st_name like '%a' Or st_name like 'a%' ;

Order by clouse
‫ وﺑﺠﺎﻧﺒﮭﺎ اﻟﺤﻘﻮل اﻟﺘﻲ‬order by ‫ﻟﻌﺮض اﻟﺒﯿﺎﻧﺎت ﺑﺘﺮﺗﯿﺐ ﻣﻌﯿﻦ ﻧﺴﺘﺨﺪم‬
‫ﺳﯿﺘﻢ اﻟﺘﺮﺗﯿﺐ ﻋﻠﻰ أﺳﺎﺳﮭﺎ أو ﻋﻦ ﻃﺮﯾﻖ رﻗﻢ ﺗﺮﺗﯿﺐ اﻟﺤﻘﻞ وﺑﻌﺪھﺎ أﺣﺪى‬
:‫اﻟﻜﻠﻤﺎت اﻟﺘﺎﻟﯿﺔ‬
‫ ﺗﺮﺗﯿﺐ ﺗﺼﺎﻋﺪي أو ﺗﺮﻛﮭﺎ ﻓﺎرغ‬:Asc
‫ ﺗﺮﺗﯿﺐ ﺗﻨﺎزﻟﻲ‬:Desc

:‫اﻷﻣﺜﻠﺔ‬
SQL> select st_no ,st_name
From student
Order by st_no Asc ;

SQL> select st_no ,st_name


From student
Where st_Age > 20
Order by st_no , sec_no Desc ;

substitution variable ‫اﻟﻤﺘﻐﯿﺮ اﻟﺒﺪﯾﻞ‬


‫ﯾﺴﻤﺢ ﻟﻠﻤﺴﺘﺨﺪم ﺑﺈدﺧﺎل ﻗﯿﻤﺔ اﻟﺤﻘﻞ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ‬
: ‫ﻣﺜﺎل‬
SQL> select st_no ,st_name
From student
Where sec_no = &section_no ;

alsaeedi 999@hotmail.com ‫ ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬/‫أﻋﺪاد‬

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫وأﺧﯿﺮا أﺗﻤﻨﻰ أن ﺗﻜﻮﻧﻮا ﻗﺪ اﺳﺘﻔﺪﺗﻢ ﻣﻦ ھﺬا اﻟﺠﺰء ﺑﺎﻟﺸﻜﻞ اﻟﻤﻨﺎﺳﺐ‪.‬‬
‫وﻓﻲ اﻟﻨﮭﺎﯾﺔ ‪:‬‬
‫أﺣﺐ إن أﻗﻮل أن ﻋﺎﻟﻢ ‪ Database‬ﻋﺎﻟﻢ واﺳﻊ ﻛﺎﻟﻤﺤﯿﻂ ﻟﺬﻟﻚ‬
‫ﻣﻤﻜﻦ أن ﯾﻜﻮن ھﻨﺎك أﻣﻮر ﻛﺜﯿﺮة ﻻ أﻋﺮﻓﮭﺎ‪.‬‬

‫أﺗﻤﻨﻰ ﻣﻦ اﷲ أن أﻛﻮن ﻗﺪ وﻓﻘﺖ ﻓﻲ ﻋﻤﻠﻲ ھﺬا وأﺗﻤﻨﻰ ﻣﻦ اﷲ أن‬


‫ﯾﻨﺎل ھﺬا اﻟﻜﺘﺎب إﻋﺠﺎﺑﻜﻢ ورﺿﺎﻛﻢ وﻓﻲ اﻷﺧﯿﺮ أﻋﺘﺬر ﻣﻨﻜﻢ ﻋﻠﻰ‬
‫اﻟﺘﻘﺼﯿﺮﻓﻲ ﺑﻌﺾ اﻷﺷﯿﺎء‪.‬‬
‫وﺗﺮﻗﺒﻮا اﻟﺠﺰء اﻟﺜﺎﻧﻲ ﻣﻦ ﻛﺘﺎب )اﻟﻜﺎﻣﻞ ﻓﻲ اﻷوراﻛﻞ(‬
‫اﻟﺮﺟﺎء ﻻ ﺗﻨﺴﻮﻧﺎ ﻣﻦ دﻋﺎﺋﻜﻢ‬

‫اﻟﺴﯿﺮة اﻟﺬاﺗﯿﺔ‬
‫اﻻﺳﻢ‪ :‬ﻋﺒﺪاﻟﺮﺣﻤﻦ ﺟﻤﺎل ﻣﺤﺴﻦ اﻟﺴﻌﯿﺪي‬
‫اﻟﻌﻤﺮ ‪ ٢١ :‬ﻋﺎﻣﺎً‬
‫ﺟﺎﻣﻌﺔ ‪ :‬ﺳﺒﺄ‬
‫ﻗﺴﻢ‪ :‬ﻋﻠﻮم ﺣﺎﺳﻮب‬
‫اﻟﻤﺴﺘﻮى ‪ :‬اﻟﺜﺎﻟﺚ‬

‫‪٢٠٠٩/٢٠٠٨‬م‬
‫‪/٢٩‬ذي اﻟﻘﻌﺪة‪١٤٢٩/‬‬
‫‪٢٠٠٨/١١/٢٧‬م‬

‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬

You might also like