Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ऑरैकल में टेबल कैसे बनाएं?

यह आलेख ओरेकल में टेबल बनाने के तरीके के बारे में बात करता है, प्राथमिक कुंजी, विदेशी कुंजी, उदाहरणों के साथ ऑरैकल में टेबल सिंटैक्स बनाएं। यह Oracle DBA और Developer दोनों के लिए बहुत उपयोगी होगा। वे दिन में कई बार इसके साथ खेलते हैं और अच्छा ज्ञान निश्चित रूप से कार्य में तेजी लाने में उनकी मदद कर सकता है। वे अक्सर डेटाटाइप के बारे में भ्रमित हो जाते हैं और किन परिस्थितियों में इसका उपयोग करना है। यहाँ मैं Oracle डेटाबेस तालिकाओं के लिए सभी उपयोगी सामग्री का एक सिंहावलोकन देने का प्रयास कर रहा हूँ

Oracle डेटाबेस टेबल क्या है?

-टेबल्स Oracle डेटाबेस में डेटा स्टोरेज की मूल इकाई हैं। डेटा पंक्तियों और स्तंभों में संग्रहीत किया जाता है।

-एक टेबल वास्तविक दुनिया में किसी चीज के बारे में सभी जरूरी चीजें रखती है

-एक तालिका में स्तंभों का एक समूह होता है। एक कॉलम तालिका में एक प्रकार के डेटा का प्रतिनिधित्व करता है, उदाहरण के लिए, ईएमपी तालिका में वेतन कॉलम में वेतन होगा

  • एक पंक्ति एक रिकॉर्ड के अनुरूप कॉलम जानकारी का एक संग्रह है।

इसके बाद, हम Oracle क्रिएट टेबल स्टेटमेंट . के बारे में विस्तार से बात करेंगे

ऑरैकल में टेबल कैसे बनाएं

डेटाबेस में एक टेबल बनाने के लिए, हमारे पास निम्नलिखित जानकारी होनी चाहिए

  • टेबल का नाम
  • तालिका प्रकार
  • बाधाएं
  • टेबल स्टोरेज पैरामीटर

आइए इनमें से प्रत्येक को विस्तार से देखें

Oracle के लिए टेबल नेमिंग कन्वेंशन टेबल बनाएं

  • आपके द्वारा किसी तालिका के लिए चुना गया नाम इन मानक नियमों का पालन करना चाहिए:
  • नाम A-Z या a-z अक्षर से शुरू होना चाहिए
  • संख्याएं और अंडरस्कोर हो सकते हैं
  • लोअर केस के UPPER में हो सकता है
  • अधिकतम 30 वर्ण हो सकते हैं। 12.2 के साथ, इसे 128 वर्णों तक बढ़ा दिया गया है
  • आपके स्कीमा में किसी अन्य मौजूदा ऑब्जेक्ट के समान नाम का उपयोग नहीं कर सकता
  • Oracle सर्वर और SQL आरक्षित शब्द नहीं होना चाहिए
  • स्तंभ नाम, स्तंभ डेटा प्रकार और स्तंभ आकार।

स्तंभ नामकरण परंपराएं -

  • एक कॉलम के लिए आपके द्वारा चुना गया नाम इन मानक नियमों का पालन करना चाहिए:
  • नाम A-Z या a-z अक्षर से शुरू होना चाहिए
  • संख्याएं और अंडरस्कोर हो सकते हैं
  • लोअर केस के UPPER में हो सकता है
  • लंबाई में 30 वर्णों तक हो सकता है। 12.2 के साथ, इसे 128 वर्णों तक बढ़ा दिया गया है
  • आपके स्कीमा में किसी अन्य मौजूदा ऑब्जेक्ट के समान नाम का उपयोग नहीं कर सकता
  • Oracle सर्वर और SQL आरक्षित शब्द नहीं होना चाहिए

टेबल का प्रकार

साधारण (ढेर-संगठित) तालिका

-यह तालिका का मूल, सामान्य प्रयोजन प्रकार है।

-इसका डेटा एक अनियंत्रित संग्रह (ढेर) के रूप में संग्रहीत किया जाता है

संकुल तालिका

-एक संकुल तालिका एक तालिका है जो एक क्लस्टर का हिस्सा है।

-एक क्लस्टर टेबल का एक समूह है जो समान डेटा ब्लॉक साझा करता है क्योंकि वे सामान्य कॉलम साझा करते हैं और अक्सर एक साथ उपयोग किए जाते हैं।

सूचकांक-संगठित तालिका

-एक सामान्य (हीप-ऑर्गनाइज्ड) टेबल के विपरीत, इंडेक्स-ऑर्गनाइज्ड टेबल के लिए डेटा को प्राथमिक कुंजी क्रमबद्ध तरीके से बी-ट्री इंडेक्स स्ट्रक्चर में स्टोर किया जाता है।

-सूचकांक-संगठित तालिका पंक्ति के प्राथमिक कुंजी स्तंभ मानों को संग्रहीत करने के अलावा, बी-ट्री में प्रत्येक अनुक्रमणिका प्रविष्टि गैर-कुंजी स्तंभ मानों को भी संग्रहीत करती है।

विभाजित तालिका

-Oracle पार्टिशनेड टेबल आपके डेटा को छोटे, अधिक प्रबंधनीय टुकड़ों में विभाजित करने की अनुमति देते हैं, जिन्हें पार्टिशन या सब-पार्टीशन भी कहा जाता है।

  • प्रत्येक विभाजन को व्यक्तिगत रूप से प्रबंधित किया जा सकता है, और अन्य विभाजनों से स्वतंत्र रूप से संचालित हो सकता है, इस प्रकार एक संरचना प्रदान करता है जिसे उपलब्धता और प्रदर्शन के लिए बेहतर ट्यून किया जा सकता है।

बाहरी तालिका

Oracle एक्सटर्नल टेबल Oracle को डेटा को क्वेरी करने की अनुमति देती है जो डेटाबेस के बाहर फ़्लैट फ़ाइलों में संग्रहीत होता है।

वैश्विक अस्थायी तालिका

वैश्विक अस्थायी तालिका में डेटा निजी है, जैसे कि किसी सत्र द्वारा डाला गया डेटा केवल उस सत्र तक ही पहुँचा जा सकता है। वैश्विक अस्थायी तालिका में सत्र-विशिष्ट पंक्तियों को पूरे सत्र के लिए, या केवल वर्तमान लेनदेन के लिए संरक्षित किया जा सकता है

प्रतिबंध और नियम

आप किसी तालिका के प्रत्येक स्तंभ के लिए नियम निर्दिष्ट कर सकते हैं। इन नियमों को अखंडता की कमी कहा जाता है। ऐसा ही एक उदाहरण एक अशक्त अखंडता बाधा नहीं है। यह बाधा स्तंभ को प्रत्येक पंक्ति में एक मान रखने के लिए बाध्य करती है। ये नियम प्रत्येक कॉलम या कॉलम के सेट के लिए लागू किए गए हैं। जब भी तालिका डेटा कार्रवाई में भाग लेती है, तो इन नियमों को मान्य किया जाता है और उल्लंघन पर अपवादों को उठाया जाता है।

एक बाधा निम्न में से एक हो सकती है:

  • एक स्तंभ-स्तरीय बाधा

कॉलम-स्तरीय बाधाएं तालिका में एक कॉलम को संदर्भित करती हैं और कॉलम नाम निर्दिष्ट नहीं करती हैं (चेक बाधाओं को छोड़कर)। वे उस कॉलम को संदर्भित करते हैं जिसका वे अनुसरण करते हैं।

  • एक टेबल-स्तरीय बाधा

तालिका-स्तर की बाधाएं तालिका में एक या अधिक स्तंभों को संदर्भित करती हैं। तालिका-स्तर की बाधाएं उन स्तंभों के नाम निर्दिष्ट करती हैं जिन पर वे लागू होते हैं। तालिका-स्तरीय CHECK बाधाएँ तालिका में 0 या अधिक स्तंभों को संदर्भित कर सकती हैं।

उपलब्ध बाधा प्रकार NULL, प्राथमिक कुंजी, अद्वितीय, चेक और विदेशी कुंजी नहीं हैं।

प्राथमिक कुंजी

Oracle में एक प्राथमिक कुंजी तालिका में एक स्तंभ है जिसका मान तालिका में विशिष्ट रूप से पंक्ति की पहचान करता है। एक प्राथमिक कुंजी मान:

a) पंक्ति को विशिष्ट रूप से पहचानना चाहिए;

b) NULL मान नहीं हो सकते;

Oracle आंतरिक रूप से स्तंभ मानों में दोहराव को रोकने के लिए एक अद्वितीय oracle अनुक्रमणिका बनाता है। इसे कॉलम या टेबल लेवल पर परिभाषित किया जा सकता है

एक प्राथमिक कुंजी कई कॉलम भी हो सकती है

अद्वितीय कुंजी

Oracle में अद्वितीय कुंजी का अर्थ है स्तंभ के लिए विशिष्टता। Oracle सर्वर अद्वितीय बाधाओं वाले कॉलम में डुप्लिकेट मानों की अनुमति नहीं देगा। Oracle आंतरिक रूप से स्तंभ मानों में दोहराव को रोकने के लिए एक अद्वितीय अनुक्रमणिका बनाता है। लेकिन यह कुछ मानों को शून्य होने देता है। इसे कॉलम या टेबल लेवल पर परिभाषित किया जा सकता है

विदेशी कुंजी

-ओरेकल में एक विदेशी कुंजी दो तालिकाओं के बीच एक संदर्भात्मक बाधा है।

-एक विदेशी कुंजी बाधा किसी अन्य कॉलम के मानों के विरुद्ध INSERT या UPDATE के मानों की पुष्टि करती है, या तो किसी भिन्न तालिका में या उसी के किसी अन्य कॉलम में

-एक विदेशी कुंजी हमेशा माता-पिता/बाल संबंधों को परिभाषित करती है। "पैरेंट" वह कॉलम है जिसे विदेशी कुंजी में संदर्भित किया जाता है और "चाइल्ड" वह कॉलम या कॉलम होता है जिसमें विदेशी कुंजी बाधा होती है।

-आम तौर पर, हालांकि, एक विदेशी कुंजी एक फ़ील्ड (या फ़ील्ड) होती है जो किसी अन्य तालिका की प्राथमिक कुंजी को इंगित करती है।
-इसे कॉलम या तालिका स्तर पर परिभाषित किया जा सकता है

बाधा जांचें

एक निर्दिष्ट शर्त का अनुपालन करने के लिए एक ऑरैकल चेक बाधा को डेटाबेस में एक मान की आवश्यकता होती है। चेक बाधा कॉलम पर एक सशर्त नियम लगाने की अनुमति देता है, जिसे कॉलम में डेटा डालने से पहले सत्यापित किया जाना चाहिए। शर्त में कोई सबक्वेरी या छद्म स्तंभ CURRVAL NEXTVAL, LEVEL, ROWNUM, या SYSDATE नहीं होना चाहिए।

Oracle एक कॉलम को एक से अधिक CHECK बाधा रखने की अनुमति देता है। वास्तव में, CHECK बाधाओं की संख्या की कोई व्यावहारिक सीमा नहीं है जिन्हें एक कॉलम के लिए परिभाषित किया जा सकता है।

इसे कॉलम या टेबल लेवल पर परिभाषित किया जा सकता है

शून्य नहीं

इसका अर्थ है कि डेटा पंक्ति में NOT NULL के रूप में निर्दिष्ट कॉलम के लिए एक मान होना चाहिए। Oracle सर्वर उन पंक्तियों को संग्रहीत करने की अनुमति नहीं देगा जो इस बाधा का उल्लंघन करती हैं। इसे केवल स्तंभ स्तर पर परिभाषित किया जा सकता है, तालिका स्तर पर नहीं।

टेबल स्टोरेज पैरामीटर

डेटाबेस में Oracle टेबल्सस्पेस में टेबल्स को स्टोर किया जाता है। यदि कोई तालिका स्थान निर्दिष्ट नहीं है, तो तालिका उपयोगकर्ता डिफ़ॉल्ट तालिका स्थान में चली जाती है।

संक्षेप में

1) आपको ऊपर दिए गए मानक के अनुसार उपयुक्त कॉलम नाम और तालिका का नाम चुनना होगा। कॉलम नाम और तालिका का नाम देने की अनुशंसा की जाती है ताकि आप नामों की जांच करके उद्देश्य की पहचान कर सकें

2) दूसरे आपको तालिका के लिए सही Oracle डेटा प्रकार चुनना होगा।
यदि यह एक वर्ण स्ट्रिंग है, तो हमें VARCHAR2 (10) चुनना चाहिए। यह एक परिवर्तनशील स्ट्रिंग है, हमें उचित रूप से मान का चयन करना चाहिए। इसका मतलब है कि यह वर्णों को 10 बाइट्स में संग्रहीत कर सकता है। उपयोग किया गया स्थान कॉलम के मानों के आधार पर होगा और स्थान की बर्बादी नहीं होगी।

मैं यहां एक बात पर जोर दूंगा कि जब हम यहां VARCHAR2(10) देते हैं तो 10 बाइट्स की संख्या होती है, चरित्र की नहीं। ASCII के अलावा किसी अन्य वर्ण का उपयोग करना प्रारंभ करें

अभी VARCHAR2 4000 बाइट्स का समर्थन करता है, यदि आपका कॉलम उससे बड़ा है, तो आप LOB डेटाटाइप का उपयोग कर सकते हैं, जो GIGA बाइट्स के लिए टेक्स्ट स्टोर कर सकता है।

यदि यह एक संख्या है, तो हम डेटाटाइप संख्या का उपयोग करते हैं। फिर से हम उचित रूप से मूल्य चुन सकते हैं। उदाहरण संख्या(6,2) इसमें अधिकतम 999999.99 तक हो सकता है

अगर आप तारीख को स्टोर करना चाहते हैं, तो Oracle ने स्टोरेज के लिए डेट डेटाटाइप प्रदान किया है।

3) मेज पर बाधा की पहचान करें। तय करें कि प्राथमिक कुंजी क्या होगी और कौन से कॉलम रिक्त नहीं होंगे।

एक बार हमारे पास सभी आवश्यक जानकारी हो जाने के बाद, हम तालिका निर्माण के साथ आगे बढ़ सकते हैं

Oracle क्रिएट टेबल सिंटेक्स

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>;

ओरेकल क्रिएट टेबल के लिए SYNTAX  प्राथमिक कुंजी। इसे स्तंभ स्तर या तालिका स्तर दोनों पर परिभाषित किया जा सकता है

Table level
CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> primary key (col1,col2)
)  tablespace <tablepace name>

Column Level

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>

उदाहरण ओरेकल क्रिएट टेबल  प्राथमिक कुंजी . का

CREATE TABLE SCOTT.TEST
(
Created_by date,          SOURCE CHAR(10),
REQUEST_ID CHAR(64) NOT NULL CONSTRAINT TEST_PK PRIMARY KEY,
COMMENTS VARCHAR(3000)
);

CREATE TABLE TESTEXP
(
INV_ID CHAR(7) NOT NULL,
ITEM_ID CHAR(7) NOT NULL,           CREATED  date,
WHO CHAR(7),          CONSTRAINT TEST1_PK PRIMARY KEY (INV_ID,ITEM_ID)
);

Oracle प्राथमिक कुंजी बाधाओं को लागू करने के लिए अनुक्रमणिका बनाता है

संबंधित:Oracle साक्षात्कार प्रश्न

तालिका TEST1 के लिए स्पष्टीकरण

1 पहला कॉलम कहलाता है  inv_id   जो एक चार डेटाटाइप (लंबाई में अधिकतम 7 अंक) के रूप में बनाया गया है और इसमें शून्य मान नहीं हो सकते हैं
2 दूसरे कॉलम को कहा जाता है  item_id   जो एक चार डेटाटाइप (लंबाई में अधिकतम 7 अंक) के रूप में बनाया गया है और इसमें शून्य मान नहीं हो सकते हैं
3 तीसरे कॉलम को बनाया गया है जो एक तारीख है डेटाटाइप और शून्य मान भी हो सकते हैं।
4 चौथे कॉलम को कहा जाता है जो एक चार डेटाटाइप है और इसमें शून्य मान भी हो सकते हैं।
5 तालिका स्तर प्राथमिक कुंजी बाधा TEST1_PK समग्र कुंजी (INV_ID, ITEM_ID) पर परिभाषित है
ओरेकल के लिए

SYNTAX  टेबल स्टेटमेंट फॉरेन की बनाएं। इसे स्तंभ स्तर या तालिका स्तर दोनों पर परिभाषित किया जा सकता है

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> FOREIGN KEY (col1,col2) REFERENCES table(col1,col2)
)  tablespace <tablepace name>

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>;



CREATE TABLE dept
( dept_id number(10) NOT NULL,
dept_name varchar2(50) NOT NULL,
CONSTRAINT dept_pk PRIMARY KEY (dept_id)
);

CREATE TABLE emp
( emp_no number(10) NOT NULL,
emp_name varchar2(50) NOT NULL,
dept_id number(10),
sal number(6),
CONSTRAINT emp_pk PRIMARY KEY (emp_no),
CONSTRAINT dept_fk
FOREIGN KEY (dept_id)
REFERENCES dept(dept_id) );

टेबल ईएमपी के लिए स्पष्टीकरण

पर परिभाषित किया गया है
1 पहले कॉलम को EMP_NO . कहा जाता है जो एक संख्या के रूप में बनाया गया है और इसमें शून्य मान नहीं हो सकते हैं
2 दूसरे कॉलम को emp_name . कहा जाता है जो varchar2(50) के रूप में बनाया गया है और इसमें शून्य मान नहीं हो सकते हैं
3 तीसरे कॉलम को dept_id कहा जाता है जो एक संख्या है।
4 चौथे स्तंभ को sal कहा जाता है जो एक संख्या डेटाटाइप है और इसमें शून्य मान भी हो सकते हैं।
5 टेबल स्तर की प्राथमिक कुंजी बाधा EMP_PK को  कुंजी (EMP_NO)
6 तालिका स्तर विदेशी कुंजी बाधाएं dept_fk  जो विभाग तालिका dept_id का संदर्भ देती है

ऑरैकल टेबल बनाने के लिए आवश्यक विशेषाधिकार

-अपने स्कीमा में एक नई तालिका बनाने के लिए आपके पास टेबल सिस्टम बनाने का विशेषाधिकार होना चाहिए,

  • किसी अन्य उपयोगकर्ता के स्कीमा में तालिका बनाने के लिए आपके पास कोई भी तालिका सिस्टम विशेषाधिकार होना चाहिए, इसके अतिरिक्त, तालिका के स्वामी के पास तालिका वाले टेबलस्पेस के लिए एक कोटा होना चाहिए, या असीमित TABLESPACE सिस्टम विशेषाधिकार होना चाहिए
  • ली>

संबंधित:एसक्यूएल क्वेरी कैसे लिखें

ओरेकल डेटाबेस तालिका से जुड़ी अन्य विशेषताएं

कैश/नो-कैश

यह इंगित करने के लिए कैश क्लॉज का उपयोग करें कि ओरेकल डेटाबेस को बफर कैश में ब्लॉक कैसे स्टोर करना चाहिए। यदि आप टेबल कमांड बनाने में कुछ भी निर्दिष्ट नहीं करते हैं, तो यह डिफ़ॉल्ट रूप से नो-कैश है

डिफ़ॉल्ट

कॉलम में डाला गया मान अगर डालने या अपडेट करने से कॉलम का मान शून्य हो जाएगा।

<डिफ़ॉल्ट <मान> | नल>

समानांतर

PARALLEL निर्दिष्ट करें यदि आप चाहते हैं कि Oracle PARALLEL_THREADS_PER_CPU इनिशियलाइज़ेशन पैरामीटर के मान के सभी भाग लेने वाले उदाहरणों पर उपलब्ध CPU की संख्या के बराबर समानांतरता की एक डिग्री का चयन करे।

संपीड़ित करें

इसका उपयोग ऑरैकल द्वारा टेबल को कंप्रेस्ड फॉर्मेट में स्टोर करने के लिए किया जाता है। यह 11g से उपलब्ध है

किसी तालिका या स्तंभ पर टिप्पणी करें

आप कमांड का उपयोग करके टेबल पर टिप्पणी कर सकते हैं

COMMENT ON TABLE <table_name> IS '<comment>';

Oracle डिफ़ॉल्ट मान के साथ तालिका बनाएं

कभी-कभी आप कॉलम को एक डिफ़ॉल्ट मान निर्दिष्ट करना चाहते हैं यदि यह सम्मिलित कथन में निर्दिष्ट नहीं है, तो आप नीचे दिए गए सिंटैक्स के साथ तालिका बना सकते हैं। डिफ़ॉल्ट इस्तेमाल किया जाने वाला कीवर्ड है

CREATE TABLE EXP
(
NAME VARCHAR2(20),
SAL number(8,2) DEFAULT 800,
hire_date DATE DEFAULT SYSDATE ,
birthdate DATE DEFAULT SYSDATE -10
)

Oracle तालिका बनाएं  12c में डिफ़ॉल्ट मान परिवर्तन

पहचान कॉलम
Oracle Database 12c में, हम SQL कीवर्ड IDENTITY के साथ टेबल कॉलम को परिभाषित कर सकते हैं जो एक अमेरिकी राष्ट्रीय मानक संस्थान (ANSI) SQL कीवर्ड है। जो इंसर्शन के समय ऑटो-इन्क्रीमेंटेड होते हैं (जैसे MySQL में)।

Example:
create table test
(
id number generated as identity,
name varchar2(100),
email varchar2(100),
password varchar2(100),
firstname varchar2(100),
lastname varchar2(100)
);
Sequence as Default Value
With Oracle Database 12c, we can directly assign sequence nextval as a default value for a column, So you no longer need to create a trigger to populate the column with the next value of sequence, you just need to declare it with table definition.It is a sort of auto-increment feature for a column in oracle just like MySQL
Example:
create sequence tech_test_seq start with 1 increment by 1 nocycle;create table test
(
id number default tech_test_seq.nextval primary key
name varchar(30)
);

केवल-मेटाडेटा डिफ़ॉल्ट मान

पूर्व से पहले, Oracle 11g, किसी मौजूदा तालिका में एक नया कॉलम जोड़ने के लिए उस तालिका की सभी पंक्तियों को नए कॉलम को जोड़ने के लिए संशोधित करने की आवश्यकता थी। इसलिए यदि तालिका बहुत बड़ी है, तो तालिका जोड़ें कॉलम को बदलने में पर्याप्त समय लगता है और लॉकिंग समय भी अधिक होता है

Oracle के साथ, 11g ने मेटाडेटा-केवल डिफ़ॉल्ट मानों की अवधारणा पेश की। किसी मौजूदा तालिका में DEFAULT क्लॉज के साथ NOT NULL कॉलम जोड़ने से तालिका में सभी पंक्तियों में बदलाव के बजाय केवल एक मेटाडेटा परिवर्तन शामिल होता है। यह सुनिश्चित करने के लिए कि परिणाम डिफ़ॉल्ट परिभाषा के अनुरूप था, नए कॉलम की क्वेरी को ऑप्टिमाइज़र द्वारा फिर से लिखा गया था।

इसके बारे में नीचे दिए गए लेख में पढ़ें

टेबल ऐड कॉलम ऑरैकल कैसे बदलें

Oracle 12c इसे एक कदम आगे ले जाता है, जिससे अनिवार्य और वैकल्पिक कॉलम दोनों के मेटाडेटा-केवल डिफ़ॉल्ट मानों की अनुमति मिलती है। परिणामस्वरूप, किसी मौजूदा तालिका में DEFAULT क्लॉज के साथ एक नया कॉलम जोड़ने को केवल मेटाडेटा परिवर्तन के रूप में नियंत्रित किया जाएगा, भले ही उस कॉलम को NOT NULL के रूप में परिभाषित किया गया हो या नहीं।

यह सभी के लिए बहुत बड़ा लाभ है।

डेटा डिक्शनरी टेबल और व्यू

सभी टेबल और कॉलम की जानकारी SYS.TAB$ और SYS.COL$ टेबल में स्टोर की जाती है। Oracle ने तालिकाओं और स्तंभों के बारे में जानकारी प्राप्त करने के लिए डेटा शब्दकोश दृश्य प्रदान किए हैं

व्यू की तीन श्रेणियां हैं

Oracle में सभी तालिकाओं को कैसे सूचीबद्ध करें

To list all tables owned by the current user, type:
select tablespace_name, table_name from user_tables;

To list all tables in a database:

select tablespace_name, table_name from dba_tables;

To list all tables accessible to the current user, type:

select tablespace_name, table_name from all_tables

To describe the table in SQLPLUS

desc <table_name>

टेबल का आकार कैसे निर्धारित करें

select
owner as "Schema"
, segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024,2) as "Object Size (Mb)"
, tablespace_name as "Tablespace"
from dba_segments
where segment_name=’<table_name>’;

पंक्तियों और टिप्पणियों की संख्या वाली तालिकाएं

SCOTT स्कीमा में पंक्तियों और टिप्पणियों की संख्या ज्ञात करने के लिए नीचे दी गई क्वेरी का उपयोग किया जा सकता है

select tab.owner as schema_name,
tab.table_name as table_name,
obj.created,
obj.last_ddl_time as last_modified,
tab.num_rows,
tab.last_analyzed,
comm.comments
from all_tables tab
inner join all_objects obj
on obj.owner = tab.owner
and obj.object_name = tab.table_name
left outer join all_tab_comments comm
on tab.table_name = comm.table_name
and tab.owner = comm.owner
where tab.owner = 'SCOTT'
order by tab.owner,
tab.table_name;

Oracle क्रिएट टेबल पर अक्सर पूछे जाने वाले प्रश्न

1. क्या oracle ने टेबल oracle कमांड को बनाया या बदला है?

Oracle में टेबल oracle कमांड को बनाना या बदलना नहीं है। बनाएं या बदलें केवल विचारों के लिए मान्य है, PLSQL:केवल प्रक्रियाएं। आपको केवल ALTER Table कमांड का उपयोग करके परिवर्तन करने की आवश्यकता है
या आप तालिका को स्पष्ट रूप से छोड़ सकते हैं और इसे फिर से बना सकते हैं

2. क्या हमारे पास ऑरैकल क्रिएट टेबल जैसा कोई क्लॉज है, अगर मौजूद नहीं है?

हमारे पास कोई प्रत्यक्ष नहीं है, लेकिन आप इसका अनुकरण करने के लिए PLSQL का उपयोग कर सकते हैं
SET SERVEROUTPUT ON
DECLARE c_emp int:=0;
dba_tables से c_emp में गिनती चुनें (*) शुरू करें, जहां table_name ='EMP';
अगर c_emp<=0
तत्काल निष्पादित करें 'तालिका EMP बनाएं (आईडी NUMBER(3), NAME VARCHAR2( 30) NOT NULL,SAL NUMBER*,2))';
अंत अगर;
END;
/

अभ्यास के लिए नमूना स्कीमा

SQL>CREATE TABLE "DEPT"
( "DEPTNO" NUMBER(2,0),
"DNAME" VARCHAR2(14),
"LOC" VARCHAR2(13),
CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
)

SQL>CREATE TABLE "EMP"
( "EMPNO" NUMBER(4,0),
"ENAME" VARCHAR2(10),
"JOB" VARCHAR2(9),
"MGR" NUMBER(4,0),
"HIREDATE" DATE,
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0),
CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO"),
CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
REFERENCES "DEPT" ("DEPTNO") ENABLE
);

SQL> desc emp
Name Null? Type
----------------------------------------- -------- -----------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)

SQL>

SQL> desc dept
Name Null? Type
----------------------------------------- -------- -----------------------

DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)

SQL>

insert into DEPT values(10, 'ACCOUNTING', 'NEW YORK');
insert into dept values(20, 'RESEARCH', 'DALLAS');
insert into dept values(30, 'RESEARCH', 'DELHI');
insert into dept values(40, 'RESEARCH', 'MUMBAI');

insert into emp values( 7698, 'Blake', 'MANAGER', 7839, to_date('1-5-2007','dd-mm-yyyy'), 2850, null, 10 );
insert into emp values( 7782, 'Clark', 'MANAGER', 7839, to_date('9-6-2008','dd-mm-yyyy'), 2450, null, 10 );
insert into emp values( 7788, 'Scott', 'ANALYST', 7566, to_date('9-6-2012','dd-mm-yyyy'), 3000, null, 20 );

insert into emp values( 7789, 'TPM', 'ANALYST', 7566, to_date('9-6-2017','dd-mm-yyyy'), 3000, null, null );
insert into emp values( 7560, 'T1OM', 'ANALYST', 7567, to_date('9-7-2017','dd-mm-yyyy'), 4000, null, 20 );
insert into emp values( 7790, 'TOM', 'ANALYST', 7567, to_date('9-7-2017','dd-mm-yyyy'), 4000, null, null );

SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-07 2850 10
7782 CLARK MANAGER 7839 09-JUN-08 2450 10
7788 SCOTT ANALYST 7566 09-JUN-12 3000 20
7789 TPM ANALYST 7566 09-JUN-17 3000
7790 TOM ANALYST 7567 09-JUL-17 4000
7560 T1OM ANALYST 7567 09-JUL-17 4000 20

After the practice is over, you can drop the tables
SQL>drop table emp;

SQL>drop table dept;

आशा है कि आपको ऑरैकल क्रिएट टेबल स्टेटमेंट, कमांड, सिंटैक्स और टिप्स पर यह लेख पसंद आया होगा।

संबंधित लेख
तालिका बदलें कॉलम जोड़ें oracle :तालिका को कैसे बदलें कॉलम ऑरैकल में उपयोगी अंतर्दृष्टि। oracle 11g में पेश किए गए फास्ट ऐड कॉलम फीचर के बारे में विवरण भी दिया गया है
DROP TABLE ORACLE:Oracle में ड्रॉप टेबल के बारे में जानें, यदि Oracle में ड्रॉप टेबल मौजूद है, तो एक कमांड में कई टेबल ड्रॉप करें, ड्रॉप टेबल कैस्केड बाधाएं
बदलें टेबल मूव:इस पोस्ट को स्टेप बाय स्टेप मेथड के लिए देखें कि कैसे ऑरैकल में टेबल को फिर से बनाना है, टेबल मूव का उपयोग करके टेबल को कैसे फिर से बनाना है, लॉन्ग कॉलम
ट्रंकेट टेबल ओरेकल:ओरेकल में ट्रंकेट टेबल की तुलना में तेज है ऑरैकल में तालिका से हटाएं। यह डीडीएल स्टेटमेंट है और यह डिलीट ट्रिगर्स को सक्रिय नहीं करता है
ओरेकल में टेबल को बदलें:ऑरेकल में ऑल्टर टेबल का उपयोग कॉलम को संशोधित करने, ड्रॉप करने और बाधाओं को जोड़ने, टेबल कॉलम के डेटा प्रकार को बदलने, टेबल बदलने के लिए किया जाता है। स्टोरेज पैरामीटर
ऑरैकल सभी टेबलों को सूचीबद्ध करता है:हम या तो ऑल_टेबल्स या यूजर_टेबल्स या dba_tables को क्वेरी करके ओरेकल में लिस्ट ऑल टेबल्स प्राप्त कर सकते हैं। हम जरूरत के अनुसार कॉलम और जहां क्लॉज का चयन कर सकते हैं
Oracle में अनुपूरक लॉगिंग
oracle sql दिनांक फ़ंक्शन
https://docs.oracle.com/cd/B19306_01/server.102/ b14231/tables.htm
Oracle में एक वैश्विक अस्थायी तालिका बनाना


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओपन वर्ल्ड 2013 से वापस

  2. Oracle में NVL2 फ़ंक्शन

  3. ओरेकल डेटाबेस क्या है?

  4. Oracle डाटाबेस में अनुकूलक 19c

  5. Windows प्रमाणीकरण उपयोगकर्ता के रूप में OLE DB प्रदाता त्रुटि का एक उदाहरण नहीं बना सकता