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

विदेशी कुंजी - वे मेरे लिए क्या करते हैं?

विदेशी कुंजियाँ संदर्भात्मक अखंडता प्रदान करती हैं। विदेशी कुंजी कॉलम में डेटा मान्य है - मान केवल वही हो सकता है जो विदेशी कुंजी में परिभाषित तालिका और कॉलम में पहले से मौजूद है। यह "खराब डेटा" को रोकने में बहुत प्रभावी है - कोई भी जो कुछ भी चाहता है उसे दर्ज नहीं कर सकता - संख्याएं, ASCII टेक्स्ट इत्यादि। इसका मतलब है कि डेटा सामान्यीकृत है - दोहराए जाने वाले मानों की पहचान की गई है और उन्हें अपनी तालिका में अलग कर दिया गया है, इसलिए कोई और चिंता नहीं है पाठ में केस संवेदनशीलता से निपटने के बारे में... और मान सुसंगत हैं। यह अगले भाग में ले जाता है - विदेशी कुंजी वे हैं जिनका उपयोग आप तालिकाओं को एक साथ जोड़ने के लिए करते हैं।

किसी उपयोगकर्ता के प्रोजेक्ट के लिए आपकी क्वेरी काम नहीं करेगी - आप USERS से एक कॉलम का संदर्भ दे रहे हैं तालिका जब क्वेरी में तालिका का कोई संदर्भ नहीं है, और उस जानकारी को PROJECTS से जोड़ने से पहले उस जानकारी को प्राप्त करने के लिए कोई सबक्वायरी उपयोग नहीं किया जा रहा है टेबल। आप वास्तव में क्या उपयोग करेंगे:

SELECT p.*
   FROM PROJECTS p
   JOIN USERS u ON u.user_id = p.creator
WHERE u.username = 'John Smith'


  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. सी # का उपयोग कर सम्मिलित पंक्ति की आईडी प्राप्त करें

  3. 'Automysqlbackup' और 'Autopostgresqlbackup' टूल्स का उपयोग करके MySQL/MariaDB और PostgreSQL का बैकअप/पुनर्स्थापित कैसे करें

  4. MySQL पीडीओ क्वेरी से तेज तैयार? यह सरल परीक्षण यही दिखाता है

  5. मैं mysql तालिकाओं की भरमार कैसे व्यवस्थित कर सकता हूं?