CodeGym/Java Course/All lectures for HI purposes/तालिकाएँ बनाना

तालिकाएँ बनाना

उपलब्ध

तालिकाओं का सार्थक निर्माण

पिछले व्याख्यानों में, हम पहले से ही टेबल बनाने के लिए प्रश्नों से थोड़ा परिचित हो गए थे, अब समय आ गया है कि हम इसमें गहराई से उतरें।

तालिका बनाना जावा में एक वर्ग घोषित करने के समान है और इसमें यह पैटर्न है:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

उदाहरण के लिए, आइए एक क्वेरी लिखते हैं जो उपयोगकर्ताओं के साथ तालिका बनाती है:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

यह बहुत सरल दिखता है, क्योंकि यहां बहुत सारी बारीकियों का संकेत नहीं दिया गया है।

सबसे पहले, तालिका में अतिरिक्त सेटिंग्स हो सकती हैं।

और दूसरी बात, प्रत्येक कॉलम में अतिरिक्त सेटिंग्स हो सकती हैं।

और हम कॉलम बनाने की सेटिंग से शुरुआत करेंगे।

तालिका में कुंजियाँ

नाम और डेटा प्रकार के अलावा, तालिका स्तंभ में निम्न सेटिंग्स भी हो सकती हैं:

प्राथमिक कुंजी स्तंभ तालिका की कुंजी है
अद्वितीय कुंजी सभी स्तंभ मान अद्वितीय होने चाहिए।
डिफ़ॉल्ट मान डिफ़ॉल्ट मान
अशक्त नहीं मान NULL को स्वीकार करने का निषेध
स्वत: वेतनवृद्धि तालिका में एक नया रिकॉर्ड जोड़े जाने पर SQL सर्वर स्वचालित रूप से मान बढ़ा देगा
आप जेनरेट हुई परिकलित क्षेत्र
भंडारण डेटा कहाँ स्टोर करें: डिस्क पर या मेमोरी में
टिप्पणी कॉलम टिप्पणी, जैसे स्थानीय भाषा में शीर्षक

नीचे हम उनमें से कुछ को देखेंगे।

सबसे पहले, यह प्राथमिक कुंजी है ।

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

दूसरा UNIQUE KEY है ।

कुछ मायनों में, यह प्राथमिक कुंजी के समान है, हालांकि इसका शब्दार्थ भार पूरी तरह से अलग है। यदि किसी कॉलम में UNIQUE विशेषता है, तो उस कॉलम के सभी मान अद्वितीय होने चाहिए। UNIQUE KEY और PRIMARY KEY के बीच अंतर का एक अच्छा उदाहरण पासपोर्ट कार्यालय में लोगों की सूची है।

कर संख्या एक प्राथमिक कुंजी है, इसका उपयोग अन्य तालिकाओं से सही व्यक्ति को संदर्भित करना आसान बनाने के लिए किया जाता है।

पासपोर्ट संख्या एक अद्वितीय कुंजी है। किसी भी दो लोगों का पासपोर्ट नंबर एक जैसा नहीं हो सकता है। हालांकि, पासपोर्ट नंबर बदला जा सकता है। उदाहरण के लिए, उपनाम बदलते समय। और टैक्स नंबर हमेशा आपके साथ रहेगा। यह प्राथमिक कुंजी का मुख्य कार्य है। प्राथमिक कुंजी निर्दिष्ट करने वाली क्वेरी का एक उदाहरण:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

डेटा प्रकार सेटिंग्स

कम महत्वपूर्ण लेकिन उपयोगी विशेषताएँ हैं।

डिफ़ॉल्ट मूल्य

तालिका में डेटा सम्मिलित करते समय (नई पंक्ति जोड़कर), आप कुछ स्तंभों के मानों को छोड़ सकते हैं यदि उनके पास डिफ़ॉल्ट मान है। इस स्थिति में, SQL सर्वर केवल स्तंभ का मान ही सेट करेगा।

MySQL के संस्करण 8 से शुरू करके, आप एक अभिव्यक्ति को मान के रूप में निर्दिष्ट कर सकते हैं।

अशक्त नहीं

यदि आप तालिका बनाते समय किसी स्तंभ के लिए NOT NULL विशेषता निर्दिष्ट करते हैं, तो SQL सर्वर यह सुनिश्चित करेगा कि इस स्तंभ में NULL मान संग्रहीत करना असंभव है। डिफ़ॉल्ट रूप से, किसी भी कॉलम में NULL मान हो सकता है, यहाँ तक कि INT कॉलम भी। जो जावा प्रोग्रामर के लिए थोड़ा स्पष्ट नहीं है।

स्वत: वेतनवृद्धि

यह आमतौर पर कॉलम आईडी के लिए प्रयोग किया जाता है। जब आप किसी तालिका में एक नई पंक्ति जोड़ते हैं, तो आप वास्तव में चाहते हैं कि SQL सर्वर इस प्रविष्टि के लिए एक आईडी निर्दिष्ट करे। सर्वर से बेहतर कौन जानता है कि उसके पास तालिका में कितनी पंक्तियाँ हैं। खासकर अगर अलग-अलग क्लाइंट के अनुरोध एक ही SQL सर्वर पर जाते हैं।

AUTO_INCREMENT विशेषता ठीक यही करती है। एक नई पंक्ति जोड़ते समय, हम केवल एक आईडी के रूप में कुछ भी पास नहीं करते हैं, और SQL सर्वर इस रिकॉर्ड के लिए सही आईडी निर्दिष्ट करेगा: यह केवल अंतिम मौजूदा रिकॉर्ड की आईडी लेगा और इसे 1 से बढ़ा देगा। यह विशेषता केवल हो सकती है पूर्णांक और वास्तविक संख्या प्रकारों के साथ प्रयोग किया जाता है। और, ज़ाहिर है, आइए ऐसी तालिका बनाने का एक उदाहरण बनाते हैं:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);
टिप्पणियां
  • लोकप्रिय
  • नया
  • पुराना
टिप्पणी लिखने के लिए आपको साइन इन करना होगा
इस पेज पर अभी तक कोई टिप्पणियां नहीं हैं