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

MySQL क्रिएट व्यू, रिप्लेस व्यू और ड्रॉप व्यू स्टेटमेंट उदाहरणों के साथ

SQL व्यू एक वर्चुअल टेबल या SELECT क्वेरी द्वारा उत्पन्न परिणाम-सेट है। भौतिक तालिकाओं के विपरीत, दृश्य डेटाबेस में डेटा संग्रहीत नहीं करते हैं। जब हम डेटा को पॉप्युलेट करने के लिए SELECT क्वेरी चलाते हैं, तो यह एक ऐसी क्वेरी निष्पादित करता है जो दृश्य (परिभाषा देखें) बनाता है।

MySQL में व्यू क्या है

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

ऐसे मामलों में, SQL दृश्य बनाना और उसके भीतर व्यावसायिक तर्क को समाहित करना बेहतर होता है। इसके अलावा, जब हम क्वेरी की परिभाषा बदलना चाहते हैं, तो हम एप्लिकेशन में बदलाव करने के बजाय दृश्य की परिभाषा बदल सकते हैं।

विचार वास्तविक नाम और तालिका के विवरण को छिपाने के लिए भी लागू होते हैं। यदि हम तालिका में किसी ग्राहक की संवेदनशील जानकारी संग्रहीत करते हैं और केवल प्राथमिक विवरण दिखाना चाहते हैं, तो हम एक दृश्य बना सकते हैं।

यह लेख दृश्य बनाएं . की व्याख्या करेगा , दृश्य बदलें और ड्रॉप व्यू MySQL सर्वर में स्टेटमेंट का उपयोग।

नमूना डेटाबेस सेटअप

प्रदर्शन के लिए, मैंने MySQL सर्वर स्थापित किया है और EltechDB नाम का एक डमी डेटाबेस बनाया है। . उस डेटाबेस में, मैंने tblemployee . नाम की एक टेबल बनाई है

निम्न क्वेरी EltechDB बनाती है डेटाबेस:

Create database EltechDB;

निम्न क्वेरी एक समर्थक कर्मचारी बनाती है तालिका:

CREATE TABLE tblemployees (
    emp_no      INT             NOT NULL,
    birth_date  DATE            NOT NULL,
    first_name  VARCHAR(14)     NOT NULL,
    last_name   VARCHAR(16)     NOT NULL,
    gender      ENUM ('M','F')  NOT NULL,    
    hire_date   DATE            NOT NULL,
    PRIMARY KEY (emp_no)
);

मैंने tblemployee . में कुछ डमी रिकॉर्ड डाले हैं निम्न क्वेरी का उपयोग कर तालिका:

INSERT INTO `EltechDB`.`tblemployees` 
VALUES 
(10001,'1953-09-02','Georgi','Facello','M','1986-06-26'),
(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'),
(10003,'1959-12-03','Parto','Bamford','M','1986-08-28'),
(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01'),
(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12'),
(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02'),
(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10'),
(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15'),
(10009,'1952-04-19','Sumant','Peac','F','1985-02-18'),
(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');

अब, MySQL व्यूज को मैनेज करने के लिए स्टेटमेंट्स को स्पष्ट करते हैं।

MySQL में दृश्य कैसे बनाएं

क्रिएट व्यू स्टेटमेंट डेटाबेस में एक नया व्यू बनाता है। सिंटैक्स निम्न है:

Create View view_name
As
Select * from base_table

यहां:

  • view_name व्यू का वांछित नाम है।
  • इसमें से * चुनें वह क्वेरी है जो base_table . का उपयोग करके दृश्य उत्पन्न करती है . क्वेरी AS . के बाद निर्दिष्ट की गई है कीवर्ड।

MySQL व्यू सिंटेक्स उदाहरण बनाएं

मान लीजिए हम एक ऐसा दृश्य बनाना चाहते हैं जो कर्मचारियों की सूची को पॉप्युलेट करे। दृश्य की परिभाषा निम्नलिखित है:

Create view vwEmployees
as
select * from tblemployees;

व्यू के डेटा तक पहुंचने के लिए, हम सेलेक्ट क्वेरी का उपयोग कर सकते हैं। vwकर्मचारियों . का डेटा देखने के लिए , निम्न क्वेरी चलाएँ:

mysql> select * from vwEmployees;

आउटपुट:

WHERE क्लॉज का उपयोग करके व्यू के डेटा को फ़िल्टर करें

हम WHERE क्लॉज का उपयोग करके व्यू आउटपुट को फ़िल्टर कर सकते हैं। हमारे मामले में, हम महिला . की सूची को पुनः प्राप्त करना चाहते हैं कर्मचारी vwकर्मचारियों . से . क्वेरी इस प्रकार है:

mysql> select * from vwEmployees where gender='F';

क्वेरी आउटपुट है:

आइए एक और उदाहरण लेते हैं। हम उन कर्मचारियों की सूची प्राप्त करना चाहते हैं जिनकी कर्मचारी संख्या 10005 . से कम है . क्वेरी इस प्रकार है:

mysql> select * from vwemployees where emp_no<10005;

क्वेरी आउटपुट:

व्यू पर एग्रीगेट फ़ंक्शन का उपयोग करें

हम व्यू पर समग्र कार्यों का उपयोग कर सकते हैं।

यहां हम vwकर्मचारियों से पुरुष और महिला कर्मचारियों की संख्या को पॉप्युलेट करना चाहते हैं देखना। सबसे पहले, हम कर्मचारियों की गिनती प्राप्त करने के लिए COUNT फ़ंक्शन का उपयोग करते हैं। फिर, हम जेंडर कॉलम के आधार पर आउटपुट को ग्रुप करने के लिए ग्रुप बाय क्लॉज का उपयोग करते हैं। क्वेरी इस प्रकार है:

mysql> select gender, count(emp_no)as 'Total Employees' from vwEmployees group by gender;

क्वेरी आउटपुट:

दृश्य पर दिनांक-समय फ़ंक्शन का उपयोग करें

हम व्यू आउटपुट पर डेट-टाइम फ़ंक्शन का उपयोग कर सकते हैं। आइए उन कर्मचारियों की सूची प्राप्त करें जिनका कार्यभार ग्रहण वर्ष 1990 से अधिक या बराबर है। प्रश्न इस प्रकार है:

mysql> select * from vwemployees where Year(hire_date)>=1990;

क्वेरी आउटपुट:

दृश्य पर नियंत्रण-प्रवाह फ़ंक्शन का उपयोग करें

हम दृश्य के आउटपुट पर CASE या IF फ़ंक्शन का उपयोग कर सकते हैं।

हम लिंग के मूल्य को कुछ सार्थक प्रारूप में प्रिंट करते हैं। दृश्य द्वारा लौटाए गए लिंग कॉलम का आउटपुट या तो M या F है। M को प्रिंट करने के बजाय, क्वेरी को पुरुष वापस करना होगा . इसी तरह, F को प्रिंट करने के बजाय, क्वेरी को महिला . वापस करना होगा . क्वेरी इस प्रकार है:

mysql> Select first_name, last_name, case when gender='M' then 'Male' when gender ='F' then 'Female' end as 'Gender', hire_date from vwEmployees;

क्वेरी आउटपुट:

SQL में व्यू बनाने के तरीके के बारे में और पढ़ें।

व्यू स्टेटमेंट बदलें

किसी दृश्य की परिभाषा बदलने के लिए REPLACE VIEW का उपयोग किया जाता है। क्रिएट व्यू और रिप्लेस व्यू कीवर्ड एक साथ उपयोग किए जाते हैं। सिंटैक्स निम्न है:

Create or replace View view_name
As
Select * from base_table

यहां:

  • दृश्य बनाएं या बदलें: ये खोजशब्द मौजूदा दृश्य को बनाने या बदलने का काम करते हैं। जब हम क्रिएट या रिप्लेस व्यू स्टेटमेंट चलाते हैं, तो MySQL यह जांचता है कि यह डेटाबेस में मौजूद है या नहीं। यदि दृश्य मौजूद है, तो यह AS कीवर्ड के बाद निर्दिष्ट क्वेरी का उपयोग करके दृश्य परिभाषा को बदल देता है। यदि दृश्य मौजूद नहीं है, तो यह AS कीवर्ड के बाद निर्दिष्ट क्वेरी का उपयोग करके एक नया दृश्य बनाता है।
  • view_name व्यू का वांछित नाम है।
  • इसमें से * चुनें वह क्वेरी है जिसका उपयोग base_table . का उपयोग करके दृश्य उत्पन्न करने के लिए किया जाता है . क्वेरी AS . के बाद निर्दिष्ट की गई है कीवर्ड।

नोट: दृश्य कीवर्ड बनाएं या बदलें एक नया दृश्य बनाएं या मौजूदा दृश्य परिभाषा बदलें।

व्यू का नाम ‘डेटाबेस_नाम’ में लिखें।’view_name’ प्रारूप . यदि आप डेटाबेस निर्दिष्ट नहीं करते हैं, तो आप एक अलग डेटाबेस में दृश्य बना सकते हैं।

MySQL CREATE View या MySQL REPLACE View Statements का उदाहरण

हम कर्मचारियों का केवल पहला नाम, अंतिम नाम और लिंग दिखाना चाहते हैं। साथ ही, हम कॉलम को उचित नाम देना चाहते हैं। उदाहरण के लिए, first_name और last_name कॉलम मानों को जोड़ा जाना चाहिए, और कॉलम का नाम कर्मचारी का नाम होना चाहिए। SQL क्वेरी इस प्रकार होनी चाहिए:

mysql> create or replace view vwEmployees(EmployeeName,gender) as select concat(first_name, " ",last_name),gender from tblEmployees; 

vwकर्मचारियों . से डेटा देखने के लिए निम्न चयन क्वेरी चलाएँ :

mysql> select * from vwEmployees

क्वेरी आउटपुट:

जैसा कि आप देख सकते हैं, first_name और last_name मान कर्मचारी नाम . में संयुक्त हैं कॉलम यह दर्शाता है कि दृश्य परिभाषा को अपडेट कर दिया गया है।

MySQL DROP व्यू स्टेटमेंट

DROP व्यू कीवर्ड डेटाबेस से व्यू को ड्रॉप करने का काम करता है। सिंटैक्स निम्न है:

Drop View ‘database_name’.’view_name’

वाक्य रचना में, view_name उस दृश्य का नाम है जिसे आप छोड़ना चाहते हैं।

आइए हम vwकर्मचारियों . को छोड़ दें DROP व्यू स्टेटमेंट का उपयोग करके देखें। निम्नलिखित क्वेरी निष्पादित करें:

mysql> DROP VIEW `eltechdb`.`vwemployees`;

यह सत्यापित करने के लिए कि दृश्य हटा दिया गया है, निम्न क्वेरी चलाएँ:

mysql> SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.tables WHERE TABLE_TYPE LIKE 'VIEW' and table_schema='EltechDB';

आउटपुट:

क्वेरी ने शून्य पंक्तियों को लौटा दिया, इस प्रकार यह दर्शाता है कि दृश्य हटा दिया गया है।

सारांश

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, एक क्वेरी के साथ कई टेबल अपडेट करें

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

  3. CURRENT_DATE/CURDATE() डिफ़ॉल्ट DATE मान के रूप में काम नहीं कर रहा है

  4. उसी तालिका में दूसरी पंक्ति के डेटा के साथ पंक्ति अपडेट करें

  5. उपयोगकर्ता @ 'लोकलहोस्ट' के लिए डेटाबेस तक पहुंच अस्वीकृत ''