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

एसक्यूएल बेसिक कमांड:उदाहरणों के साथ सरल प्रश्न कैसे लिखें

यह लेख सबसे बुनियादी एसक्यूएल प्रश्नों को लिखने और कुछ गणितीय और तारीख से संबंधित समस्याओं को हल करने के लिए धीरे-धीरे स्क्रिप्ट में सुधार के बारे में बताता है। इसके अतिरिक्त, हम SQL प्रश्नों के आसपास की अवधारणाओं को स्पष्ट करने जा रहे हैं।

हालांकि यह लेख मुख्य रूप से शुरुआती लोगों के लिए है, इसमें ऐसे संकेत हैं जो किसी भी अनुभव स्तर के लिए सहायक होंगे।

डेटाबेस में SQL क्वेरी क्या है?

आइए पहले SQL प्रश्नों के बारे में थोड़ी बात करें ताकि उन्हें लिखने का व्यावहारिक अनुभव प्राप्त करने से पहले उन्हें ठीक से समझ सकें।

SQL का अर्थ है संरचित क्वेरी भाषा यह एक आवश्यक भाषा है जिसका उपयोग रिलेशनल डेटाबेस को क्वेरी करने के लिए किया जाता है।

T-SQL बनाम SQL - क्या अंतर है?

T-SQL या Transact-SQL, SQL का Microsoft संस्करण है, जिसमें पारंपरिक SQL भाषा की तुलना में अधिक फ़ंक्शन और विशेषताएं हैं, जिन्हें ANSI SQL के रूप में भी जाना जाता है।

इसलिए, T-SQL एक पारंपरिक SQL भाषा है और साथ ही Microsoft द्वारा जोड़ी गई और भी चीज़ें हैं। जब हम SQL के बारे में बात करते हैं तो इसका अधिक सामान्यतः उपयोग और उल्लेख किया जाता है।

यह आलेख Microsoft SQL संस्करण को संदर्भित करेगा चाहे हम SQL या T-SQL शब्द का उपयोग करें।

हम संबंधपरक डेटाबेस में SQL क्वेरी का उपयोग क्यों करते हैं?

एक रिलेशनल डेटाबेस एक ऐसा डेटाबेस होता है जिसमें कीज़ का उपयोग टेबल को भौतिक रूप से जोड़ने के बजाय तालिकाओं को जोड़ने के लिए किया जाता है।

उदाहरण के लिए, आपके पास पुस्तक . नामक एक तालिका है जिसे आप BookType . नामक किसी अन्य तालिका से लिंक करते हैं रिकॉर्ड में और अर्थ जोड़ने के लिए कुंजियों के माध्यम से।

चित्रण पर टेबल एक कुंजी के माध्यम से जुड़े हुए हैं। उन्हें शारीरिक रूप से जोड़ने की कोई आवश्यकता नहीं है। यह संबंधपरक डेटाबेस का मूल नियम है - आप कुंजी (कुंजी) की सहायता से दो तालिकाओं के बीच संबंध बनाते हैं।

रिलेशनल डेटाबेस बनाम NoSQL भी पढ़ें - बड़े डेटा प्रबंधन के लिए क्या चुनें?

डेटाबेस को क्वेरी करना क्या है?

आप उस डेटाबेस से संबंधित प्रश्नों के उत्तर प्राप्त करने के लिए डेटाबेस को क्वेरी करते हैं। दूसरे शब्दों में, आप डेटाबेस में मौजूद डेटा के बारे में जानकारी प्राप्त करने के लिए क्वेरीज़ लिखते हैं।

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

प्रश्न बनाने के लिए आपको क्या चाहिए?

डेटाबेस को क्वेरी करने के लिए कुछ पूर्वापेक्षाएँ मौजूद होनी चाहिए क्योंकि हम किसी भी चीज़ के विरुद्ध कहीं भी क्वेरी लिख और चला नहीं सकते हैं।

डेटाबेस को क्वेरी करने के लिए निम्नलिखित चीज़ें अनिवार्य हैं:

  1. एक डेटाबेस सर्वर जैसे SQL सर्वर (स्थानीय रूप से या दूरस्थ रूप से स्थापित) जहां आप डेटाबेस को स्टोर करते हैं।
  2. एक डेटाबेस प्रबंधन उपकरण जैसे SQL सर्वर प्रबंधन स्टूडियो या SQL सर्वर के लिए dbForge स्टूडियो जिसका उपयोग आप अपने प्रश्नों को लिखने और चलाने के लिए करेंगे
  3. एक डेटाबेस जिसके विरुद्ध आप अपनी क्वेरीज़ चलाते हैं। आप सीखने के उद्देश्य से कोई भी नमूना डेटाबेस बना सकते हैं।

साथ ही, आपको अपने डेटाबेस की बुनियादी समझ होनी चाहिए, जैसे कि किस तालिका में वांछित जानकारी है, इत्यादि। संबंधपरक डेटाबेस अवधारणाओं की समझ भी एक प्लस है।

हम मानते हैं कि आप पहले ही उपरोक्त आवश्यकताओं को पूरा कर चुके हैं। लेकिन आप अधिक विवरण के लिए निम्नलिखित लेख भी देख सकते हैं:

SQL सर्वर प्रबंधन स्टूडियो (SSMS) की मूल बातें - भाग 1

SQL में क्वेरी लिखने से पहले की जाने वाली चीज़ें

हम अब सरल SQL क्वेरी लिखने जा रहे हैं।

कृपया अपने SQL प्रश्नों को लिखना प्रारंभ करने के लिए परिवेश सेट करें। उपकरण तैयार करें। SQL सर्वर या SQL सर्वर प्रबंधन स्टूडियो के लिए dbForge Studio खोलें और SQL इंस्टेंस से कनेक्ट करें। यहां हम अपनी SQL यात्रा शुरू करते हैं:

सफलतापूर्वक कनेक्ट होने के बाद CTRL+N दबाएं या फ़ाइल> नया> वर्तमान कनेक्शन वाली क्वेरी . पर जाएं :

अब, आप वर्तमान में कनेक्टेड सर्वर के मास्टर (सिस्टम डेटाबेस) से सफलतापूर्वक कनेक्ट हो गए हैं।

महत्वपूर्ण युक्ति: इसके विरुद्ध अपने प्रश्नों (स्क्रिप्ट) को चलाने के लिए हमेशा एक नमूना डेटाबेस बनाएं। सिस्टम डेटाबेस के विरुद्ध क्वेरी चलाना तीन मामलों को छोड़कर एक अच्छा अभ्यास नहीं है:

  1. आप एक नमूना डेटाबेस के साथ काम करते हैं, और फिर इसके लिए तैयार की गई स्क्रिप्ट सिस्टम (मास्टर) डेटाबेस के विरुद्ध निष्पादित होगी।
  2. आप इससे कुछ जानकारी प्राप्त करने के उद्देश्य से मास्टर डेटाबेस से पूछताछ करते हैं।
  3. क्वेरी सिस्टम (मास्टर) डेटाबेस के खिलाफ चलने के लिए सुरक्षित हैं।

नमूना डेटाबेस सेटअप करें

आइए हम BookSimple . नामक एक नमूना डेटाबेस बनाएं बिना किसी टेबल के। नमूना डेटाबेस बनाने के लिए मास्टर डेटाबेस के सामने निम्न स्क्रिप्ट लिखें और F5 दबाएं क्वेरी निष्पादित करने के लिए:

-- Create sample database BookSimple
USE MASTER
GO

CREATE DATABASE BookSimple
GO

USE BookSimple

एसक्यूएल क्वेरी के पीछे सेट-आधारित अवधारणा

सरलतम SQL क्वेरी लिखने से ठीक पहले, आपको यह समझना चाहिए कि SQL एक सेट-आधारित भाषा है।

इसका मतलब है कि जब आप SQL का उपयोग करके अपने डेटाबेस को क्वेरी करना चाहते हैं तो आपको सेट या समूहों के संदर्भ में सोचना चाहिए।

SQL डिज़ाइन द्वारा और डिफ़ॉल्ट रूप से सेट-आधारित अनुरोधों को पूरा करने के लिए बहुत कुशल है। यदि आप सेट-आधारित तर्क को ध्यान में रखते हुए अपनी स्क्रिप्ट (प्रश्न) तैयार करते हैं, तो आप सीखने के विशिष्ट पथ (जिसके अपने लाभ हैं) का अनुसरण करने वालों की तुलना में SQL को जल्दी समझते हैं और कार्यान्वित करते हैं।

आइए हम स्वाभाविक रूप से पाए जाने वाले समुच्चय के बारे में सोचें, जैसे कि वर्ग या समूह। जब हम किसी कक्षा को संदर्भित करते हैं, तो हम उस कक्षा के सभी छात्रों को संदर्भित करते हैं। SQL उस वर्ग को समग्र रूप से क्वेरी करने में मदद कर सकता है।

इसी तरह, एक पुस्तक पुस्तकों की एक तालिका है। इसमें पुस्तकों के सभी रिकॉर्ड शामिल हैं। हम केवल उस तालिका को क्वेरी कर सकते हैं जैसे कि हम एक ही पुस्तक के बारे में बात कर रहे हैं, लेकिन वास्तव में, हम पुस्तक द्वारा दर्शाई गई पुस्तकों की पूरी तालिका को क्वेरी कर रहे हैं। टेबल।

हम सेट-आधारित अवधारणा के और अधिक लाभ बाद में देखेंगे जब हम कुछ बुनियादी उदाहरणों का पता लगाएंगे।

सरल SQL चयन कथन

सेलेक्ट एक टी-एसक्यूएल स्टेटमेंट है जो एक डेटाबेस से सभी या चयनित पंक्तियों और कॉलम (एक मानदंड के आधार पर) को पुनः प्राप्त करता है।

दूसरे शब्दों में, चुनें हमें कुछ मानदंडों के आधार पर किसी तालिका या तालिकाओं की संख्या से डेटा देखने (चयन) करने देता है, जिसका यदि सामान्य रूप से उल्लेख नहीं किया जाता है, तो सभी डेटा दिखाता है।

इसलिए, चयन यह देखने के लिए पहला कथन है कि क्या हम डेटाबेस से पंक्तियों और स्तंभों को पुनः प्राप्त करना चाहते हैं। SELECT सिंटैक्स का सबसे सरल रूप इस प्रकार है:

SELECT * FROM <Table>

याद रखें कि सीखने की प्रक्रिया में धीरे-धीरे सुधार करने के लिए हम सिंटैक्स को समय के साथ संशोधित करेंगे।

सेलेक्ट स्टेटमेंट का उपयोग करने का दूसरा तरीका इस प्रकार है:

SELECT <Expression>

अभिव्यक्ति निम्नलिखित सहित कई चीजें हो सकती है:

  1. स्थिर (जैसे एक निश्चित संख्या जैसे 1)।
  2. परिवर्तनीय (जैसे @X जिसे किसी भी संख्या में बदला जा सकता है)।
  3. स्थिरांक या चर का संयोजन (जैसे 1+2 या @X [email protected])।

हालांकि, चाहे आप सेलेक्ट <एक्सप्रेशन> या सेलेक्ट * फ्रॉम

का उपयोग करें, आपको सेट के संदर्भ में सोचना होगा।

साधारण SQL क्वेरी कैसे लिखें

आइए हम BookSimple . से पूछताछ करें डेटाबेस . को रीफ़्रेश करके डेटाबेस ऑब्जेक्ट एक्सप्लोरर के अंतर्गत नोड। BookSimple . पर राइट-क्लिक करें > नई क्वेरी :

सरलतम SQL क्वेरी लिखें - नमूना डेटाबेस के विरुद्ध निम्न स्क्रिप्ट लिखें और चलाएँ:

-- Display 1
SELECT 1

क्वेरी चलाने से (F5 दबाने पर) निम्नलिखित परिणाम दिखाई देंगे:

तो, SELECT 1 रिटर्न 1 है, लेकिन एक अनाम कॉलम के साथ (कोई कॉलम नाम नहीं)।

1 एक स्थिरांक है। यह 1 रहेगा, इसलिए हम उम्मीद करते हैं कि परिणाम भी 1 होगा। हालाँकि, समझने के लिए एक और महत्वपूर्ण बात है:हमारा आउटपुट 1 कॉलम और 1 रो के सेट में बदल जाता है। चूंकि हमने कॉलम को कोई नाम नहीं दिया है और इसमें कोई टेबल शामिल नहीं है (नाम प्राप्त करने के लिए), हमें एक अनाम तालिका (सेट) के एक अनाम कॉलम के लिए 1 मान मिल रहा है।

सेट-आधारित भाषा स्वचालित रूप से हमारे आपूर्ति किए गए मान को एक अनाम तालिका के एक अनाम कॉलम में लौटा देती है जिसमें एक पंक्ति होती है।

आइए हम स्क्रिप्ट को इस प्रकार संशोधित करके कॉलम का नाम दें:

-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number

इस बार निम्न परिणाम सेट देखने के लिए स्क्रिप्ट चलाएँ:

चूंकि यह क्वेरी हमेशा वही मान (संख्या) लौटाती है जिसे हम इनपुट (आपूर्ति) करते हैं, इसलिए यह समझने के अलावा चर्चा करने के लिए बहुत कुछ नहीं है कि क्वेरी कैसे काम करती है, यह समझने के लिए सेट-आधारित सोच महत्वपूर्ण क्यों है।

चुनिंदा विवरण में गणना

आइए SQL में त्वरित गणना के लिए उपरोक्त मामले का उपयोग करें - हम एकल मान को एक व्यंजक में बदलते हैं।

उदाहरण के लिए, हम जल्दी से दो नंबर 1000 और 200 जोड़ना चाहते हैं। हम केवल SELECT स्टेटमेंट का उपयोग करके किसी भी तालिका का उल्लेख किए बिना निम्नलिखित क्वेरी लिख सकते हैं:

-- Adding two numbers 1000 and 200 
SELECT 1000+200 AS [Sum Of 1000 And 200]

परिणाम नीचे है:

इसी तरह, हम संख्याओं को जोड़, गुणा, भाग और घटा सकते हैं।

संख्यात्मक मानों वाली तालिका के दो कॉलम जोड़ना सहायक होता है। हालाँकि, हम इस दृष्टिकोण का उपयोग दो चर जोड़ने के लिए भी कर सकते हैं। वेरिएबल्स का उपयोग करना फायदेमंद होता है क्योंकि हम उन वेरिएबल्स को वांछित वैल्यू के साथ इनिशियलाइज़ करके कोई भी दो नंबर जोड़ सकते हैं। यह निम्नलिखित लिपि द्वारा दर्शाया गया है:

-- SQL script to add any two numbers
DECLARE @X INT, @Y INT, @Addition INT

SET @X=550 -- Initialise variable X with a value (number)
SET @Y=350 -- Initialise variable Y with a value (number)
 
SET @[email protected]@sqldat.com -- SUM X and Y

SELECT @X AS FirstNumber_X,@Y as SecondNumber_Y,@Addition as SumOfNumbers

स्क्रिप्ट चलाना हमें निम्न आउटपुट दिखाता है:

हम इस क्वेरी को किसी भी समय किसी भी दो संख्याओं को जोड़ने के लिए (@X और @Y के मानों को बदलकर) पुन:उपयोग करने के लिए सहेज सकते हैं। यदि हम इसे एक सेट के संदर्भ में सोचते हैं, तो हम कह सकते हैं कि आउटपुट एक अनाम तालिका (सेट) के रूप में एक पंक्ति और निम्नलिखित तीन स्तंभों के साथ लौटाया जाता है:

  1. FirstNumber_X
  2. SecondNumber_Y
  3. SumOfNumbers

हालांकि, आप एक खाली डेटाबेस (बिना टेबल वाले) के SELECT <एक्सप्रेशन> के साथ और भी बहुत कुछ कर सकते हैं।

एक और डेटा गणना उदाहरण

यहां हम एक अज्ञात ऑर्डर की वर्तमान तिथि और अपेक्षित डिलीवरी तिथि को पुनः प्राप्त करने के लिए GETDATE () फ़ंक्शन का उपयोग करने जा रहे हैं जो अभी तक हमारी तालिका का हिस्सा नहीं है।

मान लें कि हमारे पास अभी तक कोई ऑर्डर टेबल नहीं है, लेकिन हम एक अपेक्षित उत्पाद ऑर्डर डिलीवरी तिथि की तुरंत गणना करना चाहते हैं। अगर हम GETDATE() फ़ंक्शन में कोई संख्या जोड़ते हैं, तो यह हमें दिनों की आपूर्ति की गई संख्या के साथ जोड़ी गई तारीख बताएगा।

दूसरे शब्दों में, अगर हम ऑर्डर देने के दो दिन बाद ऑर्डर डिलीवरी की तारीख की उम्मीद करते हैं, तो हम GETDATE()+2 के साथ SELECT का उपयोग करके इसकी गणना कर सकते हैं।

इसे क्रिया में देखने के लिए, निम्न SQL स्क्रिप्ट चलाएँ:

-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]

परिणाम सेट इस प्रकार है:

इस बार हम किसी भी तालिका के अभाव में GETDATE() फ़ंक्शन के साथ SELECT स्टेटमेंट का उपयोग करके अपेक्षित ऑर्डर डिलीवरी की तारीख की गणना कर सकते हैं।

हालांकि, अगर हमारे पास एक टेबल होती, तो हमें उस टेबल के सभी ऑर्डर की डिलीवरी की अपेक्षित तारीख मिल जाती।

एक बार फिर, यदि हम सेट लॉजिक के संदर्भ में इस आउटपुट का विश्लेषण करते हैं, तो हमारे पास दो कॉलम और एक पंक्ति के साथ एक अनाम तालिका (सेट) है। SQL एक सेट-आधारित भाषा है जो टेबल जैसे सेट के साथ बहुत तेजी से काम करती है। यदि टेबल नहीं हैं, तो यह इनपुट मानों (संसाधित होने के लिए) को अनाम सेट के रूप में मानता है।

संक्षेप में, एक SQL क्वेरी के लिए एक SELECT स्टेटमेंट की आवश्यकता होती है जिसके बाद कुछ संख्या या दिनांक-आधारित गणना करने के लिए एक एक्सप्रेशन की आवश्यकता होती है, यहां तक ​​कि एक रिक्त डेटाबेस (कोई टेबल नहीं) के विरुद्ध भी।

बधाई हो! आपने SQL प्रश्नों की मूल बातें सीख ली हैं और नमूना डेटाबेस के विरुद्ध SELECT कथन की सहायता से कुछ सरल प्रश्न लिखे हैं।

संपर्क में रहें, क्योंकि डेटाबेस तालिकाओं के विरुद्ध सरल SQL क्वेरी लिखना अभी बाकी है।

एसक्यूएल क्वेरीज़ को बेहतर तरीके से लिखने के बारे में जानने के लिए चीज़ें

अब जब आप कुछ बुनियादी SQL क्वेरी लिख सकते हैं, तो निम्न अभ्यासों को आज़माएँ:

  1. एक नमूना डेटाबेस BookSimple2 बनाएँ।
  2. किसी भी दो संख्याओं को चर के रूप में परिभाषित करके गुणा करने के लिए एक क्वेरी बनाएं।
  3. आदेश दिनांक को वर्तमान तिथि के रूप में बनाने के लिए एक प्रश्न लिखें, शिपमेंट तिथि ऑर्डर तिथि के दो दिन बाद, और अपेक्षित डिलीवरी तिथि शिपमेंट तिथि के दो दिन बाद के रूप में लिखें।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dundas BI में QuickBooks डेटा का विश्लेषण करना

  2. प्रत्येक ग्रुप बाय ग्रुप में पहली पंक्ति का चयन कैसे करें

  3. SQL में संबंध बनाएं

  4. 20-किशोरावस्था में VLDB:आपको एक बड़े की आवश्यकता होगी ...

  5. एसक्यूएल राइट जॉइन

© कॉपीराइट http://hi.sqldat.com सर्वाधिकार सुरक्षित