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

SQL में एक टेबल कैसे बनाएं - पोस्टग्रेज और MySQL उदाहरण क्वेरी

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 में डेटा प्रकारों की छह लोकप्रिय श्रेणियां दी गई हैं :

  1. संख्यात्मक (इंट, फ्लोट, सीरियल, दशमलव, आदि)
  2. डेटा और समय (टाइमस्टैम्प, डेटा, समय, आदि)
  3. चरित्र और स्ट्रिंग (चार, वर्चर, टेक्स्ट, आदि)
  4. यूनिकोड (ntext, nvarchar, आदि)
  5. बाइनरी (बाइनरी, आदि)
  6. विविध (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 यात्रा के लिए शुभकामनाएँ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएचपी समर्थन के साथ मुफ्त वेब होस्टिंग

  2. एक अलग तालिका बनाएं बिना एक चयन कथन में एक अस्थायी तालिका बनाएं

  3. MySQL में अंतिम अद्यतन पंक्ति की आईडी कैसे प्राप्त करें?

  4. MySQL में EXPORT_SET () फ़ंक्शन कैसे काम करता है

  5. MySQL में LIMIT क्लॉज में वेरिएबल का उपयोग करना