ኮምፒውተሮችፕሮግራም

ኦፕሬተር SQL ውስጣዊ ተቀላቀል: አገባብ እና ባህሪያት ምሳሌዎች

ማንኛውም ጎታ በማደግ ላይ ያለውን ውሂብ ጋር ፍጥረት እና የተለያዩ መረጃዎች ጋር ጠረጴዛዎች መካከል አሞላል, ነገር ግን ደግሞ ተጨማሪ ሥራ ብቻ አይደለም ይጨምራል. በትክክል, ሰንጠረዦች እና ሪፖርት ከ ውሂብ ምርጫ ላይ የተለያዩ ሥራዎችን ለማከናወን መደበኛ ይምረጡ ንድፍ ይጠቀሙ.

ሰንጠረዦች ውሂብ ሰብስብ

እኛ ውሂብ ምርጫ ወይም ሪፖርት ግንባታ ያለውን ችግር ከግምት ከሆነ ቀዶ ውስብስብነት ደረጃ መወሰን ይችላሉ. የመስመር ላይ ሱቆች ወይም ትላልቅ ኩባንያዎች ውስጥ, ለምሳሌ, የተቋቋመው ናቸው ጎታዎች, (መጠን መሠረት) ከባድ ጋር ባለን ግንኙነት እንደ ደንብ ሆኖ, የውሂብ ምርጫ በአንድ ጠረጴዛ የተወሰነ አይደለም. ደንብ እንደ ናሙና ተግባሩን ላይ በመመስረት, በፕሮግራም ያደርገዋል ይህም ብቻ የተገናኘ አይደለም ጠረጴዛዎች ያንኳኳው በርካታ ቁጥር, ነገር ግን ደግሞ ጎጇቸውን መጠይቆችን / ንዑስ-መጠይቆች, ከ ሊሆን ይችላል. በአንድ ጠረጴዛ ናሙና ቀላሉ መዋቅር መጠቀም ይችላሉ:

ሰው ከ * ይምረጡ

የት ሰው - ውሂብ ሰርስሮ እንዲሆን እንፈልጋለን ይህም ከ ማዕድ ስም.

ይሁን እንጂ, በርካታ ሠንጠረዦች ውሂብ መምረጥ ይኖርብዎታል ከሆነ, መደበኛ ንድፎችን አንዱን በርካታ ሠንጠረዦች ለመቀላቀል ጥቅም ላይ ሊውል ይችላል.

ተጨማሪ ሰንጠረዦች ዘዴዎች በማገናኘት

እኛ ቀዳሚ ደረጃ ላይ ያሉ መዋቅሮች መጠቀምን ከግምት ከሆነ, እኛ ማለትም ናሙና ጠረጴዛዎች, ለ ያስፈልጋል ቁጥር ለማገናኘት የሚከተሉትን ስልቶች መለየት ይችላሉ:

  1. ኦፕሬተር ውስጣዊ ይቀላቀሉ.
  2. ተቀላቀል ወይም, ይህም ሁለተኛው ቀረጻ ዘዴ ነው LEFT, የግራ ውጫዊ ይቀላቀሉ.
  3. መስቀል ይቀላቀሉ.
  4. ሙሉ ተቀላቀል.

በተግባር ሰንጠረዦች እንዲቀላቀሉ ከዋኞችን መጠቀም, እናንተ SQL መግለጫ አጠቃቀም በመመርመር መማር ይችላሉ - ውስጣዊ ይቀላቀሉ. እንደሚከተለው በውስጡ አጠቃቀም ምሳሌ ይሆናል:

ሰው ከ * ይምረጡ

ውስጣዊ Su_Person = Pe_ID ላይ Subdivision እንዲቀላቀሉ

ቋንቋ SQL እና ውስጣዊ ከዋኙ ደንብ ሆኖ, ጉልህ የተወሰነ, ውስብስብ መጠይቅ መዋቅሮች አፈፃፀም ማፋጠን ይችላሉ, ሁለት ወይም ከዚያ በላይ ጠረጴዛዎች በማጣመር ለማግኘት ብቻ ጥቅም ላይ ሊውል ይችላል, ነገር ግን ደግሞ በእጅጉ ጎታ አስተዳዳሪዎች ሥራ የሚያመቻች ይህም ሌላ ንዑስ-መጠይቆች, ለመገናኘት, እና ይቀላቀሉ.

መስመር በ ጠረጴዛዎች መስመር ላይ ውሂብ ማጣመር

እኛ መስመር አንድ ነጠላ ሰንጠረዥ መስመር ወደ ተሰበሰቡ ንዑስ-መጠይቆች ትልቅ ቁጥር ግንኙነት, እና ውሂብ ከግምት ከሆነ: እናንተ ደግሞ ከዋኞች ህብረት እና ህብረት ሁሉንም መጠቀም ይችላሉ.

ከእነዚህ መዋቅሮች መጠቀም ዓላማዎች እና እሱ መጨረሻ ላይ ማሳካት ይፈልጋል ያለውን ውጤት ለማዘጋጀት ገንቢው ላይ ይወሰናል.

መግለጫ ውስጣዊ ከዋኝ ይቀላቀሉ

አብዛኛውን ጊዜ, ከዋኝ ይቀላቀሉ ውስጣዊ የተጠቀመበት SQL ቋንቋ ውስጥ በርካታ ሰንጠረዦች ማዋሃድ ነው. ውስጣዊ SQL ውስጥ ይቀላቀሉ መግለጫ ብቻ ጎታዎች ለመረዳት ጀምሮ ነው ማን አማካይ በፕሮግራም ለመረዳት በጣም ቀላል ነው. በዚህ አወቃቀር ሥራ ዘዴ መግለጫ ግምት ከሆነ የሚከተለውን ስዕል ያገኛሉ. በአጠቃላይ እንደ ሎጂክ ከዋኙ ጉዟችንን እና ጠረጴዛዎች እያንዳንዳቸው ለመጠይቁ ውስጥ የተካተቱት ውስጥ መሆኑን ብቻ ውሂብ ወሳደድ አጋጣሚ ላይ የተሰራ ነው.

እኛ ግራፊክ ትርጓሜ አንፃር ሥራ በዚህ ዓይነት መመልከት ከሆነ, እኛ SQL ውስጣዊ ከዋኝ መዋቅር ይቀላቀሉ ለማግኘት, የሚከተለውን መርሃግብር በማድረግ ሊታዩ የሚችሉ ምሳሌ:

ለምሳሌ ያህል, እኛ አኃዝ ውስጥ schematically እንደሚታየው ሁለት ጠረጴዛዎች, አላቸው. እነሱ ደግሞ በበኩላቸው, ግቤቶች የተለየ ቁጥር አላቸው. ማዕዱ በእያንዳንዱ ውስጥ የተያያዙ ናቸው መስኮች አላቸው. እኛ ስዕል መሠረት ላይ ከዋኝ ሥራ ለማስረዳት ይሞክራሉ ከሆነ, ተመልሶ ውጤት ክፍሎች ትስስር መስኮች ናቸው እንዲገጣጠም የት ሁለት ጠረጴዛዎች, ከ መዛግብት ስብስብ ይሆናል. በቀላል አነጋገር, ለመጠይቁ የማን ውሂብ ቁጥር አንድ ጠረጴዛ ላይ ነው, (ጠረጴዛ ቁጥር ሁለት ውስጥ) ብቻ ነው እነዚህን መዝገቦችን ይመልሳል.

ስለ ውስጣዊ ያለው አገባብ ይቀላቀሉ

ቀደም ሲል እንደተጠቀሰው, በ ከዋኝ ውስጣዊ, ማለትም, በውስጡ አገባብ, ባልተለመደ ቀላል ይቀላቀሉ. በአንድ ናሙና ውስጥ ጠረጴዛዎች መካከል ያለውን ግንኙነት ድርጅት ማስታወስ እና ማለትም ሶፍትዌር SQL-ኮድ, አንድ ነጠላ መስመር ውስጥ የተደነገገው ነው ይህም ከዋኝ, ግንባታ የሚከተሉትን በሚጫወቱት ንድፍ መጠቀም በቂ ነው:

  • ውስጣዊ = [በሰንጠረዡ ውስጥ pluggable ቁልፍ መስክ] [ወደ የትኛው ለማገናኘት ጠረጴዛ ቁልፍ መስክ] ላይ [ሠንጠረዥ ስም] ን ይቀላቀሉ.

በዚህ መግለጫ ላይ ለመግባባት በዋናነት ጥቅም ላይ የዋሉ ሠንጠረዦች ቁልፎች ነው. እንደ ደንብ ሆኖ, ሠራተኞች መረጃ እናከማቻለን ይህ ሠንጠረዦች ቡድን ውስጥ, ቀደም ሰው Subdivision ተገልጿል እና ቢያንስ አንድ ተመሳሳይ ታሪክ አላቸው. ስለዚህ, አንድ ትንሽ ቀደም ታይቷል ምሳሌ ይህም SQL ውስጣዊ ይቀላቀሉ ወደ ከዋኝ, እነሆም, ይበልጥ ይወስዳሉ.

ምሳሌ መግለጫ እና የድምጽ ናሙና ሰንጠረዥ ግንኙነት

እኛ ኩባንያ ውስጥ መሥራት ሁሉም ሠራተኞች መረጃ የሚያከማች አንድ ሰው ጠረጴዛ, አላቸው. በቃ ሰንጠረዥ ዋና ቁልፍ የሆነ መስክ መሆኑን ልብ ይበሉ - Pe_ID. በቃ ላይ እና ጥቅል ይሄዳሉ.

ሁለተኛው ሰንጠረዥ Subdivision ሰራተኞችን ስራ ውስጥ ያለውን ቢሮዎች መረጃ ያስቀምጣል. እሷ, በተራው, Su_Person መስክ ሰው ጠረጴዛ በኩል ተገናኝቷል. ይህ ምን ማለት ነው? የውሂብ ንድፍ ላይ የተመሠረተ ማዕድ "ተቀጣሪዎች" ውስጥ ለእያንዳንዱ መዝገብ ሰንጠረዥ አሃዶች ውስጥ እነሱ ስራ ውስጥ መምሪያው መረጃ ይሆናል ሊባል ይችላል. ይህ ግንኙነት ነው እናም ከዋኙ ውስጣዊ ይቀላቀሉ ይሰራሉ.

ይበልጥ ሊታወቅ የሚችል ጥቅም ለማግኘት ከዋኝ SQL ውስጣዊ (አንድ ወይም ሁለት ጠረጴዛዎች ለ አጠቃቀሙ ምሳሌዎች) ይቀላቀሉ እንመልከት. እኛም ተመሳሳይ ጠረጴዛ ምሳሌ እንመልከት; እንግዲያስ ሁሉ በጣም ቀላል ነው:

ሰው ከ * ይምረጡ

ውስጣዊ Su_Person = Pe_ID ላይ Subdivision እንዲቀላቀሉ

ምሳሌ ሁለት ጠረጴዛዎች እና subquery ማገናኘት

ኦፕሬተር SQL ውስጣዊ በርካታ ሠንጠረዦች ውሂብ ይህ መርህ አንድ ትንሽ የተወሳሰበ ላይ እየሰራ ነው, ከላይ መንገድ መከፋፈል ይቻላል ሰርስሮ መጠቀም ናቸው ምሳሌዎች ይህም ምክንያት, ይቀላቀሉ. ሁለቱ ሠንጠረዦች ተግባር ውስብስብነት. ለምሳሌ ያህል, እኛ መለያየትንና በእያንዳንዱ ሁሉ ዲፓርትመንቶች መረጃ የሚያስቀምጥ ተለይ ሰንጠረዥ አላቸው. በዚህ ሰንጠረዥ ውስጥ የማካፈል ቁጥር እና ሠራተኛ ቁጥር የተመዘገበው ሲሆን እያንዳንዱ ክፍል ናሙና ውሂብ ስም በደጋፊነት አለበት. አሻግሮ በመመልከት, እርስዎ ይህን ችግር ለመፍታት ሁለት ዘዴዎች መጠቀም ይችላል ብለው ዋጋ ነው.

የመጀመሪያው መንገድ መምሪያው ሰንጠረዥ ናሙና ጋር መገናኘት ነው. እንደሚከተለው ሊሆን ይችላል በዚህ ጉዳይ ላይ ጥያቄ ያደራጁ:

ሰው ከ Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name ይምረጡ

ውስጣዊ Su_Person = Pe_ID ላይ Subdivision እንዲቀላቀሉ

ውስጣዊ Su_Depart = Dep_ID እና Pe_Depart = Dep_ID ላይ ተለይ መቀላቀል

ችግሩን መፍታት ሁለተኛው ዘዴ - ሁሉም ውሂብ መምሪያው ሰንጠረዥ የተመረጡ ይሆናል ውስጥ አንድ subquery, ነገር ግን ብቻ አስፈላጊ መጠቀም ነው. ይህ የመጀመሪያው ዘዴ በተቃራኒ, ይህ ጥያቄ ጊዜ ይቀንሳል ነው.

ሰው ከ Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name ይምረጡ

ውስጣዊ Su_Person = Pe_ID ላይ Subdivision እንዲቀላቀሉ

ውስጣዊ Su_Depart = Dep_ID እና Pe_Depart = Dep_ID ላይ T ሆኖ (ተለይ ምረጥ Dep_ID, Dep_Name, Pe_Depart) መቀላቀል

ይህ እንዲህ ያለ ዝግጅት ሁልጊዜ ሥራ ጥያቄ ማፋጠን አንችልም መሆኑን ማስተዋሉ ጠቃሚ ነው. ይህም (ድምጹን በጣም ትልቅ ከሆነ) ጊዜያዊ ጠረጴዛ ወደ አንድ ተጨማሪ ናሙና ውሂብ መጠቀም አስፈላጊ ነው, እና ከዚያም ዋናው ናሙና ጋር ተዳምሮ ጊዜ አንዳንድ ሁኔታዎች አሉ.

አጠቃቀም ምሳሌ የውስጥ ሠንጠረዦች አንድ ትልቅ ቁጥር ከ ናሙናዎችን ወደ ከዋኝ ይቀላቀሉ

ግንባታ ትስስር የውሂብ ሰንጠረዦችን እና subqueries ናሙና ጉልህ መጠን ያህል ውስብስብ መጠይቆች መጠቀምን ያካትታል. እነዚህ መስፈርቶች የ SQL ውስጣዊ አገባብ ይቀላቀሉ ማርካት ይችላሉ. በዚህ ሁኔታ ውስጥ ከዋኝ አጠቃቀም, ምሳሌ ሳይሆን ድርብርብ subqueries በርካታ ቁጥር ጋር, ብዙ የማከማቻ ቦታዎች ብቻ ሳይሆን ናሙናዎች ውስብስብ ሊሆኑ ይችላሉ. ተጨባጭ ለምሳሌ ያህል, አንተ (ውስጣዊ SQL መግለጫ ይቀላቀሉ) ሥርዓት ጠረጴዛዎች ናሙና ውሂብ መውሰድ ይችላሉ. ምሳሌ - በሠንጠረዡ 3 - በዚህ ጉዳይ ላይ ይልቅ ውስብስብ መዋቅር ይኖራቸዋል.

ይህ የተገናኘ ጉዳይ (ዋናው ሰንጠረዥ) እና ሦስት ተጨማሪ አስተዋወቀ በርካታ ውሂብ ምርጫ ሁኔታዎች ውስጥ.

የ ውስጣዊ ይቀላቀሉ በመጠቀም ጊዜ ከዋኝ ይበልጥ በፍጥነት ለማከናወን እና ችግሩን ለመፍታት መንገዶች መፈለግ ይኖርባቸዋል ስለዚህ ይበልጥ ውስብስብ መጠይቅ ረዘም ያለ, በተግባር ላይ ይሆናል መሆኑን ማስታወስ ይኖርባቸዋል.

መደምደሚያ

መጨረሻ ላይ: እኔም አንድ ነገር ማለት እፈልጋለሁ: ጎታዎች ጋር መስራት - ይህ ፕሮግራም ውስጥ በጣም ከባድ ነገር አይደለም, ስለዚህ እርስዎ የሚፈልጉ ከሆነ እያንዳንዱ ነጠላ ሰው ጎታ ለመገንባት እውቀት ማግኘት ይችላሉ, እና በጊዜ ሂደት, ልምድ እንዲያገኙ, አንድ ባለሙያ ደረጃ ላይ ከእነሱ ጋር መስራት ማግኘት .

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 am.delachieve.com. Theme powered by WordPress.