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

SQL सर्वर 2017 में एक तालिका बनाएँ

यहां हम SQL सर्वर में तीन टेबल बनाते हैं, फिर उन्हें बनाने वाली स्क्रिप्ट का विश्लेषण करते हैं। हम यह सत्यापित करने के लिए एक अन्य स्क्रिप्ट भी चलाते हैं कि तालिका बनाई गई थी।

पहले हमने एक स्क्रिप्ट से एक डेटाबेस बनाया था। हालांकि, डेटाबेस एक खाली डेटाबेस है - इसमें कोई टेबल या डेटा नहीं है।

अब हम अपने डेटाबेस के लिए कुछ टेबल बनाने जा रहे हैं।

सबसे पहले, एक पुनश्चर्या के रूप में, हमने अब तक क्या किया है:

CREATE DATABASE Music;

इसने एक खाली डेटाबेस बनाया। यदि आपने अभी तक ऐसा नहीं किया है, तो उस स्क्रिप्ट को चलाएँ।

अब निम्न स्क्रिप्ट चलाएँ:

USE Music;

CREATE TABLE Artists (
  ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  ArtistName nvarchar(255) NOT NULL,
  ActiveFrom date
);
GO

CREATE TABLE Genres (
  GenreId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  Genre nvarchar(50) NOT NULL
);

CREATE TABLE Albums (
  AlbumId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AlbumName nvarchar(255) NOT NULL,
  ReleaseDate date NOT NULL,
  ArtistId int NOT NULL,
  GenreId int NOT NULL

  CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
    REFERENCES dbo.Artists (ArtistId)     
    ON DELETE NO ACTION    
    ON UPDATE NO ACTION    
);

वह स्क्रिप्ट डेटाबेस में तीन टेबल जोड़ती है। तालिकाओं को Artists . कहा जाता है , Genres , और Albums

SQL ऑपरेशंस स्टूडियो/Azure डेटा स्टूडियो में यह परिणाम है:

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

CREATE TABLE का स्पष्टीकरण कथन

हमारे द्वारा अभी-अभी चलाई गई स्क्रिप्ट में तीन CREATE TABLE शामिल हैं कथन - प्रत्येक एक अलग तालिका बनाता है। स्क्रिप्ट एक विदेशी कुंजी बाधा भी जोड़ती है, लेकिन हम इसे बाद में देखेंगे।

अभी के लिए, आइए पहले CREATE TABLE का विश्लेषण करें हमारी लिपि में कथन:

USE Music;

CREATE TABLE Artists (
  ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  ArtistName nvarchar(255) NOT NULL,
  ActiveFrom date
);
GO

यह SQL कथन Artists नामक एक तालिका बनाता है ArtistId called नामक तीन स्तंभों के साथ , ArtistName , और ActiveFrom . प्रत्येक कॉलम की परिभाषा उसके नाम से शुरू होती है, उसके बाद उसके डेटा प्रकार और उस कॉलम पर लागू होने वाली बाधाओं से शुरू होती है।

यहां अधिक विस्तृत "पंक्ति दर पंक्ति" विवरण दिया गया है:

USE Music;
यह हिस्सा वास्तव में CREATE TABLE का हिस्सा नहीं है बयान। यह केवल संगीत पर स्विच करने के लिए है डेटाबेस। सर्वर पर कई डेटाबेस हो सकते हैं और हम यह सुनिश्चित करना चाहते हैं कि हम सही डेटाबेस पर टेबल बना रहे हैं। यदि आप पहले से ही सही डेटाबेस में काम कर रहे हैं तो आपको इस लाइन की आवश्यकता नहीं है।
CREATE TABLE Artists (
यह CREATE TABLE की शुरुआत है बयान। इसके बाद तालिका का नाम आता है (इस मामले में Artists ), उसके बाद तालिका परिभाषा संलग्न करने वाले कोष्ठकों में से पहला।
ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
फिर हम पहले कॉलम को परिभाषित करते हैं। इस मामले में हम इसे ArtistId . कहते हैं , इसके डेटा प्रकार को एक पूर्णांक के रूप में निर्दिष्ट करें (int ), इसे इंडेंटिटी कॉलम के रूप में सेट करें (यह कॉलम तालिका के लिए अद्वितीय आईडी प्रदान करेगा, और प्रत्येक पंक्ति के साथ मूल्य बढ़ेगा), (1,1) इसका मतलब है कि मान 1 से शुरू होता है और 1 से बढ़ता है, NOT NULL इसका मतलब है कि फ़ील्ड में शून्य मान नहीं हो सकते हैं, और PRIMARY KEY इस कॉलम को तालिका के लिए प्राथमिक कुंजी के रूप में सेट करता है। एक प्राथमिक कुंजी एक स्तंभ है जिसे तालिका के लिए विशिष्ट पहचानकर्ता फ़ील्ड के रूप में कॉन्फ़िगर किया गया है।
ArtistName nvarchar(255) NOT NULL,
अगले कॉलम को ArtistName कहा जाता है और इसका डेटा प्रकार है nvarchar(255) , जिसका अर्थ है कि यह चर-लंबाई वाले यूनिकोड स्ट्रिंग डेटा को स्वीकार करता है, जिसकी अधिकतम लंबाई 255 वर्ण है। हमने इस कॉलम को NOT NULL . पर भी सेट किया है ताकि इसमें शून्य प्रविष्टियां न हो सकें।
ActiveFrom date
अंतिम कॉलम को ActiveFrom कहा जाता है और हम इसे date . के डेटा प्रकार को स्वीकार करने के लिए सेट करते हैं
);
फिर हम ) use का उपयोग करते हैं परिभाषा को बंद करने के लिए, और ; कथन को समाप्त करने के लिए (सेमी-कोलन एक स्टेटमेंट टर्मिनेटर है)।
GO
Transact-SQL कथनों के एक बैच के अंत का संकेत देता है। यह वास्तव में एक ट्रांजैक्ट-एसक्यूएल कथन नहीं है। यह ट्रांजैक्ट-एसक्यूएल स्टेटमेंट के बैच के अंत का संकेत देने के लिए sqlcmd और osql यूटिलिटीज और SQL सर्वर मैनेजमेंट स्टूडियो कोड एडिटर द्वारा मान्यता प्राप्त एक कमांड है।

कमांड लाइन टूल का उपयोग करते समय तालिका जानकारी कैसे प्राप्त करें

कमांड लाइन टूल का उपयोग करते समय, आपके पास साइड पैनल में बैठे अपने डेटाबेस टेबल को एक क्लिक के साथ विस्तारित होने की प्रतीक्षा में देखने की विलासिता नहीं है। लेकिन इसका मतलब यह नहीं है कि आप अपनी टेबल या अन्य डेटाबेस ऑब्जेक्ट्स के बारे में जानकारी नहीं देख सकते हैं।

कमांड लाइन टूल का उपयोग करते समय, आप उपरोक्त डेटाबेस में तालिकाओं के बारे में जानकारी प्रदर्शित करने के लिए निम्न कथन चला सकते हैं:

USE Music; 
SELECT column_name, data_type, character_maximum_length, is_nullable 
FROM information_schema.columns;
परिणाम
column_name  data_type  character_maximum_length  is_nullable
-----------  ---------  ------------------------  -----------
ArtistId     int        null                      NO         
ArtistName   nvarchar   255                       NO         
ActiveFrom   date       null                      YES        
GenreId      int        null                      NO         
Genre        nvarchar   50                        NO         
AlbumId      int        null                      NO         
AlbumName    nvarchar   255                       NO         
ReleaseDate  date       null                      NO         
ArtistId     int        null                      NO         
GenreId      int        null                      NO         

10 row(s) returned

Executed in 1 ms

विचाराधीन तालिका संगीत . नामक डेटाबेस में है इसलिए हम पहले इस पर स्विच करते हैं।

आप WHERE . का उपयोग करके इसे एक विशिष्ट तालिका तक सीमित भी कर सकते हैं खंड:

USE Music; 
SELECT column_name, data_type, character_maximum_length, is_nullable 
FROM information_schema.columns 
WHERE table_name = 'Artists';
परिणाम
column_name  data_type  character_maximum_length  is_nullable
-----------  ---------  ------------------------  -----------
ArtistId     int        null                      NO         
ArtistName   nvarchar   255                       NO         
ActiveFrom   date       null                      YES        

3 row(s) returned

Executed in 1 ms

और भी कई फ़ील्ड हैं जिन्हें information_schema.columns . द्वारा लौटाया जा सकता है . आप SELECT * . का उपयोग कर सकते हैं यदि आप चाहें तो उन सभी को वापस करने के लिए।

तालिका जानकारी प्राप्त करने के लिए कमांड लाइन विधि GUI उपकरण का उपयोग करते समय भी काम करती है (आखिरकार, वे केवल SQL कथन हैं)। चाहे आप sql-cli, sqlcmd, SSMS, Azure Data Studio, DBeaver, या किसी अन्य SQL सर्वर प्रबंधन टूल का उपयोग करें, आप समान डेटा प्राप्त करने के लिए समान SQL कथन दर्ज कर सकते हैं:

GO कमांड

आपको GO add जोड़ने की आवश्यकता हो सकती है स्क्रिप्ट के अंत तक (उदाहरण के लिए sqlcmd का उपयोग करते समय)।

एकाधिक पंक्तियाँ

यदि आप उपरोक्त स्क्रिप्ट को कमांड लाइन टूल के साथ कई पंक्तियों में फैलाने का प्रयास करते हैं तो आपको एक त्रुटि मिल सकती है।

यदि ऐसा है, तो प्रत्येक पंक्ति के अंत में एक बैकस्लैश जोड़ने का प्रयास करें। इस तरह:

USE Music; \
SELECT column_name, data_type, character_maximum_length, is_nullable \
FROM information_schema.columns;

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

कमांड प्रॉम्प्ट से स्क्रिप्ट चलाने की विधि आपके द्वारा उपयोग की जाने वाली कमांड लाइन उपयोगिता पर निर्भर करेगी।

Windows मशीन पर सहेजी गई फ़ाइल को चलाने के लिए sqlcmd का उपयोग करने का तरीका यहां दिया गया है:

sqlcmd -S myServer\instanceName -i C:\myScript.sql

और यहाँ मैक पर सहेजी गई फ़ाइल को चलाने के लिए sql-cli का उपयोग करने का तरीका बताया गया है:

.run /myScript.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. SQL सर्वर में 'वर्णन तालिका' के बराबर क्या है?

  2. टेबल-वैल्यूड-फ़ंक्शन के अंदर सीटीई के लिए मैक्सरेकर्सन विकल्प कैसे सेट करें?

  3. एक सामान्य एमएस एसक्यूएल सर्वर प्रदर्शन संकेतक लागू करना

  4. कुल योग चलाने के लिए सर्वोत्तम दृष्टिकोण - SQL सर्वर 2012 के लिए अद्यतन

  5. SQL सर्वर पर VMware CPU हॉट प्लग vNUMA प्रभाव