{
  "assessmentTests": {
    "sql_test": {
      "name": "SQL தேர்வு",
      "desc": "வடிகட்டுதல், ஜாயின்கள், திரட்டுதல், துணை வினவல்கள் மற்றும் விண்டோ ஃபங்ஷன்கள் குறித்த 30 சூழ்நிலைக் கேள்விகள் — வேலை அறிவிப்பு குறிப்பிடும் SQL தேர்ச்சிக்கு உங்கள் SQL திறன் பொருந்துகிறதா என்பதைக் கண்டறியுங்கள்.",
      "recommendation": "உங்கள் SQL திறன் புரொஃபைல்",
      "results": {
        "beginner": {
          "name": "தொடக்கநிலை",
          "desc": "செயல்படும் SELECT கூற்றை எழுதவும் சில நிபந்தனைகளின் அடிப்படையில் வடிகட்டவும் உங்களால் முடியும்; ஆனால் நீங்கள் தவறவிட்ட கேள்விகள் தொடரியலைச் சுற்றி அல்லாமல், NULL கையாளுதல் மற்றும் ஜாயின் செயல்முறைகளைச் சுற்றியே குவிந்துள்ளன — ஒரு நெடுவரிசையை = மூலம் NULL உடன் ஒப்பிடுதல், LEFT JOIN உண்மையில் எதைத் தக்கவைக்கிறது, BETWEEN-இன் எல்லைகள் எவ்வாறு செயல்படுகின்றன என்பவை. இவை எதுவும் தரவுத்தளங்களில் நீங்கள் திறமையற்றவர் என்பதைக் குறிக்கவில்லை; SQL-ஐ தரநிலையிலிருந்து அல்லாமல் முயன்று தவறிக் கற்றுக்கொண்டவர்களைத் தடுமாறச் செய்யும் குறிப்பிட்ட விதிகள் இவை. இவை வேலையில் முக்கியம், ஏனெனில் ஒவ்வொன்றும் ஒரு வினவல் நம்பத்தகுந்ததாகத் தோன்றினாலும் தவறான வரிசை எண்ணிக்கையைத் தரும் இடமாகும்.",
          "recommendation": "இந்த வரிசையில் மூன்று விஷயங்களுடன் தொடங்குங்கள்: WHERE நெடுவரிசை = NULL ஏன் எதனுடனும் ஒருபோதும் பொருந்துவதில்லை (அதற்குப் பதிலாக IS NULL தேவை), INNER JOIN பொருந்தாத வரிசைகளை எவ்வாறு நீக்குகிறது, LEFT JOIN அவற்றை எவ்வாறு வைத்திருக்கிறது, BETWEEN சரியாக எந்த எல்லைகளை உள்ளடக்குகிறது என்பவை. மோட் அனலிட்டிக்ஸின் SQL பயிற்சி வழிகாட்டியும் போஸ்ட்கிரெஸ் எஸ்க்யூஎல் ஆவணங்களும் இந்த மூன்றையும் இயக்கிப் பார்க்கக்கூடிய எடுத்துக்காட்டுகளுடன் விளக்குகின்றன."
        },
        "intermediate": {
          "name": "இடைநிலை",
          "desc": "அன்றாட அறிக்கை வினவல்களை — ஜாயின்கள், GROUP BY, எளிய வடிகட்டுதல் — நீங்கள் சிரமமின்றிக் கையாள்கிறீர்கள்; வழக்கமான தகவல் பலகை அல்லது தேவைக்கேற்ற பகுப்பாய்வுப் பணிகளில் உங்கள் வேகம் குறையாது. இந்த நிலைக்கும் மேம்பட்ட நிலைக்கும் இடையிலான இடைவெளி பெரும்பாலும் பிரிவுகள் ஒன்றோடொன்று தொடர்புகொள்ளும்போது நிகழ்வதில் உள்ளது: இணைக்கப்பட்ட அட்டவணையின் மீதான WHERE பிரிவு LEFT JOIN-ஐ அமைதியாக மீண்டும் INNER JOIN ஆக மாற்றுவது, ஒரு திரட்டல் பயன்படுத்தப்படுவதற்கு முன் வரிசை எண்ணிக்கைகளைப் பெருக்கும் ஜாயின், துணை வினவலுக்குள் ஒரு NULL நுழைந்ததால் எதையும் தராமல் அமைதியாக இருக்கும் NOT IN. இவை விரைவான கண் பார்வைச் சோதனையில் தப்பிவிடும், வேறொரு அறிக்கையுடன் மொத்தத்தை யாராவது ஒப்பிடும்போது மட்டுமே வெளிப்படும் வகைப் பிழைகள்.",
          "recommendation": "ஒவ்வொரு பிரிவும் தனியாக என்ன செய்கிறது என்பதை விட, அவை ஒன்றோடொன்று எவ்வாறு தொடர்புகொள்கின்றன என்பதில் கவனம் செலுத்துங்கள்: LEFT JOIN-இன் வலப்புற நெடுவரிசைகள் மீது WHERE வடிகட்டுதல், திரட்டுவதற்கு முன் ஒன்றுக்குப் பல ஜாயின்களால் வரிசைகள் பெருகுதல், NULL-கள் இருக்கும்போது NOT IN ஏன் தவறாகச் செயல்படுகிறது (EXISTS பொதுவாகத் தவறாகச் செயல்படாது). அதன் பிறகு HAVING மற்றும் WHERE இடையிலான வேறுபாட்டைப் பாருங்கள்; இரு பிரிவுகளையும் தனித்தனியாக ஏற்கனவே அறிந்தவர்களையும் இந்த வேறுபாடு தடுமாறச் செய்கிறது."
        },
        "advanced": {
          "name": "உயர்நிலை",
          "desc": "பெரும்பாலான வேலை அறிவிப்புகள் “வலுவான SQL” என்று குறிப்பிடுவது இந்த நிலையைத்தான். பல ஜாயின்கள் கொண்ட வினவலைப் படித்து, அதை இயக்கும் முன்பே அதன் வரிசை எண்ணிக்கையை உங்களால் கணிக்க முடியும்; முடிவுத் தொகுப்பு மாறியது என்பதோடு நிற்காமல் ஏன் மாறியது என்பதையும் அறிவீர்கள்; அது தெளிவான கருவியாக இருக்கும்போது உள்ளமைந்த துணை வினவலுக்குப் பதிலாக CTE அல்லது விண்டோ ஃபங்ஷனைப் பயன்படுத்துகிறீர்கள். இந்த நிலையை உச்ச நிலையிலிருந்து பிரிப்பது பணியின் தற்காப்புப் பக்கம்தான்: சமநிலை முக்கியமாக இருக்கும்போது எந்த வரிசைப்படுத்தும் ஃபங்ஷனைப் பயன்படுத்த வேண்டும், ஒரு டிரான்சாக்ஷன் ஒரே நேரத்தில் நடக்கும் மற்றொரு அமர்விலிருந்து எதைத் தனிமைப்படுத்துகிறது, விடுபட்ட ON DELETE விதி தரவுத்தள நிலையில் உண்மையில் என்ன செய்கிறது என்பதை அறிதல்.",
          "recommendation": "மற்றவர்களும் தொடும் தரவைப் பாதுகாக்கும் பகுதிகளில் ஆழமாகச் செல்லுங்கள்: சம மதிப்புகள் வரும்போது RANK, DENSE_RANK, ROW_NUMBER ஆகியவற்றுக்கு இடையிலான வேறுபாடு, COMMIT உண்மையில் எதை, யாருக்குக் காண்பிக்கிறது என்பது, DELETE செய்யும்போது ஃபாரின் கீ நடந்துகொள்ளும் விதம். அடுத்த படியாக, தி இண்டெக்ஸ் செய்திமடலின் அல்லது SQL ஃபார் டெவ்ஸின் விண்டோ செயல்பாடுகள் மற்றும் பரிவர்த்தனைத் தனிமைப்படுத்தல் பற்றிய ஆழமான கட்டுரைகளை இரண்டுக்கும் பயன்படுத்துங்கள்."
        },
        "expert": {
          "name": "நிபுணர்",
          "desc": "ஒவ்வொரு பிரிவிலும் நீங்கள் உச்ச மதிப்பெண் பெற்றீர்கள் — வடிகட்டுதல் மற்றும் NULL நடத்தை, ஜாயின்கள் மற்றும் தொகுப்புச் செயல்பாடுகள், திரட்டுதல் மற்றும் துணை வினவல்கள், மற்றும் விண்டோ ஃபங்ஷன்கள், CTE-கள் மற்றும் கட்டுப்பாடுகள். நடைமுறையில், அறிமுகமில்லாத ஒருவரின் பல ஜாயின்கள் கொண்ட அறிக்கை வினவலை உங்களிடம் கொடுத்தால், தொடரியல் என்ன செய்ய வேண்டும் என்று சொல்கிறது என்பதோடு நிற்காமல், அது ஏன் அந்த வரிசை எண்ணிக்கையைத் தருகிறது என்பதையும் விளக்க உங்களால் முடியும்; இதுவே கடினமான, அதிக மதிப்புள்ள திறன். இந்த நிலையில் வினவல் மொழி அரிதாகவே தடையாக இருக்கும்; தடை பொதுவாக ஸ்கீமா வடிவமைப்பு அல்லது அதன் அடியில் உள்ள தரவின் அளவாகவே இருக்கும்.",
          "recommendation": "இனி பலன் செயல்படுத்தல் திட்டங்களிலும் வடிவமைப்பிலும் உள்ளது: ஒரு வினவல் மெதுவானது என்று கருதுவதற்கு முன் EXPLAIN வெளியீட்டைப் படித்தல், இன்டெக்ஸ் உத்தியை இலவச வெற்றியாகக் கருதாமல் எழுதும் செலவுடன் சமரசமாகப் பார்த்தல், ஸ்கீமா வளரும்போதும் நிலைத்து நிற்கும் இயல்பாக்க முடிவுகள். ஒரு பணிக்காக உங்களைத் தேர்வு செய்யும்போது, SQL அம்சங்களின் பெயர்களைச் சொல்வதற்குப் பதிலாக, ஜாயின் பெருக்கம் அல்லது NOT IN/NULL பொறி போன்ற, நீங்கள் நேரடிப் பயன்பாட்டுச் சூழலில் கண்டறிந்த வினவல் பிழையை விவரியுங்கள் — அது சொற்களஞ்சியத்தை மட்டுமல்ல, சிந்தனையையும் வெளிப்படுத்துகிறது."
        }
      },
      "questions": [
        {
          "question": "ஒரு அட்டவணையில் NULL மதிப்பை ஏற்கும் வயது என்ற நெடுவரிசை உள்ளது. நீங்கள் SELECT * FROM பயனர்கள் WHERE வயது = NULL என்பதை இயக்குகிறீர்கள். பல வரிசைகளில் வயது NULL ஆக இருந்தாலும் இது எத்தனை வரிசைகளைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "age NULL ஆக உள்ள ஒவ்வொரு வரிசையும்"
            },
            {
              "icon": "",
              "label": "பூஜ்ஜிய வரிசைகள்"
            },
            {
              "icon": "",
              "label": "ஒரு பிழை"
            },
            {
              "icon": "",
              "label": "அனைத்து வரிசைகளும்"
            }
          ]
        },
        {
          "question": "நீங்கள் SELECT DISTINCT துறை, பொறுப்பு FROM பணியாளர்கள் என்பதை இயக்குகிறீர்கள். DISTINCT எதன் நகல்களை நீக்குகிறது?",
          "options": [
            {
              "icon": "",
              "label": "துறை மற்றும் பொறுப்பு ஆகியவற்றின் ஒவ்வொரு சேர்க்கையும்"
            },
            {
              "icon": "",
              "label": "நகல் department மதிப்புகள் மட்டும்"
            },
            {
              "icon": "",
              "label": "நகல் role மதிப்புகள் மட்டும்"
            },
            {
              "icon": "",
              "label": "எதுவும் இல்லை; DISTINCT ஒரே ஒரு நெடுவரிசையில் மட்டுமே செயல்படும்"
            }
          ]
        },
        {
          "question": "பெயர் என்ற நெடுவரிசை WHERE பெயர் LIKE 'அ_' மூலம் வடிகட்டப்படுகிறது. இந்த மதிப்புகளில் எது பொருந்துகிறது: 'அ', 'அல', 'அனிதா', 'அல்லி'?",
          "options": [
            {
              "icon": "",
              "label": "'A'"
            },
            {
              "icon": "",
              "label": "'Al'"
            },
            {
              "icon": "",
              "label": "'Ana' மற்றும் 'Ally'"
            },
            {
              "icon": "",
              "label": "நான்கு மதிப்புகளும்"
            }
          ]
        },
        {
          "question": "விலை என்ற நெடுவரிசை WHERE விலை BETWEEN 10 AND 20 மூலம் வடிகட்டப்படுகிறது. விலை சரியாக 10 அல்லது சரியாக 20 உள்ள வரிசைகள் சேர்க்கப்படுமா?",
          "options": [
            {
              "icon": "",
              "label": "இல்லை, இரண்டும் விலக்கப்படும்"
            },
            {
              "icon": "",
              "label": "ஆம், இரண்டும் சேர்க்கப்படும்"
            },
            {
              "icon": "",
              "label": "price = 10 மட்டும்"
            },
            {
              "icon": "",
              "label": "price = 20 மட்டும்"
            }
          ]
        },
        {
          "question": "ஆர்டர்கள் என்ற அட்டவணையில் 10 வரிசைகள் உள்ளன, அவற்றில் 3 வரிசைகளில் அனுப்பிய_தேதி NULL ஆக உள்ளது. SELECT COUNT(*) FROM ஆர்டர்கள் எதைத் தரும், SELECT COUNT(அனுப்பிய_தேதி) FROM ஆர்டர்கள் எதைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "10, பிறகு 10"
            },
            {
              "icon": "",
              "label": "7, பிறகு 7"
            },
            {
              "icon": "",
              "label": "10, பிறகு 7"
            },
            {
              "icon": "",
              "label": "10, பிறகு 3"
            }
          ]
        },
        {
          "question": "நீங்கள் SELECT பெயர், சம்பளம் FROM பணியாளர்கள் ORDER BY 2 DESC என்பதை இயக்குகிறீர்கள். இதில் 2 எதைக் குறிக்கிறது?",
          "options": [
            {
              "icon": "",
              "label": "ஒரு தொடரியல் பிழை"
            },
            {
              "icon": "",
              "label": "முடிவின் இரண்டாவது வரிசை"
            },
            {
              "icon": "",
              "label": "சமநிலையை உடைக்கப் பயன்படுத்தப்படும் 2 என்ற நேரடி மதிப்பு"
            },
            {
              "icon": "",
              "label": "SELECT பட்டியலில் உள்ள இரண்டாவது நெடுவரிசை, salary"
            }
          ]
        },
        {
          "question": "தரநிலை SQL-இல், 'அனா' || ' ' || 'லீ' எந்த மதிப்பைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "ஒரு தொடரியல் பிழை"
            },
            {
              "icon": "",
              "label": "உண்மை"
            },
            {
              "icon": "",
              "label": "'அனாலீ'"
            },
            {
              "icon": "",
              "label": "'அனா லீ'"
            }
          ]
        },
        {
          "question": "இவற்றில் எது WHERE நிலை IN ('திறந்த', 'நிலுவையில்', 'மறுஆய்வு') என்பதற்கு முற்றிலும் சமமானது?",
          "options": [
            {
              "icon": "",
              "label": "WHERE status = 'open' AND status = 'pending' AND status = 'review'"
            },
            {
              "icon": "",
              "label": "WHERE status != 'open' OR status != 'pending' OR status != 'review'"
            },
            {
              "icon": "",
              "label": "WHERE status = 'open' OR status = 'pending' OR status = 'review'"
            },
            {
              "icon": "",
              "label": "WHERE status LIKE 'open,pending,review'"
            }
          ]
        },
        {
          "question": "வாடிக்கையாளர்கள் அட்டவணையில் 100 வரிசைகள் உள்ளன; அவர்களில் 20 பேர் ஒருபோதும் ஆர்டர் செய்ததில்லை. நீங்கள் SELECT c.ஐடி FROM வாடிக்கையாளர்கள் c INNER JOIN ஆர்டர்கள் o ON c.ஐடி = o.வாடிக்கையாளர்_ஐடி என்பதை இயக்குகிறீர்கள். ஆர்டர்கள் இல்லாத அந்த 20 வாடிக்கையாளர்கள் முடிவில் இடம்பெறுவார்களா?",
          "options": [
            {
              "icon": "",
              "label": "ஆம், ஒவ்வொருவரும் ஒருமுறை, o.id NULL ஆகக் காட்டப்படும்"
            },
            {
              "icon": "",
              "label": "ஆம், ஆனால் அவர்கள் WHERE பிரிவிலும் தோன்றினால் மட்டும்"
            },
            {
              "icon": "",
              "label": "No"
            },
            {
              "icon": "",
              "label": "ஆம், orders-இல் உள்ள ஒவ்வொரு நெடுவரிசைக்கும் ஒருமுறை நகலெடுக்கப்படுவார்கள்"
            }
          ]
        },
        {
          "question": "ஆர்டர்கள் இருந்தாலும் இல்லாவிட்டாலும் ஒவ்வொரு வாடிக்கையாளரும் உங்களுக்குத் தேவை, எனவே SELECT c.ஐடி, o.மொத்தம் FROM வாடிக்கையாளர்கள் c LEFT JOIN ஆர்டர்கள் o ON c.ஐடி = o.வாடிக்கையாளர்_ஐடி WHERE o.மொத்தம் > 100 என்று எழுதுகிறீர்கள். இது இன்னும் பூஜ்ஜிய ஆர்டர்கள் உள்ள வாடிக்கையாளர்களையும் தருமா?",
          "options": [
            {
              "icon": "",
              "label": "இல்லை, இது INNER JOIN போலச் செயல்படும்"
            },
            {
              "icon": "",
              "label": "ஆம், LEFT JOIN ஒவ்வொரு வாடிக்கையாளரையும் தக்கவைக்கும்"
            },
            {
              "icon": "",
              "label": "ஆம், o.total 0 ஆகக் காட்டப்படும்"
            },
            {
              "icon": "",
              "label": "இல்லை, இது RIGHT JOIN போலச் செயல்படும்"
            }
          ]
        },
        {
          "question": "பணியாளர்கள் அட்டவணையில் ஐடி நெடுவரிசையும், மற்றொரு வரிசையின் ஐடியைக் குறிக்கும் மேலாளர்_ஐடி நெடுவரிசையும் உள்ளன. ஒவ்வொரு பணியாளரையும் அவரது மேலாளரின் பெயருடன் பட்டியலிட, அட்டவணையை அதனுடனேயே இணைக்கிறீர்கள்: SELECT e.பெயர், m.பெயர் FROM பணியாளர்கள் e JOIN பணியாளர்கள் m ON e.மேலாளர்_ஐடி = m.ஐடி. இந்த அமைப்பு என்ன என்று அழைக்கப்படுகிறது?",
          "options": [
            {
              "icon": "",
              "label": "ஒரு கிராஸ் ஜாயின்"
            },
            {
              "icon": "",
              "label": "ஒரு ரெக்கர்சிவ் ஜாயின்"
            },
            {
              "icon": "",
              "label": "ஒரு செல்ஃப் ஜாயின்"
            },
            {
              "icon": "",
              "label": "செல்லாத ஒரு வினவல்"
            }
          ]
        },
        {
          "question": "ஒரே நெடுவரிசைகளைக் கொண்ட இரண்டு SELECT வினவல்கள் UNION மூலம் இணைக்கப்படுகின்றன. இரண்டு வினவல்களும் ஒரே மாதிரியான வரிசையைத் தந்தால், இறுதி முடிவில் அந்த வரிசையின் எத்தனை நகல்கள் தோன்றும்?",
          "options": [
            {
              "icon": "",
              "label": "ஒரு நகல்"
            },
            {
              "icon": "",
              "label": "இரண்டு நகல்கள்"
            },
            {
              "icon": "",
              "label": "பூஜ்ஜிய நகல்கள்"
            },
            {
              "icon": "",
              "label": "எந்த வினவல் அதை முதலில் பட்டியலிடுகிறது என்பதைப் பொறுத்தது"
            }
          ]
        },
        {
          "question": "அளவுகள் அட்டவணையில் 3 வரிசைகளும் நிறங்கள் அட்டவணையில் 4 வரிசைகளும் உள்ளன. SELECT * FROM அளவுகள் CROSS JOIN நிறங்கள் எத்தனை வரிசைகளைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "7"
            },
            {
              "icon": "",
              "label": "12"
            },
            {
              "icon": "",
              "label": "3"
            },
            {
              "icon": "",
              "label": "0"
            }
          ]
        },
        {
          "question": "ஆர்டர்கள் அட்டவணையில் ஆர்டர் #100-க்கு 1 வரிசையும், ஆர்டர்_உருப்படிகள் அட்டவணையில் ஆர்டர் #100-க்கு 3 வரிசைகளும் (ஒவ்வொரு வரி உருப்படிக்கும் ஒன்று) உள்ளன. நீங்கள் SELECT o.ஐடி, o.மொத்தம் FROM ஆர்டர்கள் o JOIN ஆர்டர்_உருப்படிகள் i ON o.ஐடி = i.ஆர்டர்_ஐடி WHERE o.ஐடி = 100 என்பதை இயக்குகிறீர்கள். ஆர்டர் #100-க்கு எத்தனை வரிசைகள் திரும்ப வரும்?",
          "options": [
            {
              "icon": "",
              "label": "3"
            },
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "4"
            },
            {
              "icon": "",
              "label": "0"
            }
          ]
        },
        {
          "question": "SELECT c.பெயர், o.ஐடி FROM வாடிக்கையாளர்கள் c RIGHT JOIN ஆர்டர்கள் o ON c.ஐடி = o.வாடிக்கையாளர்_ஐடி என்ற வினவல், இவற்றில் எதனுடன் அதே வரிசைகளைத் தருகிறது?",
          "options": [
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM customers c INNER JOIN orders o ON c.id = o.customer_id"
            },
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM orders o LEFT JOIN customers c ON c.id = o.customer_id"
            },
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM customers c LEFT JOIN orders o ON c.id = o.customer_id"
            },
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM orders o CROSS JOIN customers c"
            }
          ]
        },
        {
          "question": "தரநிலை SQL-இல், நீங்கள் SELECT துறை, பெயர், AVG(சம்பளம்) FROM பணியாளர்கள் GROUP BY துறை என்பதை இயக்குகிறீர்கள். இது சரியான வினவலா?",
          "options": [
            {
              "icon": "",
              "label": "ஆம், department மூலம் குழுவாக்கினால் போதும்"
            },
            {
              "icon": "",
              "label": "இல்லை, name திரட்டப்பட வேண்டும் அல்லது GROUP BY-இல் இருக்க வேண்டும்"
            },
            {
              "icon": "",
              "label": "ஆம், SQL ஒவ்வொரு துறைக்கும் ஒரு பெயரைத் தேர்ந்தெடுக்கும்"
            },
            {
              "icon": "",
              "label": "இல்லை, AVG()-ஐ GROUP BY உடன் பயன்படுத்த முடியாது"
            }
          ]
        },
        {
          "question": "சராசரிச் சம்பளம் 80000-ஐ மீறும் துறைகள் உங்களுக்குத் தேவை. குழுவாக்கிய பிறகு AVG(salary) போன்ற திரட்டப்பட்ட மதிப்பின் அடிப்படையில் எந்தப் பிரிவு வடிகட்டுகிறது — WHERE அல்லது HAVING?",
          "options": [
            {
              "icon": "",
              "label": "WHERE"
            },
            {
              "icon": "",
              "label": "இரண்டில் எதுவும்"
            },
            {
              "icon": "",
              "label": "இரண்டுமில்லை; அதற்குத் துணை வினவல் தேவை"
            },
            {
              "icon": "",
              "label": "HAVING"
            }
          ]
        },
        {
          "question": "நீங்கள் SELECT சம்பளம் * 1.1 AS புதிய_சம்பளம் FROM பணியாளர்கள் WHERE புதிய_சம்பளம் > 50000 என்று எழுதுகிறீர்கள். இது இயங்குமா?",
          "options": [
            {
              "icon": "",
              "label": "ஆம், WHERE-ஆல் SELECT மாற்றுப்பெயர்களைப் பயன்படுத்த முடியும்"
            },
            {
              "icon": "",
              "label": "ஆம், ஆனால் எண் மாற்றுப்பெயர்களுக்கு மட்டும்"
            },
            {
              "icon": "",
              "label": "இல்லை, வடிகட்டப்பட்ட வினவலில் AS அனுமதிக்கப்படாது"
            },
            {
              "icon": "",
              "label": "இல்லை, மாற்றுப்பெயர் உருவாவதற்கு முன்பே WHERE இயங்குகிறது"
            }
          ]
        },
        {
          "question": "SELECT பெயர் FROM பணியாளர்கள் e WHERE சம்பளம் > (SELECT AVG(சம்பளம்) FROM பணியாளர்கள் WHERE துறை = e.துறை). இது ஏன் தொடர்புள்ள துணை வினவல் என்று அழைக்கப்படுகிறது?",
          "options": [
            {
              "icon": "",
              "label": "இது WHERE பிரிவுக்குப் பதிலாக JOIN-ஐப் பயன்படுத்துகிறது"
            },
            {
              "icon": "",
              "label": "இது வெளிப்புற வினவலில் உள்ள e.department-ஐப் பயன்படுத்துகிறது"
            },
            {
              "icon": "",
              "label": "இது ஒன்றுக்கு மேற்பட்ட நெடுவரிசைகளைத் தருகிறது"
            },
            {
              "icon": "",
              "label": "வெளிப்புற வினவல் தொடங்குவதற்கு முன் இது ஒருமுறை இயங்குகிறது"
            }
          ]
        },
        {
          "question": "SELECT மேலாளர்_ஐடி FROM பணியாளர்கள் என்ற துணை வினவல் உண்மையான ஐடிகளுடன் சில NULL மதிப்புகளையும் தருகிறது. நீங்கள் SELECT பெயர் FROM பணியாளர்கள் WHERE ஐடி NOT IN (SELECT மேலாளர்_ஐடி FROM பணியாளர்கள்) என்பதை இயக்குகிறீர்கள். என்ன நடக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "NULL-களைப் புறக்கணித்து, மேலாளர் அல்லாத அனைவரையும் தரும்"
            },
            {
              "icon": "",
              "label": "இது பூஜ்ஜிய வரிசைகளைத் தரும்"
            },
            {
              "icon": "",
              "label": "இது பிழையை எழுப்பும்"
            },
            {
              "icon": "",
              "label": "இது ஒவ்வொரு ஊழியரையும் தரும்"
            }
          ]
        },
        {
          "question": "SELECT பெயர் FROM வாடிக்கையாளர்கள் c WHERE EXISTS (SELECT 1 FROM ஆர்டர்கள் o WHERE o.வாடிக்கையாளர்_ஐடி = c.ஐடி). இந்த வினவல் என்ன முடிவைத் தரும்?",
          "options": [
            {
              "icon": "",
              "label": "குறைந்தது ஒரு ஆர்டர் உள்ள ஒவ்வொரு வாடிக்கையாளரும்"
            },
            {
              "icon": "",
              "label": "ஒவ்வொரு வாடிக்கையாளரும்"
            },
            {
              "icon": "",
              "label": "ஒரு பிழை"
            },
            {
              "icon": "",
              "label": "சரியாக ஒரு ஆர்டர் உள்ள வாடிக்கையாளர்கள் மட்டும்"
            }
          ]
        },
        {
          "question": "நீங்கள் SELECT பெயர், (SELECT ஆர்டர்_ஐடி FROM ஆர்டர்கள் WHERE வாடிக்கையாளர்_ஐடி = c.ஐடி) AS கடைசி_ஆர்டர் FROM வாடிக்கையாளர்கள் c என்று எழுதுகிறீர்கள், மேலும் ஒரு குறிப்பிட்ட வாடிக்கையாளருக்கு ஆர்டர்கள் அட்டவணையில் 3 வரிசைகள் உள்ளன. இந்த வினவல் இயங்கும்போது என்ன நடக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "இது முதலாவதை மட்டும் தரும்"
            },
            {
              "icon": "",
              "label": "இது மூன்றின் கமா பிரிக்கப்பட்ட பட்டியலைத் தரும்"
            },
            {
              "icon": "",
              "label": "இது 3 வரிசைகளைத் தரும்"
            },
            {
              "icon": "",
              "label": "இது இயங்கும்போது பிழையை ஏற்படுத்தும்"
            }
          ]
        },
        {
          "question": "நான்கு வரிசைகள் அதிகபட்ச மதிப்பெண்ணில் சமமாக உள்ளன. RANK() ORDER BY score DESC பயன்படுத்தும்போது, நான்கும் தரவரிசை 1-ஐப் பெறுகின்றன. அடுத்த வரிசைக்கு என்ன தரவரிசை கிடைக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "5"
            },
            {
              "icon": "",
              "label": "2"
            },
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "4"
            }
          ]
        },
        {
          "question": "நான்கு வரிசைகள் அதிகபட்ச மதிப்பெண்ணில் சமமாக உள்ளன. DENSE_RANK() ORDER BY score DESC பயன்படுத்தும்போது, நான்கும் தரவரிசை 1-ஐப் பெறுகின்றன. அடுத்த வரிசைக்கு என்ன தரவரிசை கிடைக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "5"
            },
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "2"
            },
            {
              "icon": "",
              "label": "3"
            }
          ]
        },
        {
          "question": "SUM(தொகை) OVER (PARTITION BY பகுதி ORDER BY தொகை) ஒரு வினவலில் சேர்க்கப்படுகிறது. இந்த இடத்தில் PARTITION BY பகுதி என்ன செய்கிறது?",
          "options": [
            {
              "icon": "",
              "label": "இது ஒவ்வொரு region-க்கும் தொடர் கூட்டுத்தொகையை மீண்டும் தொடங்குகிறது"
            },
            {
              "icon": "",
              "label": "இது முடிவுகளை ஒரே region-க்கு வடிகட்டுகிறது"
            },
            {
              "icon": "",
              "label": "இது வரிசைகளை ஒவ்வொரு region-க்கும் ஒன்றாகச் சுருக்குகிறது"
            },
            {
              "icon": "",
              "label": "இது region-களை அகரவரிசையில் வரிசைப்படுத்துகிறது"
            }
          ]
        },
        {
          "question": "ஐந்து வரிசைகளுக்கு ROW_NUMBER() OVER (ORDER BY மதிப்பெண் DESC) பயன்படுத்தப்படுகிறது; அவற்றில் இரண்டு வரிசைகள் மதிப்பெண்ணில் சரியாக சமமாக உள்ளன. இரண்டு வரிசைகள் எப்போதாவது ஒரே வரிசை எண்ணைப் பெற முடியுமா?",
          "options": [
            {
              "icon": "",
              "label": "ஆம்"
            },
            {
              "icon": "",
              "label": "PARTITION BY-யும் பயன்படுத்தப்பட்டால் மட்டும்"
            },
            {
              "icon": "",
              "label": "சமநிலை எங்கு விழுகிறது என்பதைப் பொறுத்தது"
            },
            {
              "icon": "",
              "label": "No"
            }
          ]
        },
        {
          "question": "WITH அதிக_சம்பளம்_பெறுவோர் AS (SELECT * FROM பணியாளர்கள் WHERE சம்பளம் > 100000) SELECT துறை, COUNT(*) FROM அதிக_சம்பளம்_பெறுவோர் GROUP BY துறை. அதிக_சம்பளம்_பெறுவோர் என்பது என்ன?",
          "options": [
            {
              "icon": "",
              "label": "பொது அட்டவணை வெளிப்பாடு (CTE)"
            },
            {
              "icon": "",
              "label": "தரவுத்தளத்தில் உள்ள நிரந்தர அட்டவணை"
            },
            {
              "icon": "",
              "label": "வினவலுக்குப் பிறகும் நிலைத்திருக்கும் வியூ"
            },
            {
              "icon": "",
              "label": "சேமிக்கப்பட்ட செயல்முறை"
            }
          ]
        },
        {
          "question": "ஒரு நெடுவரிசை PRIMARY KEY ஆக அறிவிக்கப்பட்டுள்ளது. அந்த நெடுவரிசை NULL ஆக உள்ள ஒரு வரிசையைச் செருக முடியுமா?",
          "options": [
            {
              "icon": "",
              "label": "ஆம்"
            },
            {
              "icon": "",
              "label": "ஆம், ஆனால் ஒரே ஒரு NULL வரிசை மட்டும்"
            },
            {
              "icon": "",
              "label": "No"
            },
            {
              "icon": "",
              "label": "நெடுவரிசையின் இயல்புநிலை மதிப்பைப் பொறுத்தது"
            }
          ]
        },
        {
          "question": "திறந்திருக்கும் ஒரு பரிவர்த்தனைக்குள் நீங்கள் UPDATE இயக்கியுள்ளீர்கள், ஆனால் இன்னும் COMMIT இயக்கவில்லை. தரவுத்தளத்துடனான இரண்டாவது, தனி இணைப்பிலிருந்து அந்தப் புதுப்பிப்பு தெரியுமா?",
          "options": [
            {
              "icon": "",
              "label": "ஆம், உடனடியாக"
            },
            {
              "icon": "",
              "label": "இரண்டாவது இணைப்பு ஒரு பரிவர்த்தனையைத் திறந்தால் மட்டும்"
            },
            {
              "icon": "",
              "label": "எந்த அட்டவணை புதுப்பிக்கப்பட்டது என்பதைப் பொறுத்தது"
            },
            {
              "icon": "",
              "label": "இல்லை, கமிட் செய்யப்படும் வரை தெரியாது"
            }
          ]
        },
        {
          "question": "பொருட்கள்.வகை_ஐடி நெடுவரிசைக்கு வகைகள்.ஐடியைக் குறிக்கும் FOREIGN KEY கட்டுப்பாடு உள்ளது. வகைகள் அட்டவணையில் இன்னும் பொருட்கள் சுட்டிக்காட்டும் ஒரு வரிசையை, ON DELETE விதி எதுவும் குறிப்பிடாமல் DELETE செய்ய முயல்கிறீர்கள். என்ன நடக்கும்?",
          "options": [
            {
              "icon": "",
              "label": "பொருட்களின் வகை_ஐடி NULL ஆக அமைக்கப்படும்"
            },
            {
              "icon": "",
              "label": "சுட்டிக்காட்டும் products-உம் நீக்கப்படும்"
            },
            {
              "icon": "",
              "label": "DELETE நிராகரிக்கப்படும்"
            },
            {
              "icon": "",
              "label": "DELETE வெற்றிபெறும், செல்லாத குறிப்புகள் எஞ்சும்"
            }
          ]
        }
      ],
      "optionOrderVersion": "f9e1314f9ea2bea2"
    }
  },
  "testNames": {
    "sql-test": "SQL தேர்வு"
  }
}
