You are on page 1of 14

‫اﻟﻔﺼﻞ اﻟﺘﺎﺳﻊ‬

‫‪Creating And Managing Table‬‬

‫إﻧﺸﺎء وإدارة اﻟﺠﺪاول‬


‫اﻷهﺪاف‬
‫ﺑﻌﺪ اآﻤﺎل هﺬا اﻟﺪرس ﻳﺠﺐ أن ﺗﻜﻮن ﻗﺎدر ﻋﻠﻲ‪:‬‬
‫‪ .1‬ﻣﻌﺮﻓﺔ اﻧﻮاع ‪. Data Base Object‬‬
‫‪ .2‬إﻧﺸﺎء اﻟﺠﺪاول ‪.‬‬
‫‪ .3‬ﻣﻌﺮﻓﺔ أﻧﻮاع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﻳﻤﻜﻦ أن ﺗﺴﺘﺨﺪم ﻋﻨﺪاﻧﺸﺎء اﻟﺠﺪول‪.‬‬
‫‪ .4‬ﺗﻌﺪﻳﻞ أﻧﻮاع اﻟﺒﻴﺎﻧﺎت ﺑﺎﻟﺠﺪول‪.‬‬
‫‪ .5‬ﺣﺬف اﻟﺠﺪول ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و ﺗﺒﺪﻳﻞ اﺳﻢ اﻟﺠﺪول ﺑﺎﺳﻢ اﺧﺮ‬
‫وازاﻟﺔ آﺎﻓﺔ اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﺠﺪول‪.‬‬
‫‪ٍDATA BASE OBJECTS‬‬
‫‪Object‬‬ ‫‪Description‬‬
‫‪Table‬‬ ‫ﻣﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﺻﻔﻮف وأﻋﻤﺪة‬
‫ﻳﻤﺜﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻣﺄﺧﻮذة ﻣﻦ ﺟﺪول واﺣﺪ‬
‫‪View‬‬
‫أو أآﺜﺮ ﻣﻦ ﺟﺪول‬
‫‪Sequence‬‬ ‫ﻳﺴﺘﺨﺪم ﻟﺘﺮﺗﻴﺐ اﻻرﻗﺎم ﻓﻰ ‪Primary Key‬‬
‫ﻳﺤﺴﻦ أداء ﺑﻌﺾ اﻻﺳﺘﻌﻼﻣﺎت ﻋﻦ ﻃﺮﻳﻖ ﻋﻤﻞ‬
‫‪Index‬‬
‫‪ Index‬ﻟﺒﻌﺾ اﻻﻋﻤﺪة‬
‫‪Synonym‬‬ ‫ﻳﻌﻄﻲ أﺳﻤﺎء ﺑﺪﻳﻠﺔ إﻟﻲ ‪Data Base Object‬‬

‫‪Naming Rules‬‬
‫هﻨﺎك ﺑﻌﺾ اﻟﺸﺮوط ﻟﻜﻰ ﻳﻤﻜﻨﻚ اﻋﻄﺎء اﺳﻤﺎء ﻟﻠﺠﺪوال او اﻻﻋﻤﺪة ‪:‬‬
‫‪-1‬ﻻﺑﺪ ان ﻳﺒﺪأ اى اﺳﻢ ﺑﺤﺮف‪.‬‬
‫‪-2‬ﻻﺑﺪ ان ﻳﻜﻮن ﻃﻮل ﺣﺮوف اﻻﺳﻢ ﺑﻴﻦ ‪ 1‬اﻟﻰ ‪. 30‬‬
‫‪-3‬اﻟﺤﺮوف اﻟﺘﻰ ﻳﻤﻜﻦ ان ﻳﺘﻀﻤﻨﻬﺎ اﻻﺳﻢ ) ‪.( A-Z ,a-z ,0-9 ,_ ,$ ,#‬‬
‫‪-4‬ﻻﻳﻤﻜﻦ اﻋﻄﺎء اآﺜﺮ ﻣﻦ ﺟﺪول او ﻋﻤﻮد ﻧﻔﺲ اﻻﺳﻢ‪.‬‬
‫‪-5‬ﻻﻳﻤﻜﻦ اﻋﻄﺎء اﺳﻤﺎء ﺧﺎﺻﺔ ﺑﺄواﻣﺮ ‪ ORACLE‬ﻣﺜﻞ ﺗﺴﻤﻴﺔ ﺟﺪول ﺑﺎﺳﻢ‬
‫‪ SELECT‬او ‪. UPDATE‬‬
‫‪Create Table‬‬

‫ﻟﻜﻰ ﻳﻤﻜﻨﻚ اﻧﺸﺎء ﺟﺪول‪:‬‬


‫‪ -1‬ﻻﺑﺪ ان ﻳﻜﻮن ﻟﻚ ﺻﻼﺣﻴﺔ اﻧﺸﺎء ﺟﺪول‪.‬‬
‫‪ -2‬ان ﻳﻜﻮن ﻟﻚ ﻣﺴﺎﺣﺔ ﻻﻧﺸﺎء اﻟﺠﺪول‪.‬‬
‫‪ -3‬اﻋﻄﺎء اﺳﻢ ﻟﻠﺠﺪول ﻏﻴﺮ ﻣﺴﺘﺨﺪم ﻣﻦ ﻗﺒﻞ‪.‬‬
‫ﻹﻧﺸﺎء ﺟﺪول ﺟﺪﻳﺪ ﻳﺘﻢ اﺳﺘﺨﺪام اﻷﻣﺮ ‪ CREATE‬ﺛﻢ ‪ TABLE‬ﺛﻢ أﺳﻢ اﻟﺠﺪول‬
‫ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﺄﺗﻲ أﺳﻤﺎء اﻷﻋﻤﺪة ﺑﺄﻧﻮاع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺳﻮف ﺗﺨﺰن ﺑﻬﺎ ‪.‬‬
‫وهﻲ ﺗﻜﻮن ﻋﻠﻲ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲ‪:‬‬
‫* ﺗﻮﺿﻊ أﺳﻤﺎء اﻷﻋﻤﺪة وأﻧﻮاع اﻟﺒﻴﺎﻧﺎت ﺑﻴﻦ ﻗﻮﺳﻴﻦ وﻳﻜﺘﺐ أﺳﻢ اﻟﻌﻤﻮد‬
‫وﻳﻠﻴﻪ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺳﻮف ﺗﺨﺰن ﺑﻪ ‪.‬‬
‫• ﻳﺘﻢ ﺗﺤﺪﻳﺪ آﻼ ﻣﻦ ‪:‬‬
‫‪ -‬أﺳﻢ اﻟﺠﺪول‪.‬‬
‫‪ -‬أﺳﻢ اﻟﻌﻤﻮد ‪.‬‬
‫‪ -‬ﻧﻮع ﺑﻴﺎﻧﺎت اﻟﻌﻤﻮد وﻣﺴﺎﺣﺔ اﻟﻌﻤﻮد‪.‬‬

‫ﻣﺪﻳﺮ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت )‪ (DBA‬ﻳﺴﺘﺨﺪم ‪ DCL‬ﻟﻴﻤﻨﺤﻚ اﻣﻜﺎﻧﻴﺔ اﻧﺸﺎء ﺟﺪاول‬


‫وﺳﻮف ﻳﻐﻄﻲ ﻓﻲ اﻟﻔﺼﻞ اﻻﺧﻴﺮ‪.‬‬
‫ﻣﻦ اﻟﻨﺤﻮ‬
‫‪Schema‬‬
‫هﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ اﻟﻜﺎﺋﻨﺎت ‪ objects‬اﻟﻤﺮﺗﺒﻄﺔ ﺑﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫اﻟﻘﻴﻤﺔ اﻻﻓﺘﺮاﺿﻴﺔ ‪Default Option‬‬

‫ﺗﺤﺪﻳﺪ ﻗﻴﻤﺔ اﻓﺘﺮاﺿﻴﺔ ﻟﻌﻤﻮد ﻣﺤﺪد أﺛﻨﺎء إدﺧﺎل اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫إﻧﺸﺎء اﻟﺠﺪاول ‪Cerate Table‬‬

‫اﻟﺼﻴﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻟﺠﻤﻠﺔ ‪: Create‬‬

‫ﻣﻦ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ‬


‫‪-1‬ﻧﺠﺪ أن اﻟﻌﻤﻮد اﻻول ﺗﻢ ﺗﺤﺪﻳﺪ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﻟﺔ أرﻗﺎم وأﻗﺼﻲ‬
‫ﻋﺪد ﻣﺴﻤﻮح ﻟﺔ رﻗﻢ ﻣﻦ ﺧﺎﻧﺘﻴﻦ وﻳﺮاﻋﻲ وﺿﻊ اﻟﺮﻗﻢ )‪ (2‬ﺑﻴﻦ‬
‫ﻗﻮﺳﻴﻦ‪.‬‬
‫‪-2‬اﻟﻌﻤﻮد اﻟﺜﺎﻧﻰ ﻧـﻮع اﻟﺒﻴﺎﻧـﺎت ﻟـﺔ ﺣـﺮوف واﻗـﺼﻰ ﻋـﺪد ﻣـﻦ‬
‫اﻟﺤﺮوف هﻮ ‪ 14‬ﺣﺮف وﻳﺮاﻋﻰ وﺿﻌﺔ ﺑﻴﻦ ﻗﻮﺳﻴﻦ‪.‬‬
‫‪-3‬أﻋﻤﺪة اﻟﺘﺎرﻳﺦ ﻻ ﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻃﻮﻟﻬﺎ أﺛﻨﺎء إﻧﺸﺎء اﻟﺠﺪول‪.‬‬

‫اﻟﺘﺎآﺪ ﻣﻦ إﻧﺸﺎء اﻟﺠﺪول ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام اﻻﻣﺮ ‪ DESC‬او ‪: DESCRIBE‬‬


‫‪Tables in The ORACLE DATA BASE‬‬
‫اﻟﺠﺪاول ﻓﻲ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت أوراآﻞ‬

‫هﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻟﺠﺪاول‪:‬‬


‫• ﺟﺪاول اﻟﻤﺴﺘﺨﺪم )‪: (User Tables‬‬
‫‪ -‬ﻣﺠﻤﻮﻋﺔ اﻟﺠﺪاول اﻟﺘﻲ ﺗﻢ إﻧﺸﺎؤهﺎ وﺣﻔﻈﻬﺎ ﻋﻦ ﻃﺮﻳﻖ اﻟﻤﺴﺘﺨﺪم‪.‬‬

‫ﻗﺎﻣﻮس اﻟﺒﻴﺎﻧﺎت )‪: (Data Dictionary‬‬ ‫•‬


‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺠﺪاول اﻟﺨﺎﺻﺔ ﺑﺄوراآﻞ ﻣﺜﻞ )‪.(Dual,User_Objects,…..‬‬ ‫‪-‬‬
‫اﻟﺠﺪول)‪ (Dual‬ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﺔ ﻟﻌﻤﻞ اى ﻋﻤﻠﻴﺎت ﺧﺎرج ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت او ﻟﻤﻌﺮﻓﺔ ﺗﺎرﻳﺦ اﻟﻴﻮم‪.‬‬
‫اﻟﺠﺪول)‪ (User_Objects‬ﻳﺴﺘﺨﺪم ﻟﻤﻌﺮﻓﺔ ﻣﻌﻠﻮﻣﺎت ﻋﻦ‬
‫)‪ (Data Base Object‬ﺑﺎﻟﻨﺴﺒﺔ ‪. User‬‬
‫ﻣﺜﺎل‪:‬‬
‫‪Select * from‬‬
‫;‪user_objects‬‬

‫اﺳﺘﻌﻼم ﻋﻦ ﻗﺎﻣﻮس اﻟﺒﻴﺎﻧﺎت‬


‫‪ -‬ﻣﻌﺮﻓﺔ اﻟﺠﺪاول اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم‬

‫‪ -‬ﻣﺸﺎهﺪة أﻧﻮاع )‪ (Data Base Object‬اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم‪:‬‬

‫‪ -‬ﻣﺸﺎهﺪة اﻟﺠﺪاول اﻟﻤﻤﻠﻮآﺔ ﺑﻮاﺳﻄﺔ اﻟﻤﺴﺘﺨﺪم‪.‬‬

‫ﻣﻠﺤﻮﻇﺔ ‪:‬‬
‫ﻳﻤﻜﻦ اﺧﺘﺼﺎر اﺳﻢ اﻟﺠﺪول ‪ USER_CATALOG‬اﻟﻰ ‪. CAT‬‬

‫* ‪SELECT‬‬
‫; ‪FROM CAT‬‬
‫أﻧﻮاع اﻟﺒﻴﺎﻧﺎت )‪(Data Types‬‬

‫ﻧﻮع‬ ‫اﻟﻮﺻﻒ‬
‫)‪VARCHAR2(size‬‬ ‫ﺑﻴﺎﻧﺎت ﺣﺮﻓﻴﺔ ﻣﺘﻨﻮﻋﺔ وﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻃﻮﻟﻬﺎ ﺑﻴﻦ‬
‫اﻟﻘﻮﺳﻴﻦ ‪.‬واﻟﻄﻮل اﻟﻤﺴﻤﻮح ﺑﺔ ﻳﻜﻮن ﻣﻦ ﺣﺮف‬
‫واﺣﺪ اﻟﻰ ‪ 4000‬ﺣﺮف‪.‬‬
‫‪Char‬‬ ‫)‪(size‬‬ ‫ﺑﻴﺎﻧﺎت ﺣﺮﻓﻴﺔ ﺛﺎﺑﺘﺔ اﻟﻄﻮل وﺣﺠﻤﻪ ﻳﻜﻮن‬
‫ﺑﺎﻟﺒﺎﻳﺖ)وﺣﺠﻤﺔ ﻳﻜﻮن ﻣﻦ ‪ 1‬اﻟﻰ ‪ 2000‬ﺣﺮف(‬
‫‪NUMBER‬‬ ‫)‪(p,s‬‬ ‫ﺑﻴﺎﻧﺎت رﻗﻤﻴﺔ وﻳﺘﻢ ﻓﻴﻬﺎ ﺗﺤﺪﻳﺪ ﻋﺪد ﺧﺎﻧﺎت اﻟﺮﻗﻢ‬
‫ﺑﻴﻦ ﻗﻮﺳﻴﻦ وﻳﻤﻜﻦ ان ﻳﺘﻀﻤﻦ ارﻗﺎم ﻋﺸﺮﻳﺔ‪.‬‬
‫)‪ (P‬ﺗﻌﻨﻰ ﻋﺪد ﺧﺎﻧﺎت اﻟﺮﻗﻢ اﻟﺼﺤﻴﺢ وﻳﻤﻜﻦ ان‬
‫ﻳﺤﺘﻮى ﻣﻦ ‪ 1‬اﻟﻰ ‪ 38‬ﺧﺎﻧﺔ‪.‬‬
‫)‪(S‬ﺗﻌﻨﻰ ﻋﺪد ﺧﺎﻧﺎت اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ وﻳﻤﻜﻦ ان‬
‫ﻳﺤﺘﻮى ﻣﻦ )‪ 84 -‬اﻟﻰ ‪.(127‬‬
‫‪DATE‬‬ ‫ﺑﻴﺎﻧﺎت ﻋﻦ اﻟﺘﺎرﻳﺦ واﻟﻮﻗﺖ‪.‬‬
‫‪LONG‬‬ ‫اﻟﺒﻴﺎﻧﺎت اﻟﺤﺮﻓﻴﺔ اﻟﻤﺘﻨﻮﻋﺔ وﻣﺴﺎﺣﺘﻬﺎ‬
‫‪gigabytes 2‬‬
‫‪CLOB‬‬ ‫ﺑﻴﺎﻧﺎت ﺣﺮﻓﻴﺔ ﺣﺘﻰ ‪gigabytes 4‬‬
‫‪RAW and LONG RAW‬‬ ‫ﺑﻴﺎﻧﺎت رﻗﻢ ﺛﻨﺎﺋﻲ أوﻟﻲ‬
‫‪BLOB‬‬ ‫ﺑﻴﺎﻧﺎت ﺛﻨﺎﺋﻴﺔ ﺣﺘﻰ ‪gigabytes 4‬‬
‫‪BFILE‬‬ ‫ﺑﻴﺎﻧﺎت ﺛﻨﺎﺋﻴﺔ ﺗﺨﺰن ﻓﻲ ﻣﻠﻒ ﺧﺎرﺟﻲ ﺣﺘﻰ ‪4‬‬
‫‪gigabytes‬‬
‫‪ROWID‬‬ ‫ﺗﻤﺜﻞ اﻟﻨﻈﺎم واﻟﻌﻨﺎوﻳﻦ اﻟﻔﺮﻳﺪة ﻟﻠﺼﻒ ﻓﻲ اﻟﺠﺪول‬
‫)‪RAW(size‬‬ ‫اﻟﺒﻴﺎﻧﺎت اﻟﺜﻨﺎﺋﻴﺔ ﻟﺤﺠﻢ اﻟﻄﻮل )وأﻗﺼﻲ ﺣﺠﻢ ﻳﺠﺐ‬
‫أن ﻳﻜﻮن ﻣﺤﺪد ‪ .‬وأﻗﺼﻲ ﺣﺠﻢ ﻳﻜﻮن ‪(2000‬‬
‫‪LONG RAW‬‬ ‫ﺑﻴﺎﻧﺎت ﺛﻨﺎﺋﻴﺔ ﻟﻠﻄﻮل اﻟﻤﺘﻨﻮع ﺣﺘﻰ ‪gigabytes 2‬‬
‫‪BLOB‬‬ ‫ﺑﻴﺎﻧﺎت ﺛﻨﺎﺋﻴﺔ ﺣﺘﻰ ‪gigabytes 4‬‬
‫‪BFLLE‬‬ ‫ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت اﻟﺜﻨﺎﺋﻴﺔ ﻓﻲ اﻟﻤﻠﻒ اﻟﺜﻨﺎﺋﻲ ﺣﺘﻰ ‪4‬‬
‫‪gigabytes‬‬
‫‪ROWID‬‬ ‫رﻗﻢ اﻟﻘﺎﻋﺪة ‪ 64‬ﺗﻤﺜﻞ اﻟﻨﻈﺎم واﻟﻌﻨﺎوﻳﻦ اﻟﻔﺮﻳﺪة‬
‫ﻟﻠﺼﻒ ﻓﻲ اﻟﺠﺪول‬

‫اﻟﻌﻤﻮد ‪ LONG‬وﻻ ﻳﻨﺴﺦ ﻋﻨﺪﻣﺎ ﻳﻜﻮن اﻟﺠﺪول ﻣﻨﺸﺄ ﺑﺎﺳﺘﺨﺪام‬ ‫‪-‬‬


‫اﻻﺳﺘﻌﻼم اﻟﻔﺮﻋﻲ‪.‬‬
‫اﻟﻌﻤﻮد ‪ LONG‬ﻻ ﻳﻤﻜﻦ أن ﻳﺘﻀﻤﻦ ﻓﻲ ﻓﻘﺮة ‪ GROUP BY‬أو‬ ‫‪-‬‬
‫‪. ORDER BY‬‬

‫ﻣﻼﺣﻈﺎت‬
‫أوراآﻞ ‪ 9i‬ﺗﻘﺪم أهﺪاف آﺒﻴﺮة ﻷﻧﻮاع اﻟﺒﻴﺎﻧﺎت ) ‪Large Object ( LOB‬‬
‫وﻳﻤﻜﻦ أن ﺗﺨﺰن ﺑﻴﺎﻧﺎت آﺒﻴﺮة و ﻏﻴﺮ ﻣﻨﻈﻤﺔ ﻣﺜﻞ ﻧﺺ أو ﺻﻮرة أو‬
‫ﻓﻴﺪﻳﻮ و ﺗﺼﻞ ﻣﺴﺎﺣﺘﻬﺎ ﺣﺘﻰ ‪. gigabytes 4‬‬
‫أﻧﻮاع ﺑﻴﺎﻧﺎت اﻟﺘﺎرﻳﺦ واﻟﻮﻗﺖ‬

‫أﻧﻮاع اﻟﺒﻴﺎﻧﺎت ﻟﻠﺘﺎرﻳﺦ‬


‫أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‬ ‫اﻟﻮﺻﻒ‬
‫‪TIMSTAMP‬‬ ‫ﻳﻌﺮض اﻟﺘﺎرﻳﺦ ﻣﻊ آﺴﺮ اﻟﺜﻮاﻧﻲ‪.‬‬
‫ﻳﺴﻤﺢ ﻟﻠﻮﻗﺖ أن ﻳﺨﺰن آﺘﺎرﻳﺦ ﺑﻜﺴﺮ اﻟﺜﻮاﻧﻲ‪.‬‬
‫‪INTERVAL YEAR TO‬‬ ‫ﻳﺴﻤﺢ ﻟﻠﻮﻗﺖ أن ﻳﺨﺰن ﺑﺎﻟﺴﻨﻮات واﻟﺸﻬﻮر‬
‫‪MONTH‬‬
‫‪INTERVAL DAY TO‬‬ ‫ﻳﺴﻤﺢ ﻟﺘﺨﺰﻳﻦ اﻟﻮﻗﺖ ﺑﺎﻷﻳﺎم واﻟﺴﺎﻋﺎت واﻟﺪﻗﺎﺋﻖ‬
‫‪SECOND‬‬ ‫واﻟﺜﻮاﻧﻲ‪.‬‬

‫ﻧﻮع ﺑﻴﺎﻧﺎت ‪ TIMESTAMP‬ﻳﻜﻮن ﺗﻮﺳﻊ ﻓﻲ ﻧﻮع ﺑﻴﺎﻧﺎت ‪. DATE‬‬ ‫‪-‬‬


‫ﺗﺨﺰن اﻟﺴﻨﺔ واﻟﺸﻬﺮ واﻟﻴﻮم ﻓﻲ ﻧﻮع ﺑﻴﺎﻧﺎت ‪ DATE‬ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ ﻗﻴﻢ‬ ‫‪-‬‬
‫اﻟﺴﺎﻋﺎت واﻟﺪﻗﺎﺋﻖ واﻟﺜﻮاﻧﻲ‪.‬‬
‫ﻧﻮع ﺑﻴﺎﻧﺎت ‪ TIMESTAMP‬ﻣﺤﺪد آﺎﻟﻤﺘﺒﻊ اﻟﺘﺎﻟﻲ‪:‬‬ ‫‪-‬‬

‫اﻟﻜﺴﺮ واﻟﺜﻮاﻧﻲ واﻟﺪﻗﺎﺋﻖ‬ ‫‪-‬‬


‫ﻳﺤﺪد دﻗﺔ اﻟﻌﺪد ﺑﺸﻜﻞ اﺧﺘﻴﺎري ﻣﻦ اﻷرﻗﺎم ﻓﻲ ﺟﺰء اﻟﻜﺴﺮ ﻣﻦ اﻟﺜﺎﻧﻴﺔ‬ ‫‪-‬‬
‫ﻟﺤﻘﻞ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ ﺣﻴﺚ ﻳﻤﻜﻦ أن ﻳﻜﻮن ﻋﺪد ﻓﻲ اﻟﻤﺪى ﻣﻦ ‪ 0‬إﻟﻲ ‪9‬‬
‫واﻻﺧﺘﻴﺎر ﻳﻜﻮن ‪.6‬‬
‫اﻟﻤﺜﺎل‬

‫ﻣﻦ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻧﺤﻦ ﻧﻨﺸﺊ ﺟﺪاول ﻣﻮﻇﻔﻴﻦ ﺟﺪد ﻣﻊ ﻋﻤﻮد ﺗﺎرﻳﺦ‬ ‫‪-‬‬
‫اﻟﺒﺪاﻳﺔ ﺑﺄﻧﻮاع ﺑﻴﺎﻧﺎت ﻣﻦ ‪. TIMSTAMP‬‬
‫دﻗﺔ ‪ 7‬ﺗﺸﻴﺮ إﻟﻲ دﻗﺔ آﺴﺮ اﻟﺜﻮاﻧﻲ اﻟﺘﻲ ﻻ ﺗﺤﺪد اﻻﺧﺘﻴﺎر إﻟﻲ ‪.600‬‬
‫أﻓﺘﺮض أن اﻟﺼﻨﻔﺎن ﻳﺪﺧﻼن ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ اﻟﺠﺪد ‪.‬‬ ‫‪-‬‬
‫اﻟﻤﺨﺮﺟﺎت ﺗﺮﻳﻨﺎ اﻻﺧﺘﻼﻓﺎت ﻓﻲ اﻟﻌﺮض ) اﺧﺘﻴﺎرات ﻧﻮع ﺑﻴﺎن ‪DATE‬‬
‫ﻳﻌﺮض اﻟﺼﻴﻐﺔ ‪:( DD-MON-RR‬‬

‫اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ ﻧﻮع ﺑﻴﺎﻧﺎت اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ‬


‫اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﺗﻜﻮن ﻣﺨﺘﻠﻔﺔ ﻣﻦ اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد‬ ‫‪-‬‬
‫اﻟﺘﻲ ﺗﺸﺘﻤﻞ ﻋﻠﻲ اﻹزاﺣﺔ اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﻓﻲ ﻗﻴﻤﺘﻬﺎ‪.‬‬
‫اﻹزاﺣﺔ اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﺗﻜﻮن ﻣﺨﺘﻠﻔﺔ ﻓﻲ اﻟﺴﺎﻋﺔ واﻟﺪﻗﺎﺋﻖ ﺑﻴﻦ‬ ‫‪-‬‬
‫اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ و ‪. UTC‬‬
‫‪ UTC -‬ﻳﺴﺎﻧﺪ اﻟﺘﻨﺴﻴﻖ اﻟﻌﺎﻟﻤﻲ ﻟﺸﻜﻞ اﻟﻮﻗﺖ واﻟﻮﻗﺖ ﻳﻌﻨﻲ ﻏﺮﻳﻨﺘﺶ ‪.‬‬
‫ﻗﻴﻢ اﻻﺛﻨﺎن اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد و اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﺗﻌﺘﺒﺮ اﻟﻘﻴﻢ ﻣﺘﻤﺎﺛﻠﺔ إذا ﻳﻤﺜﻠﻮا‬
‫ﻧﻔﺲ اﻟﻠﺤﻈﺔ ﻓﻲ ‪UTC‬‬
‫ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﺗﻌﺪﻳﻼت اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ اﻟﺘﻲ ﺧﺰﻧﺖ ﻓﻲ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫وﻷن اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ اﻟﻮﻗﺖ اﻟﺰﻣﻨﻲ ﻳﻤﻜﻦ أن ﻳﺨﺰﻧﻮا ﻓﻲ اﻟﺒﻴﺎﻧﺎت ﺑﺘﻮازن‪،‬‬
‫إﻧﻪ ﺧﺼﻮﺻﺎ ﻣﻨﺎﺳﺐ ﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﺎرﻳﺦ اﻟﻤﺴﺠﻠﺔ اﻟﺘﻲ ﻳﺠﺐ أن ﺗﻜﻮن ﻣﺠﻤﻌﺔ‬
‫أو ﻧﺴﻘﺖ ﻋﺒﺮ ﻣﻨﺎﻃﻖ ﺟﻐﺮاﻓﻴﺔ‪.‬‬
‫آﻤﺜﺎل‪:‬‬

‫وهﻲ ﻧﻔﺲ‬

‫‪ 8‬وﻗﺖ ﻗﻴﺎس ﻟﻠﻤﺤﻴﻂ وهﻲ ﻧﻔﺲ ‪ 11‬وﻗﺖ ﻗﻴﺎس ﺷﺮﻗﻲ‪.‬‬


‫وﻳﻤﻜﻦ أن ﺗﺤﺪد أﻳﻀﺎ ﻣﺜﻞ‪:‬‬

‫ﻣﻠﺤﻮﻇﺔ ‪:‬‬
‫اﻟﻜﺴﺮ واﻟﺜﻮاﻧﻲ واﻟﺪﻗﺎﺋﻖ ﺗﺤﺪﻳﺪات اﺧﺘﻴﺎرﻳﻪ اﻟﺮﻗﻢ ﻣﻦ ‪0‬إﻟﻲ ‪ 9‬ﻓﻲ ﺟﺰء‬
‫اﻟﻜﺴﺮ ﻣﻦ اﻟﺜﺎﻧﻴﺔ ﻟﺤﻘﻞ اﻟﺜﻮاﻧﻲ وﻳﻤﻜﻦ ﻟﻠﻘﻢ أن ﻳﻜﻮن ﺑﻴﻦ ﻣﺪي ‪ 0‬إﻟﻲ ‪ 9‬و‬
‫اﻻﺧﺘﻴﺎر ﻳﻜﻮن ‪.6‬‬

‫ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﻟﻠﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ اﻟﻮﻗﺖ اﻟﻤﺤﻠﻲ‬


‫اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ اﻟﻮﻗﺖ اﻟﺰﻣﻨﻲ اﻟﻤﺤﻠﻲ ﻳﻜﻮﻧﻮا اﺧﺘﻼﻓﺎت ﻣﻦ اﻟﻮﻗﺖ‬ ‫‪-‬‬
‫اﻟﻤﻌﺘﺎد و اﻟﻤﺤﺘﻮﻳﺎت ﻋﻠﻲ اﺳﺘﺒﺪال اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﻓﻲ هﺬﻩ اﻟﻘﻴﻤﺔ‪.‬‬
‫ﺧﺰﻧﺖ اﻟﺒﻴﺎﻧﺎت ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺗﺠﻌﻠﻪ ﻃﺒﻴﻌﻴﺎ ﻟﻠﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ‬ ‫‪-‬‬
‫‪.‬‬
‫اﻻﺳﺘﺒﺪال ﻟﻠﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﻻ ﺗﺨﺰن آﺠﺰء ﺑﻴﺎﻧﺎت اﻟﻌﻤﻮد‪ ،‬وﺗﺴﺘﺮﺟﻊ‬ ‫‪-‬‬
‫أوراآﻞ اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم اﻟﻤﺤﻠﻲ ﻟﺪورة اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ‪.‬‬
‫اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ ﻧﻮع ﺑﻴﺎﻧﺎت ﻣﻨﻄﻘﺔ اﻟﻮﻗﺖ اﻟﻤﺤﻠﻲ ﻣﺤﺪد آﺎﻟﻤﺘﺒﻊ‬ ‫‪-‬‬
‫اﻟﺘﺎﻟﻲ‪:‬‬

‫ﻋﻠﻲ ﺧﻼف اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﻳﻤﻜﻨﻚ ﺗﺤﺪﻳﺪ أﻋﻤﺪة ﻣﻦ اﻟﻨﻮع‬
‫اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ اﻟﻤﺤﻠﻴﺔ آﺠﺰء أﺳﺎﺳﻲ أو ﻣﻔﺘﺎح ﻓﺮﻳﺪ ‪.‬‬
‫إن اﺳﺘﺒﺪال اﻟﻤﻨﻄﻘﺔ اﻟﺰﻣﻨﻴﺔ ﻋﻠﻲ اﻟﺨﻼف ﻓﻲ اﻟﺴﺎﻋﺎت واﻟﺪﻗﺎﺋﻖ ﺑﻴﻦ‬
‫اﻟﺘﻮﻗﻴﺖ اﻟﻤﺤﻠﻲ و ‪UTC‬‬
‫ﻟﻴﺲ هﻨﺎك ﺣﺮﻓﻲ ﻟﻠﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ ﻣﻨﻄﻘﺔ اﻟﺘﻮﻗﻴﺖ اﻟﻤﺤﻠﻲ ‪.‬‬
‫ﻣﻠﺤﻮﻇﺔ‪ :‬اﻟﻜﺴﺮ واﻟﺜﻮاﻧﻲ واﻟﺪﻗﺎﺋﻖ ﺗﺤﺪﻳﺪات اﺧﺘﻴﺎرﻳﻪ اﻟﺮﻗﻢ ﻣﻦ ‪0‬إﻟﻲ ‪ 9‬ﻓﻲ‬
‫ﺟﺰء اﻟﻜﺴﺮ ﻣﻦ اﻟﺜﺎﻧﻴﺔ ﻟﺤﻘﻞ اﻟﺜﻮاﻧﻲ وﻳﻤﻜﻦ ﻟﻠﻘﻢ أن ﻳﻜﻮن ﺑﻴﻦ ﻣﺪي ‪ 0‬إﻟﻲ ‪9‬‬
‫و اﻻﺧﺘﻴﺎر ﻳﻜﻮن ‪.6‬‬
‫ﻣﺜﺎل‪:‬‬
‫اﻟﻮﻗﺖ اﻟﻤﻌﺘﺎد ﻣﻊ ﻣﻨﻄﻘﺔ اﻟﺘﻮﻗﻴﺖ اﻟﻤﺤﻠﻲ ﻣﻼﺋﻤﺔ ﻟﻠﺘﻄﺒﻴﻘﺎت اﻟﺼﻔﻴﻦ‬
‫اﻟﻤﺪرﺟﻴﻦ واﻟﺘﻲ ﺗﺮﻳﺪ أن ﺗﻌﺮض ﺗﻮارﻳﺦ وأوﻗﺎت ﻳﺴﺘﻌﻤﻼن ﻣﻨﻄﻘﺔ اﻟﺘﻮﻗﻴﺖ ﻣﻊ‬
‫ﻧﻈﺎم اﻟﻌﻤﻴﻞ ‪.‬‬

‫ﻧﻮع اﻟﺒﻴﺎﻧﺎت ‪INTERVAL YEAR TO MONTH‬‬


‫ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﻟﻔﺘﺮة اﻟﺴﻨﺔ ﻣﻦ اﻟﺸﻬﺮ‬
‫وﻳﺨﺰﻧﻮن ﻟﻔﺘﺮة ﻣﻦ اﻟﻮﻗﺖ ﺑﺎﺳﺘﺨﺪام اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ واﻟﺸﻬﺮ واﻟﺴﻨﺔ‬ ‫‪-‬‬

‫اﺳﺘﺨﺪام ‪ INTERVAL YEAR TO MONTH‬ﻳﻤﺜﻞ اﺧﺘﻼﻓﻲ ﺑﻴﻦ ﻗﻴﻢ اﻟﻮﻗﺖ‬


‫واﻟﺘﺎرﻳﺦ‪.‬‬
‫اﻟﺘﻲ ﻳﻜﻮن ﻓﻴﻬﺎ اﻷﻗﺴﺎم اﻟﻬﺎﻣﺔ اﻟﻮﺣﻴﺪة وهﻲ اﻟﺴﻨﺔ واﻟﺸﻬﺮ‪.‬‬
‫آﻤﺜﺎل ‪ :‬رﺑﻤﺎ ﺗﺴﺘﺨﺪم هﺬﻩ اﻟﻘﻴﻤﺔ آﻲ ﺗﻀﻊ اﻟﺬاآﺮة ﻟﻠﺘﺎرﻳﺦ ‪ 120‬ﺷﻬﺮ ﻓﻲ‬
‫اﻟﻤﺴﺘﻘﺒﻞ ‪ ،‬أو اﻟﺘﺄآﺪ ﻣﻦ‬
‫أن هﻞ ‪ 6‬ﺷﻬﻮر ﻗﺪ اﻧﻘﻀﺖ ﻣﻨﺬ ﺑﺪاﻳﺔ ﺗﺎرﻳﺦ ﺧﺎص‪.‬‬
‫ﺣﺪد ﻓﺘﺮة اﻟﺴﻨﺔ إﻟﻲ اﻟﺸﻬﺮ آﺎﻟﻤﺘﺒﻊ اﻟﺘﺎﻟﻲ‪-:‬‬

‫ﻣﻦ اﻟﺼﻴﻐﺔ‪:‬‬
‫‪ Year_precision‬هﻲ اﻟﺮﻗﻢ اﻟﻤﻜﻮن ﻣﻦ ‪ 0‬إﻟﻲ ‪ 9‬ﻓﻲ اﻟﺴﻨﺔ ﺣﻘﻞ اﻟﺘﺎرﻳﺦ‬
‫واﻟﻮﻗﺖ‪.‬‬
‫ﻣﺜﺎل‬

‫ﻧﻮع ﺑﻴﺎﻧﺎت ‪INTERVAL DAY TO SECOND‬‬


‫ﻧﻮع ﺑﻴﺎﻧﺎت ﻓﺘﺮة اﻟﻴﻮم إﻟﻲ اﻟﺜﺎﻧﻴﺔ‬
‫‪ -‬ﻓﻲ ﺗﻌﺒﻴﺮات اﻷﻳﺎم واﻟﺴﺎﻋﺎت واﻟﺪﻗﺎﺋﻖ واﻟﺜﻮاﻧﻲ‪.‬‬
‫ﻧﺴﺘﺨﺪم ‪ INTERVAL DAY TO SECOND‬آﻲ ﺗﻤﺜﻞ اﻟﺨﻼف اﻟﺪﻗﻴﻖ ﺑﻴﻦ‬
‫ﻗﻴﻤﺘﻴﻦ اﻟﺘﺎرﻳﺦ واﻟﻮﻗﺖ‪.‬‬
‫آﻤﺜﺎل ‪ :‬رﺑﻤﺎ ﺗﺴﺘﺨﺪم هﺬﻩ اﻟﻘﻴﻤﺔ آﻲ ﺗﻀﻊ ﺗﺬآﺮة ﻟﻠﻮﻗﺖ ‪ 36‬ﺳﺎﻋﺔ ﻓﻲ‬
‫اﻟﻤﺴﺘﻘﺒﻞ‪.‬‬
‫أو أن ﺗﺴﺠﻞ اﻟﻮﻗﺖ ﺑﻴﻦ ﺑﺪاﻳﺔ وﻧﻬﺎﻳﺔ اﻟﺴﺒﺎق‪.‬‬
‫وأن ﺗﺸﻤﻞ ﻣﺪد ﻃﻮﻳﻠﺔ ﻣﻦ اﻟﻮﻗﺖ وﻳﻀﻤﻦ ذﻟﻚ اﻟﺴﻨﻮات اﻟﻤﺘﻌﺪدة ﻣﻊ اﻟﻀﺒﻂ‬
‫اﻟﻌﺎﻟﻲ‪.‬‬
‫وﻳﻤﻜﻨﻚ أن ﺗﺴﺘﺨﺪم ﻗﻴﻤﺔ آﺒﻴﺮة ﻓﻲ أﻗﺴﺎم اﻷﻳﺎم‪.‬‬
‫ﺗﺤﺪﻳﺪ ‪ INTERVAL DAY TO SECOND‬آﺎﻟﻤﺘﺒﻊ اﻟﺘﺎﻟﻲ ‪:‬‬

‫ﻣﻦ اﻟﻨﺤﻮ‬
‫هﻲ ﻋﺪد ﻣﻦ اﻷرﻗﺎم اﻟﻴﻮم ﻟﺤﻘﻞ اﻟﺘﺎرﻳﺦ‬ ‫‪Day_precision‬‬
‫واﻟﻮﻗﺖ‪.‬‬
‫ﻗﻴﻢ ﻣﻘﺒﻮﻟﺔ ﺗﻜﻮن ﻣﻦ ‪ 0‬إﻟﻲ ‪ 9‬واﻻﺧﺘﻴﺎر‬
‫ﻳﻜﻮن ‪.2‬‬
‫‪ Fractional_seconds_precision‬ﻋﺪد ﻣﻦ اﻷرﻗﺎم ﻟﺠﺰء اﻟﻜﺴﺮ ﻣﻦ اﻟﺜﺎﻧﻴﺔ‬
‫ﻟﺤﻘﻞ‬
‫اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ‬
‫واﻟﻘﻴﻢ اﻟﻤﻘﺒﻮﻟﺔ ﻣﻦ ‪ 0‬إﻟﻲ ‪ 9‬واﻟﻤﺨﺘﺎر ﻣﻨﻬﺎ‬
‫ﻳﻜﻮن ‪.6‬‬

‫ﻣﺜﺎل‬
‫‪Creating Tables‬‬
‫‪By using SubQuery‬‬
‫إﻧﺸﺎء ﺟﺪاول ﺑﺎﺳﺘﺨﺪام ﺻﻴﻐﺔ ‪SubQuery‬‬

‫ﻳﻤﻜﻦ أﻧﺸﺎء ﺟﺪول ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام ‪ SubQuery‬وذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ آﺘﺎﺑﺔ أﻣﺮ‬


‫إﻧﺸﺎء اﻟﺠﺪول )‪ (Create‬أوﻻ ﺛﻢ ﻳﻠﻴﻪ أﺳﻢ اﻟﺠﺪول اﻟﻤﺮاد إﻧﺸﺎؤﻩ ﺛﻢ آﻠﻤﺔ ‪AS‬‬
‫ﺛﻢ ‪ SubQuery‬اﻟﺬى ﻳﺘﻀﻤﻦ أﺳﻤﺎء اﻷﻋﻤﺪة اﻟﻤﺮاد إﺿﺎﻓﺘﻬﺎ ﺑﺎﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ‬
‫ﺗﺤﺘﻮﻳﻬﺎ ﻓﻲ اﻟﺠﺪول اﻟﺠﺪﻳﺪ ‪.‬‬
‫آﻤﺎ ﻳﻤﻜﻦ إﺿﺎﻓﺔ ﺟﻤﻠﺔ ﺷﺮط ﻓﻰ ‪ SubQuery‬ﻟﺘﺤﺪﻳﺪ ﻋﺪد اﻟﺼﻔﻮف اﻟﺘﻲ‬
‫ﻳﺤﺘﻮﻳﻬﺎ اﻟﺠﺪول اﻟﺠﺪﻳﺪ ‪.‬‬
‫وﻓﻲ ﺣﺎﻟﺔ ﻋﺪم وﺟﻮد ﺟﻤﻠﺔ اﻟﺸﺮط ﻳﺘﻢ إﺿﺎﻓﺔ ﺟﻤﻴﻊ اﻟﺼﻔﻮف واﻻﻋﻤﺪة‬
‫ﺑﺎﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدة إﻟﻲ اﻟﺠﺪول اﻟﺠﺪﻳﺪ‪.‬اى ﻳﺘﻢ ﻋﻤﻞ ﻧﺴﺨﺔ ﺛﺎﻧﻴﺔ ﻟﻠﺠﺪول‪.‬‬
‫ﻣﺜﺎل‪:‬‬
‫‪Create table Copy_emp‬‬
‫;‪As select * from emp‬‬
‫‪Table created‬‬
‫وﻟﻨﺘﺄآﺪ ﻣﻦ اﻧﺸﺎء ﺗﻠﻚ اﻟﺠﺪول‪:‬‬
‫;‪Select * from Copy_emp‬‬

‫اﻣﺎ اذا اردﻧﺎ ﺗﻐﻴﺮ اﺳﻤﺎء ﺗﻠﻚ اﻻﻋﻤﺪة ﺑﺎﺳﻤﺎء اﺧﺮى ﻓﻴﻜﻮن ذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ‪:‬‬
‫‪create table emp2‬‬
‫)‪(id,name,Career,MANAGER_ID,HIRE,SALARY,COMMATION,DEPTID‬‬
‫;‪AS SELECT * FROM EMP‬‬
‫وﻟﻨﺘﺄآﺪ ﻣﻦ ذﻟﻚ‪:‬‬
‫;‪Select * from emp2‬‬
‫إﻧﺸﺎء ﺟﺪول ﺑﺎﺳﺘﺨﺪام اﻻﺳﺘﻌﻼم اﻟﻔﺮﻋﻲ‬

‫ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻢ اﻧﺸﺎء ﺟﺪول ﻣﻜﻮن ﻣﻦ أرﺑﻌﺔ أﻋﻤﺪة وﺗﺤﺘﻮى ﻓﻘﻂ ﻋﻠﻰ‬
‫ﺑﻴﺎﻧﺎت اﻟﻤﻮﻇﻔﻴﻦ ﻓﻰ اﻟﻘﺴﻢ رﻗﻢ ‪. 80‬‬

‫‪The Alter Table Statement‬‬


‫ﺗﻌﺪﻳﻞ ﺧﺼﺎﺋﺺ اﻟﺠﺪول‬

‫ﻳﻤﻜﻨﻚ ﺗﻌﺪﻳﻞ ﺧﺼﺎﺋﺺ اﻟﺠﺪول ﺑﺎﺳﺘﺨﺪام اﻷﻣﺮ )‪: ( ALTER TABLE‬‬


‫• اﺿﺎﻓﺔ ﻋﻤﻮد ﺟﺪﻳﺪ‪.‬‬
‫• ﺗﻌﺪﻳﻞ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﻟﻌﻤﻮد ﻣﻌﻴﻦ‪.‬‬
‫• ازاﻟﺔ ﻋﻤﻮد ﻣﻦ اﻟﺠﺪول‪.‬‬
‫‪Adding a Column‬‬

‫اذا اردﻧﺎ اﺿﺎﻓﺔ ﻋﻤﻮد اﻟﻰ ﺟﺪول اﻻﻗﺴﺎم اﻟﺬى اﻣﺎﻣﻨﺎ‪:‬‬

‫ذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام اﻻﻣﺮ ‪ Alter Table‬آﻤﺎ ﻳﻠﻰ‪:‬‬


‫ﻳﺘﻢ آﺘﺎﺑﺔ اﻻﻣﺮ ‪ Alter Table‬ﺛﻢ ﺑﻌﺪ ذﻟﻚ اﺳﻢ اﻟﺠﺪول اﻟﻤﺮاد اﺿﺎﻓﺔ ﻋﻤﻮد ﻟﺔ‬
‫ﺛﻢ آﺘﺎﺑﺔ اﺳﻢ اﻟﻌﻤﻮد اﻟﺠﺪﻳﺪ وﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺨﺎﺻﺔ ﺑﺔ‪.‬‬
‫‪Alter table dept‬‬
‫;)‪Add job_id varchar2(50‬‬
‫وﻟﻨﺘﺄآﺪ ﻣﻦ ﺗﻠﻚ اﻟﺘﻌﺪﻳﻞ اﻟﺴﺎﺑﻖ‪:‬‬

‫;‪Select * from dept‬‬

‫‪Modifying a Column‬‬

‫ﻳﻤﻜﻨﻚ ﺗﻐﻴﺮ أﻧﻮاع ﺑﻴﺎﻧﺎت اﻷﻋﻤﺪة ﺑﺎﻟﺠﺪول وﻟﻜﻦ ﻻﺑﺪ ان ﻳﻜﻮن ﺗﻠﻚ‬ ‫•‬
‫اﻟﻌﻤﻮد ﻟﻴﺲ ﺑﺔ ﺑﻴﺎﻧﺎت‪.‬وﺳﻮف ﻧﻘﻮم ﺑﺘﻐﻴﺮ اﻟﻌﻤﻮد اﻟﺬى ﺗﻢ اﺿﺎﻓﺘﺔ ﻓﻰ‬
‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ اﻟﻰ ﻧﻮع ﺑﻴﺎﻧﺎت ﻣﻦ ﻧﻮع أرﻗﺎم‪.‬‬

‫‪Alter table dept‬‬


‫;)‪Modify job_id number(3‬‬
‫‪Table altered‬‬

‫اذا اردت زﻳﺎدة او ﺗﻘﻠﻴﻞ ﺳﻌﺔ ﻋﻤﻮد وﻟﻜﻦ ﺑﻨﻔﺲ ﻧﻮع اﻟﺒﻴﺎﻧﺎت هﻨﺎ‬ ‫•‬
‫ﻻﻳﺸﺘﺮط ان ﻳﻜﻮن ﺗﻠﻚ اﻟﻌﻤﻮد ﻓﺎرغ‪.‬‬
‫ﺑﻤﻌﻨﻰ اذا اردﻧﺎ زﻳﺎدة اﻟﻌﻤﻮد اﻟﺬى ﻗﻤﻨﺎ ﺑﺘﻐﻴﺮة ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ اﻟﻰ‬
‫اﻣﻜﺎﻧﻴﺔ اﺣﺘﻮاﺋﺔ ﻋﻠﻰ ‪ 5‬ﺧﺎﻧﺎت ﺑﺪﻻ ﻣﻦ ‪ 3‬ﺧﺎﻧﺎت‪.‬‬
‫‪Alter table dept‬‬
‫;)‪Modify job_id number(5‬‬
‫‪Dropping a Column‬‬

‫اﺳﺘﺨﺪام ﻓﻘﺮة ‪ DROP COLUMN‬آﻲ ﺗﺤﺬف اﻷﻋﻤﺪة‬


‫اﻟﺘﻲ ﻻ ﺗﺤﺘﺎﺟﻬﺎ ﻣﻦ اﻟﺠﺪول ‪.‬‬
‫ﻣﺜﺎل‪:‬‬
‫اذا اردﻧﺎ ازاﻟﺔ اﻟﻌﻤﻮد اﻟﺬى ﻗﻤﻨﺎ ﺑﺎﺿﺎﻓﺘﺔ ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ‪.‬‬

‫‪Alter table dept‬‬


‫;‪Drop column job_id‬‬
‫‪Table altered‬‬
‫ﻣﻼﺣﻈﺔ‪:‬ﻻﻳﻤﻜﻦ ازاﻟﺔ ﻋﻤﻮد ﺑﺎﻟﺠﺪول اذا آﺎن ﺗﻠﻚ اﻟﺠﺪول ﻻﻳﺤﺘﻮى اﻻ ﻋﻠﻰ‬
‫ذﻟﻚ اﻟﻌﻤﻮد ﻓﻘﻂ ‪.‬وﻻﻳﻤﻜﻦ اﻋﺎدة اﻟﻌﻤﻮد اﻟﻤﺤﺬوف‪.‬‬

‫‪Set Unused Option‬‬


‫اﺧﺘﻴﺎر اﻻﻋﻤﺪة اﻟﻐﻴﺮ ﻣﺴﺘﻌﻤﻠﺔ‬

‫ﻳﺴﺘﺨﺪم ‪ SET UNUSED‬آﻲ ﻳﺸﻴﺮ إﻟﻲ ﻋﻤﻮد أو اآﺜﺮ ﻣﻦ ﻋﻤﻮد‬ ‫•‬


‫ﻏﻴﺮ ﻣﺴﺘﻌﻤﻞ ﻓﻰ اﻟﺠﺪول‪.‬‬
‫ﻳﺴﺘﺨﺪم ‪ DROP UNUSED COLUMNS‬آﻲ ﻧﺰﻳﻞ اﻷﻋﻤﺪة اﻟﺘﻲ ﺳﺒﻖ‬ ‫•‬
‫اﻻﺷﺎرة اﻟﻴﻬﺎ أﻧﻬﺎ ﻏﻴﺮ ﻣﺴﺘﻌﻤﻠﺔ ﻓﻰ اﻟﺠﺪول‪.‬‬

‫اﻟﺼﻴﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻟﻬﺎ‪:‬‬

‫ﺗــﺴﺘﺨﺪم ‪ SET UNUSED‬ﻟﻜــﻰ ﺗــﺸﻴﺮ إﻟــﻲ ﻋﻤــﻮد أو اآﺜــﺮ ﻣــﻦ ﻋﻤــﻮد ﻏﻴــﺮ‬
‫ﻣﺴﺘﻌﻤﻞ‪ .‬وﻟﻜﻦ ﻳﺘﻢ ﺣﺬﻓﻬﻢ ﻋﻨﺪﻣﺎ ﻳﻘﻞ اﺳﺘﺨﺪام ﺗﻠـﻚ اﻻﻋﻤـﺪة‪.‬ﺣﻴـﺚ ﻻﻳﻤﻜـﻦ‬
‫ازاﻟﺔ اى ﻋﻤﻮد ﻣﻦ اﻟﺠﺪول وﻓﻰ ﻧﻔﺲ اﻟﻮﻗﺖ ﻣـﺴﺘﺨﺪم اﺧـﺮ ﻳﻘـﻮم ﺑﺎﺳـﺘﺨﺪام‬
‫هﺬا اﻟﻌﻤﻮد‪.‬‬
‫وهﺬﻩ اﻟﻤﻴﺰة ﻣﺘﻮﻓﺮة ﻓﻲ اوراآﻞ ‪ 8i‬وﻣﺎ ﺑﻌﺪهﺎ ﻣﻦ إﺻﺪارات‪.‬‬
‫ﻣﻌﻠﻮﻣﺎت ‪ SET UNUSED‬ﺗﺨﺰن ﻓﻲ ﺟﺪول ‪. USER_UNUSED_COL_TABS‬‬

‫‪Alter table dept‬‬


‫;‪Set unused column job_id‬‬
‫‪Table altered‬‬
‫وﻋﻨﺪ ﺗﺤﺪﻳﺪ هﺬﻩ اﻟﻔﻘﺮة اﻟﺴﺎﺑﻘﺔ ﻻ ﻳﺘﻢ إزاﻟﺔ ﻓﻌﻠﻴﺔ ﻟﻠﻌﻤﻮد ‪.‬‬
‫وﻻزاﻟﺔ ﺗﻠﻚ اﻟﻌﻤﻮد ﻧﻘﻮم ﺑﺎﻟﺘﺎﻟﻰ‪:‬‬
‫‪Alter table dept‬‬
‫;‪Drop unused columns‬‬
‫‪Table altered‬‬
Dropping a Table
‫ﺣﺬف اﻟﺠﺪول‬

.‫* آﻞ اﻟﺒﻴﺎﻧﺎت ﺑﺎﻟﺠﺪول ﺗﺤﺬف‬


.‫( ﺗﺤﺬف‬Index) ‫* آﻞ اﻟﻔﻬﺎرس‬
. DROP TABLE ‫* ﻻ ﻳﻤﻜﻦ اﻟﺮﺟﻮع ﻓﻰ ﺗﻌﺒﻴﺮ‬
:‫ﻣﺜﺎل‬
Drop table dept;
Table dropped

Changing the Name of an Object


‫ﺗﻐﻴﻴﺮ اﻻﺳﻢ‬
:‫ﻣﺜﺎل‬
Rename emp to emp_details;

. (emp_details) ‫( اﻟﻰ‬emp) ‫ﻓﻬﻨﺎ ﺗﻢ ﺗﻐﻴﺮ اﺳﻢ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ‬

Truncating a Table
‫ﻳﺴﺘﺨﺪم هﺬا اﻻﻣﺮ اﻟﻰ ازاﻟﺔ آﺎﻓـﺔ اﻟﺒﻴﺎﻧـﺎت ﻣـﻦ اﻟﺠـﺪول وﻟﻜـﻦ ﺑـﺪون اﻟﺤﺎﺟـﺔ‬
.‫ ﻣﻌﻬﺎ‬Rollback ‫ وﻻﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻻﻣﺮ‬Commit ‫اﻟﻰ‬
:‫ﻣﺜﺎل‬
Truncate table EMP;
Table truncated

‫ ﻳـﺘﻢ اﻻﻋﺘﻤـﺎد ﻋﻠﻴـﺔ ﻓـﻰ‬Primary Key ‫ ﻟﺠـﺪول ﺑـﺔ‬Truncate ‫ﻻ ﻳﻤﻜﻨـﻚ ﻋﻤـﻞ‬


Foreign ‫ ﻟﻠﺠـﺪول اﻟـﺬى ﺑـﺔ‬truncate ‫وﻟﻤﻌﺎﻟﺠﺔ ذﻟـﻚ ﻧﻘـﻮم ﺑﻌﻤـﻞ‬. ‫ﺟﺪول اﺧﺮ‬
.‫ اوﻻ‬Key

Adding Comments to a table

‫* ﻳﻤﻜﻨﻚ أن أن ﺗﻀﻴﻒ ﺗﻌﻠﻴﻘﺎت او ﻣﺬآﺮات إﻟﻲ اﻟﺠﺪول أو اﻟﻌﻤﻮد‬


. COMMENT ‫ﺑﺎﺳﺘﺨﺪام اﻷﻣﺮ‬
COMMENT ON TABLE emp
IS 'EMPLOYEE INFORMATION' ;
Comment created

. User_Col_Comments ‫ ﻳﻤﻜﻦ أن ﺗﺸﺎهﺪة ﻣﻦ اﻟﺠﺪول‬Comments •

Select * from USER_COL_COMMENTS


where table_name='EMP';

• ALL_COL_COMMENTS
• USER_COL_COMMENTS
• ALL_TAB_COMMENTS
• USER_TAB_COMMENTS
: Comment ‫اﻟﺸﻜﻞ اﻟﺮﺋﻴﺴﻰ ﻟﺠﻤﻠﺔ‬

COMMENT ON TABLE table | COLUMN table .column


IS 'text';

.‫اﺳﻢ اﻟﺠﺪول‬ Table


.‫اﺳﻢ اﻟﻌﻤﻮد ﻓﻲ اﻟﺠﺪول‬ COLUMN
. Comment ‫اﻟﻨﺺ اﻟﻤﺮاد آﺘﺎﺑﺘﺔ‬ Text

You might also like