MySQL View
|View एक Database object हैं जो की Select Query को Store कर रखता हैं, इसमें हम केवल Select Query ही लिख सकते हैं, कोई भी View Save करने के बाद आप View को Table मानकर उस पर भी SELECT Query Run कर सकते हैं ।
MySQL View Advantage
- View बनाना बहुत ही आसान होता हैं ।
- जब हम बार बार एक जैसी Select Query Execute करते हैं उसके स्थान पर हम View का उपयोग कर सकते हैं ।
- View में हम Aggregate Distinct Group by आदि सभी का उपयोग कर सकते हैं
- View में हम Sub Query भी लिखे सकते हैं
- View में हम Join लगा कर एक से अधिक Table का डाटा भी Show कर सकते हैं ।
- View हमारी मैं टेबल के डाटा को Secure भी करने का ऑप्शन देता हैं .
MySQL View Disadvantage
- जब Table में ज्यादा Data होता हैं तो View भी Slow हो जाते हैं क्युकी यह डाटा Table पर SQL चला कर ही लाते हैं ।
- View पर हम Trigger नहीं लिख सकते ।
- View पर हम Index भी नहीं बना सकते ।
MySQL View Example Using Command
सबसे पहले आप एक Table बना लीजिये जिस पर हमें View लिखना हैं ।
CREATE TABLE `mst_item` (
`item_id` int(6) NOT NULL AUTO_INCREMENT,
`item_nm` varchar(40) NOT NULL,
`op_qty` decimal(9,2) NOT NULL DEFAULT 0.00,
`pur_qty` decimal(9,2) NOT NULL DEFAULT 0.00,
`sal_qty` decimal(9,2) NOT NULL DEFAULT 0.00,
`cl_qty` decimal(9,2) NOT NULL DEFAULT 0.00,
PRIMARY KEY (`item_id`)
) ;
Table में कुछ Dummy डाटा Insert कर लीजिये ताकि हम ठीक से Example को समझ सके ।
INSERT INTO `mst_item` (`item_id`, `item_nm`, `op_qty`, `pur_qty`, `sal_qty`, `cl_qty`) VALUES
(1, 'Speaker', '8.00', '5.00', '0.00', '13.00'),
(2, 'Item ', '5.00', '10.00', '2.00', '13.00'),
(3, 'Computer', '0.00', '5.00', '3.00', '2.00'),
(4, 'Monitor', '0.00', '10.00', '4.00', '6.00'),
(5, 'Key Board', '0.00', '20.00', '0.00', '20.00');
आप इस तरह से भी View बना सकते हैं । मुझे यहाँ पर mst_item टेबल से वह सभी डाटा चाहिए थे जिनकी Closing Qty 10 और 10 से कम हो , इसलिए मेने यहाँ SQL लिखी है ।
MySQL CREATE VIEW
CREATE VIEW ViewMinStock
AS
select item_id, item_nm, op_qty, cl_qty
from mst_item
where cl_qty <= 10;
Successfully Saved होने के बाद आप इस तरह से SQL Execute कर भी View का डाटा देख सकते हो ।
select * from ViewMinStock
यहाँ पर आप Column के नाम भी दे सकते हैं, यदि Where Clause उपयोग करना चाहे तो वह भी उपयोग कर सकते हो, Group By आदि सभी यहाँ पर कार्य करते हैं ।
MySQL ALTER VIEW
यदि आप View में कुछ Change करना चाहते हैं तो इस तरह से SQL में Change कर सकते हैं ।
ALTER VIEW ViewMinStock
AS
select item_id, item_nm, op_qty, cl_qty
from mst_item
where cl_qty <= 5;
MySQL DROP VIEW
यदि आप View को Drop करना चाहते हैं तो इस तरह से Delete कर सकते हैं ।
DROP VIEW ViewMinStock;
MySQL View Using Graphics
- जिस टेबल पर आपको व्यू लिखना हैं उस टेबल को सेलेक्ट करे
- उसके बाद निचे आपको Create Viewऑप्शन दिखाई देगा उस पर क्लिक करे .
Create View ऑप्शन पर Click करने के बाद कुछ इस तरह से दिखा देगा ।
आइये आपको एक एक कर सभी ऑप्शन पहले समझा देता हु ।
- OR REPLACE : यदि आप पहले से बने Trigger में Change करना चाहते तो यहाँ पर टिक करे , यदि आप जो नाम View Name में लिखेंगे उस नाम से पहले से हुआ तो वह Replace हो जाएगा ।
- ALGORITHM : यदि आप Command से बनाते समय Algorithm नहीं देते हैं तो यह Default me UNDEFINED ALGORITHM ही उपयोग में लेता हैं ।
- UNDEFINED : यह View में लिखे SQL के अनुसार ALGORITHM सेट कर लेगा यदि SQL में DISTINCT,GROUP BY AGGREGATE FUNCTION आदि उपयोग में लेंगे तो View Updatable नहीं होगा तब वह TEMPTABLE ALOGRITHM का उपयोग करेगा और Otherwise वह MERGE ALGORITHM का उपयोग करेगा ।
- MERGE: यदि हम चाहते हैं की View के data को हम Insert/Update/Delete कर सके तो हमें Algorithm को MERGE सेट करना चाहिए, लेकिन यह जब ही सेट होगी तब किसी भी प्रकार का Aggregate नहीं किया हो और DISTINCT आदि का उपयोग नहीं किया हो ।
- TEMPTABLE : यदि हम TEMPTABLE Algorithm का उपयोग करते हैं तो यह Direct Data न दिखते हुए हमें TEMPTABLE से डाटा दिखता हैं ताकि हम उसे Update न कर सके ।
- Definer: यहाँ पर उस User के द्वारा View बनाया गया उसकी User ID दिखाई देती है ।
- DEFINER : जब कोई भी इस View पर कोई Operation करता हैं तो बनाने वाले को जो Privilege मिले उसी माना जाता हैं ।
- INVOKER : जो View को Execute कर रहा हैं उसको जो Privilege हैं उनके अनुसार चलता हैं ।
- View Name : यहाँ पर आपको View का नाम लिखना होता हैं ।
- Column Names : यहाँ पर खाली ही रखे जो भी आप SQL लिखते हैं उसके अनुसार ही यह उपयोग कर लेता हैं ।
- As : जिस कार्य के लिए आप View बना रहे हैं । वह SQL आपको यहाँ लिखना होती हैं ।
- WITH CHECK OPTION : यदि आप View पर Insert/ Update के Case में जो Where Clause में Condition हैं वह जो Data Insert/Update किया जा रहा हैं उस पर True हो तब ही डाटा को Insert/Update करने देता हैं उसके हमारे पास 2 option होते हैं । यह सब Security Check हैं ।
- BLANK : यदि Blank select किया हैं तो किसी भी प्रकार का कोई चेक नहीं लगता हैं आप कुछ भी Insert/Update कर सकते हैं ।
- CASCADED : यदि आपने कोई x view लिखा और उस x view का उपयोग कर उस पर y View लिखा, अब आपने कोई डाटा Insert किया जो y के Where Clause को तो Satisfy कर रहा हैं परन्तु x के Where Clause को Satisfy नहीं कर रहा हो , तो यह CASCADED Option डाटा Insert/Update नहीं करने देगा , यानि की एक Table पर एक Sequence पर कितनी ही View लिखे हो जब सभी के Where satisfy होंगे तब ही यह डाटा को Insert/Update करने देगा ।
- LOCAL : यह केवल Current वाले View की ही Where Clause को चेक करता हैं यदि Current View की Condition Satisfy हैं तो यह डाटा को Insert करने देगा ।
इतना करने के बाद GO Button पर क्लिक करे उसके बाद Side वाले बार को Refresh करेंगे तो कुछ इस तरह से दिखाई देगा
अब यहाँ पर View पर क्लिक करने से आप View दिखाई देने लगेंगे और उस View पर क्लिक कर आप उसका डाटा देख सकते हैं ।
MySQL View Advance Option
इस Article में हमने View के Basic ऑप्शन देखे यदि आप Algorithm और With Check option Example से समझना चाहते हैं तो यह Video देखे ।