DDL स्टेटमेंट का उपयोग करना
तालिकाएँ बनाने और प्रबंधित करने के लिए DDL विवरणों का उपयोग करना
एक स्कीमा कई डेटाबेस ऑब्जेक्ट्स का संग्रह है, जिन्हें स्कीमा ऑब्जेक्ट्स के रूप में जाना जाता है। इन ऑब्जेक्ट्स का उनके मालिक स्कीमा द्वारा प्रत्यक्ष उपयोग होता है। बेलो टेबल स्कीमा ऑब्जेक्ट्स को सूचीबद्ध करता है।
तालिका - डेटा संग्रहीत करने के लिए
दृश्य - एक या एक से अधिक तालिकाओं से वांछित प्रारूप में डेटा को प्रोजेक्ट करने के लिए
अनुक्रम - संख्यात्मक मान उत्पन्न करने के लिए
सूचकांक - तालिकाओं पर प्रश्नों के प्रदर्शन में सुधार करने के लिए
पर्यायवाची - किसी वस्तु का वैकल्पिक नाम
डेटाबेस बनाने में पहला कदम तालिकाओं को बनाना है जो एक संगठन के डेटा को संग्रहीत करेगा। डायटबेस डिज़ाइन में विभिन्न संगठनात्मक प्रणालियों जैसे ऑर्डर प्रविष्टि, इन्वेंट्री प्रबंधन और प्राप्य खातों के लिए सिस्टम उपयोगकर्ता आवश्यकताओं की पहचान करना शामिल है। डेटाबेस आकार और जटिलता के बावजूद, प्रत्येक डेटाबेस तालिकाओं से युक्त होता है।
तालिका बनाना
डेटाबेस में एक तालिका बनाने के लिए, एक डीबीए के हाथ में कुछ जानकारी होनी चाहिए - तालिका का नाम, स्तंभ का नाम, स्तंभ डेटा प्रकार और स्तंभ आकार। यह सभी जानकारी बाद में DDL कमांड का उपयोग करके संशोधित की जा सकती है।
टेबल नामकरण परंपराएँ -
तालिका के लिए आपके द्वारा चुना गया नाम इन मानक नियमों का पालन करना चाहिए:
नाम की शुरुआत AZ या az अक्षर से होनी चाहिए
संख्या और अंडरस्कोर हो सकते हैं
निचले मामले के उत्तर प्रदेश में हो सकता है
लंबाई में 30 वर्ण तक हो सकते हैं
आपके स्कीमा में किसी अन्य मौजूदा ऑब्जेक्ट के समान नाम का उपयोग नहीं किया जा सकता है
SQL आरक्षित शब्द नहीं होना चाहिए
उपरोक्त दिशानिर्देशों के बाद, 'EMP85' एक मान्य तालिका नाम हो सकता है। लेकिन 85EMP नहीं है। निस्संदेह, UPDATE को एक तालिका नाम के रूप में चुना नहीं जा सकता क्योंकि यह SQL आरक्षित कीवर्ड है।
रचना कथन
क्रिएट टेबल एक डीडीएल स्टेटमेंट है, जिसका इस्तेमाल डेटाबेस में टेबल बनाने के लिए किया जाता है। क्रिएट टेबल स्क्रिप्ट के निष्पादित होते ही टेबल बन जाता है और डेटा को आगे रखने के लिए तैयार हो जाता है। यूजर को क्रिएट टेबल सिस्टम विशेषाधिकार बनाना होगा। अपने स्वयं के स्कीमा में तालिका। लेकिन किसी भी उपयोगकर्ता के स्कीमा में तालिका बनाने के लिए, उपयोगकर्ता के पास कोई भी टेबल स्कीमा होना आवश्यक है।
यहाँ एक बुनियादी सृजन सारणी का वाक्य विन्यास है। भंडारण विनिर्देशों या खंड मूल्यों को स्पष्ट रूप से प्रदान करने के लिए कई अतिरिक्त खंड हो सकते हैं।
CREATE TABLE [schema.]table
( { column datatype [DEFAULT expr] [column_constraint] ...
| table_constraint}
[, { column datatype [DEFAULT expr] [column_constraint] ...
| table_constraint} ]...)
[AS subquery]
उपरोक्त सिंटैक्स में, DEFAULT डिफ़ॉल्ट मान निर्दिष्ट करता है जिसका उपयोग INSERT स्टेटमेंट के दौरान किया जा सकता है यदि कॉलम को अनदेखा किया जाता है। इसमें SYSDATE और USER को छोड़कर अन्य तालिका स्तंभों या छद्म स्तंभों (CURRVAL, NEXTVAL, LEVEL, और ROWNUM) या पूरी तरह से निर्दिष्ट नहीं होने वाले दिनांक स्थिरांक शामिल नहीं हो सकते।
बाधाएं स्तंभ स्तर या तालिका स्तर (इस अध्याय में बाद में कवर की गई) पर वैकल्पिक रूप से परिभाषित नियम हैं। तालिका पर किसी भी डेटा कार्रवाई (सम्मिलित करें, अपडेट) के दौरान इन नियमों की जांच की जाती है और इसके उल्लंघन पर कार्रवाई को रद्द करने के लिए त्रुटि बढ़ाते हैं।
उदाहरण के लिए, नीचे दिया गया TATE स्टेटमेंट EMP_TEST तालिका बनाता है। कॉलम विनिर्देशों, डेटा प्रकार और सटीक पर ध्यान दें।
CREATE TABLE SCOTT.EMP_TEST
(EMPID NUMBER,
ENAME VARCHAR2(100),
DEPARTMENT_ID NUMBER,
SALARY NUMBER,
JOB_ID VARCHAR2(3),
HIREDATE DATE,
COMM NUMBER);
एक उपयोगकर्ता तालिका नाम के साथ उपयोगकर्ता नाम या स्कीमा को उपसर्ग करके अन्य उपयोगकर्ता के स्कीमा से तालिकाओं को संदर्भित कर सकता है। उदाहरण के लिए, एक उपयोगकर्ता GUEST कर्मचारी के नाम और वेतन को EMP_TEST तालिका से स्कैन करना चाहता है जो SCOTT के स्वामित्व में है। वह नीचे क्वेरी जारी कर सकता है -
SELECT ENAME, SALARY,
FROM GUEST.EMP_TEST;
एक स्तंभ तालिका निर्माण के समय के दौरान एक डिफ़ॉल्ट मान रख सकता है। यह कॉलम में हो रहे NULL मान को प्रतिबंधित करने में मदद करता है। डिफ़ॉल्ट मान या तो शाब्दिक, अभिव्यक्ति या SQL फ़ंक्शन से प्राप्त किया जा सकता है, जिसे कॉलम में एक संगत डेटा प्रकार वापस करना होगा। नीचे दी गई TATE कथन में, ध्यान दें कि LOCATION_ID कॉलम में डिफ़ॉल्ट मान 100 है।
CREATE TABLE SCOTT.DEPARTMENT
(DEPARTMENT_ID NUMBER,
DNAME VARCHAR2 (100),
LOCATION_ID NUMBER DEFAULT 100);
CTAS - सबक्वेरी का उपयोग करके तालिका बनाएं
डेटाबेस में एक मौजूदा तालिका से एक सबक्वेरी विकल्प का उपयोग करके एक तालिका बनाई जा सकती है। यह तालिका संरचना और साथ ही तालिका से डेटा की प्रतिलिपि बनाता है। डेटा को शर्तों के आधार पर भी कॉपी किया जा सकता है। स्तंभ डेटा प्रकार की परिभाषाएँ जिनमें स्पष्ट रूप से लगाए गए NULL बाधाओं को शामिल नहीं किया गया है उन्हें नई तालिका में कॉपी किया गया है।
नीचे CTAS स्क्रिप्ट एक नई तालिका EMP_BACKUP बनाता है। विभाग 20 का कर्मचारी डेटा नई तालिका में कॉपी हो जाता है।
CREATE TABLE EMP_BACKUP
AS
SELECT * FROM EMP_TEST
WHERE department_id=20;
जानकारी का प्रकार
डेटा प्रकार का उपयोग तालिका में एक स्तंभ के मूल व्यवहार को निर्दिष्ट करने के लिए किया जाता है। एक व्यापक आधार पर, स्तंभ व्यवहार या तो संख्या, वर्ण या दिनांक परिवार से संबंधित हो सकता है। कई अन्य उपप्रकार हैं जो इन परिवारों से संबंधित हैं।
संख्या डेटा प्रकार
NUMBER डेटाटाइप में पूर्णांक, नियत-बिंदु और फ़्लोटिंग-पॉइंट न्यूमेरिक मान दोनों शामिल हैं। Oracle के विभिन्न संस्करणों ने इन विभिन्न प्रकारों में से प्रत्येक के लिए अलग-अलग डेटाटाइप्स परिभाषित किए हैं, लेकिन अब NUMBER डेटाटाइप इन सभी उद्देश्यों को पूरा करता है। एक स्तंभ में संख्यात्मक डेटा संग्रहीत किया जाना चाहिए जो गणितीय गणनाओं में उपयोग किया जा सकता है। आमतौर पर, NUMBER डेटाटाइप का उपयोग पहचान संख्याओं को संग्रहीत करने के लिए किया जाता है जहां उन संख्याओं को क्रमिक संख्याओं के रूप में DBMS द्वारा उत्पन्न किया जाता है।
NUMBER (p, s), जहां p 38 अंको तक की परिशुद्धता है और s वह पैमाना है (दशमलव बिंदु के दाईं ओर अंकों की संख्या)। यह पैमाना -84 से 127 के बीच हो सकता है।
NUMBER (p), शून्य के पैमाने और p की सटीकता के साथ एक निश्चित-बिंदु संख्या है।
FLOAT [(p)], जहां p द्विआधारी परिशुद्धता है जो 1 से 126 तक हो सकती है। यदि p निर्दिष्ट नहीं है तो डिफ़ॉल्ट मान बाइनरी 126 है।
डेट डेटा प्रकार
प्रत्येक DATE डेटा प्रकार के लिए, सेंचुरी, ईयर, मंथ, डे, ऑवर, मिनट, सेकंड को डेटाबेस में स्टोर किया जाता है। हर डेटाबेस सिस्टम में एक डिफ़ॉल्ट तिथि प्रारूप होता है जिसे आरंभीकरण पैरामीटर NLS_DATE_FORMAT द्वारा परिभाषित किया जाता है। यह पैरामीटर आमतौर पर DD-MON-YY के लिए सेट किया जाता है। यदि आप एक समय निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट समय सुबह 12:00 बजे है
चरित्र डेटा प्रकार
Oracle CHAR, VARCHAR, VARCHAR2, और LONG.VARCHAR और VARCHAR2 सहित तीन पूर्वनिर्धारित चरित्र डेटाटाइप्स का समर्थन करता है, वास्तव में पर्यायवाची हैं, और Oracle उन VARCHAR2 के बजाय VARCHAR2 का उपयोग करने की सलाह देता है। CHAR डेटाटाइप का उपयोग करें जब स्तंभ वर्ण मानों को संग्रहीत करेगा, जो निश्चित-लंबाई हैं। उदाहरण के लिए, संयुक्त राज्य अमेरिका में एक सामाजिक सुरक्षा संख्या (SSN) प्रत्येक नागरिक को सौंपी जाती है और हमेशा आकार में 9 वर्ण होते हैं (भले ही एक SSN कड़ाई से अंकों से बना होता है, अंकों को वर्ण के रूप में माना जाता है), और CHAR के रूप में निर्दिष्ट किया जाएगा। (9)। वर्णानुक्रमिक डेटा को संग्रहीत करने के लिए VARCHAR2 डेटाटाइप का उपयोग करें जो चर-लंबाई है। उदाहरण के लिए, संग्रहीत किए जाने वाले वर्णों की संख्या के संदर्भ में एक ग्राहक का नाम या पता काफी भिन्न होगा। VARCHAR2 स्तंभ का अधिकतम आकार 4,000 वर्ण है।
LOB डेटा प्रकार
Oracle कई अलग-अलग LOB डेटाटिप्स प्रदान करता है, जिसमें CLOB (चरित्र बड़ी वस्तु) और BLOB (द्विआधारी बड़ी वस्तु) शामिल हैं। इन डेटाटाइप्स के पूर्व-पाठ पाठ, छवि, वीडियो, और स्थानिक डेटा सहित असंरचित डेटा संग्रहीत कर सकते हैं - CLOB डेटाटाइप आठ टेराबाइट्स तक संग्रहीत कर सकते हैं। चरित्र डेटाबेस चरित्र सेट का उपयोग कर डेटा। BLOB डेटाटाइप का उपयोग छवि और वीडियो डेटा से जुड़े उन लोगों जैसे असंरक्षित द्विआधारी बड़ी वस्तुओं को संग्रहीत करने के लिए किया जाता है जहां डेटा "बिट" मानों की एक धारा है। BLOB डेटाटाइप को स्टोर कर सकते हैं। बाइनरी डेटा के आठ टेराबाइट्स। एनसीएलओबी डेटा प्रकार मल्टीटाइट राष्ट्रीय चरित्र में बड़ी वस्तुओं को 8TB से 128TB तक सेट कर सकता है। सर्वर के फाइल सिस्टम पर फ़ाइल करने के लिए Berm डेटा प्रकार मान फ़ाइल लोकेटर या पॉइंटर के रूप में काम करता है। समर्थित अधिकतम फ़ाइल आकार 8TB से 128TB है।
प्रतिबन्ध
बाधाओं को डेटा अखंडता सुनिश्चित करने के लिए ओरेकल तालिकाओं में परिभाषित नियमों का एक सेट है। इन नियमों को प्रत्येक स्तंभ या स्तंभों के सेट के लिए लागू किया जाता है। जब भी तालिका डेटा कार्रवाई में भाग लेती है, तो ये नियम मान्य होते हैं और उल्लंघन पर अपवाद बढ़ाते हैं। उपलब्ध बाधा प्रकार NULL, प्राथमिक कुंजी, विशिष्ट, चेक और विदेशी कुंजी नहीं हैं।
नीचे दिए गए सिंटैक्स का उपयोग कॉलम स्तर पर बाधा डालने के लिए किया जा सकता है।
वाक्य - विन्यास:
column [data type] [CONSTRAINT constraint_name] constraint_type
नॉट नाउल को छोड़कर सभी बाधाओं को टेबल स्तर पर भी परिभाषित किया जा सकता है। समग्र बाधाओं को केवल टेबल स्तर पर निर्दिष्ट किया जा सकता है।
पूर्ण बाधा नहीं
NOT NULL बाधा का अर्थ यह है कि डेटा पंक्ति में निर्दिष्ट कॉलम के लिए मान होना चाहिए। NOT NULL। यदि कोई स्तंभ NULL के रूप में निर्दिष्ट नहीं है, तो Oracle RDBMS उस पंक्ति को कर्मचारी तालिका में संग्रहीत करने की अनुमति नहीं देगा जो इस बाधा का उल्लंघन करती हैं। केवल स्तंभ स्तर पर परिभाषित किया जा सकता है, और तालिका स्तर पर नहीं।
वाक्य - विन्यास:
COLUMN [data type] [NOT NULL]
विशेष बाधा
कभी-कभी यह एक स्तंभ मान के लिए विशिष्टता को लागू करना आवश्यक होता है जो प्राथमिक कुंजी स्तंभ नहीं है। इस नियम को लागू करने के लिए UNIQUE बाधा का उपयोग किया जा सकता है और Oracle अद्वितीय बाधा का उल्लंघन करने वाली किसी भी पंक्तियों को अस्वीकार कर देगा। Unique Diraint यह सुनिश्चित करता है कि स्तंभ मान अलग हैं , बिना किसी नकल के।
वाक्य - विन्यास:
Column Level:
COLUMN [data type] [CONSTRAINT <name>] [UNIQUE]
Table Level: CONSTRAINT [बाधा नाम] UNIQUE (स्तंभ नाम)
नोट: स्तंभ मानों में दोहराव को रोकने के लिए ओरेकल आंतरिक रूप से अद्वितीय सूचकांक बनाता है। बाद में PL / SQL में चर्चा की जाएगी।
CREATE TABLE TEST
( ... ,
NAME VARCHAR2(20)
CONSTRAINT TEST_NAME_UK UNIQUE,
... );
समग्र अद्वितीय कुंजी के मामले में, इसे नीचे के रूप में तालिका स्तर पर परिभाषित किया जाना चाहिए।
CREATE TABLE TEST
( ... ,
NAME VARCHAR2(20),
STD VARCHAR2(20) ,
CONSTRAINT TEST_NAME_UK UNIQUE (NAME, STD)
);
प्राथमिक कुंजी
प्रत्येक तालिका में सामान्य रूप से एक स्तंभ या स्तंभ सेट होना चाहिए जो तालिका में संग्रहीत डेटा की पंक्तियों को विशिष्ट रूप से पहचानता है। यह स्तंभ या स्तंभों के सेट को प्राथमिक कुंजी के रूप में संदर्भित किया जाता है। अधिकांश तालिकाओं में प्राथमिक कुंजी के रूप में एक एकल स्तंभ होता है। कुंजी कॉलम NULLs और डुप्लिकेट मानों के विरुद्ध प्रतिबंधित हैं।
ध्यान देने योग्य बात -
एक तालिका में केवल एक प्राथमिक कुंजी हो सकती है।
एक समग्र प्राथमिक कुंजी के तहत कई स्तंभों को जोड़ा जा सकता है।
Oracle आंतरिक रूप से स्तंभ मानों में दोहराव को रोकने के लिए अद्वितीय सूचकांक बनाता है। और बाद में PL / SQL में चर्चा की जाएगी।
वाक्य - विन्यास:
Column level:
COLUMN [data type] [CONSTRAINT <constraint name> PRIMARY KEY]
Table level:
CONSTRAINT [constraint name] PRIMARY KEY [column (s)]
निम्न उदाहरण दिखाता है कि स्तंभ स्तर पर प्राथमिक कुंजी बाधा का उपयोग कैसे करें।
CREATE TABLE TEST
( ID NUMBER CONSTRAINT TEST_PK PRIMARY KEY,
... );
निम्न उदाहरण दिखाता है कि तालिका स्तर पर प्राथमिक कुंजी बाधा का उपयोग करके समग्र प्राथमिक कुंजी को कैसे परिभाषित किया जाए।
CREATE TABLE TEST
( ...,
CONSTRAINT TEST_PK PRIMARY KEY (ID)
);
विदेशी कुंजी
जब दो तालिकाएँ विशिष्ट कॉलम के आधार पर अभिभावक के बच्चे के रिश्ते को साझा करती हैं, तो चाइल्ड टेबल में ज्वाइनिंग कॉलम फॉरेन की के नाम से जाना जाता है। पेरेंट टेबल में इसी कॉलम की प्रॉपर्टी को रेफ़रेंशियल इंटीग्रिटी के रूप में जाना जाता है। चाइल्ड टेबल में मुख्य कॉलम मान या तो अशक्त होना चाहिए या मूल तालिका के मौजूदा मूल्य होने चाहिए। कृपया ध्यान दें कि संदर्भित तालिका के केवल प्राथमिक कुंजी कॉलम संदर्भात्मक अखंडता को लागू करने के लिए योग्य हैं।
यदि चाइल्ड टेबल में कॉलम पर एक विदेशी कुंजी परिभाषित की गई है, तो ओरेकल मूल पंक्ति को हटाने की अनुमति नहीं देता है, यदि इसमें कोई चाइल्ड रो है। यदि विदेशी मुद्रा को परिभाषित करने के दौरान ON DELETE CASCADE विकल्प दिया जाता है, तो ओरेकल डिलीट कर देता है। पैरेंट पंक्ति हटाए जाने के दौरान सभी चाइल्ड रो। सिलेरली, ऑन सेट सेट नॉट इंगित करता है कि जब पैरेंट टेबल में एक पंक्ति हटा दी जाती है, तो विदेशी कुंजी मान शून्य हो जाते हैं।
वाक्य - विन्यास:
Column Level:
COLUMN [data type] [CONSTRAINT] [constraint name] [REFERENCES] [table name (column name)]
Table level:
CONSTRAINT [constraint name] [FOREIGN KEY (foreign key column name) REFERENCES] [referenced table name (referenced column name)]
निम्न उदाहरण दिखाता है कि स्तंभ स्तर पर FOREIGN KEY बाधा का उपयोग कैसे करें।
CREATE TABLE TEST
(ccode varchar2(5)
CONSTRAINT TEST_FK REFERENCES PARENT_TEST(ccode),
...
);
Usage of ON DELETE CASCADE clause
CREATE TABLE TEST
(ccode varchar2(5)
CONSTRAINT TEST_FK REFERENCES PARENT_TEST (ccode)
ON DELETE CASCADE,
...
);
अड़चन की जाँच करें
कभी-कभी किसी विशिष्ट कॉलम में संग्रहीत डेटा मानों को कुछ स्वीकार्य मानों के भीतर गिरना चाहिए। CHECK बाधा की आवश्यकता है कि निर्दिष्ट चेक स्थिति या तो तालिका में संग्रहीत प्रत्येक पंक्ति के लिए सही या अज्ञात है। चेक बाधा पर सशर्त नियम लागू करने की अनुमति देता है कॉलम, जिसे कॉलम में डेटा डालने से पहले मान्य किया जाना चाहिए। शर्त में उप क्वेरी या छद्म स्तंभ CURRVAL NEXTVAL, LEVEL, ROWNUM या SYSDATE नहीं होना चाहिए।
Oracle एकल कॉलम को एक से अधिक CHECK बाधा बनाता है। वास्तव में, सीएचईसीके बाधाओं की संख्या के लिए कोई व्यावहारिक सीमा नहीं है जिसे एक स्तंभ के लिए परिभाषित किया जा सकता है।
वाक्य - विन्यास:
Column level:
COLUMN [data type] CONSTRAINT [name] [CHECK (condition)]
Table level:
CONSTRAINT [name] CHECK (condition)
निम्न उदाहरण दिखाता है कि स्तंभ स्तर पर CHECK बाधा का उपयोग कैसे करें।
CREATE TABLE TEST
( ...,
GRADE char (1) CONSTRAINT TEST_CHK
CHECK (upper (GRADE) in ('A','B','C')),
...
);
निम्न उदाहरण दिखाता है कि टेबल स्तर पर CHECK बाधा का उपयोग कैसे करें।
CREATE TABLE TEST
( ...,
CONSTRAINT TEST_CHK
CHECK (stdate < = enddate),
);
वैकल्पिक बयान
डेटाबेस में तालिका बनाए जाने के बाद DBA तालिका संरचना या स्तंभ परिभाषाओं में परिवर्तन कर सकता है। DDL कमांड ALTER TABLE का उपयोग इस तरह के कार्यों को करने के लिए किया जाता है। अन्य आदेश स्कीमा ऑब्जेक्ट्स के लिए अनन्य कई उपयोगिताएँ प्रदान करता है। ALTER TABLE स्टेटमेंट का उपयोग किया जाता है। तालिका में एक कॉलम जोड़ने, छोड़ने, नाम बदलने और संशोधित करने के लिए।
नीचे दिए गए तालिका विवरण में EMP_NEW तालिका EMP का नाम दिया गया है।
ALTER TABLE EMP RENAME TO EMP_NEW;
नीचे दिए गए तालिका विवरण में EMP_NEW तालिका में एक नया स्तंभ TESTCOL जोड़ा गया है
ALTER TABLE EMP_NEW ADD (TESTCOL VARCHAR2 (100))
नीचे दिए गए तालिका विवरण में TESTNEW स्तंभ TESTCOL का नाम दिया गया है।
ALTER TABLE EMP_NEW RENAME COLUMN TESTCOL TO TESTNEW
नीचे दिए गए वैकल्पिक विवरण EMP_NEW तालिका से स्तंभ TESTNEW को छोड़ दें
ALTER TABLE EMP_NEW DROP COLUMN TESTNEW;
नीचे दिए गए वैकल्पिक विवरण में EMPLOYEE_ID कॉलम पर प्राथमिक कुंजी है।
ALTER TABLE EMP_NEW ADD PRIMARY KEY (EMPLOYEE_ID)
नीचे दिए गए वैकल्पिक कथन प्राथमिक कुंजी को छोड़ देते हैं।
ALTER TABLE EMP_NEW DROP PRIMARY KEY;
नीचे दिए गए तालिका विवरण केवल पढ़ने के लिए तालिका मोड स्विच करता है।
ALTER TABLE EMP_NEW READ ONLY;
केवल टेबल्स पढ़ें
ओरेकल 11 जी में एन्हांसमेंट के रूप में केवल टेबल पढ़ें। यह केवल उद्देश्य को पढ़ने के लिए टेबल का उपयोग करने की अनुमति देता है। पहले के ओरेकल संस्करणों में, टेबल केवल अन्य उपयोगकर्ताओं को सेलेक्ट विशेषाधिकार प्रदान करके पढ़े जाते थे, लेकिन मालिक के पास अभी भी रीड राइट विशेषाधिकार था। लेकिन अब, यदि टेबल केवल सेट के रूप में पढ़ी जाती है, तो भी मालिक को डेटा हेरफेर तक पहुंच नहीं है। ।
वाक्य - विन्यास:
ALTER TALE [TABLE NAME] READ ONLY
ALTER TALE [TABLE NAME] READ WRITE
चित्रण
SQL>CREATE TABLE ORATEST (id NUMBER)
SQL>INSERT INTO ORATEST VALUES (1);
SQL>ALTER TABLE ORATEST READ ONLY;
SQL> INSERT INTO ORATEST VALUES (2);
INSERT INTO ORATEST VALUES (2)
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."ORATEST"
SQL> UPDATE ORATEST SET id = 2;
UPDATE ORATEST SET id = 2
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."ORATEST"
SQL> DELETE FROM ORATEST;
DELETE FROM ORATEST
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."ORATEST"
SQL> TRUNCATE TABLE ORATEST;
TRUNCATE TABLE ORATEST
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."ORATEST"
SQL> ALTER TABLE ORATEST ADD (description VARCHAR2 (50));
ALTER TABLE ORATEST ADD (description VARCHAR2 (50))
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."ORATEST"
SQL> ALTER TABLE ORATEST READ WRITE;
Table altered.
SQL> DELETE FROM ORATEST;
1 row deleted.
ड्रॉप टेबल स्टेटमेंट
डेटाबेस से तालिका को निकालने के लिए DROP TABLE स्टेटमेंट का उपयोग किया जाता है। गिराई गई तालिका और उसका डेटा चयन के लिए उपलब्ध नहीं रह गया है। फ़्लॉक्ड उपयोगिता के उपयोग से ड्रॉ टेबल को पुनर्प्राप्त किया जा सकता है, यदि रीसायकलिन में उपलब्ध हो। टेबल से ड्रॉप करने पर सूचकांक और इसके साथ जुड़े ट्रिगर गिर जाते हैं।
वाक्य - विन्यास:
DROP TABLE [TABLE NAME] [PURGE]
नीचे दिया गया कथन तालिका को गिरा देगा और उसे रीसायकलिन में रख देगा।
DROP TABLE emp_new;
नीचे दिया गया कथन तालिका को गिरा देगा और इसे रीसायकलिन से भी निकाल देगा।
DROP TABLE emp_new PURGE;