ወደ የተዋቀረው የጥያቄ ቋንቋ SQL መግቢያ። SQL - የፕሮግራሚንግ ቋንቋዎች ኢንሳይክሎፔዲያ

ዛሬ ወደ ኮምፒዩተር ርዕስ እንሸጋገራለን, ስለዚህ ይህ ጽሑፍ በተለይ ለፕሮግራም አዘጋጆች, በመጀመሪያ ደረጃ ትኩረት የሚስብ ይሆናል. እኛ ውድ አንባቢ፣ በእንግሊዝኛ የተመሰጠረው SQL (Structured Query Language) ስለተዘጋጁት መጠይቆች ቋንቋ እንነጋገራለን። ስለዚህ ወደ ነጥቡ እንግባ። አሁን SQL ምን እንደሆነ እና ምን እንደሚያስፈልግ እንነጋገር።

የተዋቀረ መጠይቅ ቋንቋ የግንኙነት ዳታቤዝ አካል የሆነ መረጃን ለመፍጠር፣ ለማሻሻል እና ለማስተዳደር ሁለንተናዊ ቋንቋ ነው። መጀመሪያ ላይ SQL ከውሂብ ጋር ለመስራት ዋናው መንገድ ነበር. እሱን በመጠቀም ተጠቃሚው የሚከተሉትን ተግባራት ማከናወን ይችላል-

  • በመረጃ ቋቱ (ዲቢ) ውስጥ አዲስ ሰንጠረዥ መፍጠር;
  • አዳዲስ መዝገቦችን ወደ ነባር ሠንጠረዦች መጨመር;
  • መዝገቦችን ማስተካከል;
  • መዝገቦችን ሙሉ በሙሉ መሰረዝ;
  • በተጠቀሱት ሁኔታዎች መሰረት ከተለያዩ ጠረጴዛዎች መዝገብ መምረጥ;
  • የአንድ ወይም ከዚያ በላይ የጠረጴዛዎች ገጽታ እና መዋቅር መለወጥ.

እያደገ ሲሄድ SQL በጣም ተለወጠ እና በአዲስ ጠቃሚ ተግባራት የበለፀገ ነበር, በዚህም ምክንያት እንደ እውነተኛ የፕሮግራም ቋንቋ መምሰል ጀመረ. ዛሬ SQL የመተግበሪያ ሶፍትዌር እና የውሂብ ጎታ ማገናኘት የሚችል ብቸኛው ዘዴ ነው። SQL ማለት ያ ነው።

SQL በርካታ አይነት መጠይቆች አሉት። ማንኛውም የ SQL መጠይቅ ከሚፈለገው የውሂብ ጎታ የውሂብ ጥያቄን ወይም የውሂብ ጎታውን በውስጡ አስገዳጅ የሆነ የውሂብ ለውጥን እንደሚያመለክት ልብ ሊባል ይገባል. በዚህ ረገድ, የሚከተሉትን የጥያቄ ዓይነቶች መለየት የተለመደ ነው.

  • በመረጃ ቋቱ ውስጥ አዲስ ወይም ነባር ነገሮችን መፍጠር ወይም መለወጥ;
  • መረጃ መቀበል;
  • በጠረጴዛው ላይ አዲስ መረጃ መጨመር;
  • የውሂብ መሰረዝ;
  • የውሂብ ጎታ አስተዳደር ስርዓት (DBMS) መድረስ።

የዚህ የውሂብ ሂደት ስርዓት ጥቅሞች እና ጉዳቶች ትንሽ።

የ SQL ጥቅሞች

  • በተሰጠው ስርዓት ውስጥ ካለው DBMS ነፃ መሆን. የSQL ጽሑፎች ለብዙ ዲቢኤምኤስዎች ሁለንተናዊ ናቸው። ነገር ግን, ይህ ህግ በሰንጠረዦች ውስጥ መረጃን ከማቀናበር ጋር በተያያዙ ቀላል ስራዎች ላይ ተፈጻሚ ይሆናል.
  • የ SQL ደረጃዎች መገኘት ቋንቋውን "ለማረጋጋት" ይረዳል.
  • ገላጭነት። ይህ ጠቀሜታ ከዳታ ጋር ሲሰራ ፕሮግራመር የሚመርጠው መለወጥ ወይም ማሻሻል ያለበትን መረጃ ብቻ ነው። ይህ እንዴት እንደሚደረግ በራሱ በዲቢኤምኤስ የሶፍትዌር ደረጃ በራስ-ሰር ይወሰናል።

የ SQL ጉዳቶች

  • SQL የግንኙነት ውሂብ ሞዴልን አይከተልም። በዚህ ረገድ፣ SQL የቱቶሪያል ዲ ቋንቋን ይተካዋል፣ ይህም በእውነቱ ተዛማጅ ነው።
  • የ SQL ውስብስብነት ዓላማውን ይወስናል. ቋንቋው በጣም የተወሳሰበ ስለሆነ ፕሮግራመር ብቻ ሊጠቀምበት ይችላል። ምንም እንኳን በመጀመሪያ የተፀነሰው በአማካይ ተጠቃሚ የሚሠራው እንደ መቆጣጠሪያ መሳሪያ ነው.
  • አንዳንድ የመመዘኛዎች አለመመጣጠን። ዲቢኤምኤስን የሚያዳብሩ ብዙ ኩባንያዎች በ SQL ቋንቋ ዘዬ ላይ የራሳቸውን ባህሪያት ይጨምራሉ፣ ይህም የቋንቋውን ሁለንተናዊነት በእጅጉ ይጎዳል።

አንድ የመጨረሻ ነገር፡ SQL አገልጋይ ምንድን ነው? ይህ በታዋቂው ማይክሮሶፍት ኩባንያ ግድግዳዎች ውስጥ የተገነባ የውሂብ ጎታ አስተዳደር ስርዓት ነው። ይህ ስርዓት በተሳካ ሁኔታ ከሁለቱም የቤት ውስጥ የግል ኮምፒዩተሮች እና ትላልቅ ኢንተርፕራይዞች ትላልቅ የውሂብ ጎታዎች ጋር ይሰራል. በዚህ የገበያ ክፍል, SQL Server ከተወዳዳሪነት በላይ ነው.

ደህና፣ MySQL በአጭሩ እናስታውስ። ይህ መተግበሪያ በተለምዶ ከአካባቢያዊ ወይም ከሩቅ ደንበኞች ጥያቄዎችን የሚቀበል አገልጋይ ሆኖ ያገለግላል። MySQL እንዲሁ በተናጥል ፕሮግራሞች ውስጥ ሊካተት ይችላል። ይህ አፕሊኬሽኑ ብዙ የተለያዩ የሰንጠረዥ ዓይነቶችን ስለሚያካትት በጣም ተለዋዋጭ ከሆኑ የመረጃ አያያዝ ስርዓቶች አንዱ መሆኑን ልብ ሊባል ይገባል።

ዛሬ፣ የSQL ኮርሶች “ለዱሚዎች” ከጊዜ ወደ ጊዜ ተወዳጅ እየሆኑ መጥተዋል። ይህ በጣም በቀላሉ ሊብራራ ይችላል, ምክንያቱም በዘመናዊው ዓለም ውስጥ "ተለዋዋጭ" የሚባሉትን የድር አገልግሎቶችን ማግኘት ይችላሉ. እነሱ በትክክል በተለዋዋጭ ቅርፊት ተለይተዋል እና ድረ-ገጾችን ለመወሰን በሚወስኑ ሁሉም ጀማሪ ፕሮግራመሮች ላይ የተመሰረቱ ናቸው ፣ በመጀመሪያ በ SQL ኮርሶች “ለዱሚዎች” ይመዝገቡ።

ይህን ቋንቋ ለምን ተማር?

በመጀመሪያ ፣ SQL ዛሬ በጣም ታዋቂ ከሆኑ የብሎግ ሞተሮች ውስጥ አንዱ - ዎርድፕረስ ብዙ አይነት አፕሊኬሽኖችን የበለጠ ለመፍጠር ይማራል። ጥቂት ቀላል ትምህርቶችን ከጨረሱ በኋላ, የዚህን ቋንቋ ቀላልነት ብቻ የሚያረጋግጥ ማንኛውንም ውስብስብነት ጥያቄዎችን መፍጠር ይችላሉ.

SQL ምንድን ነው?

ወይም የተዋቀረ የመጠይቅ ቋንቋ፣ የተፈጠረው ለአንድ ነጠላ ዓላማ፡ በአጭር ጊዜ ውስጥ ለመወሰን፣ ለመድረስ እና ለማስኬድ ነው። የ SQL ትርጉሙን ካወቁ፣ ይህ አገልጋይ "ሂደታዊ ያልሆነ" ተብሎ በሚጠራ ቋንቋ እንደተመደበ ይገባዎታል። ያም ማለት አቅሞቹ በጣቢያው ላይ ወደፊት ሊያዩዋቸው የሚፈልጓቸውን ማንኛውንም ክፍሎች ወይም ውጤቶች መግለጫ ብቻ ያካትታል። ግን መቼ በትክክል ምን ውጤቶች እንደሚገኙ አይገልጽም። በዚህ ቋንቋ ውስጥ ያለ እያንዳንዱ አዲስ ጥያቄ እንደ ተጨማሪ “የበላይ መዋቅር” ነው። ወደ ዳታቤዝ ውስጥ በሚገቡበት ቅደም ተከተል ነው ጥያቄዎቹ የሚፈጸሙት.

ይህንን ቋንቋ በመጠቀም ምን ሂደቶች ሊከናወኑ ይችላሉ?

ምንም እንኳን ቀላል ቢሆንም የ SQL ዳታቤዝ ብዙ አይነት መጠይቆችን እንዲፈጥሩ ይፈቅድልዎታል. ስለዚህ ይህን አስፈላጊ የፕሮግራሚንግ ቋንቋ ከተማሩ ምን ማድረግ ይችላሉ?

  • ብዙ አይነት ጠረጴዛዎችን መፍጠር;
  • የተቀበለውን ውሂብ መቀበል, ማከማቸት እና ማሻሻል;
  • በእርስዎ ውሳኔ ላይ የጠረጴዛ አወቃቀሮችን ይቀይሩ;
  • የተቀበለውን መረጃ ወደ ነጠላ ብሎኮች ማዋሃድ;
  • የተቀበለውን ውሂብ ማስላት;
  • የመረጃ ሙሉ ጥበቃን ማረጋገጥ ።

በዚህ ቋንቋ ውስጥ በጣም ተወዳጅ የሆኑት የትኞቹ ትዕዛዞች ናቸው?

የ SQL for Dummies ኮርስ ለመውሰድ ከወሰኑ እሱን በመጠቀም መጠይቆችን ለመፍጠር ጥቅም ላይ ስለሚውሉ ትዕዛዞች ዝርዝር መረጃ ይደርስዎታል። ዛሬ በጣም የተለመዱት የሚከተሉት ናቸው:

  1. ዲዲኤል መረጃን የሚገልጽ ትእዛዝ ነው። በመረጃ ቋቱ ውስጥ ብዙ አይነት ነገሮችን ለመፍጠር፣ ለማሻሻል እና ለማጥፋት ይጠቅማል።
  2. DCL መረጃን የሚቆጣጠር ትዕዛዝ ነው። ለተለያዩ ተጠቃሚዎች በመረጃ ቋቱ ውስጥ የመረጃ መዳረሻን ለማቅረብ እንዲሁም ሰንጠረዦችን ወይም እይታዎችን ለመጠቀም ያገለግላል።
  3. TCL የተለያዩ ግብይቶችን የሚያስተዳድር ቡድን ነው። ዋናው ዓላማው የግብይቱን ሂደት ለመወሰን ነው.
  4. ዲኤምኤል - የተቀበለውን ውሂብ ይቆጣጠራል. ተግባሩ ተጠቃሚው ከመረጃ ቋቱ ውስጥ የተለያዩ መረጃዎችን እንዲያንቀሳቅስ ወይም እዚያ እንዲያስገባ ማድረግ ነው።

በዚህ አገልጋይ ውስጥ ያሉ ልዩ መብቶች ዓይነቶች

ልዩ መብቶች አንድ የተወሰነ ተጠቃሚ እንደ ሁኔታው ​​ሊያደርጋቸው የሚችላቸውን እርምጃዎች ያመለክታሉ። በጣም ዝቅተኛው እርግጥ ነው, መደበኛ መግቢያ ነው. እርግጥ ነው፣ በጊዜ ሂደት ልዩ መብቶች ሊለወጡ ይችላሉ። አሮጌዎቹ ይሰረዛሉ እና አዳዲሶች ይታከላሉ. ዛሬ፣ የSQL Server “ለዳሚዎች” ኮርሶችን የሚወስዱ ሁሉ በርካታ የተፈቀዱ ድርጊቶች እንዳሉ ያውቃሉ።

  1. የነገር አይነት - ተጠቃሚው በመረጃ ቋቱ ውስጥ ካለው የተወሰነ ነገር ጋር በተያያዘ ማንኛውንም ትዕዛዝ እንዲፈጽም ይፈቀድለታል። በተመሳሳይ ጊዜ, ለተለያዩ እቃዎች ልዩ መብቶች ይለያያሉ. እንዲሁም ከአንድ የተወሰነ ተጠቃሚ ጋር ብቻ ሳይሆን ከጠረጴዛዎች ጋር የተሳሰሩ ናቸው. አንድ ሰው ችሎታውን በመጠቀም ጠረጴዛን ከፈጠረ, እንደ ባለቤት ይቆጠራል. ስለዚህ, በእሱ ውስጥ ካለው መረጃ ጋር የተያያዙ ሌሎች ተጠቃሚዎችን አዲስ መብቶችን የመመደብ መብት አለው.
  2. የስርዓቱ አይነት የውሂብ የቅጂ መብት ተብሎ የሚጠራው ነው. እንደዚህ ያሉ መብቶችን የተቀበሉ ተጠቃሚዎች በመረጃ ቋቱ ውስጥ የተለያዩ ነገሮችን መፍጠር ይችላሉ።

የ SQL ታሪክ

ይህ ቋንቋ በ IBM የምርምር ላቦራቶሪ በ1970 የተፈጠረ ነው። በዚያን ጊዜ ስሙ ትንሽ የተለየ ነበር (SEQUEL)፣ ከጥቂት አመታት አጠቃቀም በኋላ ግን ተቀይሯል፣ በትንሹ አጠረ። ይህ ሆኖ ሳለ፣ ዛሬም ቢሆን በዓለም ላይ የታወቁ የፕሮግራም ባለሙያዎች ብዙዎች ስሙን በአሮጌው ዘመን ይጠሩታል። SQL የተፈጠረው በአንድ ነጠላ ዓላማ ነው - በጣም ቀላል የሆነ ቋንቋ ለመፍጠር ተራ የኢንተርኔት ተጠቃሚዎች እንኳን ያለምንም ችግር ሊማሩበት ይችላሉ። የሚያስደንቀው እውነታ በዚያን ጊዜ SQL ብቸኛው እንዲህ ዓይነት ቋንቋ አልነበረም. በካሊፎርኒያ ሌላ የስፔሻሊስቶች ቡድን ተመሳሳይ የሆነ ኢንግሬስ ፈጠረ, ነገር ግን በጭራሽ አልተስፋፋም. ከ1980 በፊት፣ አንዳቸው ከሌላው ትንሽ የሚለያዩ በርካታ የ SQL ልዩነቶች ነበሩ። ግራ መጋባትን ለመከላከል በ 1983 መደበኛ ስሪት ተፈጠረ, ይህም ዛሬም ተወዳጅ ነው. የSQL ኮርሶች "ለዱሚዎች" ስለ አገልግሎቱ ብዙ እንዲማሩ እና በጥቂት ሳምንታት ውስጥ ሙሉ ለሙሉ እንዲያጠኑ ያስችሉዎታል።

SQL ቋንቋ፡ የውሂብ አያያዝ

በዚህ ትምህርት ውስጥ...

· የመዋቅር መጠይቅ ቋንቋ (SQL) ዓላማ እና ከመረጃ ቋቶች ጋር ሲሰራ ልዩ ሚናው ።

· የ SQL ቋንቋ አመጣጥ እና እድገት ታሪክ።

· የ SQL መግለጫዎችን መጻፍ.

· የ SELECT መግለጫን በመጠቀም መረጃን ከመረጃ ቋቶች ሰርስሮ ማውጣት።

በሚከተሉት ባህሪዎች ተለይተው የሚታወቁ የ SQL መግለጫዎች ግንባታ

· የተለያዩ ሁኔታዎችን የሚያሟሉ ረድፎችን ለመምረጥ WHERE ግንባታን በመጠቀም;

· ORDER BY construct በመጠቀም የጥያቄ ውጤቶችን መደርደር;

· የ SQL ድምር ተግባራትን መጠቀም;

· GROUP BY construct በመጠቀም የተመረጡ መረጃዎችን ማቧደን;

· ንዑስ መጠይቆችን መጠቀም;

· የጠረጴዛ መጋጠሚያዎችን በመጠቀም;

· የክዋኔዎች አተገባበር ከስብስብ (UNION ፣ INTERSECT ፣ በስተቀር)።

· INSERT፣ UPDATE እና DELETE መግለጫዎችን በመጠቀም በመረጃ ቋቱ ላይ ለውጦችን ማድረግ።

በተዛማጅ ዳታ ሞዴል እድገት ምክንያት ከተፈጠሩት ቋንቋዎች አንዱ SQL ነው፣ እሱም አሁን በጣም ተስፋፍቷል እና ለግንኙነት የውሂብ ጎታዎች መደበኛ ቋንቋ ሆኗል። የ SQL ቋንቋ ደረጃ በዩኤስ ብሄራዊ ደረጃዎች ኢንስቲትዩት (ANSI) በ1986 የተለቀቀ ሲሆን እ.ኤ.አ. በአሁኑ ጊዜ፣ የSQL ቋንቋ በመቶዎች በሚቆጠሩ የተለያዩ የ DBMS ዓይነቶች ይደገፋል፣ ለተለያዩ የኮምፒዩተር መድረኮች ከግል ኮምፒዩተሮች እስከ ዋና ፍሬም ድረስ።

ይህ ንግግር የSQLን ISO ትርጉም ይጠቀማል።

የ SQL ቋንቋ መግቢያ

በዚህ ክፍል የ SQL ቋንቋን ዓላማ እንመለከታለን፣ ከታሪኩ ጋር ለመተዋወቅ እና አሁን ለዳታቤዝ አፕሊኬሽኖች በጣም አስፈላጊ የሆነበትን ምክንያት እንመረምራለን።

የ SQL ቋንቋ ዓላማ

ከመረጃ ቋቶች ጋር ለመስራት የተነደፈ ማንኛውም ቋንቋ ለተጠቃሚው የሚከተሉትን ችሎታዎች መስጠት አለበት።

· የውሂብ ጎታዎችን እና ሰንጠረዦችን ስለ መዋቅራቸው ሙሉ መግለጫ መፍጠር;



· ከሠንጠረዦች ውስጥ መረጃን ማስገባት, ማሻሻል እና መሰረዝን የመሳሰሉ መሰረታዊ የመረጃ አያያዝ ስራዎችን ማከናወን;

· ቀላል እና ውስብስብ ጥያቄዎችን ያከናውኑ።

በተጨማሪም የመረጃ ቋቱ ቋንቋ ከላይ የተጠቀሱትን ችግሮች በሙሉ በተጠቃሚው በኩል በትንሹ ጥረት መፍታት አለበት እና የትእዛዙ አወቃቀር እና አገባብ በጣም ቀላል እና ለመማር ቀላል መሆን አለበት።

እና በመጨረሻም ቋንቋው ሁለንተናዊ መሆን አለበት, ማለትም. የተወሰነ ደረጃ ያሟሉ፣ ይህም ከአንድ ዲቢኤምኤስ ወደ ሌላ ሲንቀሳቀሱ ተመሳሳይ አገባብ እና የትዕዛዝ መዋቅርን መጠቀም ያስችላል። ዘመናዊው የSQL ቋንቋ መስፈርት ሁሉንም እነዚህን መስፈርቶች ያሟላል።

SQL የውሂብ ትራንስፎርሜሽን ቋንቋ ምሳሌ ነው፣ ወይም የግቤት ውሂብን ወደሚፈለገው የውፅአት ቅጽ ለመቀየር ከጠረጴዛዎች ጋር ለመስራት የተነደፈ ቋንቋ ነው። በ ISO ደረጃ የተገለጸው የ SQL ቋንቋ ሁለት ዋና ዋና ክፍሎች አሉት፡-

· የውሂብ ፍቺ ቋንቋ (ዲ ዲ ኤል), የውሂብ ጎታ አወቃቀሮችን ለመወሰን እና የውሂብ መዳረሻን ለመቆጣጠር የተነደፈ;

· የውሂብ ማዛመጃ ቋንቋ (ዲኤምኤል)፣ መረጃን ለማውጣት እና ለማዘመን የተነደፈ።

የ SQL3 መስፈርት ከመምጣቱ በፊት SQL መረጃን ለመወሰን እና ለመቆጣጠር ትዕዛዞችን ብቻ አካቷል; የስሌቶችን ሂደት ለመቆጣጠር ምንም አይነት ትእዛዝ አልነበረውም። በሌላ አነጋገር፣ ይህ ቋንቋ ካልነበረው ... ከዚያ ... ሌላ፣ ሂድ፣ አድርግ ... እያለ እና ሌሎች የስሌት ሂደቱን ሂደት ለመቆጣጠር የተነደፉ ሌሎች ትዕዛዞች አልነበሩትም። እንደነዚህ ያሉ ተግባራት በፕሮግራም ወይም በተግባራዊ ቁጥጥር ቋንቋዎች ወይም በይነተገናኝ በፕሮግራም መፍታት ነበረባቸው ። በዚህ አለመሟላት ምክንያት የኮምፒዩተር ሂደቱን ከማደራጀት አንጻር የ SQL ቋንቋን በሁለት መንገዶች መጠቀም ይቻላል. የመጀመሪያው በይነተገናኝ ስራን ያካተተ ሲሆን ተጠቃሚው ከተርሚናል የግለሰብ የSQL መግለጫዎችን የሚያስገባ ነው። ሁለተኛው የ SQL መግለጫዎችን ወደ የሥርዓት ቋንቋ ፕሮግራሞች መክተት ነበር።

የSQL3 ቋንቋ ጥቅሞች፣ መደበኛ ፍቺው በ1999 ተቀባይነት አግኝቷል፡

· የ SQL ቋንቋ ለመማር በአንጻራዊነት ቀላል ነው።

· የሥርዓት ያልሆነ ቋንቋ ነው፡ ስለዚህ ምን ዓይነት መረጃ ማግኘት እንዳለበት መግለጽ አለበት እንጂ እንዴት ሊገኝ እንደሚችል አይደለም። በሌላ አነጋገር የ SQL ቋንቋ የውሂብ መዳረሻ ዘዴዎችን መግለጽ አያስፈልገውም.

· ልክ እንደ አብዛኞቹ ዘመናዊ ቋንቋዎች፣ SQL መግለጫዎችን ለመጻፍ ነፃ ቅርጸትን ይደግፋል። ይህ ማለት እርስዎ በሚተይቡበት ጊዜ የነጠላ ኦፕሬተር አካላት በስክሪኑ ላይ ካሉ ቋሚ ቦታዎች ጋር አልተያያዙም።

· የትዕዛዝ አወቃቀሩ በቁልፍ ቃላቶች ስብስብ ይገለጻል, እነሱም ተራ የእንግሊዝኛ ቃላት ናቸው, ለምሳሌ CREATE TABLE - ሰንጠረዥ ይፍጠሩ, ያስገቡ - አስገባ, ይምረጡ - ይምረጡ.

ለምሳሌ፡-

ጠረጴዛ ፍጠር [ሽያጭ] ((ኤስ)፣ [የነገር ስም] VARCHAR(15)፣ [ዋጋ] አስርዮሽ (7፣2));

ወደ [ነገር] እሴቶች አስገባ ("SG16"፣ "ብራውን"፣ 8300);

ይምረጡ፣ [የነገር ስም]፣ [ወጪ];

ከ[ሽያጭ]

የት [ወጪ]> 10000;

· የ SQL ቋንቋን በተለያዩ ተጠቃሚዎች ማለትም የውሂብ ጎታ አስተዳዳሪዎች (ዲቢኤዎች)፣ የኩባንያ አስተዳደር ሰራተኞች፣ አፕሊኬሽን ፕሮግራመሮች እና ሌሎች በርካታ የመጨረሻ ተጠቃሚዎችን ጨምሮ የተለያዩ ምድቦች ሊጠቀሙበት ይችላሉ።

በአሁኑ ጊዜ፣ ለ SQL ቋንቋ እንደ መደበኛ ቋንቋ የሚገልጹት ዓለም አቀፍ መመዘኛዎች አሉ የግንኙነት ዳታቤዞችን መፍጠር እና ማቀናበር፣ እሱም በእርግጥ።

የ SQL ቋንቋ ታሪክ

የግንኙነት መረጃ ሞዴል ታሪክ እና በተዘዋዋሪ የ SQL ቋንቋ በ 1970 የጀመረው በኢ.ኤፍ. ኮድድ ሴሚናል ጽሑፍ በማተም በወቅቱ በሳን ሆሴ በሚገኘው የ IBM ኮርፖሬሽን የምርምር ላብራቶሪ ውስጥ ይሠራ ነበር። እ.ኤ.አ. በ 1974 ፣ በተመሳሳይ ላብራቶሪ ውስጥ ይሠራ የነበረው D. Chamberlain ፣ “Structured English Query Language” ወይም SEQUEL የተባለ የቋንቋ ፍቺ አሳተመ። የተሻሻለው የዚህ ቋንቋ እትም SEQUEL/2 በ1976 ተለቀቀ። በህጋዊ ምክንያቶች ስሙ ወደ SQL መቀየር ነበረበት - SEQUEL ምህጻረ ቃል አስቀድሞ በፊሎሎጂስቶች ጥቅም ላይ ውሏል። ግን እስካሁን ድረስ ብዙ ሰዎች የ SQL ምህፃረ ቃል "ተከታታይ" ብለው ይጠሩታል, ምንም እንኳን በይፋ "es-qu-el" ተብሎ ለማንበብ ቢመከርም.

እ.ኤ.አ. በ 1976 ፣ IBM በ SEQUEL/2 ቋንቋ ላይ የተመሠረተ “System R” የሚል ፕሮቶታይፕ DBMS አወጣ። የዚህ ሙከራ አላማ ተያያዥ ሞዴሉን ተግባራዊ ለማድረግ ያለውን አዋጭነት ለመፈተሽ ነው። ከሌሎች አወንታዊ ገጽታዎች መካከል የዚህ ፕሮጀክት በጣም አስፈላጊው የ SQL ቋንቋ እድገት ተደርጎ ሊወሰድ ይችላል ፣ ሆኖም ፣ የዚህ ቋንቋ ሥሮች ወደ SQUARE (Specifying Queries as Rational Expressions) ቋንቋ ይመለሳሉ። የSQUARE ቋንቋ የተዘጋጀው በእንግሊዝኛ በተቀረጹ ሐረጎች አማካይነት ተዛማጅ አልጀብራን ለማስፈጸም የምርምር መሣሪያ ነው።

በ1970ዎቹ መገባደጃ ላይ፣ አሁን ኦራክል ኮርፖሬሽን የሆነው ኩባንያ Oracle DBMS ን አውጥቷል። ምናልባት ይህ SQL ቋንቋን በመጠቀም የተገነባ የግንኙነት ዲቢኤምኤስ የመጀመሪያው የንግድ ትግበራ ነው።

ትንሽ ቆይቶ የQUEL መጠይቅ ቋንቋን በመጠቀም INGRES DBMS ታየ።

ይህ ቋንቋ ከSQL የበለጠ የተዋቀረ ነበር፣ ነገር ግን የትርጓሜ ቃላቶቹ ከተራው እንግሊዘኛ ጋር እምብዛም አይቀራረቡም። በኋላ፣ SQL ለግንኙነት ዳታቤዝ መደበኛ ቋንቋ ሆኖ ሲወሰድ፣ INGRES DBMS ሙሉ በሙሉ ወደ እሱ ተለወጠ። በ1981፣ IBM SQL/DS (ለDOS/VSE አካባቢ) የተባለውን የመጀመሪያውን የንግድ ግንኙነት DBMS አውጥቷል። እ.ኤ.አ. በ 1982 የዚህ ስርዓት ስሪት ለ VM / CMS አከባቢ ተለቀቀ ፣ እና በ 1983 - ለ MVS አከባቢ ፣ ግን በ DB2 ስም።

እ.ኤ.አ. በ 1982 የዩኤስ ብሄራዊ ደረጃዎች ኢንስቲትዩት (ANSI) ከ IBM ኮርፖሬሽን በተቀበሉት የፅንሰ-ሀሳብ ሰነዶች በመመራት በ Relation Database Language (RDL) ላይ ሥራ ጀመረ። እ.ኤ.አ. በ 1983 የአለም አቀፍ ደረጃ አሰጣጥ ድርጅት (አይኤስኦ) በዚህ ሥራ ውስጥ ተካቷል ። የሁለቱም ድርጅቶች የጋራ ጥረት የ SQL ቋንቋ ደረጃን በማውጣት አብቅቷል። RDL የሚለው ስም በ1984 ተትቷል፣ እና ረቂቅ ቋንቋው አሁን ካሉ የSQL ቋንቋ አተገባበር ጋር እንዲቀራረብ ተለወጠ።

እ.ኤ.አ. በ 1987 በ ISO የተለቀቀው የመጀመሪያው የስታንዳርድ ስሪት የትችት ማዕበልን ስቧል። በተለይም በዚህ አካባቢ ታዋቂው ተመራማሪ ዴት ስታንዳርድ የማጣቀሻ ኢንተግሪቲ መቆጣጠሪያዎችን እና አንዳንድ ተያያዥ ኦፕሬተሮችን ጨምሮ ወሳኝ ተግባራትን እንዳስቀረ አመልክቷል።

በተጨማሪም ፣ የቋንቋውን ከመጠን ያለፈ ድግግሞሽ ገልፀዋል - ተመሳሳይ ጥያቄ በብዙ የተለያዩ ስሪቶች ሊፃፍ ይችላል። አብዛኛው ትችት ፍትሃዊ ነው ተብሎ የሚታወቅ ሲሆን ከመታተሙ በፊት አስፈላጊዎቹ ማስተካከያዎች ደረጃው ላይ ተደርገዋል። ሆኖም ደረጃውን በቶሎ መልቀቅ ይበልጥ አስፈላጊ ሆኖ በመገኘቱ ቋንቋው ራሱም ሆነ አፈጻጸሙ የበለጠ እንዲዳብር፣ የሚለያዩትን ሁሉንም ባህሪያት ከመጠበቅ ይልቅ የጋራ መሠረት ሆኖ እንዲያገለግል ተወስኗል። እንደ አስገዳጅነት የተቆጠሩት ባለሙያዎች ለተመሳሳይ ቋንቋ ተገልጸዋል.

እ.ኤ.አ. በ 1989 ISO የውሂብን ትክክለኛነት ተግባራትን የሚገልጽ የስታንዳርድ ማሻሻያ አሳተመ። እ.ኤ.አ. በ 1992 ፣ የመጀመሪያው በከፍተኛ ደረጃ የተሻሻለው የ ISO ደረጃ ፣ አንዳንድ ጊዜ SQL2 ወይም SQL-92 ፣ ተለቀቀ። ምንም እንኳን አንዳንድ ተግባራቶቹ ለመጀመሪያ ጊዜ በዚህ መስፈርት ውስጥ የተገለጹ ቢሆንም፣ ብዙዎቹ ቀድሞውኑ በሙሉ ወይም በከፊል በአንድ ወይም ከዚያ በላይ በሆኑ የSQL ቋንቋ የንግድ ትግበራዎች ተተግብረዋል።

እና ቀጣዩ የስታንዳርድ ስሪት በተለምዶ SQL3 ተብሎ የሚጠራው በ1999 ብቻ ተለቀቀ። ይህ ስሪት ለነገር-ተኮር የውሂብ አስተዳደር ባህሪያት ተጨማሪ ድጋፍ ይሰጣል።

በንግድ አተገባበር ገንቢዎች ወደ ቋንቋው ደረጃ የሚጨመሩ ተግባራት ቅጥያ ይባላሉ። ለምሳሌ፣ የ SQL ቋንቋ መስፈርት በመረጃ ቋቶች ውስጥ ሊቀመጡ የሚችሉ ስድስት የተለያዩ የውሂብ አይነቶችን ይገልጻል። በብዙ አተገባበር፣ ይህ ዝርዝር በተለያዩ ቅጥያዎች ተሟልቷል። እያንዳንዱ የቋንቋ አተገባበር ዘዬ ይባላል። ሙሉ በሙሉ ተመሳሳይ የሆኑ ሁለት ዘዬዎች የሉም፣ እና በአሁኑ ጊዜ የ ISO መስፈርትን ሙሉ በሙሉ የሚያከብር ዘዬ የለም።

ከዚህም በላይ የውሂብ ጎታ አዘጋጆች በስርዓታቸው ላይ አዳዲስ ተግባራትን ሲጨምሩ፣ የSQL ዘዬዎቻቸውን ያለማቋረጥ በማስፋፋት ግለሰባዊ ዘዬዎች አንዳቸው ከሌላው የበለጠ እንዲለያዩ ያደርጋሉ። ሆኖም፣ የSQL ቋንቋ መሰረታዊ እምብርት በሁሉም አተገባበር ላይ ብዙ ወይም ያነሰ ደረጃውን የጠበቀ ሆኖ ይቆያል።

ምንም እንኳን የ SQL ቋንቋ የመጀመሪያ ፅንሰ-ሀሳቦች በ IBM የተገነቡ ቢሆኑም ፣ አስፈላጊነቱ ብዙም ሳይቆይ ሌሎች ገንቢዎች የራሳቸውን አተገባበር እንዲፈጥሩ አነሳስቷቸዋል። በአሁኑ ጊዜ የSQL ቋንቋን በመጠቀም የተገነቡ በመቶዎች የሚቆጠሩ ምርቶች በገበያ ላይ ይገኛሉ፣ እና ተጨማሪ እና ተጨማሪ አዳዲስ ስሪቶች ስለመለቀቁ ያለማቋረጥ እንሰማለን።

የ SQL ቋንቋ ተግባር

የ SQL ቋንቋ ዋና ተግባር ከዚህ በታች ተሰጥቷል።

የውሂብ ፍቺ.ይህ የ SQL ተግባር የሚደገፈው የውሂብ መዋቅር እና የግንኙነት ግንኙነቶች (ሰንጠረዦች) አደረጃጀት መግለጫ ነው. የውሂብ ጎታ ለመፍጠር፣ ሰንጠረዦችን ለመፍጠር እና መረጃን ለማግኘት ኦፕሬተሮች እሱን ለመተግበር የታቀዱ ናቸው።

የውሂብ ጎታ መፍጠር. አዲስ የውሂብ ጎታ ለመፍጠር የ DATABASE መግለጫን ይጠቀሙ። የመግለጫው መዋቅር የሚፈጠረውን የውሂብ ጎታ ስም ይገልጻል.

ጠረጴዛዎችን መፍጠር.የመሠረት ሠንጠረዡ የተፈጠረው የ TABLE መግለጫን በመጠቀም ነው። ይህ መግለጫ የመስክ ስሞችን፣ የውሂብ አይነቶችን እና ርዝመትን (ለአንዳንድ የውሂብ አይነቶች) ይገልጻል። SQL የሚከተሉትን የውሂብ አይነቶች ይጠቀማል።

ኢንቲጀር - ኢንቲጀር;

CHAR - የቁምፊ እሴት;

VARCHAR - የቁምፊ እሴት, ባዶ ያልሆኑ ቁምፊዎች ብቻ ይቀመጣሉ;

አስርዮሽ - የአስርዮሽ ቁጥር;

ተንሳፋፊ - ተንሳፋፊ ነጥብ ቁጥር;

ድርብ ትክክለኛነት - ድርብ ትክክለኛነት ተንሳፋፊ ነጥብ;

DATETIME - ቀን እና ሰዓት;

BOOL - የቦሊያን እሴት።

የሰንጠረዡ ፈጠራ መግለጫ በአምድ ዋጋዎች እና በጠረጴዛው ላይ ገደቦችን ይገልጻል. ሊሆኑ የሚችሉ ገደቦች በሰንጠረዥ ውስጥ ይታያሉ. 4.8

ሠንጠረዥ 4.8 በተወሰነው መረጃ ላይ ገደቦች

ለተዛማጅ የውሂብ ሞዴል የውጭ ቁልፍን (FOREIGNKEY) መግለጽ አስፈላጊ ነው። የውጭ ቁልፎችን በሚያውጁበት ጊዜ በአምዱ ላይ ተገቢ ገደቦችን ማድረግ አለብዎት ፣ ለምሳሌ ባዶ አይደለም ።

በSQL መግለጫ ውስጥ፣ CHECK የውሂብን ትክክለኛነት የሚያረጋግጡ የትርጉም ገደቦችን ያሳያል፣ ለምሳሌ ለአንድ የተወሰነ አምድ ትክክለኛ እሴቶች ስብስብ።

የፍጠር ሰንጠረዥ መግለጫን በተመሳሳይ ጠረጴዛ ላይ ከአንድ ጊዜ በላይ መጠቀም አይችሉም። ከተፈጠረ በኋላ በትርጉሙ ውስጥ የተሳሳቱ ነገሮች ከተገኙ፣ የALTER TABLE መግለጫን በመጠቀም ለውጦችን ማድረግ ይቻላል። ይህ መግለጫ የነባር ሠንጠረዥን አወቃቀር ለመለወጥ የተነደፈ ነው-በቀድሞው ሰንጠረዥ ላይ መስክን ማስወገድ ወይም ማከል ይችላሉ።

የመረጃ አያያዝ. SQL አንድ ተጠቃሚ ወይም አፕሊኬሽን ፕሮግራም አዲስ ውሂብ በማስገባት፣ ያለውን ውሂብ በማጥፋት ወይም በማስተካከል የውሂብ ጎታውን ይዘት እንዲቀይር ይፈቅዳል።

አዲስ ውሂብ በማስገባት ላይረድፎችን ወደ ዳታቤዝ የማከል ሂደት ነው እና የ INSERT መግለጫን በመጠቀም ይከናወናል።

የውሂብ ማሻሻያበአንድ ወይም ከዚያ በላይ በሆኑ የሠንጠረዥ አምዶች ውስጥ የእሴቶች ለውጦችን ያካትታል እና የዝማኔ መግለጫን በመጠቀም ይከናወናል። ለምሳሌ፥

መጠን አቀናብር=መጠን+1000.00

የት መጠን>0

ረድፎችን በማስወገድ ላይየ DELETE መግለጫን በመጠቀም ከጠረጴዛ። የኦፕሬተር አገባብ የሚከተለው ነው፡-

ከጠረጴዛ

የ WHERE አንቀጽ አማራጭ ነው፣ ነገር ግን ካልተካተተ፣ በሰንጠረዡ ውስጥ ያሉት ሁሉም ግቤቶች ይሰረዛሉ። የትኞቹ መዝገቦች እንደሚሰረዙ አስቀድመው ለማረጋገጥ የ SELECT መግለጫን ከ DELETE መግለጫ ጋር ተመሳሳይ በሆነ አገባብ መጠቀም ጠቃሚ ነው።

የውሂብ ታማኝነትን ማረጋገጥ.የSQL ቋንቋ በትክክል የተወሳሰቡ የአቋም ገደቦችን እንዲገልጹ ይፈቅድልዎታል፣የእነሱ እርካታ ለሁሉም የውሂብ ጎታ ማሻሻያዎች የሚረጋገጥ ይሆናል። የግብይቶችን ውጤት መከታተል ፣የተከሰቱ ስህተቶችን ማቀናበር እና ትይዩ ስራዎችን ከብዙ መተግበሪያዎች ወይም ተጠቃሚዎች ዳታቤዝ ጋር ማስተባበር በ COMMIT (የአሁኑን ግብይት በተሳካ ሁኔታ መጠናቀቁን እና የአዲሱን መጀመሪያ መጀመሩን ይመዘግባል) እና ROLLBACK (ፍላጎት) ይሰጣል። ለመመለሻ - የውሂብ ጎታውን ሁኔታ ወደ ግብይቱ መጀመሪያ በራስ ሰር ወደነበረበት መመለስ) ኦፕሬተሮች።

የውሂብ ናሙናከ SELECT መግለጫ ጋር የሚዛመድ በጣም አስፈላጊ ከሆኑ የውሂብ ጎታ ተግባራት አንዱ ነው. ኦፕሬተሩን የመጠቀም ምሳሌ ቀደም ባለው ክፍል ውስጥ ተብራርቷል.

በSQL ውስጥ፣ የጎጆ መጠይቆችን (ንዑስ መጠይቆችን) መፍጠር ይችላሉ። ንዑስ መጠይቆችን በመጠቀም በተሻለ ሁኔታ የሚተገበሩ አንዳንድ ዓይነት መጠይቆች አሉ። እነዚህ ጥያቄዎች የሕልውና ማረጋገጫ የሚባሉትን ያካትታሉ። የሰባት ነጥብ ክፍል ስለሌላቸው ተማሪዎች መረጃ ማግኘት እንደምትፈልግ እናስብ። ባዶ ስብስብ ከተመለሰ, ይህ ማለት አንድ ነገር ብቻ ነው - እያንዳንዱ ተማሪ ቢያንስ አንድ እንደዚህ አይነት ክፍል አለው.

የማገናኘት ጠረጴዛዎች. የ SQL መግለጫዎች ከአንድ በላይ ሠንጠረዥ ላይ ውሂብ እንዲያነሱ ያስችሉዎታል። ይህንን ለማድረግ አንዱ መንገድ አንድ የጋራ መስክ በመጠቀም ጠረጴዛዎችን ማገናኘት ነው.

የ SELECT መግለጫ የአንድ የተወሰነ አምድ (መስክ) እሴቶችን በማዛመድ ላይ ገደብ መያዝ አለበት. ከዚያ የተጠቀሰው አምድ ተዛማጅ እሴቶች ከተዛማጅ ሠንጠረዦች የሚወጡባቸው ረድፎች ብቻ ናቸው። የአምዱ ስም ከሠንጠረዡ ስም ጋር ብቻ ይገለጻል; አለበለዚያ መግለጫው አሻሚ ይሆናል.

ሌሎች የጠረጴዛ ማገናኘት ዓይነቶችን መጠቀም ይችላሉ፡ የ INTER JOIN ኦፕሬተር (የውስጥ መቀላቀል) የተገኘው የመዝገቦች ስብስብ በተዛማጅ መስኮች ተዛማጅ እሴቶችን መያዙን ያረጋግጣል። የውጪ መጋጠሚያዎች (OUTER JOIN) በጥያቄው ውስጥ ሁሉንም ረድፎች ከአንድ ጠረጴዛ እና ከሌላው ጋር ተዛማጅ ረድፎችን እንዲያካትቱ ያስችልዎታል

የመዳረሻ መቆጣጠሪያ. SQL የውሂብ ጎታ ሂደትን በተለያዩ የመተግበሪያ ፕሮግራሞች ማመሳሰልን እና ያልተፈቀደ መዳረሻ መረጃን መጠበቅን ያረጋግጣል።

በባለብዙ ተጠቃሚ አካባቢ ውስጥ ያለው የውሂብ መዳረሻ ግራንት እና መሻር መግለጫዎችን በመጠቀም ቁጥጥር ይደረግበታል። በእያንዲንደ አረፍተ ነገር ውስጥ ተጠቃሚውን, ፍቃዶቹ ከተዘጋጁበት ጋር በተመሇከተ እቃውን (ሰንጠረዥ, እይታ) እና ፍቃዶቹን መግሇጽ ያስፈሌጋሌ. ለምሳሌ፣ የGRANT መግለጫ ለተጠቃሚ X ከ PRODUCT ሠንጠረዥ ውሂብን የማውጣት ችሎታ ይሰጠዋል፡

በምርት ላይ ለX ምርጫ ስጡ

የREVOKE መግለጫ ከዚህ ቀደም የተሰጡ ሁሉንም ፈቃዶች ይሽራል።

በመተግበሪያ ፕሮግራሞች ውስጥ SQL መክተት. እውነተኛ አፕሊኬሽኖች ብዙውን ጊዜ የSQL ኮድ በሚያመነጩ እና ወደ DBMS እንደ ASCII ጽሑፍ በሚያልፉ በሌሎች ቋንቋዎች ይፃፋሉ።

የ SQL ምርቶች የ IBM መስፈርት አብሮ የተሰራውን የSQL ቋንቋ አጠቃቀም ይቆጣጠራል። የአፕሊኬሽን ፕሮግራምን በሚጽፉበት ጊዜ ጽሑፉ ከዋናው የፕሮግራም አወጣጥ ቋንቋ (ለምሳሌ C, Pascal, Cobol, Fortran, Assembler) እና SQL ትዕዛዞች ልዩ ቅድመ ቅጥያ ያላቸው ትዕዛዞች ድብልቅ ነው. ExecSQL በSQL ግንባታ ውስጥ የአስተናጋጅ ቋንቋ ተለዋዋጮችን ለማስተናገድ የSQL መግለጫዎች መዋቅር ተዘርግቷል።



የ SQL ፕሮሰሰር የፕሮግራሙን አይነት በዋናው የፕሮግራም አወጣጥ ቋንቋ አዘጋጅ መስፈርቶች መሰረት ያስተካክላል። የአቀናባሪው ተግባር አንድን ፕሮግራም ከምንጩ ፕሮግራሚንግ ቋንቋ ወደ ማሽን ቋንቋ ቅርብ ወደሆነ ቋንቋ መተርጎም (መተርጎም) ነው። ከተጠናቀረ በኋላ የመተግበሪያው ፕሮግራም (መተግበሪያ) ገለልተኛ ሞጁል ነው።

SQL ዘዬዎች

ዘመናዊ ተዛማጅ ዲቢኤምኤስ ውሂብን ለመግለጽ እና ለመቆጣጠር የSQL ቋንቋ ዘዬዎችን ይጠቀማሉ። የውሂብ ጎታ እንዲፈጥሩ እና እንዲገልጹ የሚያስችልዎ የ SQL ቋንቋ ንዑስ ስብስብ DDL (የዳታ ፍቺ ቋንቋ) ይባላል።

መጀመሪያ የSQL ቋንቋ SEQUEL (የተዋቀረ የእንግሊዘኛ መጠይቅ ቋንቋ)፣ ከዚያም SEQUEL/2፣ እና በቀላሉ SQL ተብሎ ይጠራ ነበር። ዛሬ፣ SQL ለግንኙነት ዲቢኤምኤስዎች ትክክለኛ ደረጃ ነው።

የመጀመሪያው የቋንቋ መስፈርት በ1989 - SQL-89 ታየ እና በሁሉም የንግድ ግንኙነት ዲቢኤምኤስ የተደገፈ ነበር። በአጠቃላይ በተፈጥሮ ውስጥ እና ለሰፊ ትርጓሜ ተገዥ ነበር. የ SQL-89 ጥቅሞች ለናሙና እና መረጃን ለማዛባት የኦፕሬተሮች አገባብ እና የትርጓሜ ደረጃዎች ፣ እንዲሁም የመረጃ ቋቱን ትክክለኛነት ለመገደብ የሚረዱ ዘዴዎችን ማስተካከል ተደርጎ ሊወሰድ ይችላል። ሆኖም፣ እንደ የውሂብ ጎታ ንድፍ ማጭበርበር የመሰለ አስፈላጊ ክፍል ይጎድለዋል። የ SQL-89 መስፈርት አለመሟላት በ 1992 እንዲታይ አድርጓል. የሚቀጥለው የ SQL ቋንቋ ስሪት።

SQL2 (ወይም SQL-92) ሁሉንም አስፈላጊ ጉዳዮችን ከሞላ ጎደል ይሸፍናል፡ የውሂብ ጎታ ንድፍ ማጭበርበር፣ ግብይት እና የክፍለ ጊዜ አስተዳደር፣ የደንበኛ አገልጋይ አርክቴክቸር ወይም የመተግበሪያ ልማት መሣሪያዎች ድጋፍ።

የቋንቋው እድገት የሚቀጥለው ደረጃ የ SQL 3 ስሪት ነው ። ይህ የቋንቋው ስሪት በተቀሰቀሰ ዘዴ ፣ በዘፈቀደ የውሂብ ዓይነት እና በነገር ቅጥያ የተሞላ ነው።

በአሁኑ ጊዜ ሦስት የቋንቋ ደረጃዎች አሉ፡ ጀማሪ፣ መካከለኛ እና ሙሉ። ብዙ የዲቢኤምኤስ አምራቾች የራሳቸውን የSQL አተገባበር ይጠቀማሉ፣ ቢያንስ በተዛማጅ ANSI መስፈርት የመጀመሪያ ደረጃ ላይ በመመስረት እና ለተወሰነ ዲቢኤምኤስ የተወሰኑ ቅጥያዎችን ይይዛሉ። በሠንጠረዥ ውስጥ 4.9 የ SQL ዘዬዎች ምሳሌዎችን ይሰጣል።

ሠንጠረዥ 4.9 SQL ዘዬዎች

ዲቢኤምኤስ የጥያቄ ቋንቋ
ስርዓት R DBMS SQL
ዲቢ2 SQL
መዳረሻ SQL
SYBASE SQL በማንኛውም ቦታ Watcom-SQL
SYBASE SQL አገልጋይ ግብይት_SQL
የእኔ SQL SQL
ኦራክል PL/SQL

ነገር-ተኮር የውሂብ ጎታዎች የነገር መጠይቅ ቋንቋ OQL (የነገር መጠይቅ ቋንቋ) ይጠቀማሉ። የ OQL ቋንቋ በSQL2 ቋንቋ SELECT ትዕዛዝ ላይ የተመሰረተ እና ጥያቄን ወደ አንድ ነገር ወይም የነገሮች ስብስብ የመምራት ችሎታን እንዲሁም በአንድ መጠይቅ ውስጥ ዘዴዎችን የመጥራት ችሎታን አክሏል.

የብዙ ጥቅም ላይ የዋሉ SQL ዘዬዎች ተኳሃኝነት የዲቢኤምኤስ ተኳኋኝነትን ይወስናል። ስለዚህ፣ SYBASE SQL Anywhere DBMS ለዚህ ክፍል DBMS ከSYBASE SQL አገልጋይ DBMS ጋር በተቻለ መጠን ተኳሃኝ ነው። የዚህ ተኳኋኝነት አንዱ ገጽታ በ SYBASE SQL ውስጥ እንደዚህ ያለ የ SQL ቋንቋ ቀበሌኛ በየትኛውም ቦታ ያለው ድጋፍ ነው. ግብይት-SQL. ይህ ዘዬ በSYBASE SQL አገልጋይ ውስጥ ጥቅም ላይ ይውላል እና በSYBASE SQL Anywhere ውስጥ ከአገሬው የSQL ዘዬ ጋር ሊያገለግል ይችላል - Watcom-SQL.

የደህንነት ጥያቄዎች

1. ዲቢኤምኤስ እንዴት ሊመደብ ይችላል?

2. ምን ዓይነት የውሂብ ጎታ ሞዴሎች አሉ?

3. የመረጃ ሞዴሎች ዋና ዋና ነገሮች ምንድን ናቸው?

4. በተቋማት መካከል ምን አይነት ግንኙነቶች አሉ?

5. የ ER ንድፎች ምንድን ናቸው እና ለምን ጥቅም ላይ ይውላሉ?

6. የሰንጠረዡን መደበኛ አሰራር ሂደት ምን እንዲያደርጉ ይፈቅድልዎታል?

7. የዲቢኤምኤስ ቋንቋ እና ሶፍትዌር መሳሪያዎች ምን ምን ናቸው?

8. ምን ዓይነት MS Access DBMS ነው?

9. የ MS Access DBMS ዋና ነገሮች ምንድን ናቸው?

10. ዋናዎቹ የ SQL ኦፕሬተሮች ለምን ጥቅም ላይ ይውላሉ?

የፕሮግራም አወጣጥ ቋንቋ

SQL (የተዋቀረ የመጠይቅ ቋንቋ) ለግንኙነት የውሂብ ጎታዎች የውሂብ ጎታ አስተዳደር ቋንቋ ነው። SQL ራሱ የቱሪንግ የተሟላ የፕሮግራም አወጣጥ ቋንቋ አይደለም፣ ነገር ግን መስፈርቱ ተግባራቱን ወደ ሙሉ የፕሮግራም አወጣጥ ቋንቋ የሚያራዝም የሥርዓት ማራዘሚያዎችን ለመፍጠር ያስችላል።

ቋንቋው የተፈጠረው በ 1970 ዎቹ ውስጥ "SEQUEL" በሚል ስም ለሲስተም R የውሂብ ጎታ አስተዳደር ስርዓት (DBMS) የንግድ ምልክት ግጭቶችን ለማስወገድ "SQL" ተብሎ ተሰየመ። እ.ኤ.አ. በ 1979 ፣ SQL ለመጀመሪያ ጊዜ እንደ የንግድ ምርት ፣ Oracle V2 ታትሟል።

የመጀመሪያው የቋንቋ ደረጃ በ ANSI በ 1986 እና ISO በ 1987 ተቀባይነት አግኝቷል. ከዚያን ጊዜ ጀምሮ, በርካታ ተጨማሪ የስታንዳርድ ስሪቶች ተፈጥረዋል, አንዳንዶቹ የቀደመውን በጥቃቅን ልዩነቶች ይደግማሉ, ሌሎች ደግሞ ጉልህ የሆኑ አዳዲስ ባህሪያትን ያዙ.

ምንም እንኳን ደረጃዎች ቢኖሩም ፣ በጣም የተለመዱ የ SQL አተገባበርዎች በጣም ስለሚለያዩ ኮዱ ጉልህ ለውጦችን ሳያደርጉ ከአንድ የውሂብ ጎታ አስተዳደር ስርዓት ወደ ሌላው ሊተላለፉ አይችሉም። ይህ የሆነበት ምክንያት በደረጃው ርዝመት እና ውስብስብነት እንዲሁም በአንዳንድ አስፈላጊ የማስፈጸሚያ ቦታዎች ላይ ዝርዝር መግለጫ አለመኖር ነው.

SQL የተፈጠረው በተዛማጅ ዳታቤዝ ውስጥ ያለውን መረጃ ለማውጣት እና ለመቆጣጠር ቀላል፣ ደረጃውን የጠበቀ መንገድ ነው። በኋላ ላይ ከታሰበው በላይ ውስብስብ ሆነ እና ከዋና ተጠቃሚ መሣሪያ ይልቅ የገንቢ መሣሪያ ሆነ። በአሁኑ ጊዜ SQL (በአብዛኛው በOracle የተተገበረው) ከዳታቤዝ አስተዳደር ቋንቋዎች በጣም ተወዳጅ ሆኖ ይቆያል፣ ምንም እንኳን ብዙ አማራጮች አሉ።

SQL አራት የተለያዩ ክፍሎችን ያቀፈ ነው-

  1. የውሂብ ፍቺ ቋንቋ (ዲኤልኤል) በመረጃ ቋቱ ውስጥ የተከማቹ የውሂብ አወቃቀሮችን ለመወሰን ይጠቅማል። የዲዲኤል መግለጫዎች በመረጃ ቋቱ ውስጥ ያሉትን ነጠላ ነገሮች እንዲፈጥሩ፣ እንዲያሻሽሉ እና እንዲሰርዙ ያስችሉዎታል። ልክ የሆኑ የነገር ዓይነቶች ጥቅም ላይ በሚውሉት ዲቢኤምኤስ ላይ የሚመረኮዙ ሲሆን በተለምዶ የውሂብ ጎታዎችን፣ ተጠቃሚዎችን፣ ሰንጠረዦችን እና እንደ ሚናዎች እና ኢንዴክሶች ያሉ በርካታ ትንንሽ ደጋፊ ቁሶችን ያካትታሉ።
  2. የውሂብ መጠቀሚያ ቋንቋ (ዲኤምኤል) በመረጃ ቋቱ ውስጥ ያለውን ውሂብ ለማውጣት እና ለማሻሻል ይጠቅማል። የዲኤምኤል መግለጫዎች በሰንጠረዦች ውስጥ ውሂብ እንዲያነሱ፣ እንዲያስገቡ፣ እንዲያሻሽሉ እና እንዲሰርዙ ያስችሉዎታል። አንዳንድ ጊዜ የውሂብ ማግኛ ምርጫ መግለጫዎች የውሂብ ሁኔታን ስለማይቀይሩ እንደ ዲኤምኤል አካል አይቆጠሩም። ሁሉም የዲኤምኤል መግለጫዎች በባህሪያቸው ገላጭ ናቸው።
  3. የውሂብ መዳረሻ ፍቺ ቋንቋ (DCL) በመረጃ ቋቱ ውስጥ ያለውን የውሂብ መዳረሻ ለመቆጣጠር ይጠቅማል። የDCL መግለጫዎች በልዩ መብቶች ላይ ተፈጻሚ ይሆናሉ እና የተወሰኑ የዲዲኤል እና የዲኤምኤል መግለጫዎችን ለተወሰኑ የውሂብ ጎታ ዕቃዎች የመተግበር መብቶችን እንዲሰጡ እና እንዲሽሩ ያስችሉዎታል።
  4. የግብይት ቁጥጥር ቋንቋ (TCL) በመረጃ ቋቱ ውስጥ የግብይቶችን ሂደት ለመቆጣጠር ይጠቅማል። በተለምዶ የTCL መግለጫዎች በግብይት ወቅት የተደረጉ ለውጦችን ለማድረግ ቃል መግባት፣ ወደ ኋላ ለመመለስ መልሶ ማቋቋም እና ግብይቱን ወደ ብዙ ትናንሽ ክፍሎች ለመከፋፈል ማስቀመጥን ያካትታሉ።

SQL ገላጭ ፕሮግራሚንግ ምሳሌን እንደሚተገብር ልብ ሊባል ይገባል፡ እያንዳንዱ መግለጫ የሚፈለገውን ተግባር ብቻ ይገልፃል፣ እና DBMS እንዴት እንደሚፈጽም ውሳኔ ይሰጣል፣ ማለትም። አንድን ድርጊት ለመፈጸም አስፈላጊ የሆኑትን የአንደኛ ደረጃ ስራዎች ያቅዳል እና ያከናውናል. ነገር ግን፣ የSQLን ችሎታዎች በብቃት ለመጠቀም ገንቢ ዲቢኤምኤስ እያንዳንዱን መግለጫ እንዴት እንደሚተነተን እና የአፈጻጸም እቅዱን እንደሚፈጥር መረዳት አለበት።

ምሳሌዎች፡-

ሰላም ዓለም!:

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

'Hello, World!' የሚለው ሕብረቁምፊ አብሮ ከተሰራው የጠረጴዛ ድርብ ተመርጧል፣ እሱም ለትክክለኛ ሠንጠረዦች መዳረሻ ለማይፈልጉ ጥያቄዎች ነው።

"ሄሎ, ዓለም!" የሚለውን ይምረጡ.

ከድርብ;

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

ፋብሪካ፡

  • የውሸት-አምድ ደረጃ ከ 1 እስከ 16 ቁጥሮችን የያዙ የውሸት ጠረጴዛዎችን t1 እና t2 ለመፍጠር ፣
  • ድምር የተግባር ድምር , ይህም የአንድን ስብስብ አካላት በግልፅ ሉፕ ሳይጠቀሙ ለማጠቃለል ያስችልዎታል,
  • እና የ ln እና exp ሒሳብ ተግባራት, ይህም ምርቱን ለመተካት የሚያስችልዎትን (የፋብሪካውን ስሌት ለማስላት ያስፈልጋል) በድምር (በ SQL የቀረበ).

መስመር "0! = 1" በተፈጠረው የረድፎች ስብስብ ውስጥ አይካተትም, ምክንያቱም ln(0)ን ለመገምገም መሞከር ለየት ያለ ነው።

ፊቦናቺ ቁጥሮች:

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

SQL ቀለበቶችን ወይም ድግግሞሽን አይደግፍም ፣ እና ከተለያዩ ረድፎች በጠረጴዛ ወይም በጥያቄ ውስጥ ማገናኘት መደበኛ ድምር ተግባር አይደለም። ይህ ምሳሌ የሚከተሉትን ይጠቀማል:

  • የቢኔት ቀመር እና የሂሳብ ተግባራት ROUND, POWER እና SQRT nth Fibonacci ቁጥርን ለማስላት;
  • የውሸት-አምድ ደረጃ ከ 1 እስከ 16 ቁጥሮችን የያዘ የውሸት-ጠረጴዛ t1 ለመፍጠር;
  • አብሮ የተሰራ ተግባር SYS_CONNECT_BY_PATH ለተቀበሉት ቁጥሮች ትእዛዝ ለማገናኘት።

ምትክ ምረጥ (MAX (SYS_CONNECT_BY_PATH) (fib || ", " , "/")), "/" , "" ) || "..." ፋይብሊስት ከ ( SELECT n , fib , ROW_NUMBER () OVER (ትእዛዝ በ n ) r ከ ( n ን ይምረጡ , ክብ ((ኃይል ((1 + ካሬ (5)))) * 0 . 5, n ) - ኃይል ((1 - ካሬ (5)) * 0. 5, n )) / sqrt (5)) fib ከ (ደረጃ nን ከድርብ ማገናኛ በደረጃ ይምረጡ<= 16 ) t1 ) t2 ) START WITH r = 1 CONNECT BY PRIOR r = r - 1 ;

ሰላም ዓለም!:

ምሳሌ ለ Microsoft SQL Server 2005፣ Microsoft SQL Server 2008 R2፣ Microsoft SQL Server 2012፣ MySQL 5፣ PostgreSQL 8.4፣ PostgreSQL 9.1፣ sqlite 3.7.3

"ሄሎ, ዓለም!" የሚለውን ይምረጡ. ;

ከድርብ;

ምሳሌ ለ Microsoft SQL Server 2005፣ Microsoft SQL Server 2008 R2፣ Microsoft SQL Server 2012 ስሪቶች

ተደጋጋሚ የፋብሪካ ፍቺ ጥቅም ላይ ይውላል፣ በተደጋጋሚ መጠይቅ ይተገበራል። እያንዳንዱ የመጠይቅ መስመር ሁለት የቁጥር መስኮች n እና n! ይይዛል እና እያንዳንዱ ተከታይ መስመር ከቀዳሚው መረጃ በመጠቀም ይሰላል።

ኢንቲጀር ፋብሪካዎችን እስከ 20 ብቻ ነው ማስላት የሚችሉት። 21 ለማስላት ሲሞክሩ! ስህተቱ "የአርቲሜቲክ ትርፍ ፍሰት ስህተት" ይከሰታል, ማለትም. ቢት ፍርግርግ ሞልቷል.

ለትክክለኛ ቁጥሮች, ፋብሪካው 100 ነው! (ይህንን ለማድረግ በምሳሌው ውስጥ በ 3 ኛው መስመር ላይ ቢግቲንን በተንሳፋፊ መተካት ያስፈልግዎታል)

ፊቦናቺ ቁጥሮች:

ምሳሌ ለ Microsoft SQL Server 2005፣ Microsoft SQL Server 2008 R2፣ Microsoft SQL Server 2012 ስሪቶች

የFibonacci ቁጥሮች ተደጋጋሚ ውሳኔ ጥቅም ላይ ይውላል፣ በተደጋጋሚ መጠይቅ ይተገበራል። እያንዳንዱ የመጠይቅ መስመር በቅደም ተከተል ሁለት አጎራባች ቁጥሮችን ይይዛል, እና ቀጣዩ መስመር እንደ ቀዳሚው መስመር (የመጨረሻ ቁጥር, የቁጥሮች ድምር) ይሰላል. ስለዚህ, ከመጀመሪያው እና የመጨረሻው በስተቀር ሁሉም ቁጥሮች ሁለት ጊዜ ይታያሉ, ስለዚህ ውጤቱ የእያንዳንዱን መስመር የመጀመሪያ ቁጥሮች ብቻ ያካትታል.

ከድርብ;

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

ይህ ምሳሌ በOracle 10g ውስጥ የሚገኘውን የሞዴል ኦፕሬተር አጠቃቀም ያሳያል፣ ይህም የመጠይቅ ሕብረቁምፊዎች እንደ ድርድር አካላት እንዲታዩ ያስችላቸዋል። እያንዳንዱ መስመር ሁለት መስኮችን ይይዛል-የመስመር ቁጥር n እና ፋክቲካል ረ.

n ይምረጡ ||

ፊቦናቺ ቁጥሮች:

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

"! = " ||

ረ ፋብሪካ ከባለሁለት ሞዴል ሁሉንም የረድፎች ልኬት በ ( 0 መ) ይመልሳል ( 0 ረ ፣ 1 n ) ደንቦች ይደጋገማሉ ( 17 ) (f [ ተደጋጋሚ_ቁጥር ] = ዲኮድ (የድግግሞሽ_ቁጥር ፣ 0 ፣ 1 ፣ f [ ተደጋጋሚ_ቁጥር - 1 ] * ድግግሞሽ_ቁጥር) , n [የተደጋጋሚ_ቁጥር] = ድግግሞሽ_ቁጥር);

ከድርብ;

ይህ ምሳሌ በOracle 10g ውስጥ የሚገኘውን የሞዴል ኦፕሬተር አጠቃቀም ያሳያል፣ ይህም የመጠይቅ ሕብረቁምፊዎች እንደ ድርድር አካላት እንዲታዩ ያስችላቸዋል። እያንዳንዱ መስመር ሁለት መስኮችን ይይዛል-የፊቦናቺ ቁጥር ራሱ እና የሁሉም ቁጥሮች ውህደት ከሱ ያነሰ ወይም እኩል። በተመሳሳዩ መጠይቅ ውስጥ ቁጥሮችን ደጋግሞ ማገናኘት እንደ የተለየ ክዋኔ ከማዋሃድ ቀላል እና ፈጣን ነው።

ከፍተኛ(ዎች) ይምረጡ ||<= t2 . n group by t2 . n

ፊቦናቺ ቁጥሮች:

"፣ ..." ከ (ከሁለት ሞዴል s ምረጥ ሁሉንም የረድፎች ልኬት በ ( 0 መ) መለኪያዎች ይመልሱ ( cast ( " " as varchar2 (200 )) s , 0 f ) ሕጎች ይደጋገማሉ ( 16 ) ( f [ iteration_number ] = ዲኮድ (የድግግሞሽ_ቁጥር ፣ 0 ፣ 1 ፣ 1 ፣ 1 ፣ f [ ድግግሞሹ_ቁጥር - 1] + ረ [ ተደጋጋሚ ቁጥር - 2]) ፣ s [ ተደጋጋሚ_ቁጥር 1] ||. ወደ_ቻር (ረ [የተደጋጋሚ_ቁጥር])

ምሳሌ ለ MySQL 5 ስሪቶች

concat ( cast (t2 .n as char)፣ "!="፣ cast (exp (sum (log (t1. n ))) as char)) ከ( @ i : = @ i + 1 AS n ከሠንጠረዥ ምረጥ , ( @ i: = 0 ን ይምረጡ ) እንደ sel1 ገደብ 16) t1፣ (@ j: = @ j + 1 AS n ከሠንጠረዥ ይምረጡ፣ (@ j: = 0 ን ይምረጡ) እንደ sel1 ገደብ 16) t2 የት t1። n

ሰላም ዓለም!:

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

ምሳሌ ለ MySQL 5 ስሪቶች

እንደ mysql.help_topic ባሉ በማንኛውም ሊደርሱበት በሚችሉት ሠንጠረዥ TABLE ይተኩ።

ከድርብ;

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

concat (group_concat (f separator ", "), ", ...") ከ (@ f: = @ i + @ j as f ን ይምረጡ, @ i: = @ j, @ j: = @ f ከ TABLE (@ i: = 1, @ j: = 0 ን ይምረጡ) sel1 ገደብ 16) t

n ቁጥር ማወጅ: = 0;<= 16 ) loop dbms_output . put_line (n || "! = " || f ); n : = n + 1 ; f : = f * n ; end loop ; end ;

ፊቦናቺ ቁጥሮች:

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

ረ ቁጥር: = 1;

ጀምር (n

ይህ ምሳሌ የፊቦናቺ ቁጥሮች ተደጋጋሚ ውሳኔን ይጠቀማል። ቀድሞውኑ የተሰሉ ቁጥሮች በተለዋዋጭ የውሂብ መዋቅር ውስጥ ተከማችተዋል - የድርድር አናሎግ።

ምሳሌ ለ ስሪቶች Oracle 10g SQL፣ Oracle 11g SQL

ዓይነት ቬክተር የቁጥር ልዩነት (16) ነው;

ፋይብ ቬክተር: = ቬክተር ();

እኔ ቁጥር;

s varchar2 (100);

ፋይብ ይጀምሩ . ማራዘም (16);<0) и ничего — в трех остальных случаях. Результаты всех четырех запросов объединяются, чтобы получить окончательный результат.

ቀይር ክፍለ NLS_NUMERIC_CHARACTERS = ";< 0 ;