Professional Documents
Culture Documents
Amh SQL
Amh SQL
መጽሐፍ · ጥር 2016
ማጣቀሻ ያነባል።
1 141,465
1 ደራሲ፡-
ፈርናንዶ አልሜዳ
መገለጫ ይመልከቱ
ከዚህ ገጽ በኋላ ያሉት ሁሉም ይዘቶች የተጫኑት በፈርናንዶ አልሜዳ ነው። በሴፕቴምበር 17 ቀን 2017
ተግባራዊ SQL
መመሪያ ለ
ዝምድና
የውሂብ ጎታዎች
ፈርናንዶ አልሜዳ፣ ፒኤችዲ
ይህ መጽሐፍ አጭር የማጣቀሻ አጋዥ ስልጠና ይሰጣል
INESCTEC
ሲ አምፑስዳ FEUP
R ua D r . R orto F rias
4200 - 4 6 5 ፒ ኦርቶ
ፖርቹጋል
ቲኤል . + 3 5 1 2 2 2 0 9 4 0 0 0
F ax + 3 5 1 2 2 2 0 9 4 0 5 0
1/1 5/2 0 1 6
Machine Translated by Google
ዝርዝር ሁኔታ
ገጽ 2
Machine Translated by Google
ገጽ 3
Machine Translated by Google
የምስሎች ማውጫ
ምስል 1 - የሰንጠረዥ ምርቶች ይዘት …………………………………………. ................................................. 14
ምስል 22 - አጠቃላይ የምርት ብዛት, አማካይ ዋጋ, ከፍተኛ ዋጋ, አነስተኛ ዋጋ እና አጠቃላይ አክሲዮን
ያሳያል. ................................................. ................................................. 30
ገጽ 4
Machine Translated by Google
ገጽ 5
Machine Translated by Google
ምህጻረ ቃላት
CLI - የትዕዛዝ-መስመር በይነገጽ
I/O - ግቤት/ውፅዓት
ORA - Oracle
ገጽ 6
Machine Translated by Google
መዝገበ ቃላት
MySQL - MySQL በ Structured Query Language (SQL) ላይ የተመሠረተ የክፍት ምንጭ ግንኙነት የውሂብ ጎታ አስተዳደር
ሥርዓት (RDBMS) ነው።
SQL አገልጋይ - SQL አገልጋይ ከማይክሮሶፍት የመጣ የግንኙነት ዳታቤዝ አስተዳደር ስርዓት (RDBMS) ለድርጅት አካባቢ
የተነደፈ ነው።
ገጽ 7
Machine Translated by Google
1 መግቢያ
1.1 ዐውደ-ጽሑፍ
SQL ("ess-que-el" ይባላል) የተዋቀረ የመጠይቅ ቋንቋ ማለት ነው። SQL ከውሂብ ጎታ ጋር ለመገናኘት ይጠቅማል። እንደ ANSI
(የአሜሪካ ብሄራዊ ደረጃዎች ኢንስቲትዩት) ለግንኙነት ዳታቤዝ አስተዳደር ሥርዓቶች መደበኛ ቋንቋ ነው። የSQL መግለጫዎች በመረጃ ቋት
ላይ ያለ መረጃን ለማዘመን ወይም ከውሂብ ጎታ መረጃን ለማውጣት ያሉ ተግባራትን ለማከናወን ያገለግላሉ። SQL የሚጠቀሙ አንዳንድ
የተለመዱ ተዛማጅ የውሂብ ጎታ አስተዳደር ሥርዓቶች፡- Oracle፣ Sybase፣ Microsoft SQL Server፣ Access፣ Ingres፣ ወዘተ ናቸው።
የ SQL ስታንዳርድ በዓመታት ውስጥ ብዙ ለውጦችን አሳልፏል፣ ይህም ለደረጃው ብዙ አዳዲስ ተግባራትን ጨምሯል፣ ለምሳሌ
ለኤክስኤምኤል ድጋፍ፣ ቀስቅሴዎች፣ መደበኛ የቃላት ማዛመድ፣ ተደጋጋሚ መጠይቆች፣ ደረጃቸውን የጠበቁ ቅደም ተከተሎች እና ሌሎችም።
የ SQL ቋንቋ በበርካታ ክፍሎች ላይ የተመሰረተ ነው. ለ SQL ገንቢዎች ምቾት በተዛማጅ የውሂብ ጎታ አስተዳደር ስርዓቶች ውስጥ ሁሉም
አስፈላጊ የቋንቋ ትዕዛዞች ብዙውን ጊዜ የሚከናወኑት በተወሰነ የ SQL የትእዛዝ መስመር በይነገጽ (CLI) ነው። እነዚህ ትዕዛዞች በሚከተሉት
ቦታዎች ሊመደቡ ይችላሉ፡
• አገላለጾች - አገላለጾች አምዶችን እና የውሂብ ረድፎችን ያካተቱ scalar እሴቶችን ወይም ሰንጠረዦችን ሊያወጡ ይችላሉ።
• መግለጫዎች - መግለጫዎችን በመጠቀም ተጠቃሚ ግብይቶችን፣ የፕሮግራም ፍሰትን፣ ግንኙነቶችን፣ ክፍለ ጊዜዎችን ወይም
ምርመራዎችን መቆጣጠር ይችላል። በመረጃ ቋቶች ውስጥ የ SQL መግለጫዎች ከደንበኛ ፕሮግራም ወደ ዳታቤዝ ወደ
ሚቀመጡበት አገልጋይ ለመላክ ይጠቅማሉ። በምላሹ, አገልጋዩ የ SQL መግለጫዎችን ያስኬዳል እና ወደ ደንበኛ ፕሮግራም
ይመለሳል. ይህ ተጠቃሚዎች ከቀላል የመረጃ ግብአቶች እስከ ውስብስብ መጠይቆች ሰፊ የፈጣን የዳታ ማጭበርበር ስራዎችን
እንዲፈጽሙ ያስችላቸዋል።
ተማሪዎችን በ SQL መመሪያ አንደኛ ደረጃ አገባብ ለመምራት፣ ተዛማጅ ሞዴል ከዚህ በታች ቀርቧል።
ይህ የታቀደው የግንኙነት ሞዴል በ 3NF ውስጥ የተለመደ ነው እና በአራት ሰንጠረዦች የተዋቀረ ነው, አንደኛው በዋና ቁልፎቻቸው
(በተሰመረበት) እና የውጭ ቁልፎች በ "->" ምልክት ተለይተዋል.
ገጽ 8
Machine Translated by Google
ተያያዥ ሞዴሉ በአጠቃላይ በርካታ ምርቶች እና ደንበኛ ስላለው የኢኮሜርስ ኩባንያ ቀላል ሁኔታን ይገልጻል። እያንዳንዱ ደንበኛ በተለምዶ
በብዙ ምርቶች የተዋቀረ አዲስ ትዕዛዞችን መፍጠር ይችላል።
1.2 ዓላማዎች
ይህ ትንንሽ መፃህፍት በዩኒቨርሲቲ ውስጥ በስርዓተ-ትምህርት ክፍላቸው አንፃር SQL ለመማር ለሚፈልጉ የመጀመሪያ ዲግሪ ተማሪዎች
አጭር የማመሳከሪያ መመሪያ ለመስጠት አስቧል። መጽሐፉ ዋና ዋና የ SQL አገባብ ንጥሎችን (ዲዲኤል እና ዲኤምኤል) ያቀርባል
እንዲሁም በ MySQL, SQL Server ወይም Oracle ውስጥ ተዛማጅ የውሂብ ጎታዎችን ለመገንባት መወሰድ ያለባቸውን በጣም አስፈላጊ
የአገባብ መመሪያዎችን ያቀርባል. ይህ ትንንሽ መጽሐፍ ሙሉ የSQL ማጣቀሻ እንዲሆን አላሰበም፣ ነገር ግን በ SQL አገባብ በጣም ወሳኝ
ገጽታዎች ላይ ብቻ ያተኩራል። የDCL አገባብ በዚህ እትም አውድ ውስጥ አይታይም።
በሚቀጥሉት ምዕራፎች ውስጥ የሚታዩት ስክሪፕቶች የሚከተሉትን የውሂብ ጎታዎች በመጠቀም ሙከራዎች ነበሩ፡
MySQL 5.6;
• ምዕራፍ 2 "ሰንጠረዦችን ማወጅ" - በተዛማጅ የውሂብ ጎታዎች ውስጥ አዲስ ሰንጠረዦችን እንዴት ማወጅ እንደሚቻል አገባብ
ያቀርባል;
• ምዕራፍ 3 "መረጃ አስገባ" - አዲስ ውሂብ በግንኙነት ውስጥ ለማስገባት አገባብ ያቀርባል.
የውሂብ ጎታ;
• ምዕራፍ 4 "መረጃን አዘምን" - ቀደም ሲል በግንኙነት ዳታቤዝ ውስጥ የተከማቸውን መረጃ ለማዘመን አገባብ ያቀርባል;
• ምዕራፍ 5 "መረጃን ሰርዝ" - በግንኙነት ዳታቤዝ ውስጥ የተከማቸውን መረጃ ለመሰረዝ አገባብ ያቀርባል;
• ምዕራፍ 7 "የSQL መጠይቆች - መሰረታዊ መዋቅር" - የ SQL መጠይቅ እንዴት እንደተደራጀ እና እንደሚዋቀር ያሳያል;
• ምዕራፍ 8 "SQL ጥያቄዎች - ሕብረቁምፊዎችን ማወዳደር" - የሕብረቁምፊ ይዘቶችን እንዴት ማወዳደር እንደሚቻል ያሳያል
የ SQL አገባብ ብቻ በመጠቀም;
• ምዕራፍ 9 "የSQL መጠይቆች - የድምር ኦፕሬተሮች" - በ SQL ውስጥ ጠቃሚ የሆኑትን በጣም ተዛማጅነት ያላቸውን የስብስብ
ኦፕሬተሮችን ያሳያል ፣ ለምሳሌ AVG () COUNT ()
• ምዕራፍ 10 "የSQL መጠይቆች - Scalar Functions" - በጣም ጠቃሚ የሆኑትን የ scalar ተግባራትን ያቀርባል.
በ SQL ውስጥ የሚገኙት;
ገጽ 9
Machine Translated by Google
• ምዕራፍ 11 "የSQL መጠይቆች - ንጥረ ነገሮችን መቧደን" - የ GROUP BY አገባብ አጠቃቀምን ያቀርባል።
SQL;
• ምዕራፍ 12 "የSQL ጥያቄዎች - መረጃን ማዘዝ" - በ "ORDER BY" አገባብ ጥቅም ላይ ይውላል.
SQL;
• ምዕራፍ 14 "የSQL ጥያቄዎች - ንዑስ መጠይቆች" - ውስብስብ የ SQL መጠይቆችን አጠቃቀም ያሳያል።
የንዑስ መጠይቅ አቀራረብን መቀበል;
• ምዕራፍ 15 "SQL ጥያቄዎች - ኦፕሬተር "IN" እና "EXISTS" - ኦፕሬተርን በ ውስጥ እና ያለውን ጥቅም እና "IN" ወደ
"EXISTS" አቀራረብ እንዴት እንደሚቀይሩ ያሳያል;
• ምዕራፍ 16 "SQL ጥያቄዎች - ኦፕሬተር "ማንኛውም" እና "ሁሉም" - የእነዚህን ሁለት አንቀጾች አጠቃቀም ከንዑስ መጠይቆች
ጋር ያሳያል;
• ምዕራፍ 18 "SQL መጠይቆች - መቀላቀል" - የተለያዩ አይነት መጋጠሚያዎችን ማለትም የውስጥ መጋጠሚያዎች, የግራ ውጫዊ
መጋጠሚያዎች, የቀኝ ውጫዊ መጋጠሚያዎች እና ሙሉ ውጫዊ መጋጠሚያዎች አጠቃቀምን ያሳያል;
• ምዕራፍ 19 "የSQL መጠይቆች - እይታዎች" - በ SQL ውስጥ እይታዎችን የመፍጠር ሂደት እና እንዴት ያሳያል።
እነሱን ለመጥራት;
• ምዕራፍ 20 "SQL መጠይቆች - የስርዓት ውሂብ" - አንዳንድ የስርዓት ውሂብ ስራዎችን አጠቃቀም ያሳያል
የስርዓቱን ቀን እና የተመዘገበ ተጠቃሚን ለማግኘት;
• "Annex I - Script for MySQL Databases" - ሙሉውን የSQL ስክሪፕት ለ MySQL ያቀርባል።
የውሂብ ጎታ;
• "Annex II - Script for MS SQL Server Databases" - ለኤምኤስ ሙሉውን የSQL ስክሪፕት ያቀርባል።
SQL አገልጋይ ዳታቤዝ;
• "አባሪ III - ስክሪፕት ለ Oracle ዳታቤዝ" - ለ Oracle ሙሉውን SQL ስክሪፕት ያቀርባል
የውሂብ ጎታ.
ገጽ 10
Machine Translated by Google
2. ጠረጴዛዎችን ማወጅ
አዲስ የውሂብ ጎታ መተግበሪያ ሲፈጥሩ የመጀመሪያው እርምጃ ሠንጠረዦቹን የማወጅ ሂደት ነው.
በእኛ ምሳሌ ውስጥ እኛ የሚፈጠሩ 4 ሰንጠረዦች አሉን: ምርቶች, ትዕዛዞች, የትዕዛዝ ምርቶች እና ደንበኛ. በሰንጠረዡ ውስጥ ምርቶችን በመፍጠር
እንጀምራለን.
ሠንጠረዡ ምርቶች ኩባንያው በካታሎግ ውስጥ ያሉትን ሁሉንም ምርቶች ይመዘግባል. የዚህ ሰንጠረዥ አፈጣጠር ስክሪፕት ከዚህ በታች ተሰጥቷል.
ተመሳሳዩን ስክሪፕት ለ MySQL ፣ SQL አገልጋይ መጠቀም ይቻላል
እና Oracle DBMS.
ከዚያ ጠረጴዛውን እንፈጥራለን ደንበኞች. ልክ እንደ ቀደመው ምሳሌ ተመሳሳይ ስክሪፕት ለሶስቱም የውሂብ ጎታዎች (MySQL፣ SQL Server እና
Oracle) መጠቀም ይቻላል።
ከዚያ የጠረጴዛውን ትዕዛዝ እንፈጥራለን. ልክ እንደ በፊት የሁለቱም የውሂብ ጎታዎች ስክሪፕት አንድ አይነት ናቸው.
ገጽ 11
Machine Translated by Google
በመጨረሻም የትእዛዝ ምርቶች ስክሪፕት ቀርቧል። እዚህ በታች ያለው ስክሪፕት በ int() አይነት ምክንያት በ MySQL ውስጥ ብቻ ይሰራል።
በ SQL አገልጋይ ውስጥ እንዲሰራ ለማድረግ int() አይነት ለአስርዮሽ() መቀየር አለብን። ሙሉ የተስተካከለው ስክሪፕት ከዚህ በታች ቀርቧል።
ገጽ 12
Machine Translated by Google
ገጽ 13
Machine Translated by Google
3. ውሂብ አስገባ
በውሂብ ጎታ ውስጥ አዲስ መረጃ ማስገባት ሁለት የተለያዩ ግን ተመሳሳይ አቀራረቦችን በመከተል ሊከናወን ይችላል።
ለ MySQL ፣ SQL Server እና Oracle የውሂብ ጎታዎች ውሂብ ለማስገባት ስክሪፕቶች በትክክል ተመሳሳይ ናቸው።
ገጽ 14
Machine Translated by Google
አዲስ መረጃን በሰንጠረዥ "ትዕዛዞች" ላይ ለማስቀመጥ ከዚህ በታች ያለውን የውሂብ እሴቶችን የሚሰጥ ስክሪፕት እንጠቀማለን።
በሁሉም መስኮች.
በመጨረሻም፣ እያንዳንዱን ትዕዛዝ በተመለከተ መረጃን ለማካተት ከዚህ በታች ያለውን ስክሪፕት እንጠቀማለን። ይህ መረጃ
በሠንጠረዥ "ትዕዛዝ ምርቶች" ውስጥ ተከማችቷል.
ገጽ 15
Machine Translated by Google
ኮድ "1" እና "4" ያለው ትዕዛዝ ሁለት ምርቶች አሉት; ኮድ "5" ያለው ትዕዛዝ ሶስት ምርቶች አሉት; ኮድ "3" ያለው ትዕዛዝ 4
ምርቶች አሉት; በመጨረሻም "2" ኮድ ያለው ትዕዛዝ አንድ ምርት ብቻ ነው ያለው.
ከላይ ያለው ስክሪፕት ከተፈፀመ በኋላ የሠንጠረዡ "ትዕዛዝ ምርቶች" ይዘት በስእል 4 ውስጥ ተሰጥቷል.
ገጽ 16
Machine Translated by Google
4. መረጃን አዘምን
በጣም ጠቃሚ የሆነ ክዋኔ ቀዳሚ የገባውን ውሂብ ማዘመን ነው። ይህንን ተግባር ለማከናወን አገባብ "የዝማኔ ሠንጠረዥ" ነው. በአንዳንድ ሁኔታዎች
አገባቡ ትንሽ ሊለያይ ይችላል በሚቀጥሉት ምሳሌዎች እንደሚቀርበው።
በመጀመሪያው ሁኔታ በተመሳሳይ ሠንጠረዥ ውስጥ ያለውን የሌላ መስክ ዋጋ ግምት ውስጥ በማስገባት አንድ መስክ ብቻ
እናዘምነዋለን.
ምርቶችን አዘምን
አሃድ_ዋጋ = 1.99 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ይህ ስክሪፕት ከተፈጸመ በኋላ የእንቁላል ዋጋ 1.99 € ነው። የሌሎቹ የጠረጴዛዎች መስኮች ሳይነኩ ይቆያሉ.
ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ይህ ስክሪፕት ከተፈጸመ በኋላ ያለው ክምችት እና አነስተኛ የእንቁላል ክምችት ይቀየራል።
እስከ 25 እና 10 ድረስ.
ምርቶችን አዘምን
* 1.25
አሃድ_price = unit_price የት
መግለጫ = 'ሶዳ';
ይህ ስክሪፕት ከተፈጸመ በኋላ የሶዳ ምርት ክፍል ዋጋ በ 25% ይጨምራል.
ሁሉም የቀደሙት ስክሪፕቶች ከተፈጸሙ በኋላ የሠንጠረዡ "ምርቶች" ይዘት በስእል 5 ይታያል.
በመጨረሻም፣ በአራተኛው ሁኔታ የጴጥሮስን ቀን የመላኪያ ትዕዛዝ እናዘምነዋለን። ለዚያ, ሁለት ሰንጠረዦችን መጠቀም እና መድረስ አለብን:
"ትዕዛዞች" እና "ደንበኞች".
ትዕዛዞችን አዘምን
ቀን_ማድረስ = '2015-12-29' አዘጋጅ
የት Orders.cod_customer = (code_customer ምረጥ
ከደንበኞች
የት ስም = 'ጴጥሮስ');
ገጽ 17
Machine Translated by Google
ይህ ስክሪፕት ከተፈጸመ በኋላ፣ በጴጥሮስ የተደረጉ ሁሉም ትዕዛዞች የማስረከቢያ ቀን ታህሳስ 29 ቀን 2015 ይሆናል።
ከላይ ያለው ስክሪፕት በ MySQL ዳታቤዝ ውስጥ አይሰራም። በ MySQL ውስጥ እንዲሰራ ለማድረግ ትንሽ ማሻሻያ እናደርጋለን።
ገጽ 18
Machine Translated by Google
5. ውሂብ ሰርዝ
በSQL ውስጥ ያለው የመሰረዝ መመሪያ ከሠንጠረዥ ላይ መረጃን ለመሰረዝ ይጠቅማል። በጣም መሠረታዊው አገባብ ሁሉንም መረጃዎች
ከጠረጴዛ ላይ ለማጥፋት ይህንን መመሪያ መጠቀም ነው። ይህንን ተግባር ለማከናወን ያለው አገባብ ለሁሉም የውሂብ ጎታዎች (MySQL፣
SQL Server እና Oracle) ተመሳሳይ ነው።
ከደንበኞች ሰርዝ;
ወይም
ሰርዝ *
ከደንበኞች;
የቀረቡት ሁለቱ አገባቦች በተግባራዊነት እና በአፈጻጸም ረገድ እኩል ናቸው። በደንበኞች ሠንጠረዥ ውስጥ የሚገኙትን ሁሉንም መረጃዎች የመሰረዝ
ተግባር አለው.
የተወሰነውን ደንብ የሚያሟሉ በርካታ ንጥረ ነገሮችን መሰረዝ ከፈለግን "የት" የሚለውን አንቀጽ ማከል እንችላለን. አንድ ጠረጴዛን ብቻ የሚያካትት አንድ
ምሳሌ እዚህ እናሳያለን.
አሁን ብዙ ሠንጠረዦችን እና ንዑስ መጠይቆችን በመጠቀም "Delete From..." የሚለውን አሠራር እንዴት መጠቀም እንደሚቻል
ሁለት ምሳሌዎችን እንሰጣለን.
የቀደመው ስክሪፕት ከተፈጸመ በኋላ የሠንጠረዥ "ትዕዛዝ ምርቶች" ይዘት በስእል 8 ቀርቧል.
ገጽ 19
Machine Translated by Google
ምርቶቹ ለማብራሪያው መስክ ምንም ይዘት እንደሌላቸው ሁሉንም ከትዕዛዝ ምርቶች መሰረዝ ከፈለግን ከዚህ በታች ያለውን አካሄድ መከተል እንችላለን።
በመጨረሻም SQL ሁሉንም ረድፎች ከጠረጴዛ ላይ ለማስወገድ "Truncate" የሚለውን ትዕዛዝ ይሰጣል. ክዋኔው ወደ ኋላ
መመለስ አይቻልም እና ምንም ቀስቅሴዎች አይተኮሱም. በዚህ መልኩ፣ TRUCATE ፈጣን ነው እና አይጠቀምም።
እንደ DELETE ያህል ቦታ መቀልበስ፣ ግን በጥንቃቄ ጥቅም ላይ መዋል አለበት። እንዴት እንደሚጠቀሙበት ከዚህ በታች አንድ
ምሳሌ እንሰጣለን.
DROP (በሚቀጥለው ምዕራፍ የሚታየው) እና TRUNCATE የዲዲኤል ትዕዛዞች መሆናቸውን ማድመቅ አስፈላጊ ነው፣ ነገር ግን ሰርዝ የዲኤምኤል
ትዕዛዝ ነው። እንደዚያው፣ ሰርዝ ኦፕሬሽኖች ወደ ኋላ ሊገለበጡ (መቀልበስ ይችላሉ)፣ የ DROP እና TRUNCATE ስራዎች ግን ወደ ኋላ መመለስ
አይችሉም።
ገጽ 20
Machine Translated by Google
6. ጠረጴዛዎችን አስወግድ
ሰንጠረዡን ከዳታቤዝ ማውጣት በ SQL ውስጥ ካሉ ቀላሉ ስራዎች አንዱ ነው። ይሁን እንጂ መሆን የለበትም
ሠንጠረዥን ከሚሰርዘው "ሰርዝ ከ..." ከሚለው መመሪያ ጋር ይደባለቁ። ሠንጠረዥን ለማስወገድ
የውሂብ ጎታ "የመጣል ሠንጠረዥ..." የሚለውን ትዕዛዝ መጠቀም አለብን. ይህ መመሪያ በሶስቱም የውሂብ ጎታዎች (MySQL፣ SQL Server እና
Oracle) ውስጥ ይሰራል።
ገጽ 21
Machine Translated by Google
ሁለቱ የመጀመሪያ አንቀጾች ብቻ የግዴታ ናቸው ("ምረጥ" እና "ከ")። ሌሎቹ ንጥረ ነገሮች አማራጭ ናቸው.
በ SQL ውስጥ በጣም ጥቅም ላይ ከዋሉት ጥያቄዎች ውስጥ አንዱ ሁሉንም የሰንጠረዡን ይዘቶች ማሳየት ነው። ከታች ባለው ምሳሌ ላይ
እንደወደዱት መጠቀም ይቻላል.
ከደንበኞች * ይምረጡ;
ይህ መመሪያ ሁሉንም የጠረጴዛ ደንበኞች ይዘት ያሳያል። የሠንጠረዡን ሁሉንም ባህሪያት ያሳያል.
የደንበኞችን ሀገር ብቻ ለማሳየት ከፈለግን ከዚህ በታች እንደሚታየው በ Select clause ውስጥ ያለውን "ልዩ" የሚለውን መመሪያ መጠቀም እንችላለን
።
ገጽ 22
Machine Translated by Google
ይምረጡ *
ከምርቶች
Available_stock NULL ካልሆነ;
ይህ መመሪያ በመጋዘን ውስጥ ክምችት ያላቸውን ሁሉንም ምርቶች ያሳያል.
ከምርቶች
* ይምረጡ
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;
ይህ መመሪያ በመጋዘን ውስጥ የተከማቹ እና ዋጋ ከ 1€ በላይ የሆኑትን ሁሉንም ምርቶች ያሳያል። እንዲሁም በውጤቱ ውስጥ ዝቅተኛው_አክሲዮን
አወንታዊ የሆነውን ሁሉንም መስክ ያካትታል።
በ "ከ" አንቀጽ ውስጥ ከአንድ በላይ ሠንጠረዥ መጠቀም እንችላለን. ይህንን ሁኔታ ሁለት ምሳሌዎችን በመጠቀም እናሳያለን.
ገጽ 23
Machine Translated by Google
በመጨረሻም SQLን ከአንዳንድ መሰረታዊ የሂሳብ ስራዎች ጋር እንዴት እንደምንጠቀም እናሳያለን። ከታች ባለው ምሳሌ ውስጥ ኦፕሬተሩን "-"
በመጠቀም እንጀምራለን.
በሚቀጥለው ምሳሌ አንድ ቁጥር በሌላ (አንዳንድ ጊዜ ሞዱል ተብሎ የሚጠራው) ከተከፋፈለ በኋላ የቀረውን ለማግኘት ሃላፊነት ያለውን
የሞዱሎ አሠራር እንጠቀማለን.
ገጽ 24
Machine Translated by Google
ከላይ ያለው ስክሪፕት ለ MySQL እና Oracle የውሂብ ጎታዎች ብቻ ነው የሚሰራው። በSQL Server ውስጥ እንዲሰራ ለማድረግ የ"%"
ኦፕሬተርን መጠቀም አለብን፣ ልክ እንደሚከተለው።
ገጽ 25
Machine Translated by Google
ምረጥ * ከደንበኞች
የት ስም እንደ 'E%';
ይህ መመሪያ በ"ኢ" ፊደል የሚጀምር ስም ያላቸውን ደንበኞች ሁሉ ይመርጣል።
በሁለተኛው ምሳሌ ከስርዓተ-ጥለት በኋላ የዱር ምልክትን እንገልፃለን. መግለጫው ከቀዳሚው ጋር በጣም ተመሳሳይ ነው።
ምረጥ * ከደንበኞች
የት ስም እንደ '%a';
ይህ መመሪያ "ሀ" በሚለው ፊደል የሚያልቅ ስም ያላቸውን ደንበኞች ሁሉ ይመርጣል።
በሁለቱም ሁኔታዎች በመመሪያው የተመለሰው ብቸኛ መዝገብ ከዚህ በታች ባለው ምሳሌ ተሰጥቷል (ምስል 16)።
በሶስተኛው ምሳሌ ውስጥ ከስርዓተ-ጥለት በኋላ እና ከዚያ በፊት በአንድ ጊዜ የሚደረግ ምልክትን እንገልፃለን።
ምረጥ * ከደንበኞች
ገጽ 26
Machine Translated by Google
ምረጥ * ከደንበኞች
የት ስም እንደ '_lena';
ይህ መመሪያ "ሌና" የሚል ስም ያለው እና በማንኛውም ቁምፊ የሚጀምር ሁሉንም ደንበኞች ይመርጣል።
ምረጥ * ከደንበኞች
የት ስም እንደ 'E_e_a';
ይህ መመሪያ በ"E" የተጀመረውን ሕብረቁምፊ የያዘ ስም ያላቸውን ደንበኞች ከ"ኢ" ጋር እኩል የሆነ ሶስተኛው እና የመጨረሻው "ሀ" ጋር እኩል
ይመርጣል።
ገጽ 27
Machine Translated by Google
ዋጋውን በሁለት አስርዮሽ ቦታዎች ብቻ ማሳየት ከፈለግን የቀደመውን ትንሽ መለወጥ አለብን
መግለጫ.
የመጨረሻው ምሳሌ የAVG() ተግባርን እንደ ንዑስ መጠይቅ አካል አድርጎ ይጠቀማል።
ገጽ 28
Machine Translated by Google
MAX(ዩኒት_ዋጋ) እንደ ከፍተኛው ዋጋ፣ AVG(ክፍል_ዋጋ) እንደ አማካይ ዋጋ ከምርቶች ምረጥ፤ ይህ መመሪያ
ከፍተኛውን የአሃድ ዋጋ እና የሁሉም ምርቶች አማካኝ ዋጋ ይመልሳል።
ገጽ 29
Machine Translated by Google
ይህ መመሪያ የምርቶቹን ጠቅላላ ብዛት፣ አማካይ ዋጋ፣ ከፍተኛ ዋጋ፣ ትንሹን ዋጋ እና አጠቃላይ አክሲዮኖችን በአንድ ጊዜ ይመልሳል።
ምስል 22 - አጠቃላይ የምርት ብዛት, አማካይ ዋጋ, ከፍተኛ ዋጋ, አነስተኛ ዋጋ እና አጠቃላይ አክሲዮን ያሳያል
ገጽ 30
Machine Translated by Google
በመጀመሪያው ምሳሌ የ UCASE() እና LCASE() ተግባራትን በአንድ ጊዜ እንጠቀማለን። ሆኖም ግን, አንድ ተጨማሪ ጉዳይ አለ, ምክንያቱም
ለእያንዳንዱ የተለየ የውሂብ ጎታ የተለየ መግለጫ መጠቀም አለብን.
ለ MySQL መግለጫውን በማቅረብ እንጀምራለን.
UCASE (ስም) እንደ UPPERName ፣ LCASE (ስም) ከደንበኞች እንደ LOWERName ይምረጡ።
ይህ መመሪያ የደንበኞችን ስም እና ዝቅተኛ ስም በተመሳሳይ ጊዜ ይመልሳል።
የላይኛውን (ስም) እንደ UPPERName ፣ LOWER (ስም) እንደ LOWER ስም ከደንበኞች ይምረጡ።
ይህ መመሪያ የደንበኞችን ስም እና ዝቅተኛ ስም በተመሳሳይ ጊዜ ይመልሳል።
በሁለተኛው ምሳሌ የጽሑፍ መስክ መጠንን ለመመለስ የ LEN() ተግባርን እንጠቀማለን። ይህ ተግባር በ SQL አገልጋይ ዳታቤዝ ውስጥ ብቻ
ጥቅም ላይ ሊውል ይችላል።
በ MySQL እና Oracle የውሂብ ጎታዎች ውስጥ የ"LEN()" ተግባርን በ"LENGTH()" መተካት አለብን።
ተግባር.
ገጽ 31
Machine Translated by Google
በሶስተኛው ምሳሌ የክብ () ተግባርን እንጠቀማለን. የሚከተለው መግለጫ ለሶስቱ የውሂብ ጎታዎች ጥሩ ይሰራል.
ገጽ 32
Machine Translated by Google
የ"ቡድን በ..." መግለጫ ውጤቱን በአንድ ወይም በብዙ አምዶች ለመመደብ ከድምር ተግባራት ጋር አብሮ ጥቅም ላይ ይውላል። እዚህ የቡድን
መግለጫን በመጠቀም 2 ምሳሌዎችን እንሰጣለን.
ሁለተኛው ምሳሌ ከአንድ በላይ ጠረጴዛዎች የበለጠ ውስብስብ የአካል ብቃት እንቅስቃሴን ይሰጣል.
በመጨረሻው ምሳሌ የታዩትን ንጥረ ነገሮች ብዛት ለመገደብ የ"Having..." የሚለውን አንቀጽ እንጠቀማለን።
የ WHERE ቁልፍ ቃል ከድምር ተግባራት ጋር ጥቅም ላይ መዋል ባለመቻሉ "ያለው" የሚለው አንቀጽ ወደ SQL ታክሏል።
ገጽ 33
Machine Translated by Google
ገጽ 34
Machine Translated by Google
ይምረጡ *
ከደንበኞች
በስም ማዘዝ;
ይህ መመሪያ መዝገቦቹን በስም የሚያዝዙ ሁሉንም የደንበኞች ሠንጠረዥ አምዶች ይመርጣል (የወጣ ትእዛዝ)።
በሁለተኛው ምሳሌ አንድ አይነት ትዕዛዝ በኦፕሬሽን እንጠቀማለን አሁን ግን የተገላቢጦሽ ቅደም ተከተል እንጠቀማለን.
ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;
ይህ መመሪያ መዝገቦቹን በስም የሚያዝዙ ሁሉንም የደንበኞች ሠንጠረዥ አምዶች ይመርጣል (የወረደ ቅደም ተከተል)።
ገጽ 35
Machine Translated by Google
በ SQL ውስጥ ተጠቃሚው የመጀመሪያዎቹን n ንጥረ ነገሮች ብቻ እንዲመልስ የሚያስችል ጠቃሚ መግለጫ አለ። ይህ
አንቀጽ በሺዎች የሚቆጠሩ መዝገቦች ባሉባቸው ትላልቅ ጠረጴዛዎች ላይ በጣም ጠቃሚ ሊሆን ይችላል, ይህም በአፈፃፀም
ላይ ጥልቅ ተጽእኖ ሊኖረው ይችላል. ለእያንዳንዱ የውሂብ ጎታ አገባቡ የተለየ ነው።
በ MySQL ውስጥ ከዚህ በታች ያለውን አገባብ በመጠቀም ይህንን ክዋኔ ማከናወን ይቻላል.
ምረጥ *
ከደንበኞች
በስም ማዘዝ
ገደብ 3;
ይህ መመሪያ በስም የታዘዙትን ሁሉንም የደንበኞች ሰንጠረዥ ያሳያል። ሆኖም ግን, የመጀመሪያዎቹን ሶስት መዝገቦች ብቻ ያሳያል.
በ SQL አገልጋይ ውስጥ ከዚህ በታች ያለውን አገባብ በመጠቀም ይህንን ተግባር ማከናወን ይቻላል ።
*
ከፍተኛ 3 ን ይምረጡ
ከደንበኞች
በስም ማዘዝ;
ይህ መመሪያ በስም የታዘዙትን ሁሉንም የደንበኞች ሰንጠረዥ ያሳያል። ሆኖም ግን, የመጀመሪያዎቹን ሶስት መዝገቦች ብቻ ያሳያል.
በመጨረሻም ፣ በ Oracle ውስጥ ተመሳሳይ ክዋኔ ከዚህ በታች ያለውን አገባብ በመጠቀም ሊከናወን ይችላል።
ምረጥ *
ከደንበኞች
የት RowNum <= 3
በስም ማዘዝ;
ይህ መመሪያ በስም የታዘዙትን ሁሉንም የደንበኞች ሰንጠረዥ ያሳያል። ሆኖም ግን, የመጀመሪያዎቹን ሶስት መዝገቦች ብቻ ያሳያል.
ገጽ 36
Machine Translated by Google
• የመምረጥ አንቀፅ; • ሀ ከ
አንቀጽ;
• የቦታ አንቀጽ።
በተለምዶ ንዑስ መጠይቅ በ WHERE በሌላ SQL SELECT መግለጫ ውስጥ ይታከላል። የአገባብ ሞዴል በስእል 32 ይታያል።
ንኡስ መጠይቁ (የውስጥ መጠይቅ) ዋናው ጥያቄ (የውጭ መጠይቅ) ከመፈጸሙ በፊት አንድ ጊዜ ይሰራል።
ስለዚህም ዋናው መጠይቅ (የውጭ መጠይቅ) የንኡስ መጠይቁን ውጤት ይጠቀማል።
በዚህ ምዕራፍ አውድ ውስጥ የንዑስ መጠይቆችን የማደጎ ሁለት ምሳሌዎችን እንሰጣለን።
በመጀመሪያው ምሳሌ ውስጥ በውስጣዊ እና ውጫዊ መጠይቅ ውስጥ ሁልጊዜ አንድ አይነት ሰንጠረዥ እንጠቀማለን.
መግለጫ ይምረጡ
ከምርቶች
አሀድ_ዋጋ = (ከፍተኛውን(የክፍል_ዋጋ) ይምረጡ)
ከ ምርቶች); ይህ መመሪያ
ከፍተኛውን የንጥል ዋጋ ያለውን ምርት መግለጫ ያቀርባል.
ገጽ 37
Machine Translated by Google
ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
የት ቀን_መላኪያ > = '2015-12-26');
ይህ መመሪያ የትኛው የደንበኛ ኮድ ከፍተኛ እንደሆነ (በጣም የቅርብ ጊዜ) የደንበኛውን ስም ያቀርባል እና የትኛው የማስረከቢያ ቀን ከታህሳስ 26 ቀን
2015 ጋር እኩል ወይም የበለጠ የቅርብ ጊዜ እንደሆነ ትእዛዝ አለው።
ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);
ይህ መመሪያ በመረጃ ቋቱ ውስጥ የተቀመጠውን የመጨረሻውን ትዕዛዝ የማስረከቢያ ቀንን ያቀርባል ይህም የእቃው
ብዛት ከ3 በላይ ነው።
ገጽ 38
Machine Translated by Google
የሠንጠረዡን ይዘት ለመፈተሽ ኦፕሬተሩ "in" እና "አለ" በ SQL ውስጥ መጠቀም ይቻላል። ኦፕሬተሩ "in" ተጠቃሚዎች በ WHERE አንቀጽ
ውስጥ ብዙ እሴቶችን እንዲገልጹ ያስችላቸዋል።
ምረጥ *
ከትእዛዝ
ኮድ_ትዕዛዝ የት ነው (1፣ 3፣ 5);
ይህ ክዋኔ በሠንጠረዡ ውስጥ ያሉትን ሁሉንም የመዝገቦች መስኮች ያሳያል ከ "1" ወይም "3" ወይም "5" ጋር እኩል የሆነ የትዕዛዝ ኮድ
የያዘ።
ምረጥ *
ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');
ይህ ክዋኔ በሠንጠረዥ ውስጥ ያሉትን ሁሉንም የመዝገቦች መስኮች ያሳያል ከ "ፒተር" ወይም "ኤሌና" ጋር እኩል የሆነ ስም ያላቸው
ደንበኞች.
ኦፕሬተሩ "IN" በተጨማሪ ከንዑስ መጠይቆች ጋር መጠቀም ይቻላል. የዚህ ሁኔታ አንድ ምሳሌ ከዚህ በታች ተሰጥቷል.
ምረጥ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);
ይህ ክዋኔ በሠንጠረዡ ውስጥ ቀድሞውኑ ትዕዛዝ ያላቸውን ሁሉንም ደንበኞች ያሳያል. ኦፕሬተሩ "IN" ከትዕዛዝ ሠንጠረዥ ውስጥ ብዙ እሴቶችን
ለማምጣት ይጠቅማል።
ገጽ 39
Machine Translated by Google
ኦፕሬተሮች "IN" እና "EXISTS" ተመሳሳይ ተግባር ይሰጣሉ፣ ግን አገባቡ ትንሽ የተለየ ነው።
EXISTS የንዑስ ጥያቄ ውጤት መኖሩን ያረጋግጣል። የEXISTS ንዑስ መጠይቅ ንዑስ መጠይቁ ቢያንስ አንድ ረድፍ ያመጣ እንደሆነ ይሞክራል። ምንም
ውሂብ ካልተመለሰ ይህ ኦፕሬተር 'FALSE' ይመልሳል።
የ"EXISTS" ኦፕሬተርን አጠቃቀም ለማሳየት ከዚህ በፊት የነበረውን ምሳሌ እንጠቀማለን፣ አሁን ግን ከ "IN" ይልቅ "EXISTS" እንጠቀማለን።
ምረጥ *
ከደንበኞች ሲ
የት አለ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች O
የት C.cod_customer = O.cod_customer);
ይህ ክዋኔ በሠንጠረዡ ውስጥ ቀድሞውኑ ትዕዛዝ ያላቸውን ሁሉንም ደንበኞች ያሳያል. ኦፕሬተሩ "EXISTS" ትእዛዝ ያላቸውን ደንበኞች ሁሉ የደንበኞችን
ኮድ ለማውጣት ይጠቅማል።
ሁለቱም ኦፕሬተሮች "IN" እና "EXISTS" ከ "NOT" ቅድመ ቅጥያ ጋር መጠቀም ይቻላል. የእንደዚህ አይነት ሁኔታ
ምሳሌ ከዚህ በታች ተሰጥቷል.
ገጽ 40
Machine Translated by Google
ኦፕሬተሩ "ማንኛውም" ከአንድ ዝርዝር ውስጥ ካለው እያንዳንዱ እሴት ጋር ያወዳድራል ወይም ከጥያቄ የተገኘውን ውጤት
ያወዳድራል እና የውስጥ መጠይቅ ውጤት ቢያንስ አንድ ረድፍ ካለ ወደ እውነት ይገመግማል። የ"ማንኛውም" ኦፕሬተርን
በመጠቀም ቀላል ምሳሌ ከዚህ በታች ቀርቧል።
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት = ማንኛውም
( ኮድ_ምርትን ይምረጡ
ከትዕዛዝ ምርቶች
የት ብዛት = 1)
ይህ መመሪያ ከ 1 ጋር እኩል የሆነ የመጠን ቅደም ተከተል ያላቸውን ምርቶች መግለጫ ያሳያል።
ከዚህ በታች ተመሳሳዩን "ማንኛውም" ኦፕሬተር በመጠቀም ሌላ ምሳሌ ተሰጥቷል ነገር ግን ማነፃፀሪያ ኦፕሬተርን ወደ =" =" ቀይር።
ገጽ 41
Machine Translated by Google
ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)
ይህ መመሪያ የደንበኞችን ስም እና አድራሻ አስቀድሞ ካዘዘው የደንበኛ ኮድ የትኛው የደንበኛ ኮድ በታች እንደሆነ ያሳያል።
ሁሉም የ SELECT መግለጫ መዝገቦችን ለመምረጥ ይጠቅማል። ዋጋን በእያንዳንዱ ዝርዝር ውስጥ ካለው እሴት ጋር
ያወዳድራል ወይም ከጥያቄ የተገኙ ውጤቶች። ሁሉም በንፅፅር ኦፕሬተሮች መቅደም አለባቸው እና መጠይቁ ምንም
ረድፎች ካልተመለሰ ወደ TRUE መገምገም አለበት። ከዚህ በታች አንድ ምሳሌ ተሰጥቷል.
ገጽ 42
Machine Translated by Google
የ UNION ኦፕሬተር የሁለት ወይም ከዚያ በላይ የ SELECT መግለጫዎችን የውጤት ስብስብ ለማጣመር ይጠቅማል። የ
በ UNION ውስጥ የ SELECT መግለጫ ተመሳሳይ የአምዶች ብዛት እና ተመሳሳይነት ሊኖረው ይገባል
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
ይህ መመሪያ የሁሉም ምርቶች መግለጫ ከ 3 በላይ ወይም ከ 1 ከፍ ያለ መሆኑን ያሳያል የ UNION መግለጫ የሁለቱም የ SQL መግለጫዎች
ውጤቶች እንዲቀላቀሉ ያደርጋል።
የ UNION ኦፕሬተር በነባሪነት የተለያዩ እሴቶችን ብቻ ነው የሚመርጠው። የተባዙ እሴቶችን ለመፍቀድ ሁሉንም ቁልፍ ቃል
ከ UNION ጋር ይጠቀሙ። የእንደዚህ አይነት ሁኔታ ምሳሌ ከዚህ በታች ተሰጥቷል.
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
ይህ መመሪያ የሁሉም ምርቶች መግለጫ ከ 3 በላይ ወይም ከ 1 ከፍ ያለ መሆኑን ያሳያል. ነገር ግን ካለፈው ምሳሌ ጋር በማነፃፀር በሁለቱም ጥያቄዎች
የተመለሱት መዝገቦች የተባዙ ናቸው።
ገጽ 43
Machine Translated by Google
የSQL INTERSECT ኦፕሬተር የ2 ወይም ከዚያ በላይ የ SELECT መግለጫዎችን ውጤት ለመመለስ ይጠቅማል።
ሆኖም ግን፣ በሁሉም መጠይቆች ወይም የውሂብ ስብስቦች የተመረጡትን ረድፎች ብቻ ይመልሳል። መዝገብ በአንደኛው መጠይቅ
ውስጥ ካለ በሌላኛው ውስጥ ካልሆነ ከ INTERSECT ውጤቶች ይወጣል። የእንደዚህ አይነት ሁኔታ ምሳሌ ከዚህ በታች ተሰጥቷል.
ከታች ያለው ስክሪፕት በSQL Server እና Oracle ዳታቤዝ ውስጥ ብቻ ይሰራል።
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
ኢንተርሴክት
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
ይህ መመሪያ የሁሉም ምርቶች መግለጫ ከ 3 በላይ ወይም ከ 1 ከፍ ያለ መሆኑን ያሳያል. ነገር ግን ካለፈው ምሳሌ ጋር በማነፃፀር በሁለቱም ጥያቄዎች
የተመለሱት መዝገቦች የተባዙ ናቸው።
የ INTERSECT ኦፕሬተር በ MySQL ውስጥ አይደገፍም። በ MySQL ውስጥ ተመሳሳይ ተግባር ለመስራት "IN", "EXISTS" ወይም የሂሳብ
ኦፕሬተሮችን መጠቀም እንችላለን. በቀደመው ምሳሌያችን ቀላል የሂሳብ ኦፕሬተሮችን በመጠቀም ተመሳሳይ ተግባር ላይ መድረስ እንችላለን። የዚህ
አቀራረብ ምሳሌ ከዚህ በታች ተሰጥቷል.
ገጽ 44
Machine Translated by Google
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት>3 እና ኮድ_ምርት>1;
ይህ መመሪያ የሁሉንም ምርቶች ገለፃ ያሳያል የትኛው የምርት ኮድ ከ 3 በላይ ወይም ከ 1 በላይ ከፍ ያለ ነው. እሱ የሚጠቀመው የሂሳብ እና ቡሊያን
ስራዎችን ብቻ ነው.
የSQL MINUS አንቀጽ ሁለት የ SELECT መግለጫዎችን በማጣመር እና በሁለተኛው የ SELECT መግለጫ ያልተመለሱ ረድፎችን
ከመጀመሪያው የ SELECT መግለጫ ለማስመለስ ጥቅም ላይ ይውላል። የዚህ ሁኔታ ምሳሌ ከዚህ በታች ተሰጥቷል. ይህ ስክሪፕት
በOracle ውስጥ ብቻ ነው የሚሰራው።
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
መቀነሱ
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;
ይህ መመሪያ ከ1 ከፍ ያለ ነገር ግን ከ 3 በታች ወይም እኩል የሆነ የምርት ኮድ ያላቸውን ሁሉንም ምርቶች መግለጫ ያሳያል።
የቀደመው ስክሪፕት በSQL Server ውስጥ እንዲሰራ ለማድረግ “EXCEPT” የሚለውን አንቀጽ መጠቀም አለብን።
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
በስተቀር
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;
ይህ መመሪያ ከ1 ከፍ ያለ ነገር ግን ከ 3 በታች ወይም እኩል የሆነ የምርት ኮድ ያላቸውን ሁሉንም ምርቶች መግለጫ ያሳያል።
ስክሪፕቱ በ MySQL ውስጥ እንዲሰራ ለማድረግ በ"INTERSECT" አንቀጽ ላይ እንዳደረግነው ተመሳሳይ አካሄድ መከተል አለብን። የዚህ አቀራረብ
ምሳሌ ከዚህ በታች ተሰጥቷል.
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 እና ኮድ_ምርት <= 3;
ይህ መመሪያ ከ1 ከፍ ያለ ነገር ግን ከ 3 በታች ወይም እኩል የሆነ የምርት ኮድ ያላቸውን ሁሉንም ምርቶች መግለጫ ያሳያል።
ገጽ 45
Machine Translated by Google
የ SQL መጋጠሚያዎች ረድፎችን ከሁለት ወይም ከዚያ በላይ ጠረጴዛዎች ለማጣመር ያገለግላሉ። በ SQL ውስጥ አራት አይነት መጋጠሚያዎች
አሉ።
• ውስጣዊ መገጣጠም እና ተፈጥሯዊ መገጣጠሎች - በሁለቱም ሰንጠረዦች ውስጥ ተዛማጅ እሴቶች ያላቸውን መዝገቦች ይምረጡ;
• የግራ ውጫዊ መቀላቀል - ከመጀመሪያው (ከግራ-ብዙ) ሠንጠረዥ ከቀኝ ሠንጠረዥ ጋር የሚዛመድ መዝገቦችን ይምረጡ
መዝገቦች;
• የቀኝ ውጫዊ መቀላቀል - ከሁለተኛው (ከቀኝ-በጣም) ሠንጠረዥ ከግራ ተዛማጅ ጋር መዝገብ ይምረጡ
የሠንጠረዥ መዝገቦች;
• ሙሉ የውጪ መቀላቀል - ከግራ ወይም ከቀኝ የሰንጠረዥ መዛግብት ጋር የሚዛመዱትን ሁሉንም መዝገቦች ይመርጣል።
ከውስጣዊ መቀላቀል ይልቅ የሁለቱም ሰንጠረዦች የመስክ ስም ተመሳሳይ ስለሆነ የተፈጥሮ መቀላቀልን አንቀጽ መጠቀም እንችላለን። ከዚያ NATURAL
ከላይ ያለው ስክሪፕት ለ MySQL እና Oracle የውሂብ ጎታዎች ብቻ ነው የሚሰራው። የSQL አገልጋይ ዳታቤዝ NATURAL JOIN አንቀጽን አይደግፍም።
ከተፈጥሮ JOIN ይልቅ ከዚህ ቀደም ጥቅም ላይ እንደዋለው የውስጣዊ JOINን በቀላሉ መጠቀም እንችላለን።
ገጽ 46
Machine Translated by Google
ገጽ 47
Machine Translated by Google
በO.cod_customer=C.cod_ደንበኛው
ትእዛዝ በኦ.ቀን_ትዕዛዝ;
ይህ መመሪያ የሁሉንም ትዕዛዞች የቀን ትዕዛዞች እና የደንበኞች ስም ያሳያል፣ እና ምንም አይነት ትዕዛዝ የሌላቸውን ደንበኞች ስምም
ያካትታል። ይህ የሚደረገው የቀኝ መቀላቀል አንቀጽን በመጠቀም ነው። በመጨረሻም ሁሉም ንጥረ ነገሮች በጊዜያቸው ይታዘዛሉ.
ገጽ 48
Machine Translated by Google
ከቀኝ መጋጠሚያዎች የተገኙ ውጤቶችን ያጣምራል። በግራፊክ የውስጠኛው መጋጠሚያ በስእል 53 ይታያል።
በC.cod_customer=ኦ.ኮድ_ደንበኛ
በ C. ስም ማዘዝ;
ይህ መመሪያ የሁሉም ደንበኞች ስም እና የትዕዛዝ ኮድ በአንድ ጊዜ ለሁሉም ደንበኞች እና ትዕዛዞች ያሳያል። ውጤቱ በደንበኞች ስም ነው የታዘዘው.
ከላይ ያለው ስክሪፕት ለ Oracle እና SQL አገልጋይ ዳታቤዝ በደንብ ይሰራል። ሆኖም፣ በ MySQL ላይ ሙሉ መቀላቀል የለንም፣ ግን በእርግጠኝነት እነሱን
መምሰል እንችላለን። ከላይ ያለውን ምሳሌ በመከተል በ MySQL ውስጥ ከዚህ በታች ያለውን አካሄድ በመከተል ማድረግ እንችላለን።
ገጽ 49
Machine Translated by Google
ይህ መመሪያ የሁሉም ደንበኞች ስም እና የትዕዛዝ ኮድ በአንድ ጊዜ ለሁሉም ደንበኞች እና ትዕዛዞች ያሳያል። የFULL OUTER JOINን
ተግባራዊነት ለመኮረጅ ሁለቱንም የግራ እና የቀኝ መጋጠሚያዎችን እንጠቀማለን።
ገጽ 50
Machine Translated by Google
የዚህ ክዋኔ ውጤት ባዶ ነው ይህም ምንም አይነት ምርት ባለመኖሩ ከዝቅተኛው ክምችት በታች ነው።
ገጽ 51
Machine Translated by Google
ከዚህ በታች ያለውን አካሄድ በመጠቀም በ SQL አገልጋይ ውስጥ ተመሳሳይ ክዋኔ ሊደረግ ይችላል።
በመጨረሻም፣ በOracle ውስጥ የ DUAL ጠረጴዛን መጥራት አለብን። በOracle Database ከመረጃ መዝገበ ቃላት ጋር በራስ ሰር
የተፈጠረ ሠንጠረዥ ነው። ከ DUAL ሠንጠረዥ መምረጥ ቋሚ አገላለጽ ከ SELECT መግለጫ ጋር ለማስላት ይጠቅማል። DUAL አንድ
ረድፍ ብቻ ስላለው ቋሚው አንድ ጊዜ ብቻ ይመለሳል።
TO_CHARን ይምረጡ
(SYSDATE፣ 'ወወ-ቀን-አአአአህ24፡ኤምአይ፡ኤስኤስ') "አሁን"
ከ DUAL;
ይህ መመሪያ የአሁኑን ቀን እና ሰዓት ይመልሳል።
ሌላው የተለመደ ተግባር የአሁኑን የተመዘገበ ተጠቃሚ በመረጃ ቋቱ ውስጥ ማግኘት ነው። ይህ ክወና ለእያንዳንዱ የውሂብ ጎታ የተለያዩ SQL
መግለጫዎች አሉት። በ MySQL ውስጥ ይህ ክዋኔ እንደሚከተለው ሊከናወን ይችላል.
ከዚህ በታች ያለውን አካሄድ በመጠቀም በ SQL አገልጋይ ውስጥ ተመሳሳይ ክዋኔ ሊደረግ ይችላል። በ SQL አገልጋይ ውስጥ "የአሁኑ
ተጠቃሚ" እንደ ንብረት እንጂ እንደ ዘዴ አይታይም።
በመጨረሻም በ Oracle ውስጥ ያለው ተመሳሳይ ቀዶ ጥገና ከዚህ በታች ተሰጥቷል. ልክ እንደበፊቱ DUALን መጥራት ያስፈልገናል
ጠረጴዛ.
ገጽ 52
Machine Translated by Google
ተጠቃሚን ከድርብ
ይምረጡ; ይህ መመሪያ የአሁኑን የተረጋገጠ ተጠቃሚ ይመልሳል።
ገጽ 53
Machine Translated by Google
መጽሃፍ ቅዱስ
የውሂብ ጎታ SQL ገንቢ ማሟያ መረጃ ለማይክሮሶፍት SQL አገልጋይ ፍልሰት። (ኛ) https://docs.oracle.com/cd/E10405_01/
01
appdev.120/e10379/ss_oracle_compared.htm
ተሰርስሮ ወጥቷል። 11፣ 2016, ከ
የ SQL መሰረታዊ የጥያቄ መዋቅር። http:// (ኛ) ተሰርስሮ ወጥቷል። 11 27, 2015 ፣ ከ
www.mycms.ca/index.cfm/page/sqlqueries.html
ገጽ 54
Machine Translated by Google
ገጽ 55
Machine Translated by Google
ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ምርቶችን አዘምን
unit_price = unit_price * 1.25 መግለጫ =
'ሶዳ';
ገጽ 56
Machine Translated by Google
ይምረጡ *
ከምርቶች
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;
ከደንበኞች ይምረጡ
የት ስም እንደ '%a';
ከደንበኞች ይምረጡ
የት ስም እንደ '% e%';
ከደንበኞች ይምረጡ
የት ስም እንደ '_lena';
ከደንበኞች ይምረጡ
የት ስም እንደ 'E_e_a';
ገጽ 57
Machine Translated by Google
ከምርቶች;
ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;
ገጽ 58
Machine Translated by Google
ከ ምርቶች);
ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
የት ቀን_መላኪያ > = '2015-12-26');
ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);
ይምረጡ *
ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');
ይምረጡ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);
ይምረጡ *
ከደንበኞች ሲ
ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)
ገጽ 59
Machine Translated by Google
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት>3 እና ኮድ_ምርት>1;
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 እና ኮድ_ምርት <= 3;
ገጽ 60
Machine Translated by Google
ከ descProductsOrders * ይምረጡ
ገጽ 61
Machine Translated by Google
ገጽ 62
Machine Translated by Google
ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ምርቶችን አዘምን
unit_price = unit_price * 1.25 መግለጫ =
'ሶዳ';
ትዕዛዞችን ያዘምኑ
ቀን_ማድረስ = '2015-12-29'
የት Orders.cod_customer = (ከደንበኞች ኮድ_ደንበኛ ምረጥ = 'ጴጥሮስ');
ገጽ 63
Machine Translated by Google
ይምረጡ *
ከምርቶች
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;
ከደንበኞች ይምረጡ
የት ስም እንደ '%a';
ከደንበኞች ይምረጡ
የት ስም እንደ '% e%';
ከደንበኞች ይምረጡ
የት ስም እንደ '_lena';
ከደንበኞች ይምረጡ
የት ስም እንደ 'E_e_a';
ገጽ 64
Machine Translated by Google
ከምርቶች;
ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;
ገጽ 65
Machine Translated by Google
ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);
ይምረጡ *
ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');
ይምረጡ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);
ይምረጡ *
ከደንበኞች ሲ
የት እንዳለ ( ኮድ_ደንበኛን ይምረጡ
ከትእዛዞች O
የት C.cod_customer = O.cod_customer);
የት ብዛት = 1)
ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)
ገጽ 66
Machine Translated by Google
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
ኢንተርሴክት
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
በስተቀር
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;
ገጽ 67
Machine Translated by Google
ከምርቶች
የሚገኝበት_አክሲዮን < minimal_stock
ከ descProductsOrders * ይምረጡ
ገጽ 68
Machine Translated by Google
ገጽ 69
Machine Translated by Google
ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ምርቶችን አዘምን
unit_price = unit_price * 1.25 መግለጫ =
'ሶዳ';
ትዕዛዞችን ያዘምኑ
ቀን_ማድረስ = '2015-12-29'
የት Orders.cod_customer = (ከደንበኞች ኮድ_ደንበኛ ምረጥ = 'ጴጥሮስ');
ገጽ 70
Machine Translated by Google
ይምረጡ *
ከምርቶች
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;
ከደንበኞች ይምረጡ
የት ስም እንደ '%a';
ከደንበኞች ይምረጡ
የት ስም እንደ '% e%';
ከደንበኞች ይምረጡ
የት ስም እንደ '_lena';
ከደንበኞች ይምረጡ
የት ስም እንደ 'E_e_a';
ገጽ 71
Machine Translated by Google
ከምርቶች;
ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;
ገጽ 72
Machine Translated by Google
ከ ምርቶች);
ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
የት ቀን_መላኪያ > = '2015-12-26');
ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);
ይምረጡ *
ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');
ይምረጡ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);
ይምረጡ *
ከደንበኞች ሲ
ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)
ገጽ 73
Machine Translated by Google
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
ኢንተርሴክት
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
መቀነሱ
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;
ገጽ 74
Machine Translated by Google
ከ descProductsOrders * ይምረጡ
ገጽ 75