Professional Documents
Culture Documents
Computer Science CH 9
Computer Science CH 9
9.1 प रचय
हमने िपछले अ याय म रलेशनल डेटाबेस मैनेजमट िस टम (RDBMS) और इसके उ े य के बारे म सीखा है। कई RDBMS ह जैसे क MySQL,
Microsoft SQL Server, PostgreSQL, Oracle, आ द जो हम संबंध से िमलकर एक डेटाबेस बनाने क अनुमित देते ह। ये RDBMS हम ेरी के मा यम से
उस डेटाबेस पर डेटा को टोर करने, पुन ा करने और हेरफेर करने क अनुमित भी देते ह। इस अ याय म, हम सीखगे क MySQL का उपयोग करके डेटाबेस
कैसे बनाएं, पॉ युलेट और ेरी कर।
9.2 संरिचत ेरी भाषा (एस यूएल)
फ़ाइल िस टम के मामले म डेटा तक प ँचने के िलए कसी को एि लकेशन ो ाम िलखना होता है। हालाँ क, डेटाबेस बंधन णािलय के िलए िवशेष
कार क भाषाएँ होती ह िज ह ेरी भाषा कहा जाता है िजनका उपयोग डेटाबेस से डेटा तक प ँचने और हेरफेर करने के िलए कया जा सकता है। संरिचत
ेरी भाषा (एस यूएल) मुख संबंधपरक डेटाबेस बंधन णािलय जैसे क MySQL, ORACLE, SQL सवर, आ द ारा उपयोग क जाने वाली सबसे
लोकि य ेरी भाषा है।
एस यूएल सीखना आसान है य क बयान म वणना मक अं ेजी श द शािमल ह और केस संवेदनशील नह ह। हम SQL का उपयोग करके आसानी से
डेटाबेस बना सकते ह और उसके साथ इंटरै ट कर सकते ह। SQL का उपयोग करने का लाभ यह है क हम यह िन द करने क आव यकता नह है क डेटाबेस
से डेटा कैसे ा कया जाए। इसके बजाय, हम केवल िन द करते ह क या पुन ा कया जाना है, और SQL बाक करता है। हालाँ क इसे एक ेरी भाषा
कहा जाता है, SQL ेरी करने के अलावा और भी ब त कुछ कर सकता है। SQL डेटा क संरचना को प रभािषत करने, डेटाबेस म डेटा म हेरफेर करने,
बाधा क घोषणा करने और हमारी आव यकता के आधार पर डेटाबेस से डेटा को िविभ तरीक से पुन ा करने के िलए टेटमट दान करता है।
इस अ याय म, हम अ याय 8 म चचा क गई छा उपि थित का उपयोग करगे और एक डेटाबेस तैयार करगे। हम यह भी सीखगे क डेटा के साथ डेटाबेस को
कैसे पॉ युलेट कर, डेटा म हेरफेर कर और SQL ेरी के मा यम से डेटाबेस से डेटा पुन ा कर।
9.2.1 MySQL इं टाल करना
MySQL एक ओपन सोस RDBMS सॉ टवेयर है िजसे आिधका रक वेबसाइट https://dev.mysql.com/downloads से आसानी से डाउनलोड कया
जा सकता है। MySQL इं टाल करने के बाद, MySQL स वस शु कर। Mysql> ॉ ट (िच 9.1) क उपि थित का अथ है क MySQL SQL कथन को
वीकार करने के िलए तैयार है।
SQL का उपयोग करते समय यान रखने यो य कुछ मह वपूण बंदु िन िलिखत ह:
• SQL केस असंवेदनशील है। उदाहरण के िलए, कॉलम नाम 'वेतन' और 'सैलरी' SQL के िलए समान ह।
• हमेशा SQL कथन को अधिवराम (;) के साथ समा कर।
• म टीलाइन SQL टेटमट दज करने के िलए, हम ";" नह िलखते ह। पहली पंि के बाद। हम अगली लाइन पर जारी रखने के िलए एंटर क दबाते ह।
संकेत mysql> फर "->" म बदल जाता है, यह दशाता है क कथन अगली पंि म जारी है। अंितम पंि के बाद, ";" डाल और एंटर दबाएं।
9.3 MySQL म डेटा कार और बाधाएं
हम जानते ह क एक डेटाबेस म एक या अिधक संबंध होते ह और येक संबंध (तािलका) िवशेषता ( तंभ) से बना होता है। येक िवशेषता म डेटा
कार होता है। हम संबंध क येक िवशेषता के िलए बाधा को भी िन द कर सकते ह।
9.3.1 डेटा कार क िवशेषता
एक िवशेषता का डेटा कार एक िवशेषता के डेटा मान के कार को इंिगत करता है। यह उन काय को भी तय करता है जो उस िवशेषता के डेटा पर
कए जा सकते ह। उदाहरण के िलए, अंकगिणतीय संचालन सं या मक डेटा पर कया जा सकता है ले कन वण डेटा पर नह । MySQL म आमतौर पर उपयोग
कए जाने वाले डेटा कार सं या मक कार, दनांक और समय कार और ंग कार होते ह जैसा क तािलका 9.1 म दखाया गया है।
तािलका 9.1 MySQL म आमतौर पर उपयोग कए जाने वाले डेटा कार
डेटा का कार िववरण
CHAR(n) लंबाई n के वण कार के डेटा को िन द करता है जहां n 0 से 255 तक कोई भी मान हो सकता है। CHAR
िनि त लंबाई का है, िजसका अथ है, CHAR (10) घोिषत करना 10 वण के िलए र थान आरि त
करना है। य द डेटा म 10 वण नह ह (उदाहरण के िलए, 'शहर' म चार वण ह), MySQL शेष 6 वण को
दा ओर ग ेदार र थान से भरता है।
VARCHAR(n) लंबाई का वण कार डेटा िन द करता है जहां n 0 से 65535 तक कोई भी मान हो सकता है। ले कन
CHAR के िवपरीत, VARCHAR(n) एक चर-लंबाई डेटा कार है। यानी, VARCHAR (30) घोिषत करने का
मतलब है क अिधकतम 30 वण सं हीत कए जा सकते ह ले कन वा तिवक आवं टत बाइट दज क गई
ंग क लंबाई पर िनभर करेगा। तो वचर (30) म 'शहर' केवल 4 वण को सं हीत करने के िलए
आव यक थान पर क जा कर लेगा।
INT INT एक पूणाक मान िन द करता है। येक INT मान म 4 बाइट सं हण होता है। 4 बाइट पूणाक कार
म अनुमत अह ता रत मान क सीमा 0 से 4,294,967,295 है। इससे बड़े मान के िलए, हम BIGINT का
उपयोग करना होगा, िजसम 8 बाइ स होते ह।
FLOAT दशमलव बंदु के साथ सं या रखता है। येक FLOAT मान म 4 बाइ स होते ह।
Date दनांक कार 'YYYY-MM DD' ा प म ितिथय के िलए उपयोग कया जाता है। YYYY 4 अंक का वष है,
MM 2 अंक का महीना है और DD 2 अंक क तारीख है। सम थत रज '1000-01-01' से '9999-12-31'
तक है।
9.3.2 बाधाएं
ितबंध डेटा मान पर कुछ कार के ितबंध ह जो एक िवशेषता हो सकते ह। तािलका 9.2 SQL म आमतौर पर उपयोग क जाने वाली कुछ बाधा
को सूचीब करती है। उनका उपयोग डेटा क शु ता सुिनि त करने के िलए कया जाता है। हालां क, कसी तािलका क येक िवशेषता के िलए बाधा
को प रभािषत करना अिनवाय नह है।
तािलका 9.2 आमतौर पर इ तेमाल क जाने वाली SQL बाधाएं
बाधा िववरण
NOT NULL यह सुिनि त करता है क एक कॉलम म NULL मान नह हो सकते ह जहाँ NULL का अथ है
अनुपल ध/अ ात/लागू नह होने वाला मान।
UNIQUE सुिनि त करता है क एक कॉलम म सभी मान अलग/अि तीय ह।
DEFAULT य द कोई मान दान नह कया गया है तो कॉलम के िलए िन द िडफ़ॉ ट मान।
PRIMARY KEY वह कॉलम जो कसी तािलका म येक पंि / रकॉड को िविश प से पहचान सकता है।
FOREIGN KEY कॉलम जो कसी अ य तािलका म ाथिमक कुंजी के प म प रभािषत एक िवशेषता के मू य को
संद भत करता है।
तािलका 9.5 संबंध उपि थित क िवशेषता के िलए डेटा कार और बाधाएं
उ रदायी ठहराने के िलए नाम डेटा सं हीत होने क उ मीद है डाटा कार बाधा
उपि थित दनांक दनांक मान DATE ाथिमक कुंजी*
रोल नंबर सं या मक मान िजसम अिधकतम 3 अंक ह INT ाथिमक कुंजी*
िवदेशी कुंजी
उपि थित ि थित 'पी' वतमान के िलए और 'ए' अनुपि थत के CHAR (1) अश नह
िलए
* का अथ है सम ाथिमक कुंजी का िह सा।
एक बार डेटा कार और बाधा क पहचान हो जाने के बाद, आइए हम सरलीकरण के िलए िवशेषता नाम के साथ बाधा को िन द कए िबना
टेबल बनाते ह। हम भाग 9.4.4 म िवशेषता पर बाधा को शािमल करना सीखगे।
य द हम कसी तािलका म केवल कुछ िवशेषता के िलए मान सि मिलत करना चाहते ह (मान लीिजए क अ य िवशेषताएँ िजनम NULL या
कोई अ य िडफ़ॉ ट मान है), तो हम उन िवशेषता नाम को िन द करगे िजनम INSERT INTO के िन िलिखत संटै स का उपयोग करके मान
सि मिलत कए जाने ह। बयान।
वा य - िव यास:
INSERT INTO tablename (column1, column2, ...)
VALUES (value1, value2, ...);
तािलका 9.6 के चौथे रकॉड को सि मिलत करने के िलए जहां GPhone नह दया गया है, हम अ य तीन े म मान सि मिलत करने क
आव यकता है (तािलका िनमाण के समय GPhone को िडफ़ॉ ट प से NULL पर सेट कया गया था)। इस मामले म, हम उन िवशेषता के नाम
िन द करने ह गे िजनम हम मान सि मिलत करना चाहते ह। मान उसी म म दए जाने चािहए िजस म म INSERT कथन म िवशेषताएँ िलखी गई
ह।