SQL
में टेबल बनाने का तरीका जानना एक महत्वपूर्ण और मौलिक अवधारणा है।
इस ट्यूटोरियल में, मैं आपको SQL
CREATE TABLE
. के लिए वाक्य रचना PostgreSQL और MySQL दोनों के लिए कोड उदाहरणों का उपयोग करते हुए कथन।
मूल CREATE TABLE
सिंटैक्स
यहां CREATE TABLE
के लिए मूल सिंटैक्स दिया गया है कथन:
CREATE TABLE table_name(
column1 data_type column_constraint,
column2 data_type column_constraint,
column3 data_type column_constraint,
column4 data_type column_constraint,
... etc
);
पहले भाग के लिए, आपको CREATE TABLE
से शुरुआत करनी होगी उस तालिका के नाम के बाद विवरण जिसे आप बनाना चाहते हैं।
अगर मैं शिक्षक जानकारी की एक तालिका बनाना चाहता हूं, तो मैं कुछ इस तरह लिखूंगा:
CREATE TABLE teachers();
कोष्ठक के अंदर, आप तालिका के लिए कॉलम बनाने के लिए जानकारी जोड़ेंगे। यदि आप कोष्ठक भूल जाते हैं, तो आपको एक त्रुटि संदेश प्राप्त होगा।
CREATE TABLE teachers;
कोष्ठक के अंत में अर्धविराम कंप्यूटर को बताता है कि यह SQL
का अंत है बयान। आप कभी-कभी इसे स्टेटमेंट टर्मिनेटर के रूप में संदर्भित सुनेंगे।
MySQL
क्या हैं भंडारण इंजन?
MySQL
. के अनुसार दस्तावेज़ीकरण:
भंडारण इंजन MySQL घटक हैं जो विभिन्न प्रकार की तालिका के लिए SQL संचालन को संभालते हैं।
MySQL
डेटाबेस पर CRUD (क्रिएट, रीड, अपडेट और डिलीट) ऑपरेशन करने के लिए इन स्टोरेज इंजन का उपयोग करता है।
MySQL
. में , आपके पास अपनी तालिका के लिए उपयोग किए जाने वाले भंडारण इंजन के प्रकार को निर्दिष्ट करने का विकल्प है। अगर आप ENGINE
. को छोड़ देते हैं खंड तो डिफ़ॉल्ट InnoDB होगा।
CREATE TABLE table_name(
column1 data_type column_constraint,
column2 data_type column_constraint,
column3 data_type column_constraint,
column4 data_type column_constraint,
... etc
)ENGINE=storage_engine;
IF NOT EXISTS
खंड?
IF NOT EXISTS
नामक एक वैकल्पिक क्लॉज है यह जांच करेगा कि आप जिस तालिका को बनाना चाहते हैं वह डेटाबेस में पहले से मौजूद है या नहीं। आप उस क्लॉज को टेबल के नाम के ठीक पहले रख सकते हैं।
CREATE TABLE IF NOT EXISTS teachers();
यदि तालिका पहले से मौजूद है, तो कंप्यूटर एक नई तालिका नहीं बनाएगा।
अगर आप IF NOT EXISTS
. को छोड़ देते हैं खंड और एक तालिका बनाने का प्रयास करें जो पहले से ही डेटाबेस में मौजूद है, तो आपको एक त्रुटि संदेश मिलेगा।
इस उदाहरण में, मैंने सबसे पहले शिक्षक नामक एक तालिका बनाई। लेकिन अगर मैं अगले आदेश में उसी तालिका को बनाने का प्रयास करता हूं तो मैं एक त्रुटि में चला जाऊंगा।
CREATE TABLE IF NOT EXISTS teachers();
CREATE TABLE teachers();
तालिका में कॉलम कैसे बनाएं
CREATE TABLE
. के लिए कोष्ठक के अंदर कथन, आप उन स्तंभों के नाम सूचीबद्ध करने जा रहे हैं जिन्हें आप उनके डेटा प्रकारों और बाधाओं के साथ बनाना चाहते हैं।
यह एक उदाहरण है कि हम school_id
. के चार कॉलम कैसे जोड़ सकते हैं , name
, email
और age
हमारे शिक्षकों की मेज पर। प्रत्येक स्तंभ नाम को अल्पविराम से अलग किया जाना चाहिए।
CREATE TABLE teachers(
school_id data_type column_constraint,
name data_type column_constraint,
email data_type column_constraint,
age data_type column_constraint
);
MySQL
. के अनुसार दस्तावेज़ीकरण:
MySQL में प्रति टेबल 4096 कॉलम की हार्ड लिमिट है, लेकिन किसी दिए गए टेबल के लिए प्रभावी अधिकतम कम हो सकता है। सटीक कॉलम सीमा कई कारकों पर निर्भर करती है।
अगर आप छोटे MySQL
पर काम कर रहे हैं व्यक्तिगत परियोजनाओं, तो आपको शायद अपनी तालिकाओं के लिए स्तंभों की संख्या से अधिक होने के बारे में चिंता करने की आवश्यकता नहीं होगी।
PostgreSQL प्रलेखन के अनुसार, प्रति तालिका 1600 कॉलम की सीमा है। MySQL
. के समान , एक सटीक सीमा डिस्क स्थान या प्रदर्शन प्रतिबंधों के आधार पर भिन्न हो सकती है।
डेटा प्रकार SQL
जब आप तालिका में कॉलम बना रहे होते हैं, तो आपको इसे एक डेटा प्रकार निर्दिष्ट करने की आवश्यकता होती है। डेटा प्रकार कॉलम के अंदर मूल्य के प्रकार का वर्णन करते हैं।
यहां SQL
में डेटा प्रकारों की छह लोकप्रिय श्रेणियां दी गई हैं :
- संख्यात्मक (इंट, फ्लोट, सीरियल, दशमलव, आदि)
- डेटा और समय (टाइमस्टैम्प, डेटा, समय, आदि)
- चरित्र और स्ट्रिंग (चार, वर्चर, टेक्स्ट, आदि)
- यूनिकोड (ntext, nvarchar, आदि)
- बाइनरी (बाइनरी, आदि)
- विविध (xml, टेबल वगैरह)
यह लेख हर एक डेटा प्रकार के माध्यम से नहीं जाएगा, लेकिन कुछ लोकप्रिय लोगों को कवर करेगा।
यहां PostgreSQL
की पूरी सूची दी गई है डेटा प्रकार और MySQL
डेटा के प्रकार।
SERIAL
क्या है और AUTO_INCREMENT
?
PostgreSQL
में , एक SERIAL
डेटा प्रकार एक पूर्णांक है जो बनाई गई प्रत्येक नई पंक्ति के लिए स्वचालित रूप से एक से बढ़ जाएगा।
हम SERIAL
add जोड़ सकते हैं school_id
. के ठीक बाद हमारे शिक्षक तालिका में कॉलम।
school_id SERIAL
MySQL
. में , आप AUTO_INCREMENT
. का प्रयोग करेंगे SERIAL
. के बजाय . इस उदाहरण में, INT
डेटा प्रकार का उपयोग किया जाता है जो एक पूर्णांक का प्रतिनिधित्व करता है।
school_id INT AUTO_INCREMENT
यदि हम अपनी शिक्षक तालिका में पाँच पंक्तियाँ जोड़ते हैं, तो आउटपुट school_id
के लिए 1, 2, 3, 4, 5 की संख्या दिखाएगा। कॉलम क्योंकि पूर्णांक स्वचालित रूप से प्रत्येक नई पंक्ति के लिए एक से बढ़ता है।
VARCHAR
क्या है डेटा प्रकार?
एक VARCHAR
डेटा प्रकार एक चर स्ट्रिंग लंबाई है जहां आप अधिकतम वर्ण लंबाई निर्धारित कर सकते हैं।
यह VARCHAR
. का उपयोग करने का एक उदाहरण है name
. के लिए डेटा प्रकार और email
हमारे शिक्षक तालिका में कॉलम। संख्या 30 अधिकतम वर्ण लंबाई है।
name VARCHAR(30) column_constraint,
email VARCHAR(30) column_constraint,
एसक्यूएल में कॉलम की कमी
ये ऐसे नियम हैं जो टेबल कॉलम के अंदर डेटा पर लागू होते हैं।
यहां कुछ अधिक सामान्य स्तंभ बाधाओं की सूची दी गई है:
- प्राथमिक कुंजी - यह कुंजी तालिका के लिए एक विशिष्ट पहचानकर्ता के रूप में कार्य करती है
- विदेशी कुंजी - यह कुंजी सुनिश्चित करती है कि एक कॉलम के मान दूसरी तालिका में भी मौजूद हैं। यह तालिकाओं के बीच एक कड़ी के रूप में कार्य करता है।
- अद्वितीय - कॉलम के सभी मान अद्वितीय होने चाहिए
- शून्य नहीं - मान शून्य नहीं हो सकते। NULL एक मान का अभाव है
- CHECK - एक बूलियन एक्सप्रेशन के विरुद्ध एक मान का परीक्षण करता है
PRIMARY
के उदाहरण और FOREIGN
कुंजियाँ
हमारे शिक्षक तालिका में, हम एक PRIMARY KEY
add जोड़ सकते हैं school_id
. पर कॉलम।
PostgreSQL में कोड इस तरह दिखेगा:
school_id SERIAL PRIMARY KEY
MySQL में कोड इस तरह दिखेगा:
school_id INT AUTO_INCREMENT PRIMARY KEY
अगर आप PRIMARY KEY
. के लिए एक से अधिक कॉलम रखना चाहते हैं , तो आप इसे अपने कॉलम निर्माण के ठीक बाद जोड़ देंगे।
CREATE TABLE table_name(
column1 data_type column_constraint,
column2 data_type column_constraint,
column3 data_type column_constraint,
column4 data_type column_constraint,
... etc
PRIMARY KEY (column1, column2)
);
अगर आप एक टेबल को दूसरी टेबल से लिंक करना चाहते हैं तो आप FOREIGN KEY
. का इस्तेमाल कर सकते हैं .
मान लें कि हमारे पास district_id
की प्राथमिक कुंजी के साथ जिला_कर्मचारी नामक एक तालिका थी . यहां बताया गया है कि कोड PostgreSQL में कैसा दिखेगा:
CREATE TABLE district_employees(
district_id SERIAL PRIMARY KEY,
employee_name VARCHAR(30) NOT NULL,
PRIMARY KEY(district_id)
);
हमारे शिक्षक तालिका में, हम एक विदेशी कुंजी का उपयोग कर सकते हैं और जिला_कर्मचारी तालिका का संदर्भ दे सकते हैं।
district_id INT REFERENCES district_employees(district_id),
CREATE TABLE teachers(
school_id SERIAL PRIMARY KEY,
district_id INT REFERENCES district_employees(district_id),
column1 data_type column_constraint,
column2 data_type column_constraint,
column3 data_type column_constraint,
column4 data_type column_constraint,
... etc
);
NOT NULL
के उदाहरण , CHECK
और UNIQUE
यदि हम यह सुनिश्चित करना चाहते हैं कि हमारे पास कोई भी मान शून्य नहीं है, तो हम NOT NULL
का उपयोग कर सकते हैं बाधा
name VARCHAR(30) NOT NULL
हम CHECK
. का उपयोग कर सकते हैं यह सुनिश्चित करने के लिए कि हमारे सभी शिक्षक 18 वर्ष और उससे अधिक के हैं। CHECK
बाधा एक बूलियन अभिव्यक्ति के खिलाफ एक मूल्य का परीक्षण करती है।
age INT CHECK(age >= 18)
यदि हमारा कोई मान उस शर्त को पूरा नहीं करता है, तो हमें एक त्रुटि संदेश प्राप्त होगा।
हम UNIQUE
. का उपयोग कर सकते हैं यह सुनिश्चित करने के लिए बाधा है कि सभी ईमेल अद्वितीय हैं।
email VARCHAR(30) UNIQUE
यह शिक्षक तालिका का अंतिम परिणाम है:
PostgreSQL में कोड इस तरह दिखेगा:
CREATE TABLE teachers(
school_id SERIAL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(30) UNIQUE,
age INT CHECK(age >= 18)
);
MySQL में कोड इस तरह दिखेगा:
CREATE TABLE teachers(
school_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(30) UNIQUE,
age INT CHECK(age >= 18)
);
मुझे आशा है कि आपको यह लेख पसंद आया होगा और आपकी SQL यात्रा के लिए शुभकामनाएँ।