क्विज़: डीप Postgres: भाग 1
क्या SQL आपको चीखने पर मजबूर करता है?
भाग 1 दो में से। भाग 2 तक जाएं
PostgreSQL 🐘 मेरा पसंदीदा डेटाबेस है! मैं हमेशा नए ट्रिक्स और अजीब-सी बातें सीख रहा हूँ, इसलिए मैंने उन्हें एक नए क्विज़ में डालने का फैसला किया!
यह क्विज़ परिचित और कम ज्ञात PostgreSQL फीचर्स और अजीब-सी बातों के मिश्रण को कवर करता है: बिल्ट-इन एग्रीगेट्स से लेकर टाइप कास्टिंग, कंस्ट्रेंट्स और अधिक तक।
शुभकामनाएँ! 🍀
इनमें से कौन-सा प्रकार परिवर्तन ❌ अमान्य है?
PostgreSQL में टाइप बदलने के ये रूप हैं। नीचे अभिव्यक्ति और प्रकार केवल समझाने के लिए प्लेसहोल्डर हैं, चलाने योग्य SQL नहीं:
- ANSI SQL:
CAST(अभिव्यक्ति AS प्रकार). - PostgreSQL:
अभिव्यक्ति::प्रकार. - टाइप वाला लिटरल:
प्रकार 'लिटरल'.
सभी कार्यात्मक रूप से एक-समान हैं, लेकिन:
CAST()सबसे अधिक पोर्टेबल है।::PostgreSQL-विशिष्ट है लेकिन अक्सर उपयोग में लिया जाता है।- इनफिक्स-स्टाइल
प्रकार 'लिटरल'कम आम है लेकिन अभी भी वैध है।
यहाँ कितने NULL मान अनुमत हैं?
CREATE TABLE student_emails ( student_id INTEGER, email VARCHAR(255), UNIQUE(email));PostgreSQL में UNIQUE प्रतिबंध:
- कई NULL मानों की अनुमति देता है।
- अद्वितीयता जाँच में
NULL≠NULLहोता है।
NULL मानों को रोकने के लिए NOT NULL जोड़ें:
CREATE TABLE student_emails ( student_id INTEGER, email VARCHAR(255) NOT NULL, UNIQUE(email));यह क्या लौटाता है?
SELECT '2024-11-27'::date + interval '24 hours';अंतराल तिथि श्रेणी संचालन को सरल बनाने के लिए एक शक्तिशाली उपकरण हैं!
पोस्टग्रेएसक्यूएल में तिथि अंकगणित:
+ interval '24 hours'24 घंटे जोड़ता है+ interval '1 day'1 दिन जोड़ता है+ interval '1 month'1 महीना जोड़ता है+ interval '1 year'1 वर्ष जोड़ता है
परिणाम 2024-11-28 00:00:00 होता है।
चकरा देने वाले डेटा प्रकार
इनमें से कौन ❌ एक मान्य PostgreSQL प्रकार नहीं है?
PostgreSQL में डेटा प्रकारों का एक समृद्ध सेट है, लेकिन STRING(100) उनमें से एक नहीं है।
सही स्ट्रिंग प्रकार शामिल हैं:
VARCHAR(100)(चर-लंबाई वाली स्ट्रिंग)CHAR(100)(स्थिर-लंबाई वाली स्ट्रिंग)TEXT(अपरिमित लंबाई)CHARACTER VARYING(100)(VARCHAR(100)के बराबर है)
इनमें से कौन सा ❌ एक मान्य PostgreSQL प्रकार नहीं है?
यह दिख सकता है कि decimal128 अन्य स्रोतों (जैसे मॉंगो और जावा) में उपलब्ध है। लेकिन यह PostgreSQL में मान्य प्रकार नहीं है, decimal ही मान्य है।
सही संख्यात्मक प्रकार इस प्रकार हैं:
int(4-बाइट पूर्णांक)bigint(8-बाइट पूर्णांक)real(4-बाइट फ्लोटिंग-पॉइंट)double precision(8-बाइट फ्लोटिंग-पॉइंट)bigserial(8-बाइट स्वचालित बढ़ता पूर्णांक)smallserial(2-बाइट स्वचालित बढ़ता पूर्णांक)
जब कुल संभावित छात्र आईडी गणना करते हैं तो क्या होता है?
SELECT 256 * 256 * 256 * 256;PostgreSQL का integer प्रकार 32-बिट signed integer (ऋणात्मक और धनात्मक मानों वाला) होता है, जिसकी सीमा -2,147,483,648 से 2,147,483,647 तक होती है।
256^4 = 4,294,967,296 की गणना इस सीमा से अधिक होती है।
बड़ी संख्याओं के लिए:
-- Use BIGINTSELECT 256::bigint * 256 * 256 * 256;
-- Or numeric for arbitrary precisionSELECT 256::numeric * 256 * 256 * 256;PostgreSQL की छह-अंकीय सेकंड-अंश सटीकता से आगे जाने वाले उदाहरणों में, किसमें सबसे कम अतिरिक्त अंक हैं?
पोस्टग्रेस के टाइमस्टैम्प में माइक्रोसेकंड (6 दशमलव स्थान) सटीकता होती है।
- अधिकतम:
.123456(6 अंक) - नैनोसेकंड (9 अंक) समर्थित सटीकता तक गोल कर दिए जाते हैं या काट दिए जाते हैं
- टाइमज़ोन ऑफसेट
timestamptzके लिए स्वीकार किए जाते हैं, लेकिन आवश्यक नहीं हैं
अक्सर भूले जाने वाला टिप्स: कुछ भाषाओं/फ्रेमवर्क नैनोसेकंड सटीकता भेजते हैं, लेकिन पोस्टग्रेस टाइमस्टैम्प माइक्रोसेकंड सटीकता में संग्रहीत करता है।
इस ग्रेड प्रतिबंध की जाँच कब की जाती है?
ALTER TABLE studentsADD CONSTRAINT valid_gradeCHECK ( (grade >= 0 AND grade <= 100) OR grade IS NULL) NOT VALID;NOT VALID प्रतिबंध:
- नए डेटा जोड़े जाते हैं और अपडेट होते हैं तुरंत जाँच किए जाते हैं
- मौजूदा पंक्तियों की जाँच नहीं करते
- बाद में
VALIDATE CONSTRAINTके साथ मौजूदा पंक्तियों की जाँच की जा सकती है - बड़े टेबल के लिए उपयोगी हैं
NOT VALID न होने पर:
- प्रतिबंध तुरंत जाँच किया जाता है
- सभी मौजूदा पंक्तियों की जाँच की जाती है
- बड़े टेबल पर धीमा हो सकता है
अच्छा किया! आपने कई क्षेत्रों में गहराई तक पहुंचा! 🐘
आशा करते हैं कि आपने कुछ नया सीखा, या कम से कम एक अंक प्राप्त किया जिस पर खुशी हो। 🏆
अधिक Postgres मज़ा के लिए भाग 2 देखें! 🚀
जीवन में अधिक उत्साह चाहते हैं? मेरे प्रश्नोत्तर संग्रह को देखें अनंत* मज़ा के लिए!
