You are on page 1of 76

Machine Translated by Google

ለዚህ ህትመት ውይይቶችን፣ ስታቲስቲክስን እና የደራሲ መገለጫዎችን በ https://www.researchgate.net/publication/319852714 ይመልከቱ ።

ለግንኙነት የውሂብ ጎታዎች ተግባራዊ SQL መመሪያ

መጽሐፍ · ጥር 2016

ማጣቀሻ ያነባል።

1 141,465

1 ደራሲ፡-

ፈርናንዶ አልሜዳ

ኢንስቲትዩት የላቀ ፖለቲካል ጋያ

187 ሕትመቶች 1,075 ጥቅሶች

መገለጫ ይመልከቱ

አንዳንድ የዚህ እትም ደራሲዎች በነዚህ ተዛማጅ ፕሮጀክቶች ላይ እየሰሩ ናቸው፡-

በሶፍትዌር ልማት እይታ ፕሮጀክት ውስጥ ቀልጣፋ ልምምዶች

የፖርቹጋል አካዳሚክ ስፒን-ኦፍስ እይታ ፕሮጄክት ታዛቢ

ከዚህ ገጽ በኋላ ያሉት ሁሉም ይዘቶች የተጫኑት በፈርናንዶ አልሜዳ ነው። በሴፕቴምበር 17 ቀን 2017

ተጠቃሚው የወረደውን ፋይል ለማሻሻል ጠይቋል።


Machine Translated by Google

ተግባራዊ SQL
መመሪያ ለ
ዝምድና
የውሂብ ጎታዎች
ፈርናንዶ አልሜዳ፣ ፒኤችዲ
ይህ መጽሐፍ አጭር የማጣቀሻ አጋዥ ስልጠና ይሰጣል

የውሂብ ጎታ መሐንዲሶች እና ፕሮግራመሮች SQL ለመማር እና በተግባር በ MySQL፣


SQL Server ወይም Oracle የውሂብ ጎታዎች ውስጥ ሊጠቀሙበት ነው። ይህ
መጽሐፍ በ20 ምዕራፎች የተደራጀ ሲሆን ስለ ዳታ ፍቺ ቋንቋ (ዲኤልኤል) እና የውሂብ
ሞዴል ቋንቋ (ዲኤምኤል) አገባቦች አጠቃላይ እይታን ያካትታል። እያንዳንዱ ምእራፍ
አንዳንድ የ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

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ዝርዝር ሁኔታ

የምስሎች ማውጫ ………………………………………… ................................................. ................................. 4

ምህጻረ ቃላት ................................................. ................................................. ................................. 6

መዝገበ ቃላት …………………………………………. ................................................. ................................. 7

1 መግቢያ............................................... ................................................. ................................. 8

1.1 ዐውደ-ጽሑፋዊ መግለጫ ................................................. ................................................. ........... 8

1.2 ዓላማዎች................................................. ................................................. ................................. 9

1.3 የመፅሃፍ መዋቅር ...................................... ................................................. .................... 9

2. ሰንጠረዦችን ማወጅ. ................................................. ......... 11

3. ውሂብ አስገባ.................................................. ................................................. ................................. 14

4. መረጃን አዘምን .............................................. ................................................. ................................. 17

5. ውሂብ ሰርዝ........................................... ................................................. ................................. 19

6. ሰንጠረዦችን አስወግድ. ................................................. ......................... 21

7. የ SQL መጠይቆች - መሰረታዊ መዋቅር ...................................................... ................................................. ...... 22

8. የ SQL መጠይቆች - ሕብረቁምፊዎችን ማወዳደር ...................................................... ................................................. 26

9. የ SQL መጠይቆች - የመሰብሰቢያ ኦፕሬተሮች. ................................. 28

9.1 AVG () ኦፕሬተር ................................................................ ................................................. ................... 28

9.2 COUNT () ኦፕሬተር ................................................................ ................................................. ........... 28

9.3 ማክስ() ኦፕሬተር ................................................................ ................................................. ................. 29

9.4 ደቂቃ () ኦፕሬተር ................................................................ ................................................. ................... 29

9.5 SUM () ኦፕሬተር ................................................................ ................................................. ................. 30

10. የ SQL መጠይቆች - ስክላር ተግባራት.......................................................... ................................................. 31

11. የ SQL መጠይቆች - ንጥረ ነገሮችን መቧደን ......................................... ................................................. 33

12. የ SQL መጠይቆች - መረጃን በማዘዝ ላይ ...................................... ................................................. ...... 35

13. የ SQL መጠይቆች - ዋና ዋና ነገሮችን በመመለስ ላይ. ................................. 36

14. የ SQL መጠይቆች - ንዑስ ጥያቄዎች................................................ ................................................. ......... 37

15. የ SQL መጠይቆች - ኦፕሬተር "ውስጥ" እና "አለ" ...................................... ......................................... 39

ገጽ 2
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

16. የ SQL መጠይቆች - ኦፕሬተር "ማንኛውም" እና "ሁሉም" ...................................... ................................................. 41

17. የ SQL መጠይቆች - ክዋኔዎች ከቅንብሮች ጋር. ................................................. 43

18. የ SQL መጠይቆች - ይቀላቀላል. ................................................. ................. 46

18.1 የውስጥ መቀላቀል እና የተፈጥሮ መገጣጠም. ................................................. 46

18.2 የግራ ውጫዊ መጋጠሚያ ......................................... ................................................. ................. 47

18.3 የቀኝ ውጫዊ መጋጠሚያ. ................................................. ........... 48

18.4 ሙሉ የውጪ መቀላቀል …………………………………………. ................................................. ................. 49

19. የ SQL መጠይቆች - እይታዎች ...................................................... ................................................. ................51

20. የ SQL መጠይቆች - የስርዓት ውሂብ ...................................................... ................................................. ........... 52

መጽሃፍ ቅዱስ ................................................. ................................................. ................................. 54

አባሪ I - ስክሪፕት ለ MySQL ዳታቤዝ ................................................................ ................................................. 55

አባሪ II - ስክሪፕት ለ MS SQL አገልጋይ ዳታቤዝ ………………………………………. ................................. 62

አባሪ III - ለ Oracle ዳታቤዝ ስክሪፕት ................................................................ ................................................. 69

ገጽ 3
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

የምስሎች ማውጫ
ምስል 1 - የሰንጠረዥ ምርቶች ይዘት …………………………………………. ................................................. 14

ምስል 2 - የሰንጠረዥ ደንበኞች ይዘቶች ......................................... ......................................... 15

ምስል 3 - የሠንጠረዥ ትዕዛዞች ይዘቶች. ................................................. 15

ምስል 4 - የሰንጠረዥ ትዕዛዞች ምርቶች ይዘቶች …………………………………………. ................................. 16

ምስል 5 - ከተሻሻሉ በኋላ የሰንጠረዥ ምርቶች ይዘቶች ......................................... ......................... 17

ምስል 6 - ከተዘመኑ በኋላ የሰንጠረዥ ትዕዛዞች ይዘቶች ......................................... ................................. 18

ምስል 7 - የሰንጠረዥ ትዕዛዞች ይዘቶች ከተሰረዙ በኋላ ምርቶች ........................................ ................. 19

ምስል 8 - የሰንጠረዥ ትዕዛዞች ይዘቶች ከተሰረዙ በኋላ ምርቶች ........................................ ................. 20

ምስል 9 - የ SQL መሰረታዊ መዋቅር ......................................... ................................................. ...... 22

ምስል 10 - የጠረጴዛው ደንበኛ ይዘቶች. ................................. 22

ምስል 11 - በሰንጠረዥ ምርቶች ውስጥ ያሉ የሁሉም መስኮች ይዘቶች …………………………………………. ................................. 23

ምስል 12 - ትዕዛዞችን እና ደንበኞችን በተመለከተ መረጃ. ................. 23

ምስል 13 - የሶስት ሰንጠረዦችን በተመለከተ መረጃ. ................................. 24

ምስል 14 - የmarginStock ስሌትን ያሳያል ................................................ ................................. 24

ምስል 15 - የ modResult ስሌት ያሳያል. ................................. 25

ምስል 16 - ሁሉንም ደንበኞች በ "a" ውስጥ ያበቃል. ................................. 26

ምስል 17 - ሁሉንም የደንበኞች መስኮች የትኛው ስም "ሠ" እንደያዘ ያሳያል. ........... 27

ምስል 18 - የትኞቹ ምርቶች ከአማካይ በላይ እንደሆኑ ያሳያል. ................. 28

ምስል 19 - ሁሉንም የደንበኞችን አገሮች ያሳያል. ................................. 29

ምስል 20 - ከፍተኛውን እና አማካይ ዋጋን ያሳያል ......................................... ................................. 29

ምስል 21 - ትንሹን እና አማካይ ዋጋን ያሳያል. ................................. 30

ምስል 22 - አጠቃላይ የምርት ብዛት, አማካይ ዋጋ, ከፍተኛ ዋጋ, አነስተኛ ዋጋ እና አጠቃላይ አክሲዮን
ያሳያል. ................................................. ................................................. 30

ምስል 23 - የደንበኞቹን የላይኛው እና የታችኛውን ስም ያሳያል ...................................... ...... 31

ምስል 24 - የደንበኞቹን ስም መጠን ያሳያል. ................................. 32

ምስል 25 - የምርቶችን ዋጋ ለመለካት 3 አቀራረቦችን ያሳያል ...................................... ........... 32

ምስል 26 - የአንድ ደንበኛ የትዕዛዝ ብዛት ይቆጥራል ......................................... ................. 33

ምስል 27 - በደንበኛ/ትዕዛዝ የምርት ብዛት እና ብዛት ያሳያል............. 33

ምስል 28 - አንቀጹን መጠቀም ውጤቱን ማጣራት አለበት. ................................. 34

ምስል 29 - በደንበኛ ስም መረጃን ማዘዝ ......................................... ................................. 35

ምስል 30 - የደንበኞችን ስም በተገላቢጦሽ ማዘዝ ………………………………………… ................. 35

ምስል 31 - የጥያቄ ዋና ዋና ክፍሎችን መመለስ ……………………………………………… ................................. 36

ምስል 32 - የንዑስ መጠይቅ መዋቅር ......................................... ................................................. 37

ገጽ 4
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምስል 33 - ምርቱን በከፍተኛ ዋጋ ያሳያል ......................................... ......................... 37

ምስል 34 - ለደንበኛው ከፍተኛ የደንበኛ ኮድ እና የመላኪያ ቀን የተሰጠውን ያሳያል .................... 38

ምስል 35 - መጠኑን የገለጹ የትዕዛዝ ማስረከቢያ ቀን ያሳያል ................................... 38

ምስል 36 - የ "IN" ኦፕሬተርን በመጠቀም መሰረታዊ አቀራረብ. ................................. 39

ምስል 37 - ትዕዛዝ ያላቸውን ሁሉንም የደንበኛ መስኮች ይመልሱ ........................................ ................. 40

ምስል 38 - ትዕዛዝ የሌላቸውን ደንበኞች ያሳያል. ........... 40

ምስል 39 - የማንኛውም ኦፕሬተር አጠቃቀምን ያሳያል. ................................. 41

ምስል 40 - የማንኛውም ኦፕሬተር አጠቃቀምን ያሳያል. ................................. 41

ምስል 41 - የማንኛውም ኦፕሬተር አጠቃቀምን ያሳያል. ................................. 42

ምስል 42 - የሁሉንም ኦፕሬተር አጠቃቀም ያሳያል ......................................... ................................. 42


ምስል 43 - የ UNION ኦፕሬተርን አጠቃቀም ያሳያል. ................................. 43

ምስል 44 - የ UNION ALL ኦፕሬተር አጠቃቀምን ያሳያል. ........................... 44

ምስል 45 - የ INTERSECT ኦፕሬተር አጠቃቀምን ያሳያል. ........................... 44

ምስል 46 - የMINUS ኦፕሬተርን አጠቃቀም ያሳያል. ................................. 45

ምስል 47 - የውስጥ እና የተፈጥሮ መጋጠሚያዎች መዋቅር. ................................. 46

ምስል 48 - የውስጥ እና የተፈጥሮ መጋጠሚያዎችን አጠቃቀም ያሳያል. ................................. 47

ምስል 49 - የግራ ውጫዊ መጋጠሚያ መዋቅር. ................................. 47

ምስል 50 - የግራ መቀላቀልን አጠቃቀም ያሳያል. ................................. 48

ምስል 51 - የቀኝ የውጭ መጋጠሚያ መዋቅር ................................................ ................................. 48

ምስል 52 - የቀኝ መቀላቀልን አጠቃቀም ያሳያል. ................................................. 49

ምስል 53 - የሙሉ የውጪ መጋጠሚያ መዋቅር. ................................................. 49

ምስል 54 - ሙሉ የውጪ መጋጠሚያ አጠቃቀምን ያሳያል. ................................. 50

ምስል 55 - እይታን የመፍጠር ምሳሌ. ................................................. 51

ምስል 56 - ቀኑን ከስርዓት ያግኙ. ................................................. 52

ምስል 57 - ተጠቃሚውን ወደ ስርዓቱ እንዲገባ ያድርጉ. ................................. 53

ገጽ 5
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምህጻረ ቃላት
CLI - የትዕዛዝ-መስመር በይነገጽ

DCL - የውሂብ መቆጣጠሪያ ቋንቋ

DDL - የውሂብ ፍቺ ቋንቋ

ዲኤምኤል - የውሂብ ሞዴል ቋንቋ

I/O - ግቤት/ውፅዓት

ORA - Oracle

SQL - የተዋቀረ የጥያቄ ቋንቋ

ገጽ 6
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

መዝገበ ቃላት
MySQL - MySQL በ Structured Query Language (SQL) ላይ የተመሠረተ የክፍት ምንጭ ግንኙነት የውሂብ ጎታ አስተዳደር
ሥርዓት (RDBMS) ነው።

Oracle - በ Oracle ኮርፖሬሽን ተዘጋጅቶ የሚሸጥ የነገር-ግንኙነት የውሂብ ጎታ አስተዳደር ስርዓት።

SQL አገልጋይ - SQL አገልጋይ ከማይክሮሶፍት የመጣ የግንኙነት ዳታቤዝ አስተዳደር ስርዓት (RDBMS) ለድርጅት አካባቢ
የተነደፈ ነው።

ገጽ 7
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

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

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ተያያዥ ሞዴሉ በአጠቃላይ በርካታ ምርቶች እና ደንበኛ ስላለው የኢኮሜርስ ኩባንያ ቀላል ሁኔታን ይገልጻል። እያንዳንዱ ደንበኛ በተለምዶ
በብዙ ምርቶች የተዋቀረ አዲስ ትዕዛዞችን መፍጠር ይችላል።

1.2 ዓላማዎች

ይህ ትንንሽ መፃህፍት በዩኒቨርሲቲ ውስጥ በስርዓተ-ትምህርት ክፍላቸው አንፃር SQL ለመማር ለሚፈልጉ የመጀመሪያ ዲግሪ ተማሪዎች
አጭር የማመሳከሪያ መመሪያ ለመስጠት አስቧል። መጽሐፉ ዋና ዋና የ SQL አገባብ ንጥሎችን (ዲዲኤል እና ዲኤምኤል) ያቀርባል
እንዲሁም በ MySQL, SQL Server ወይም Oracle ውስጥ ተዛማጅ የውሂብ ጎታዎችን ለመገንባት መወሰድ ያለባቸውን በጣም አስፈላጊ
የአገባብ መመሪያዎችን ያቀርባል. ይህ ትንንሽ መጽሐፍ ሙሉ የSQL ማጣቀሻ እንዲሆን አላሰበም፣ ነገር ግን በ SQL አገባብ በጣም ወሳኝ
ገጽታዎች ላይ ብቻ ያተኩራል። የDCL አገባብ በዚህ እትም አውድ ውስጥ አይታይም።

በሚቀጥሉት ምዕራፎች ውስጥ የሚታዩት ስክሪፕቶች የሚከተሉትን የውሂብ ጎታዎች በመጠቀም ሙከራዎች ነበሩ፡

MySQL 5.6;

• MS SQL አገልጋይ 2014;

• Oracle ዳታቤዝ 11ግ ልቀት 2.

1.3 የመጽሐፍ መዋቅር

መጽሐፉ በ 20 ምዕራፎች ውስጥ እንደሚከተለው ተዘጋጅቷል.

• ምዕራፍ 1 "መግቢያ" - ስለ SQL ቋንቋ እና ድርጅት አጭር መግለጫ ይሰጣል


የመጽሐፉ;

• ምዕራፍ 2 "ሰንጠረዦችን ማወጅ" - በተዛማጅ የውሂብ ጎታዎች ውስጥ አዲስ ሰንጠረዦችን እንዴት ማወጅ እንደሚቻል አገባብ
ያቀርባል;

• ምዕራፍ 3 "መረጃ አስገባ" - አዲስ ውሂብ በግንኙነት ውስጥ ለማስገባት አገባብ ያቀርባል.
የውሂብ ጎታ;

• ምዕራፍ 4 "መረጃን አዘምን" - ቀደም ሲል በግንኙነት ዳታቤዝ ውስጥ የተከማቸውን መረጃ ለማዘመን አገባብ ያቀርባል;

• ምዕራፍ 5 "መረጃን ሰርዝ" - በግንኙነት ዳታቤዝ ውስጥ የተከማቸውን መረጃ ለመሰረዝ አገባብ ያቀርባል;

• ምዕራፍ 6 "ሰንጠረዦችን ያስወግዱ" - ሰንጠረዥን ከግንኙነት ለማስወገድ አገባብ ያቀርባል.


የውሂብ ጎታ;

• ምዕራፍ 7 "የSQL መጠይቆች - መሰረታዊ መዋቅር" - የ SQL መጠይቅ እንዴት እንደተደራጀ እና እንደሚዋቀር ያሳያል;

• ምዕራፍ 8 "SQL ጥያቄዎች - ሕብረቁምፊዎችን ማወዳደር" - የሕብረቁምፊ ይዘቶችን እንዴት ማወዳደር እንደሚቻል ያሳያል
የ SQL አገባብ ብቻ በመጠቀም;

• ምዕራፍ 9 "የSQL መጠይቆች - የድምር ኦፕሬተሮች" - በ SQL ውስጥ ጠቃሚ የሆኑትን በጣም ተዛማጅነት ያላቸውን የስብስብ
ኦፕሬተሮችን ያሳያል ፣ ለምሳሌ AVG () COUNT ()

• ምዕራፍ 10 "የSQL መጠይቆች - Scalar Functions" - በጣም ጠቃሚ የሆኑትን የ scalar ተግባራትን ያቀርባል.
በ SQL ውስጥ የሚገኙት;

ገጽ 9
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

• ምዕራፍ 11 "የSQL መጠይቆች - ንጥረ ነገሮችን መቧደን" - የ GROUP BY አገባብ አጠቃቀምን ያቀርባል።
SQL;

• ምዕራፍ 12 "የSQL ጥያቄዎች - መረጃን ማዘዝ" - በ "ORDER BY" አገባብ ጥቅም ላይ ይውላል.
SQL;

• ምዕራፍ 13 "የSQL መጠይቆች - ዋና ዋና ንጥረ ነገሮችን መመለስ" - የመመለስ ዘዴን ያቀርባል.


የ SQL መግለጫ ዋና አካላት;

• ምዕራፍ 14 "የSQL ጥያቄዎች - ንዑስ መጠይቆች" - ውስብስብ የ SQL መጠይቆችን አጠቃቀም ያሳያል።
የንዑስ መጠይቅ አቀራረብን መቀበል;

• ምዕራፍ 15 "SQL ጥያቄዎች - ኦፕሬተር "IN" እና "EXISTS" - ኦፕሬተርን በ ውስጥ እና ያለውን ጥቅም እና "IN" ወደ
"EXISTS" አቀራረብ እንዴት እንደሚቀይሩ ያሳያል;

• ምዕራፍ 16 "SQL ጥያቄዎች - ኦፕሬተር "ማንኛውም" እና "ሁሉም" - የእነዚህን ሁለት አንቀጾች አጠቃቀም ከንዑስ መጠይቆች
ጋር ያሳያል;

• ምዕራፍ 17 "የSQL ጥያቄዎች - ከSETS ጋር የሚሰሩ ስራዎች" - የ 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

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

2. ጠረጴዛዎችን ማወጅ
አዲስ የውሂብ ጎታ መተግበሪያ ሲፈጥሩ የመጀመሪያው እርምጃ ሠንጠረዦቹን የማወጅ ሂደት ነው.
በእኛ ምሳሌ ውስጥ እኛ የሚፈጠሩ 4 ሰንጠረዦች አሉን: ምርቶች, ትዕዛዞች, የትዕዛዝ ምርቶች እና ደንበኛ. በሰንጠረዡ ውስጥ ምርቶችን በመፍጠር
እንጀምራለን.

ሠንጠረዡ ምርቶች ኩባንያው በካታሎግ ውስጥ ያሉትን ሁሉንም ምርቶች ይመዘግባል. የዚህ ሰንጠረዥ አፈጣጠር ስክሪፕት ከዚህ በታች ተሰጥቷል.
ተመሳሳዩን ስክሪፕት ለ MySQL ፣ SQL አገልጋይ መጠቀም ይቻላል
እና Oracle DBMS.

ሰንጠረዥ ይፍጠሩ ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
መግለጫ varchar(50) ባዶ አይደለም፣
አሃድ_ዋጋ DECIMAL(10,2)፣
የሚገኝ_የአክሲዮን ኢንቲጀር፣
minimal_stock ኢንቲጀር ነባሪ 0፣
CONSTRAINT ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት)
);
ዋናው ቁልፍ በመጨረሻው መስመር ላይ የተገለጸው "code_products" ነው። መግለጫው ቢበዛ 50 ቁምፊዎች ሊኖሩት ይችላል እና ባዶ ሊሆን
አይችልም። የ"ዩኒት_ዋጋ" መስክ አስርዮሽ አለው ተብሏል። ከፍተኛው የ"unit_price" አሃዞች ቁጥር በመጀመሪያው ልኬት ውስጥ ሊገለጽ ይችላል።
ከአስርዮሽ ነጥብ በስተቀኝ ያለው ከፍተኛው የአሃዞች ቁጥር በሁለተኛው ግቤት ውስጥ ተገልጿል. መስኩ "minimal_stock" ነባሪ እሴት 0 አለው፣
ይህ መረጃ ተጠቃሚው አዲስ ውሂብ ሲያስገባ ካልተሰጠ።

ከዚያ ጠረጴዛውን እንፈጥራለን ደንበኞች. ልክ እንደ ቀደመው ምሳሌ ተመሳሳይ ስክሪፕት ለሶስቱም የውሂብ ጎታዎች (MySQL፣ SQL Server እና
Oracle) መጠቀም ይቻላል።

ጠረጴዛ ይፍጠሩ ደንበኞች


(
ኮድ_ደንበኛ ኢንቲጀር፣
ስም ቫርቻር (50) ባዶ አይደለም ፣
አድራሻ varchar(95) ነባሪ 'ያልታወቀ'፣
ዚፕ_ኮድ ቻር(8)፣
የአገር ቫርቻር(40) ነባሪ 'ፖርቱጋል'፣
የስልክ ቁጥር (15) ፣
CONSTRAINT ደንበኞች_pk ዋና ቁልፍ (ኮድ_ደንበኛ)
);
ዋናው ቁልፍ በመጨረሻው መስመር ላይ የተገለጸው "code_customer" ነው። አድራሻው እንደ ስም አይነት ቫርቻር ነው፣ ነገር ግን ምንም አይነት
መረጃ ካልተሰጠ የ"ያልታወቀ" ነባሪ ዋጋን ይወስዳል። ዚፕ ኮድ ቻር(8) ሲሆን ሁልጊዜም ከይዘቱ ተለይቶ 8 ቻር ይይዛል። የደንበኛው አገር የ "ፖርቱጋል"
ነባሪ ዋጋ ይወስዳል. ሌሎቹ አካላት ከቀዳሚው ምሳሌ ጋር ተመሳሳይ ባህሪ አላቸው።

ከዚያ የጠረጴዛውን ትዕዛዝ እንፈጥራለን. ልክ እንደ በፊት የሁለቱም የውሂብ ጎታዎች ስክሪፕት አንድ አይነት ናቸው.

ገጽ 11
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

የሠንጠረዥ ትዕዛዞችን ይፍጠሩ


(
ኮድ_ትዕዛዝ ኢንቲጀር፣
የቀን_ትዕዛዝ ቀን፣
ቀን_መላኪያ ቀን፣
ኮድ_ደንበኛ ኢንቲጀር፣
CONSTRAINT ትዕዛዞች_pk ዋና ቁልፍ (ኮድ_ደንበኛ)፣
CONSTRAINT ትዕዛዞች_Cust_fk የውጭ ቁልፍ (ኮድ_ደንበኛ)
ዋቢ ደንበኞች(ኮድ_ደንበኛ)
);
ዋናው ቁልፍ "code_order" ነው። ነገር ግን፣ የትእዛዝ ሠንጠረዥ በ"cod_customer" መስክ ውስጥ የውጭ ቁልፍም አለው። የውጭ ቁልፉ
ከሠንጠረዡ ዋና ቁልፍ ጋር "ደንበኛ" በ "ኮድ_ደንበኛ" መስክ ተያይዟል. እንዲሁም የቀን ዓይነት ሁለት ተለዋዋጮች መግለጫን ማጉላት ተገቢ ነው።
የቀን ቅርጸቱ በ"ዓዓዓዓ-ወወ-ዲ" ይወከላል እና የሚደገፈው ክልል ከ'1000-01-01' እስከ '9999-12-31' ነው።

በመጨረሻም የትእዛዝ ምርቶች ስክሪፕት ቀርቧል። እዚህ በታች ያለው ስክሪፕት በ int() አይነት ምክንያት በ MySQL ውስጥ ብቻ ይሰራል።

ሰንጠረዥ ፍጠር ትዕዛዞች ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
ኮድ_ትዕዛዝ ኢንቲጀር፣
ብዛት int(2)፣
CONSTRAINT ትዕዛዞች ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት፣ ኮድ_ትእዛዝ)፣
CONSTRAINT ትእዛዝ ምርቶች_ምርት_fk የውጭ ቁልፍ (ኮድ_ምርት)
ዋቢዎች ምርቶች(ኮድ_ምርት)፣
CONSTRAINT ትእዛዝ ምርቶች_ትዕዛዝ_fk የውጭ ቁልፍ (የኮድ_ትእዛዝ)
ዋቢ ትዕዛዞች(የኮድ_ትእዛዝ)
);
ዋናው ቁልፍ በ"cod_product" እና "code_order" በመስኮች የተዋቀረ ነው። ከፍተኛው የአሃዞች ብዛት በቅንፍ ውስጥ የተገለጸበት ብዛቱ ኢንቲጀር
ተብሎ ይገለጻል። በመጨረሻም ሁለት የውጭ ቁልፎች አሉ-የመጀመሪያው ከጠረጴዛው ጋር የተገናኘ ምርቶች; እና የመጨረሻው ከትእዛዞች ሰንጠረዥ
ጋር የተያያዘ. መስኮች "cod_product" እና "code_order" በተመሳሳይ ጊዜ ዋና እና የውጭ ቁልፎች ናቸው።

በ SQL አገልጋይ ውስጥ እንዲሰራ ለማድረግ int() አይነት ለአስርዮሽ() መቀየር አለብን። ሙሉ የተስተካከለው ስክሪፕት ከዚህ በታች ቀርቧል።

ሰንጠረዥ ፍጠር ትዕዛዞች ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
ኮድ_ትዕዛዝ ኢንቲጀር፣
ብዛት አስርዮሽ (2,0)፣
CONSTRAINT ትዕዛዞች ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት፣ ኮድ_ትእዛዝ)፣
CONSTRAINT ትእዛዝ ምርቶች_ምርት_fk የውጭ ቁልፍ (ኮድ_ምርት)
ዋቢዎች ምርቶች(ኮድ_ምርት)፣
CONSTRAINT ትእዛዝ ምርቶች_ትዕዛዝ_fk የውጭ ቁልፍ (የኮድ_ትእዛዝ)
ዋቢ ትዕዛዞች(የኮድ_ትእዛዝ)
);
በዚህ ስክሪፕት ውስጥ ያለው ብቸኛው ለውጥ በ"ብዛት" መስክ ላይ ነው። አስርዮሽ ብቻ እንደሚደግፍ ያመለክታል

ገጽ 12
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ለኢንቲጀር ክፍል የ 2 አሃዞች ቁጥሮች.

በመጨረሻም በOracle የውሂብ ጎታዎች ውስጥ እንዲሰራ ለማድረግ ሌላ ለውጥ ተካሂዷል።

ሰንጠረዥ ፍጠር ትዕዛዞች ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
ኮድ_ትዕዛዝ ኢንቲጀር፣
ብዛት (2) ፣
CONSTRAINT ትዕዛዞች ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት፣ ኮድ_ትእዛዝ)፣
CONSTRAINT ትእዛዝ ምርቶች_ምርት_fk የውጭ ቁልፍ (ኮድ_ምርት)
ዋቢዎች ምርቶች(ኮድ_ምርት)፣
CONSTRAINT ትእዛዝ ምርቶች_ትዕዛዝ_fk የውጭ ቁልፍ (የኮድ_ትእዛዝ)
ዋቢ ትዕዛዞች(የኮድ_ትእዛዝ)
);
በዚህ ስክሪፕት ውስጥ ያለው ብቸኛው ለውጥ በ"ብዛት" መስክ ላይም ነው። በሁለት አሃዝ የተቀናበረ ኢንቲጀር ክፍል ብቻ ቁጥሮችን ብቻ እንደሚደግፍ
ይጠቁማል።

ገጽ 13
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

3. ውሂብ አስገባ

በውሂብ ጎታ ውስጥ አዲስ መረጃ ማስገባት ሁለት የተለያዩ ግን ተመሳሳይ አቀራረቦችን በመከተል ሊከናወን ይችላል።

• የመጀመሪያው ቅጽ ውሂቡ የሚያስገባበትን የአምድ ስሞች አይገልጽም፣ ብቻ


እሴቶቻቸው;
• ሁለተኛው ቅጽ ሁለቱንም የአምድ ስሞች እና የሚገቡትን እሴቶች ይገልጻል።

ለ MySQL ፣ SQL Server እና Oracle የውሂብ ጎታዎች ውሂብ ለማስገባት ስክሪፕቶች በትክክል ተመሳሳይ ናቸው።

በሰንጠረዦች "ምርቶች" እና "ደንበኞች" ውስጥ መረጃን ለማስተዋወቅ ሁለተኛውን አቀራረብ እንጠቀማለን.

ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)


እሴቶች (1, 'እንቁላል', 2.49);
ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (2, 'አይስ ክሬም', 3.99); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (3, 'ሶዳ', 0.65); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (4, 'አይብ', 2.89); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (5, 'የአሳማ ሥጋ', 3.10); ወደ
ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (1, 'Anne');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (2, 'ጴጥሮስ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (3, 'Elena');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (4, 'ሸርሊ'); ወደ
ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (5, 'ዮሐንስ');
በሰንጠረዥ "ምርቶች" ውስጥ ከምርቱ ኮድ ፣ መግለጫ እና የክፍል ዋጋ ጋር የተዛመደ መረጃን እናስተዋውቃለን። በሌላ በኩል
የደንበኞችን ኮድ እና ስሙን በሠንጠረዥ "ደንበኞች" ላይ ብቻ እናስተዋውቃቸዋለን. በማንኛውም ሁኔታ ዋናውን ቁልፍ መስኮች
መሙላት ግዴታ ነው. በፍጥረት ሠንጠረዥ ሂደት ውስጥ ከተገለጸ ሌሎቹ መስኮች ነባሪውን ዋጋ ይወስዳሉ.

ከዚያ በኋላ የሠንጠረዡ "ምርቶች" ይዘቶች በስእል 1 ውስጥ ተገልጸዋል.

ምስል 1 - የሰንጠረዥ ምርቶች ይዘት

ገጽ 14
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

እንዲሁም በሠንጠረዥ "ደንበኞች" ውስጥ በስእል 2 ውስጥ ቀርቧል.

ምስል 2 - የጠረጴዛ ደንበኞች ይዘት

አዲስ መረጃን በሰንጠረዥ "ትዕዛዞች" ላይ ለማስቀመጥ ከዚህ በታች ያለውን የውሂብ እሴቶችን የሚሰጥ ስክሪፕት እንጠቀማለን።
በሁሉም መስኮች.

ወደ ትዕዛዞች እሴቶች አስገባ (1, '2015-12-21', '2015-12-21', 1); ወደ


ትዕዛዞች እሴቶች አስገባ (2, '2015-12-22', '2015-12-23', 1); ወደ
ትዕዛዞች እሴቶች አስገባ (3, '2015-12-22', '2015-12-27', 2); ወደ
ትዕዛዞች እሴቶች አስገባ (4, '2015-12-27', '2015-12-30', 3); ወደ
ትዕዛዞች እሴቶች አስገባ (5, '2015-12-30', '2015-12-31', 3); ኮድ "1"
እና "3" ያለው ደንበኛ በመረጃ ቋቱ ውስጥ የተመዘገቡ 2 ትዕዛዞች ይኖራቸዋል። ኮድ "2" ያለው ደንበኛ አንድ ትዕዛዝ ብቻ
ይኖረዋል. በመጨረሻም ኮድ "4" እና "5" ያላቸው ደንበኞች ምንም አይነት ትዕዛዝ የላቸውም. በተጨማሪም ዋናው መስክ ሁልጊዜ
ልዩ መሆን እንዳለበት ማጉላት አስፈላጊ ነው.

የሰንጠረዡ "ትዕዛዞች" ይዘት በስእል 3 ተሰጥቷል.

ምስል 3 - የሠንጠረዥ ትዕዛዞች ይዘት

በመጨረሻም፣ እያንዳንዱን ትዕዛዝ በተመለከተ መረጃን ለማካተት ከዚህ በታች ያለውን ስክሪፕት እንጠቀማለን። ይህ መረጃ
በሠንጠረዥ "ትዕዛዝ ምርቶች" ውስጥ ተከማችቷል.

በትእዛዞች ውስጥ ያስገቡ እሴቶች (1, 1, 1);


በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 1, 1);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 2, 2);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (5, 3, 7);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (4, 3, 4);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (3, 3, 5);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 3, 5);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 4, 8);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 4, 2);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (4, 5, 5);

ገጽ 15
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ኮድ "1" እና "4" ያለው ትዕዛዝ ሁለት ምርቶች አሉት; ኮድ "5" ያለው ትዕዛዝ ሶስት ምርቶች አሉት; ኮድ "3" ያለው ትዕዛዝ 4
ምርቶች አሉት; በመጨረሻም "2" ኮድ ያለው ትዕዛዝ አንድ ምርት ብቻ ነው ያለው.

ከላይ ያለው ስክሪፕት ከተፈፀመ በኋላ የሠንጠረዡ "ትዕዛዝ ምርቶች" ይዘት በስእል 4 ውስጥ ተሰጥቷል.

ምስል 4 - የሠንጠረዥ ትዕዛዞች ምርቶች ይዘቶች

ገጽ 16
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

4. መረጃን አዘምን
በጣም ጠቃሚ የሆነ ክዋኔ ቀዳሚ የገባውን ውሂብ ማዘመን ነው። ይህንን ተግባር ለማከናወን አገባብ "የዝማኔ ሠንጠረዥ" ነው. በአንዳንድ ሁኔታዎች
አገባቡ ትንሽ ሊለያይ ይችላል በሚቀጥሉት ምሳሌዎች እንደሚቀርበው።

በመጀመሪያው ሁኔታ በተመሳሳይ ሠንጠረዥ ውስጥ ያለውን የሌላ መስክ ዋጋ ግምት ውስጥ በማስገባት አንድ መስክ ብቻ
እናዘምነዋለን.

ምርቶችን አዘምን
አሃድ_ዋጋ = 1.99 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ይህ ስክሪፕት ከተፈጸመ በኋላ የእንቁላል ዋጋ 1.99 € ነው። የሌሎቹ የጠረጴዛዎች መስኮች ሳይነኩ ይቆያሉ.

በሁለተኛው ሁኔታ ሁለት መስኮችን በአንድ ጊዜ እናዘምነዋለን.

ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';
ይህ ስክሪፕት ከተፈጸመ በኋላ ያለው ክምችት እና አነስተኛ የእንቁላል ክምችት ይቀየራል።
እስከ 25 እና 10 ድረስ.

በሶስተኛው ሁኔታ የዋጋ መስኩን እንደገና እናዘምነዋለን, በዚህ ጊዜ ግን ለሶዳ ምርት.

ምርቶችን አዘምን
* 1.25
አሃድ_price = unit_price የት
መግለጫ = 'ሶዳ';
ይህ ስክሪፕት ከተፈጸመ በኋላ የሶዳ ምርት ክፍል ዋጋ በ 25% ይጨምራል.

ሁሉም የቀደሙት ስክሪፕቶች ከተፈጸሙ በኋላ የሠንጠረዡ "ምርቶች" ይዘት በስእል 5 ይታያል.

ምስል 5 - ከተዘመኑ በኋላ የሠንጠረዥ ምርቶች ይዘት

በመጨረሻም፣ በአራተኛው ሁኔታ የጴጥሮስን ቀን የመላኪያ ትዕዛዝ እናዘምነዋለን። ለዚያ, ሁለት ሰንጠረዦችን መጠቀም እና መድረስ አለብን:
"ትዕዛዞች" እና "ደንበኞች".

ትዕዛዞችን አዘምን
ቀን_ማድረስ = '2015-12-29' አዘጋጅ
የት Orders.cod_customer = (code_customer ምረጥ
ከደንበኞች
የት ስም = 'ጴጥሮስ');

ገጽ 17
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ይህ ስክሪፕት ከተፈጸመ በኋላ፣ በጴጥሮስ የተደረጉ ሁሉም ትዕዛዞች የማስረከቢያ ቀን ታህሳስ 29 ቀን 2015 ይሆናል።

ከላይ ያለው ስክሪፕት በ MySQL ዳታቤዝ ውስጥ አይሰራም። በ MySQL ውስጥ እንዲሰራ ለማድረግ ትንሽ ማሻሻያ እናደርጋለን።

ትዕዛዞችን ኦ፣ ደንበኞች ሲ ያዘምኑ


የማስረከቢያ ቀን = '2015-12-29' አዘጋጅ
የት O.cod_customer = C.cod_customer እና C.name = 'ጴጥሮስ';
MySQL ሁለቱም ሠንጠረዦች በ"አዘምን" አንቀጽ መጀመሪያ ላይ እንዲታወጁ ይፈልጋል። ይህን አካሄድ በመጠቀም ከደንበኞች ሠንጠረዥ
ጋር የሚዛመዱ እሴቶችን ለማግኘት ንዑስ ጥያቄን አንጠቀምም።

የቀደሙት ስክሪፕቶች ከተፈጸሙ በኋላ የሠንጠረዥ "ትዕዛዞች" ይዘት በስእል 6 ይታያል.

ምስል 6 - ከተዘመነ በኋላ የሠንጠረዥ ትዕዛዞች ይዘቶች

ገጽ 18
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

5. ውሂብ ሰርዝ
በSQL ውስጥ ያለው የመሰረዝ መመሪያ ከሠንጠረዥ ላይ መረጃን ለመሰረዝ ይጠቅማል። በጣም መሠረታዊው አገባብ ሁሉንም መረጃዎች
ከጠረጴዛ ላይ ለማጥፋት ይህንን መመሪያ መጠቀም ነው። ይህንን ተግባር ለማከናወን ያለው አገባብ ለሁሉም የውሂብ ጎታዎች (MySQL፣
SQL Server እና Oracle) ተመሳሳይ ነው።

ከደንበኞች ሰርዝ;
ወይም

ሰርዝ *
ከደንበኞች;
የቀረቡት ሁለቱ አገባቦች በተግባራዊነት እና በአፈጻጸም ረገድ እኩል ናቸው። በደንበኞች ሠንጠረዥ ውስጥ የሚገኙትን ሁሉንም መረጃዎች የመሰረዝ
ተግባር አለው.

የተወሰነውን ደንብ የሚያሟሉ በርካታ ንጥረ ነገሮችን መሰረዝ ከፈለግን "የት" የሚለውን አንቀጽ ማከል እንችላለን. አንድ ጠረጴዛን ብቻ የሚያካትት አንድ
ምሳሌ እዚህ እናሳያለን.

ከትዕዛዝ ምርቶች ሰርዝ


የት ኮድ_ምርት = 5;
ከላይ ያለው ስክሪፕት ከተፈጸመ በኋላ ሠንጠረዥ "ደንበኞች" ከ 5 ጋር እኩል የሆነ የምርት ኮድ ያለው ንጥል አይኖረውም.

የሠንጠረዥ "ትዕዛዞች ምርቶች" ይዘት በስእል 7 ተሰጥቷል.

ምስል 7 - ከተሰረዘ በኋላ የሠንጠረዥ ትዕዛዞች ምርቶች ይዘቶች

አሁን ብዙ ሠንጠረዦችን እና ንዑስ መጠይቆችን በመጠቀም "Delete From..." የሚለውን አሠራር እንዴት መጠቀም እንደሚቻል
ሁለት ምሳሌዎችን እንሰጣለን.

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_የያዘበት
(የኮድ_ትእዛዝን ይምረጡ
ከትእዛዝ
የት ኮድ_ደንበኛ = 3);
ይህ መመሪያ በኮድ_ደንበኛ ከ 3 ጋር እኩል የሆነ ቅደም ተከተል የተከናወነውን ከትዕዛዝ ምርቶች ውስጥ ይሰርዛል። ከላይ ያለው መመሪያ የትዕዛዝ
ምርቶች እና የትዕዛዝ ሰንጠረዦች መደወልን ያካትታል።

የቀደመው ስክሪፕት ከተፈጸመ በኋላ የሠንጠረዥ "ትዕዛዝ ምርቶች" ይዘት በስእል 8 ቀርቧል.

ገጽ 19
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምስል 8 - ከተሰረዘ በኋላ የሠንጠረዥ ትዕዛዞች ምርቶች ይዘቶች

ምርቶቹ ለማብራሪያው መስክ ምንም ይዘት እንደሌላቸው ሁሉንም ከትዕዛዝ ምርቶች መሰረዝ ከፈለግን ከዚህ በታች ያለውን አካሄድ መከተል እንችላለን።

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_ምርት የገባበት
(የ ኮድ_ምርትን ይምረጡ
ከምርቶች
መግለጫው NULL ከሆነ);
ይህ መመሪያ የምርቱ መግለጫ ባዶ የሆኑትን ሁሉንም ዕቃዎች ከትዕዛዝ ምርቶች ለመሰረዝ ይሞክራል። ይህ መመሪያ በደንብ የተሰራ ነው፣ነገር ግን
ምንም አይነት ውሂብ አይሰርዝም ምክንያቱም በሰንጠረዡ ውስጥ ያለው የመግለጫ መስክ ምርቶች ውድቅ አይደሉም ተብሏል። ስለዚህ በዚህ ነጥብ
ላይ ምንም ባዶ የምርት መግለጫ ማግኘት አይቻልም.

በመጨረሻም SQL ሁሉንም ረድፎች ከጠረጴዛ ላይ ለማስወገድ "Truncate" የሚለውን ትዕዛዝ ይሰጣል. ክዋኔው ወደ ኋላ
መመለስ አይቻልም እና ምንም ቀስቅሴዎች አይተኮሱም. በዚህ መልኩ፣ TRUCATE ፈጣን ነው እና አይጠቀምም።
እንደ DELETE ያህል ቦታ መቀልበስ፣ ግን በጥንቃቄ ጥቅም ላይ መዋል አለበት። እንዴት እንደሚጠቀሙበት ከዚህ በታች አንድ
ምሳሌ እንሰጣለን.

TRUNCATE ሠንጠረዥ ደንበኞች;


ይህ መመሪያ ሁሉንም ውሂብ ከደንበኞች ሰንጠረዥ ያስወግዳል። ይህ መመሪያ በውሂብ ጎታ ስክሪፕት ውስጥ አይገኝም፣ ምክንያቱም የውሂብ ጎታው
ከዚህ ጋር የተያያዙ ትዕዛዞችን ስለያዘ ነው።
ደንበኞች.

DROP (በሚቀጥለው ምዕራፍ የሚታየው) እና TRUNCATE የዲዲኤል ትዕዛዞች መሆናቸውን ማድመቅ አስፈላጊ ነው፣ ነገር ግን ሰርዝ የዲኤምኤል
ትዕዛዝ ነው። እንደዚያው፣ ሰርዝ ኦፕሬሽኖች ወደ ኋላ ሊገለበጡ (መቀልበስ ይችላሉ)፣ የ DROP እና TRUNCATE ስራዎች ግን ወደ ኋላ መመለስ
አይችሉም።

ገጽ 20
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

6. ጠረጴዛዎችን አስወግድ

ሰንጠረዡን ከዳታቤዝ ማውጣት በ SQL ውስጥ ካሉ ቀላሉ ስራዎች አንዱ ነው። ይሁን እንጂ መሆን የለበትም
ሠንጠረዥን ከሚሰርዘው "ሰርዝ ከ..." ከሚለው መመሪያ ጋር ይደባለቁ። ሠንጠረዥን ለማስወገድ

የውሂብ ጎታ "የመጣል ሠንጠረዥ..." የሚለውን ትዕዛዝ መጠቀም አለብን. ይህ መመሪያ በሶስቱም የውሂብ ጎታዎች (MySQL፣ SQL Server እና
Oracle) ውስጥ ይሰራል።

መጣል ጠረጴዛ ደንበኞች;


ይህ መመሪያ ጠረጴዛውን ደንበኞችን ለማስወገድ ይሞክራል። ሆኖም፣ ሰንጠረዡን ማስወገድ የሚቻለው የዚህ ሠንጠረዥ ዋና ቁልፍ በሌላ ሠንጠረዥ
ጥቅም ላይ ካልዋለ ብቻ ነው። በመረጃ ቋታችን ውስጥ ይህ መመሪያ አይሰራም ምክንያቱም በሰንጠረዡ ውስጥ ያለው ዋና ቁልፍ የውጭ ቁልፎች
ማጣቀሻ ነው.

ነገር ግን የ"OrdersProducts" ሠንጠረዥን ከስርአቱ ማስወገድ ሙሉ በሙሉ የሚቻል ይሆናል።

የጠረጴዛ ማዘዣ ምርቶች;


ጥቅም ላይ ከዋለ ይህ መመሪያ የትእዛዝ ምርቶች ሠንጠረዥን ከስርዓቱ ያስወግዳል።

ገጽ 21
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

7. የ SQL ጥያቄዎች - መሰረታዊ መዋቅር


የ SQL መጠይቅ መሰረታዊ መዋቅር ከታች ባሉት አካላት የተዋቀረ ነው።

ምስል 9 - የ SQL መሰረታዊ መዋቅር

ሁለቱ የመጀመሪያ አንቀጾች ብቻ የግዴታ ናቸው ("ምረጥ" እና "ከ")። ሌሎቹ ንጥረ ነገሮች አማራጭ ናቸው.

በ SQL ውስጥ በጣም ጥቅም ላይ ከዋሉት ጥያቄዎች ውስጥ አንዱ ሁሉንም የሰንጠረዡን ይዘቶች ማሳየት ነው። ከታች ባለው ምሳሌ ላይ
እንደወደዱት መጠቀም ይቻላል.

ከደንበኞች * ይምረጡ;
ይህ መመሪያ ሁሉንም የጠረጴዛ ደንበኞች ይዘት ያሳያል። የሠንጠረዡን ሁሉንም ባህሪያት ያሳያል.

ከታች ባለው ምሳሌ ላይ እንደሚታየው የሚታዩትን መስኮች ብቻ መምረጥ ይቻላል.

ስም ይምረጡ, አገር ከደንበኞች;


ይህ መመሪያ የመስኮችን ይዘት እና የደንበኞችን አገር ስም ያሳያል።

ከላይ ያለው ስክሪፕት አፈጻጸም የስእል 10ን ይዘት ያሳያል።

ምስል 10 - የሠንጠረዥ ደንበኛ ይዘት

የደንበኞችን ሀገር ብቻ ለማሳየት ከፈለግን ከዚህ በታች እንደሚታየው በ Select clause ውስጥ ያለውን "ልዩ" የሚለውን መመሪያ መጠቀም እንችላለን

ከደንበኞች የተለየ ሀገር ይምረጡ;


ይህ መመሪያ የሀገርን ይዘት ያሳያል፣ ግን የተለዩ ክፍሎችን ብቻ ነው። በዚህ ሁኔታ ሀገር "ፖርቱጋል" ብቻ ነው የሚታየው.

የሚታየውን የሠንጠረዡን አካላት ለመገደብ "የት" የሚለውን አንቀጽ ልንጠቀም እንችላለን። አን

የዚህ አቀራረብ ምሳሌ ከዚህ በታች ይታያል.

ገጽ 22
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ይምረጡ *
ከምርቶች
Available_stock NULL ካልሆነ;
ይህ መመሪያ በመጋዘን ውስጥ ክምችት ያላቸውን ሁሉንም ምርቶች ያሳያል.

ከታች እንደሚታየው በ "የት" አንቀጽ ውስጥ ብዙ ሁኔታዎችን መጠቀም ይቻላል.

ከምርቶች
* ይምረጡ
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;
ይህ መመሪያ በመጋዘን ውስጥ የተከማቹ እና ዋጋ ከ 1€ በላይ የሆኑትን ሁሉንም ምርቶች ያሳያል። እንዲሁም በውጤቱ ውስጥ ዝቅተኛው_አክሲዮን
አወንታዊ የሆነውን ሁሉንም መስክ ያካትታል።

ከላይ ያለው ስክሪፕት አፈፃፀም የሚከተለውን ውጤት ያሳያል (ምስል 11).

ምስል 11 - በሰንጠረዥ ምርቶች ውስጥ የሁሉም መስኮች ይዘቶች

በ "ከ" አንቀጽ ውስጥ ከአንድ በላይ ሠንጠረዥ መጠቀም እንችላለን. ይህንን ሁኔታ ሁለት ምሳሌዎችን በመጠቀም እናሳያለን.

O.cod_order፣ O.date_order፣ O.DATE_DELIVERY፣ C.name ይምረጡ


ከትዕዛዞች O፣ ደንበኞች ሲ
የት O.cod_customer = C.COD_CUSTOMER;
ይህ መመሪያ በመረጃ ቋቱ ውስጥ ላሉት ሁሉም ትዕዛዞች የትዕዛዙን ኮድ ፣ የትዕዛዝ ቀን ፣ የመላኪያ ቀን እና የደንበኛውን ስም ያሳያል ። በተለይም
የግዴታ የሆነውን "የት" የሚለውን አንቀጽ መፈለግ ተገቢ ነው እና በትእዛዞች እና በደንበኞች ሰንጠረዥ መካከል ያለውን መቀላቀል ለማረጋገጥ ጥቅም
ላይ መዋል አለበት.

ከላይ ያለው ስክሪፕት የአፈፃፀም ውጤት በስእል 12 ተሰጥቷል.

ምስል 12 - ትዕዛዞችን እና ደንበኞችን በተመለከተ መረጃ

ገጽ 23
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

በሚቀጥለው ምሳሌ በ "ከ" አንቀጽ ውስጥ ሶስት ሰንጠረዦችን እንጠቀማለን.

OP.COD_PRODUCT፣ OP.QUANTITY፣ C.name ይምረጡ


ከትዕዛዝ ኦ፣ ደንበኞች ሲ፣ የትዕዛዝ ምርቶች OP
የት O.cod_customer = C.COD_CUSTOMER እና
O.COD_ORDER = OP.COD_ORDER
እና O.COD_ORDER = 3;
ይህ መመሪያ የምርቶች ኮድ ኮድ ፣ የእያንዳንዱ ንጥል ብዛት እና የደንበኛ ስም የትኛው ኮድ ከ "3" ጋር እኩል መሆኑን ያሳያል ። ይህ መመሪያ
የትዕዛዝ፣ የትዕዛዝ ምርቶች እና የደንበኞች ሰንጠረዦችን መጠቀም አለበት። ልክ እንደበፊቱ ምሳሌ፣ “ወዴት” በሚለው አንቀጽ ውስጥ
በእነዚህ ሶስት ሰንጠረዦች ባህሪያት መካከል ያለውን የጋራ ሁኔታዎችን በግልፅ እንገልፃለን።

ከላይ ያለው ስክሪፕት የአፈፃፀም ውጤት በስእል 13 ተሰጥቷል.

ምስል 13 - ሶስት ጠረጴዛዎችን በተመለከተ መረጃ

በመጨረሻም SQLን ከአንዳንድ መሰረታዊ የሂሳብ ስራዎች ጋር እንዴት እንደምንጠቀም እናሳያለን። ከታች ባለው ምሳሌ ውስጥ ኦፕሬተሩን "-"
በመጠቀም እንጀምራለን.

ኮድ_ምርት፣ መግለጫ፣ የሚገኝ_አክሲዮን - minimal_stock እንደ marginStock ይምረጡ


ከምርቶች;
ይህ መመሪያ የሁሉንም ምርቶች marginStock ያሰላል እና ከምርት እና መግለጫ ኮድ ጋር ያሳየዋል።

ከላይ ያለው ስክሪፕት የአፈፃፀም ውጤት በስእል 14 ውስጥ ተሰጥቷል.

ምስል 14 - የ marginStock ስሌት ያሳያል

በሚቀጥለው ምሳሌ አንድ ቁጥር በሌላ (አንዳንድ ጊዜ ሞዱል ተብሎ የሚጠራው) ከተከፋፈለ በኋላ የቀረውን ለማግኘት ሃላፊነት ያለውን
የሞዱሎ አሠራር እንጠቀማለን.

ገጽ 24
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ኮድ_ምርት፣ መግለጫ፣ ሞድ(የሚገኝ_አክሲዮን፣ አነስተኛ_አክሲዮን) እንደ modResult ይምረጡ


ከምርቶች;
ይህ መመሪያ የመከፋፈል ሞጁሉን በትንሹ አክሲዮን ባለው ክምችት ያሰላል። እንዲሁም የምርት ኮድ እና የሁሉም ምርቶች መግለጫ
ያሳያል።

ከላይ ያለው ስክሪፕት ለ MySQL እና Oracle የውሂብ ጎታዎች ብቻ ነው የሚሰራው። በSQL Server ውስጥ እንዲሰራ ለማድረግ የ"%"
ኦፕሬተርን መጠቀም አለብን፣ ልክ እንደሚከተለው።

ኮድ_ምርት፣ መግለጫ፣ የሚገኝ_stock%minimal_stock እንደ modResult ይምረጡ


ከምርቶች;
ይህ መመሪያ የመከፋፈል ሞጁሉን በትንሹ አክሲዮን ባለው ክምችት ያሰላል። እንዲሁም የምርት ኮድ እና የሁሉም ምርቶች መግለጫ
ያሳያል።

ከላይ ያለው የስክሪፕት አፈፃፀም ውጤት በስእል 15 ውስጥ ተሰጥቷል.

ምስል 15 - የ modResult ስሌት ያሳያል

ገጽ 25
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

8. የ SQL ጥያቄዎች - ሕብረቁምፊዎችን ማወዳደር


የተወሰነ ስርዓተ-ጥለት ለመፈለግ ሕብረቁምፊዎችን ለማነፃፀር የ"LIKE" ኦፕሬተርን መጠቀም አለብን።
የዚህ ኦፕሬተር አጠቃቀም በሕብረቁምፊ ውስጥ ያሉ ሌሎች ቁምፊዎችን(ዎች)ን ለመተካት የሚያገለግሉ የዱር ምልክቶችን ቁምፊዎች መጠቀም
ያስፈልገዋል። በጣም የተለመዱ የዱር ምልክቶች የሚከተሉት ናቸው

• "%" - የዜሮ ወይም ከዚያ በላይ ቁምፊዎች ምትክ;


• "_" - የአንድ ነጠላ ቁምፊ ምትክ።

በመጀመሪያው ምሳሌ ከስርዓተ-ጥለት በፊት የዱር ምልክት (የጠፉ ፊደሎችን) እንገልፃለን.

ምረጥ * ከደንበኞች

የት ስም እንደ 'E%';
ይህ መመሪያ በ"ኢ" ፊደል የሚጀምር ስም ያላቸውን ደንበኞች ሁሉ ይመርጣል።

በሁለተኛው ምሳሌ ከስርዓተ-ጥለት በኋላ የዱር ምልክትን እንገልፃለን. መግለጫው ከቀዳሚው ጋር በጣም ተመሳሳይ ነው።

ምረጥ * ከደንበኞች

የት ስም እንደ '%a';
ይህ መመሪያ "ሀ" በሚለው ፊደል የሚያልቅ ስም ያላቸውን ደንበኞች ሁሉ ይመርጣል።

በሁለቱም ሁኔታዎች በመመሪያው የተመለሰው ብቸኛ መዝገብ ከዚህ በታች ባለው ምሳሌ ተሰጥቷል (ምስል 16)።

ምስል 16 - ሁሉንም ደንበኞች በ "a" ውስጥ ያበቃል.

በሶስተኛው ምሳሌ ውስጥ ከስርዓተ-ጥለት በኋላ እና ከዚያ በፊት በአንድ ጊዜ የሚደረግ ምልክትን እንገልፃለን።

ምረጥ * ከደንበኞች

የት ስም እንደ '% e%';


ይህ መመሪያ "ሠ" የሚል ምልክት የያዘ ስም ያላቸውን ደንበኞች ሁሉ ይመርጣል።

ያለፈው ምሳሌ ውጤት በስእል 17 ውስጥ ተገልጿል.

ገጽ 26
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምስል 17 - ሁሉንም ደንበኞች የትኛው ስም "e" እንደያዘ ያሳያል.

በመጨረሻም የ"_" የዱር ካርድ አጠቃቀምን ለማሳየት ሁለት ምሳሌዎችን እንጠቀማለን።

የመጀመሪያው ሁኔታ የጎደለውን ገጸ ባህሪ በመተካት ላይ ብቻ ያካትታል.

ምረጥ * ከደንበኞች

የት ስም እንደ '_lena';
ይህ መመሪያ "ሌና" የሚል ስም ያለው እና በማንኛውም ቁምፊ የሚጀምር ሁሉንም ደንበኞች ይመርጣል።

ሁለተኛው ሁኔታ የበርካታ ቁምፊዎችን መተካት ያካትታል.

ምረጥ * ከደንበኞች

የት ስም እንደ 'E_e_a';
ይህ መመሪያ በ"E" የተጀመረውን ሕብረቁምፊ የያዘ ስም ያላቸውን ደንበኞች ከ"ኢ" ጋር እኩል የሆነ ሶስተኛው እና የመጨረሻው "ሀ" ጋር እኩል
ይመርጣል።

ገጽ 27
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

9. የ SQL መጠይቆች - የመደመር ኦፕሬተሮች


SQL በውሂብ ላይ ስሌቶችን ለማከናወን ብዙ አብሮ የተሰሩ ተግባራት አሉት። የ SQL ድምር ተግባራት በአንድ አምድ ውስጥ ካሉት እሴቶች የተቆጠሩትን
ነጠላ እሴት ይመልሳሉ። በጣም የተለመዱት የማዋሃድ ኦፕሬተሮች የሚከተሉት ናቸው

• AVG () - አማካይ ዋጋን ይመልሳል;


• COUNT () - የረድፎችን ብዛት ይመልሳል;

• MAX () - ትልቁን እሴት ይመልሳል;


MIN () - ትንሹን እሴት ይመልሳል;

• SUM() - ድምርን ይመልሳል።

9.1 AVG () ኦፕሬተር


የAVG() ተግባር የቁጥር አምድ አማካኝ ዋጋን ይመልሳል። እዚህ AVG() ኦፕሬተርን በመጠቀም ሶስት ምሳሌዎችን እናሳያለን።

ከምርቶች AVG(unit_price) ይምረጡ።


ይህ መመሪያ የሁሉም ምርቶች የነጠላ ዋጋ አማካይ ይመልሳል።

ዋጋውን በሁለት አስርዮሽ ቦታዎች ብቻ ማሳየት ከፈለግን የቀደመውን ትንሽ መለወጥ አለብን
መግለጫ.

ከምርቶች ROUND(AVG(unit_price)፣2) ይምረጡ።


ይህ መመሪያ የሁሉንም ምርቶች አሃድ ዋጋ በ2 አስርዮሽ ቦታዎች ይመልሳል። ይህ የሚደረገው የ "ROUND" ተግባርን በመጠቀም ነው.

የመጨረሻው ምሳሌ የAVG() ተግባርን እንደ ንዑስ መጠይቅ አካል አድርጎ ይጠቀማል።

ምረጥ መግለጫ፣ አሀድ_ዋጋ፣ የሚገኝ_አክሲዮን።


ከምርቶች
የት ዩኒት_ዋጋ>(ከምርቶች AVG(unit_price) ይምረጡ)፤
ይህ መመሪያ በመረጃ ቋቱ ውስጥ ካሉት ሁሉም ምርቶች አሃድ ዋጋ አማካኝ የትኛው ክፍል ዋጋ እንደሚበልጥ የሁሉም ምርቶች መግለጫ፣ የአሃድ ዋጋ
እና ያለውን አክሲዮን ያሳያል።

የመጨረሻው መግለጫ ውጤት በስእል 18 ይታያል.

ምስል 18 - የትኞቹ ምርቶች ከአማካይ በላይ እንደሆኑ ያሳያል

9.2 COUNT () ኦፕሬተር


የCOUNT() ተግባር ከተጠቀሰው መስፈርት ጋር የሚዛመዱትን የረድፎች ብዛት ይመልሳል። እዚህ የCOUNT() ኦፕሬተርን የመጠቀም ሁለት ምሳሌዎችን
እናሳያለን።

ገጽ 28
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ከደንበኞች ቁጥር (*) ይምረጡ; ይህ መመሪያ


በደንበኞች ሰንጠረዥ ውስጥ ያሉትን የመዝገቦች ብዛት ይመልሳል።

ሁለተኛው ምሳሌ በተመሳሳይ ጊዜ ቆጠራ () ተግባርን እና የተለየ መግለጫን ይጠቀማል።

ከደንበኞች ቆጠራ (የተለየ አገር) ይምረጡ; ይህ መመሪያ በደንበኞች


ሠንጠረዥ ውስጥ ያሉትን የተለያዩ አገሮች ብዛት ይመልሳል።

ያለፈው መግለጫ አፈፃፀም ውጤቱ በስእል 19 ውስጥ ተሰጥቷል ።

ምስል 19 - ሁሉንም የደንበኞች አገሮች ያሳያል

9.3 ማክስ() ኦፕሬተር


የMAX() ተግባር የተመረጠውን አምድ ትልቁን እሴት ይመልሳል። እዚህ MAX() ኦፕሬተርን በመጠቀም
ሁለት ምሳሌዎችን እናሳያለን።

ከምርቶች ከፍተኛውን ዋጋ (ክፍል_ዋጋ) ይምረጡ፤ ይህ መመሪያ የሁሉም ምርቶች


ከፍተኛውን ዋጋ ይመልሳል።

በሁለተኛው ምሳሌ ከፍተኛውን እና አማካይ እሴቶችን በአንድ ጊዜ እንመለሳለን.

MAX(ዩኒት_ዋጋ) እንደ ከፍተኛው ዋጋ፣ AVG(ክፍል_ዋጋ) እንደ አማካይ ዋጋ ከምርቶች ምረጥ፤ ይህ መመሪያ
ከፍተኛውን የአሃድ ዋጋ እና የሁሉም ምርቶች አማካኝ ዋጋ ይመልሳል።

ያለፈው መግለጫ አፈፃፀም ውጤቱ በስእል 20 ውስጥ ተገልጿል.

ምስል 20 - ከፍተኛውን እና አማካይ ዋጋን ያሳያል

9.4 ደቂቃ() ኦፕሬተር


የMIN() ተግባር የተመረጠውን አምድ ትንሹን እሴት ይመልሳል። እዚህ MIN() ኦፕሬተርን በመጠቀም
ሁለት ምሳሌዎችን እናሳያለን።

MIN(unit_price) እንደ ትንሹ ዋጋ ከምርቶች ምረጥ፤ ይህ መመሪያ የሁሉም


ምርቶች አነስተኛውን ዋጋ ይመልሳል።

በሁለተኛው ምሳሌ ከፍተኛውን እና አማካይ እሴቶችን በአንድ ጊዜ እንመለሳለን.

ገጽ 29
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

MIN(unit_price) እንደ ትንሹ ዋጋ፣ AVG(ክፍል_ዋጋ) እንደ አማካይ ዋጋ ከምርቶች ምረጥ፤

ይህ መመሪያ ትንሹን ክፍል ዋጋ እና የሁሉም ምርቶች አማካኝ ዋጋ ይመልሳል።

ያለፈው መግለጫ አፈፃፀም ውጤቱ በስእል 21 ውስጥ ተገልጿል.

ምስል 21 - አነስተኛውን እና አማካይ ዋጋን ያሳያል

9.5 SUM () ኦፕሬተር


የ SUM() ተግባር የቁጥር አምድ ጠቅላላ ድምርን ይመልሳል። እዚህ SUM() ኦፕሬተርን በመጠቀም ሁለት ምሳሌዎችን እናሳያለን።

SUM(የሚገኝ_አክሲዮን) እንደ አጠቃላይ ስቶክ ከምርቶች ምረጥ፤


ይህ መመሪያ ለሁሉም ምርቶች ያለውን የአክሲዮን ድምር ይመልሳል።

በሁለተኛው ምሳሌ የሁሉንም ኦፕሬተሮች አጠቃቀም በአንድ መግለጫ ውስጥ እናሳያለን.

COUNT(*) እንደ ጠቅላላ ምርቶች ምረጥ፣


AVG(የክፍል_ዋጋ) እንደ አማካኝ ዋጋ፣
MAX(የክፍል_ዋጋ) እንደ ከፍተኛው ዋጋ፣
MIN(የክፍል_ዋጋ) እንደ ትንሹ ዋጋ፣
SUM(በአክሲዮን) AS ጠቅላላ ስቶክ ከ ምርቶች;

ይህ መመሪያ የምርቶቹን ጠቅላላ ብዛት፣ አማካይ ዋጋ፣ ከፍተኛ ዋጋ፣ ትንሹን ዋጋ እና አጠቃላይ አክሲዮኖችን በአንድ ጊዜ ይመልሳል።

ከላይ ያለው መግለጫ ውጤቱ በስእል 22 ይታያል.

ምስል 22 - አጠቃላይ የምርት ብዛት, አማካይ ዋጋ, ከፍተኛ ዋጋ, አነስተኛ ዋጋ እና አጠቃላይ አክሲዮን ያሳያል

ገጽ 30
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

10. የ SQL መጠይቆች - Scalar ተግባራት


የ SQL scalar ተግባራት በግቤት እሴቱ ላይ በመመስረት አንድ ነጠላ እሴት ይመለሳሉ። በጣም ጠቃሚ የሆኑት የ scalar ተግባራት የሚከተሉት
ናቸው:

• UCASE () - መስክን ወደ ትልቅ ጉዳይ ይለውጣል; • LCASE


() - መስክን ወደ ትንሽ ፊደል ይለውጣል; • LEN () - የጽሑፍ
መስክን ርዝመት ይመልሳል; ዙር() - የቁጥር መስክን ወደ የተገለጹ
የአስርዮሽ ቁጥሮች ያዞራል።

በሚቀጥሉት አንቀጾች ውስጥ የእያንዳንዱን scalar ተግባራት ምሳሌ እንሰጣለን.

በመጀመሪያው ምሳሌ የ UCASE() እና LCASE() ተግባራትን በአንድ ጊዜ እንጠቀማለን። ሆኖም ግን, አንድ ተጨማሪ ጉዳይ አለ, ምክንያቱም
ለእያንዳንዱ የተለየ የውሂብ ጎታ የተለየ መግለጫ መጠቀም አለብን.
ለ MySQL መግለጫውን በማቅረብ እንጀምራለን.

UCASE (ስም) እንደ UPPERName ፣ LCASE (ስም) ከደንበኞች እንደ LOWERName ይምረጡ።
ይህ መመሪያ የደንበኞችን ስም እና ዝቅተኛ ስም በተመሳሳይ ጊዜ ይመልሳል።

የ SQL አገልጋይ እና Oracle መግለጫ አንድ አይነት ሊሆን ይችላል።

የላይኛውን (ስም) እንደ UPPERName ፣ LOWER (ስም) እንደ LOWER ስም ከደንበኞች ይምረጡ።
ይህ መመሪያ የደንበኞችን ስም እና ዝቅተኛ ስም በተመሳሳይ ጊዜ ይመልሳል።

ያለፈው መግለጫ ውጤት በስእል 23 ይታያል።

ምስል 23 - የደንበኞቹን የላይኛው እና የታችኛውን ስም ያሳያል

በሁለተኛው ምሳሌ የጽሑፍ መስክ መጠንን ለመመለስ የ LEN() ተግባርን እንጠቀማለን። ይህ ተግባር በ SQL አገልጋይ ዳታቤዝ ውስጥ ብቻ
ጥቅም ላይ ሊውል ይችላል።

ከደንበኞች ስም ፣ LEN (ስም) እንደ የመጠን ስም


ይምረጡ ፣ ይህ መመሪያ ሁሉንም የደንበኞች ስም ያሳያል
እና ለእያንዳንዱ ስም መጠኑን ያሳያል።

በ MySQL እና Oracle የውሂብ ጎታዎች ውስጥ የ"LEN()" ተግባርን በ"LENGTH()" መተካት አለብን።
ተግባር.

ገጽ 31
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ከደንበኞች እንደ የመጠን ስም ፣ LENGTH (ስም)


ይምረጡ። ይህ መመሪያ ሁሉንም የደንበኞች ስም ያሳያል
እና ለእያንዳንዱ ስም መጠኑን ያሳያል።

ያለፈው መግለጫ ውጤት በስእል 24 ይታያል።

ምስል 24 - የደንበኞቹን ስም መጠን ያሳያል

በሶስተኛው ምሳሌ የክብ () ተግባርን እንጠቀማለን. የሚከተለው መግለጫ ለሶስቱ የውሂብ ጎታዎች ጥሩ ይሰራል.

መግለጫ፣ ዙር(የክፍል_ዋጋ፣ 0) እንደ RPrice0፣ ዙር(ክፍል_ዋጋ፣ 1)


እንደ RPrice1፣ ዙር(የክፍል_ዋጋ፣ 2) እንደ RPrice2 ከምርቶች
ይምረጡ። ይህ መመሪያ ለእያንዳንዱ ምርት ሶስት ዋጋዎችን
ያሳያል. የመጀመሪያው ያለ አስርዮሽ ቦታ፣ ሁለተኛው ዓምድ አንድ
አስርዮሽ ቦታ፣ እና ሦስተኛው አምድ ሁለት አስርዮሽ ቦታዎች።

ያለፈው መግለጫ ውጤት በስእል 25 ተሰጥቷል.

ምስል 25 - የምርቶች ዋጋን ለመጨመር 3 አቀራረቦችን ያሳያል

ገጽ 32
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

11. የ SQL መጠይቆች - ንጥረ ነገሮችን መቧደን


የተመለሱ ረድፎችን ብዛት ለመቧደን እና ለመገደብ የሚያገለግሉ ሁለት ተጨማሪ የSQL መግለጫዎች አሉ። እነዚህ መግለጫዎች፡ "ቡድን
በ..." እና "ያላቸው..." ናቸው።

የ"ቡድን በ..." መግለጫ ውጤቱን በአንድ ወይም በብዙ አምዶች ለመመደብ ከድምር ተግባራት ጋር አብሮ ጥቅም ላይ ይውላል። እዚህ የቡድን
መግለጫን በመጠቀም 2 ምሳሌዎችን እንሰጣለን.

ኮድ_ደንበኛን ይምረጡ፣ እንደ nትእዛዝ ይቁጠሩ (cod_customer)


ከትእዛዝ
ቡድን በ cod_customer;
ይህ መመሪያ ለእያንዳንዱ ደንበኛ በስርዓቱ ውስጥ የተመዘገቡትን የትዕዛዝ ብዛት ይመርጣል።

ያለፈው ቀዶ ጥገና ውጤት በስእል 26 ውስጥ ተሰጥቷል.

ምስል 26 - ለእያንዳንዱ ደንበኛ የትዕዛዝ ብዛት ይቆጥራል

ሁለተኛው ምሳሌ ከአንድ በላይ ጠረጴዛዎች የበለጠ ውስብስብ የአካል ብቃት እንቅስቃሴን ይሰጣል.

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP
የት O.COD_ORDER = OP.COD_ORDER
ቡድን በ O.cod_customer፣ O.cod_order;
ይህ መመሪያ ለእያንዳንዱ ደንበኛ እና ትዕዛዝ, አጠቃላይ የእቃዎች ብዛት እና የምርት ብዛት ያሳያል. ይህንን ተግባር ለማከናወን በደንበኛ እና
በትእዛዝ ኮድ መቧደን አለ ።

የቀደሙት መግለጫዎች ውጤት በስእል 27 ይታያል።

ምስል 27 - በእያንዳንዱ ደንበኛ / ትእዛዝ የእቶን ብዛት እና የምርት ብዛት ያሳያል

በመጨረሻው ምሳሌ የታዩትን ንጥረ ነገሮች ብዛት ለመገደብ የ"Having..." የሚለውን አንቀጽ እንጠቀማለን።
የ WHERE ቁልፍ ቃል ከድምር ተግባራት ጋር ጥቅም ላይ መዋል ባለመቻሉ "ያለው" የሚለው አንቀጽ ወደ SQL ታክሏል።

ገጽ 33
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ይምረጡ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት
O.COD_ORDER = OP.COD_ORDER ቡድን በ
O.cod_customer፣ O.cod_order ድምር(ብዛት)
ያለው > 10; ይህ መመሪያ ከቀዳሚው ጋር በጣም
ተመሳሳይ ነው እና ተጨማሪ የመጨረሻውን መስመር ብቻ ይጨምራል። "ያለው" የሚለው አንቀጽ የብዛቱ ድምር ከ10 በላይ
የሆነባቸውን መስመሮች ብቻ ያሳያል።

የቀደመው ኦፕሬሽን ውጤት በስእል 28 ይታያል።

ምስል 28 - ሐረጉን በመጠቀም ውጤቱን ማጣራት

ገጽ 34
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

12. የ SQL ጥያቄዎች - መረጃን ማዘዝ


ORDER BY ቁልፍ ቃሉ በአንድ ወይም በብዙ አምዶች የተዘጋጀውን ውጤት ለመደርደር ይጠቅማል። ORDER BY በቁልፍ ቃሉ መዝገቦቹን
በነባሪነት ወይም በASC ቁልፍ ቃል ወደላይ በቅደም ተከተል ይመድባል። መዝገቦቹን በሚወርድ ቅደም ተከተል ለመደርደር የ DESC ቁልፍ
ቃል መጠቀም ይችላሉ። እዚህ ላይ "Order By..." የሚለውን አገባብ በመጠቀም ሁለት ምሳሌዎችን እናሳያለን.

ይምረጡ *
ከደንበኞች
በስም ማዘዝ;
ይህ መመሪያ መዝገቦቹን በስም የሚያዝዙ ሁሉንም የደንበኞች ሠንጠረዥ አምዶች ይመርጣል (የወጣ ትእዛዝ)።

ያለፈው መግለጫ ውጤት በስእል 29 ተሰጥቷል.

ምስል 29 - በደንበኛው ስም መረጃን ማዘዝ

በሁለተኛው ምሳሌ አንድ አይነት ትዕዛዝ በኦፕሬሽን እንጠቀማለን አሁን ግን የተገላቢጦሽ ቅደም ተከተል እንጠቀማለን.

ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;
ይህ መመሪያ መዝገቦቹን በስም የሚያዝዙ ሁሉንም የደንበኞች ሠንጠረዥ አምዶች ይመርጣል (የወረደ ቅደም ተከተል)።

ያለፈው ቀዶ ጥገና ውጤት በስእል 30 ውስጥ ተሰጥቷል.

ምስል 30 - የደንበኞችን ስም በተገላቢጦሽ ማዘዝ

ገጽ 35
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

13. የ SQL መጠይቆች - ዋና ዋና ነገሮችን መመለስ

በ SQL ውስጥ ተጠቃሚው የመጀመሪያዎቹን n ንጥረ ነገሮች ብቻ እንዲመልስ የሚያስችል ጠቃሚ መግለጫ አለ። ይህ
አንቀጽ በሺዎች የሚቆጠሩ መዝገቦች ባሉባቸው ትላልቅ ጠረጴዛዎች ላይ በጣም ጠቃሚ ሊሆን ይችላል, ይህም በአፈፃፀም
ላይ ጥልቅ ተጽእኖ ሊኖረው ይችላል. ለእያንዳንዱ የውሂብ ጎታ አገባቡ የተለየ ነው።

በ MySQL ውስጥ ከዚህ በታች ያለውን አገባብ በመጠቀም ይህንን ክዋኔ ማከናወን ይቻላል.

ምረጥ *

ከደንበኞች
በስም ማዘዝ
ገደብ 3;
ይህ መመሪያ በስም የታዘዙትን ሁሉንም የደንበኞች ሰንጠረዥ ያሳያል። ሆኖም ግን, የመጀመሪያዎቹን ሶስት መዝገቦች ብቻ ያሳያል.

በ SQL አገልጋይ ውስጥ ከዚህ በታች ያለውን አገባብ በመጠቀም ይህንን ተግባር ማከናወን ይቻላል ።

*
ከፍተኛ 3 ን ይምረጡ
ከደንበኞች
በስም ማዘዝ;
ይህ መመሪያ በስም የታዘዙትን ሁሉንም የደንበኞች ሰንጠረዥ ያሳያል። ሆኖም ግን, የመጀመሪያዎቹን ሶስት መዝገቦች ብቻ ያሳያል.

በመጨረሻም ፣ በ Oracle ውስጥ ተመሳሳይ ክዋኔ ከዚህ በታች ያለውን አገባብ በመጠቀም ሊከናወን ይችላል።

ምረጥ *

ከደንበኞች
የት RowNum <= 3
በስም ማዘዝ;
ይህ መመሪያ በስም የታዘዙትን ሁሉንም የደንበኞች ሰንጠረዥ ያሳያል። ሆኖም ግን, የመጀመሪያዎቹን ሶስት መዝገቦች ብቻ ያሳያል.

በኮንሶል ውስጥ ምስል 31 ውጤቱን ያሳያል.

ምስል 31 - የጥያቄውን ዋና ዋና ክፍሎች መመለስ

ገጽ 36
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

14. የ SQL ጥያቄዎች - ንዑስ ጥያቄዎች


ንዑስ መጠይቆች በጥያቄ መግለጫዎች ውስጥ የተቀመጡ የጥያቄ መግለጫዎች ናቸው። ንዑስ ጥያቄ ሊከሰት ይችላል።
ውስጥ፡

• የመምረጥ አንቀፅ; • ሀ ከ

አንቀጽ;
• የቦታ አንቀጽ።

በተለምዶ ንዑስ መጠይቅ በ WHERE በሌላ SQL SELECT መግለጫ ውስጥ ይታከላል። የአገባብ ሞዴል በስእል 32 ይታያል።

ምስል 32 - የንዑስ መጠይቅ መዋቅር

ንኡስ መጠይቁ (የውስጥ መጠይቅ) ዋናው ጥያቄ (የውጭ መጠይቅ) ከመፈጸሙ በፊት አንድ ጊዜ ይሰራል።
ስለዚህም ዋናው መጠይቅ (የውጭ መጠይቅ) የንኡስ መጠይቁን ውጤት ይጠቀማል።

በዚህ ምዕራፍ አውድ ውስጥ የንዑስ መጠይቆችን የማደጎ ሁለት ምሳሌዎችን እንሰጣለን።

በመጀመሪያው ምሳሌ ውስጥ በውስጣዊ እና ውጫዊ መጠይቅ ውስጥ ሁልጊዜ አንድ አይነት ሰንጠረዥ እንጠቀማለን.

መግለጫ ይምረጡ
ከምርቶች
አሀድ_ዋጋ = (ከፍተኛውን(የክፍል_ዋጋ) ይምረጡ)
ከ ምርቶች); ይህ መመሪያ
ከፍተኛውን የንጥል ዋጋ ያለውን ምርት መግለጫ ያቀርባል.

የዚህ ቀዶ ጥገና ውጤት በስእል 33 ውስጥ ተሰጥቷል.

ምስል 33 - ምርቱን በከፍተኛ ዋጋ ያሳያል

በሁለተኛው ምሳሌ ከውጪው የተለየ ሌላ ሰንጠረዥ የሚጠቀም ንዑስ መጠይቅን እንጠቀማለን


መግለጫ.

ገጽ 37
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
የት ቀን_መላኪያ > = '2015-12-26');
ይህ መመሪያ የትኛው የደንበኛ ኮድ ከፍተኛ እንደሆነ (በጣም የቅርብ ጊዜ) የደንበኛውን ስም ያቀርባል እና የትኛው የማስረከቢያ ቀን ከታህሳስ 26 ቀን
2015 ጋር እኩል ወይም የበለጠ የቅርብ ጊዜ እንደሆነ ትእዛዝ አለው።

የዚህ ቀዶ ጥገና ውጤት በስእል 34 ውስጥ ተሰጥቷል.

ምስል 34 - ለደንበኛው ከፍተኛ የደንበኛ ኮድ እና የመላኪያ ቀንን ያሳያል

በመጨረሻው ምሳሌ ላይ ከውጪው የተለየ ሌላ ሠንጠረዥ የሚጠቀም ንዑስ መጠይቅን እንጠቀማለን።


መግለጫ.

ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);
ይህ መመሪያ በመረጃ ቋቱ ውስጥ የተቀመጠውን የመጨረሻውን ትዕዛዝ የማስረከቢያ ቀንን ያቀርባል ይህም የእቃው
ብዛት ከ3 በላይ ነው።

የዚህ ቀዶ ጥገና ውጤት በስእል 35 ተሰጥቷል.

ምስል 35 - ብዛት ያላቸውን ትዕዛዞች የመላኪያ ቀን ያሳያል

ገጽ 38
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

15. የ SQL መጠይቆች - ኦፕሬተር "ውስጥ" እና "አለ"

የሠንጠረዡን ይዘት ለመፈተሽ ኦፕሬተሩ "in" እና "አለ" በ SQL ውስጥ መጠቀም ይቻላል። ኦፕሬተሩ "in" ተጠቃሚዎች በ WHERE አንቀጽ
ውስጥ ብዙ እሴቶችን እንዲገልጹ ያስችላቸዋል።

በመጀመሪያው ምሳሌ የቁጥር እሴቶችን ለመፈተሽ "IN" ኦፕሬተርን እንጠቀማለን።

ምረጥ *

ከትእዛዝ
ኮድ_ትዕዛዝ የት ነው (1፣ 3፣ 5);
ይህ ክዋኔ በሠንጠረዡ ውስጥ ያሉትን ሁሉንም የመዝገቦች መስኮች ያሳያል ከ "1" ወይም "3" ወይም "5" ጋር እኩል የሆነ የትዕዛዝ ኮድ
የያዘ።

የዚህ ቀዶ ጥገና ውጤት በስእል 36 ይታያል.

ምስል 36 - የ "IN" ኦፕሬተርን በመጠቀም መሰረታዊ አቀራረብ

በሁለተኛው ምሳሌ የሕብረቁምፊ እሴቶችን ለመፈተሽ "IN" ኦፕሬተርን እንጠቀማለን.

ምረጥ *

ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');
ይህ ክዋኔ በሠንጠረዥ ውስጥ ያሉትን ሁሉንም የመዝገቦች መስኮች ያሳያል ከ "ፒተር" ወይም "ኤሌና" ጋር እኩል የሆነ ስም ያላቸው
ደንበኞች.

ኦፕሬተሩ "IN" በተጨማሪ ከንዑስ መጠይቆች ጋር መጠቀም ይቻላል. የዚህ ሁኔታ አንድ ምሳሌ ከዚህ በታች ተሰጥቷል.

ምረጥ *

ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);
ይህ ክዋኔ በሠንጠረዡ ውስጥ ቀድሞውኑ ትዕዛዝ ያላቸውን ሁሉንም ደንበኞች ያሳያል. ኦፕሬተሩ "IN" ከትዕዛዝ ሠንጠረዥ ውስጥ ብዙ እሴቶችን
ለማምጣት ይጠቅማል።

የዚህ ቀዶ ጥገና ውጤት በስእል 37 ይታያል.

ገጽ 39
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምስል 37 - ትዕዛዝ ያላቸውን ሁሉንም የደንበኛ መስኮች ይመልሱ

ኦፕሬተሮች "IN" እና "EXISTS" ተመሳሳይ ተግባር ይሰጣሉ፣ ግን አገባቡ ትንሽ የተለየ ነው።
EXISTS የንዑስ ጥያቄ ውጤት መኖሩን ያረጋግጣል። የEXISTS ንዑስ መጠይቅ ንዑስ መጠይቁ ቢያንስ አንድ ረድፍ ያመጣ እንደሆነ ይሞክራል። ምንም
ውሂብ ካልተመለሰ ይህ ኦፕሬተር 'FALSE' ይመልሳል።

የ"EXISTS" ኦፕሬተርን አጠቃቀም ለማሳየት ከዚህ በፊት የነበረውን ምሳሌ እንጠቀማለን፣ አሁን ግን ከ "IN" ይልቅ "EXISTS" እንጠቀማለን።

ምረጥ *

ከደንበኞች ሲ

የት አለ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች O
የት C.cod_customer = O.cod_customer);
ይህ ክዋኔ በሠንጠረዡ ውስጥ ቀድሞውኑ ትዕዛዝ ያላቸውን ሁሉንም ደንበኞች ያሳያል. ኦፕሬተሩ "EXISTS" ትእዛዝ ያላቸውን ደንበኞች ሁሉ የደንበኞችን
ኮድ ለማውጣት ይጠቅማል።

ሁለቱም ኦፕሬተሮች "IN" እና "EXISTS" ከ "NOT" ቅድመ ቅጥያ ጋር መጠቀም ይቻላል. የእንደዚህ አይነት ሁኔታ
ምሳሌ ከዚህ በታች ተሰጥቷል.

የተለየ አገር ይምረጡ


ከደንበኞች ሲ

በሌለበት ቦታ (ኮድ_ደንበኛን ይምረጡ


ከትእዛዞች O
የት C.cod_customer = O.cod_customer);
ይህ መመሪያ በመረጃ ቋቱ ውስጥ ምንም ትዕዛዞች የሌሉባቸውን ሁሉንም የተለዩ አገሮች ያሳያል።

የዚህ ቀዶ ጥገና ውጤት በስእል 38 ውስጥ ተሰጥቷል.

ምስል 38 - ትዕዛዝ የሌላቸውን ደንበኞች ያሳያል

ገጽ 40
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

16. የ SQL መጠይቆች - ኦፕሬተር "ማንኛውም" እና "ሁሉም"


በተለምዶ ከንዑስ መጠይቆች ጋር ሁለት ጠቃሚ ኦፕሬተሮች "ማንኛውም" እና "ሁሉም" አሉ።

ኦፕሬተሩ "ማንኛውም" ከአንድ ዝርዝር ውስጥ ካለው እያንዳንዱ እሴት ጋር ያወዳድራል ወይም ከጥያቄ የተገኘውን ውጤት
ያወዳድራል እና የውስጥ መጠይቅ ውጤት ቢያንስ አንድ ረድፍ ካለ ወደ እውነት ይገመግማል። የ"ማንኛውም" ኦፕሬተርን
በመጠቀም ቀላል ምሳሌ ከዚህ በታች ቀርቧል።

መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት = ማንኛውም
( ኮድ_ምርትን ይምረጡ
ከትዕዛዝ ምርቶች
የት ብዛት = 1)
ይህ መመሪያ ከ 1 ጋር እኩል የሆነ የመጠን ቅደም ተከተል ያላቸውን ምርቶች መግለጫ ያሳያል።

ከላይ የተጠቀሰው ቀዶ ጥገና ውጤት በስእል 39 ተሰጥቷል.

ምስል 39 - የማንኛውንም ኦፕሬተር አጠቃቀም ያሳያል

ከዚህ በታች ተመሳሳዩን "ማንኛውም" ኦፕሬተር በመጠቀም ሌላ ምሳሌ ተሰጥቷል ነገር ግን ማነፃፀሪያ ኦፕሬተርን ወደ =" =" ቀይር።

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
የሚገኝበት_ስቶክ>= ማንኛውም (የተለየ minimal_stock ይምረጡ
ከ ምርቶች); ይህ መመሪያ
በመረጃ ቋቱ ውስጥ ካሉት ሁሉም ምርቶች አነስተኛ አክሲዮን የሚበልጠውን መግለጫ እና የሚገኙትን ምርቶች ያሳያል።

ከላይ ያለው የአሠራር ውጤት በስእል 40 ውስጥ ተሰጥቷል.

ምስል 40 - የማንኛውንም ኦፕሬተር አጠቃቀም ያሳያል

የ"ማንኛውም" አገባብ የመቀበል ሌላ ምሳሌ ከዚህ በታች ተሰጥቷል።

ገጽ 41
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)
ይህ መመሪያ የደንበኞችን ስም እና አድራሻ አስቀድሞ ካዘዘው የደንበኛ ኮድ የትኛው የደንበኛ ኮድ በታች እንደሆነ ያሳያል።

ከላይ የተጠቀሰው ቀዶ ጥገና ውጤት በስእል 41 ተሰጥቷል.

ምስል 41 - የማንኛውንም ኦፕሬተር አጠቃቀም ያሳያል

ሁሉም የ SELECT መግለጫ መዝገቦችን ለመምረጥ ይጠቅማል። ዋጋን በእያንዳንዱ ዝርዝር ውስጥ ካለው እሴት ጋር
ያወዳድራል ወይም ከጥያቄ የተገኙ ውጤቶች። ሁሉም በንፅፅር ኦፕሬተሮች መቅደም አለባቸው እና መጠይቁ ምንም
ረድፎች ካልተመለሰ ወደ TRUE መገምገም አለበት። ከዚህ በታች አንድ ምሳሌ ተሰጥቷል.

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
አሃድ_ዋጋ >= ሁሉም ባለበት (የተለየ አሃድ_ዋጋ ይምረጡ
ከ ምርቶች);
ይህ መመሪያ በመረጃ ቋቱ ውስጥ ካሉት ሁሉም ምርቶች ዋጋ የትኛው ዩኒት ዋጋ እንደሚበልጥ መግለጫውን እና ያለውን የምርት ክምችት ያሳያል። የ"="
ምልክቱ ትክክለኛውን መስክ እንዲመልስ እና ቢያንስ ከአንድ መዝገብ ጋር እንዲዛመድ ዋስትና ለመስጠት ያገለግላል።

የዚህ ቀዶ ጥገና ውጤት በስእል 42 ውስጥ ተሰጥቷል.

ምስል 42 - የ ALL ኦፕሬተር አጠቃቀምን ያሳያል

ገጽ 42
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

17. የ SQL መጠይቆች - ክዋኔዎች ከሴቶች ጋር


SQL በተዛማጅ አልጀብራ ውስጥ ሊገኙ ከሚችሉ ስብስቦች ጋር ሶስት ስራዎችን ያቀርባል።
ሁለት ቀላል ግንኙነቶችን (R1 እና R2) ከግምት ውስጥ በማስገባት እነዚህ ተግባራት የሚከተሉት ናቸው-

• ዩኒየን - በ R1፣ R2 ወይም በሁለቱም ላይ የሚታዩትን ሁሉንም ቱፕሎች የያዘ ግንኙነት;

• ኢንተርሴክት - በ R1 እና R2 ውስጥ የሚታዩትን ሁሉንም ቱፕሎች የያዘ ግንኙነት ነው።


• ልዩነት - በ R2 ውስጥ የማይታዩ ሁሉንም የ R1 ቱፕሎች የያዘ ግንኙነት።

የ UNION ኦፕሬተር የሁለት ወይም ከዚያ በላይ የ SELECT መግለጫዎችን የውጤት ስብስብ ለማጣመር ይጠቅማል። የ
በ UNION ውስጥ የ SELECT መግለጫ ተመሳሳይ የአምዶች ብዛት እና ተመሳሳይነት ሊኖረው ይገባል

ወይም ተኳሃኝ የውሂብ አይነቶች.

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
ይህ መመሪያ የሁሉም ምርቶች መግለጫ ከ 3 በላይ ወይም ከ 1 ከፍ ያለ መሆኑን ያሳያል የ UNION መግለጫ የሁለቱም የ SQL መግለጫዎች
ውጤቶች እንዲቀላቀሉ ያደርጋል።

ያለፈው ቀዶ ጥገና ውጤት በስእል 43 ውስጥ ተሰጥቷል.

ምስል 43 - የ UNION ኦፕሬተር አጠቃቀምን ያሳያል

የ UNION ኦፕሬተር በነባሪነት የተለያዩ እሴቶችን ብቻ ነው የሚመርጠው። የተባዙ እሴቶችን ለመፍቀድ ሁሉንም ቁልፍ ቃል
ከ UNION ጋር ይጠቀሙ። የእንደዚህ አይነት ሁኔታ ምሳሌ ከዚህ በታች ተሰጥቷል.

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
ይህ መመሪያ የሁሉም ምርቶች መግለጫ ከ 3 በላይ ወይም ከ 1 ከፍ ያለ መሆኑን ያሳያል. ነገር ግን ካለፈው ምሳሌ ጋር በማነፃፀር በሁለቱም ጥያቄዎች
የተመለሱት መዝገቦች የተባዙ ናቸው።

ገጽ 43
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

የዚህ ቀዶ ጥገና ውጤት በስእል 44 ይታያል.

ምስል 44 - የ UNION ALL ኦፕሬተር አጠቃቀምን ያሳያል

የSQL INTERSECT ኦፕሬተር የ2 ወይም ከዚያ በላይ የ SELECT መግለጫዎችን ውጤት ለመመለስ ይጠቅማል።
ሆኖም ግን፣ በሁሉም መጠይቆች ወይም የውሂብ ስብስቦች የተመረጡትን ረድፎች ብቻ ይመልሳል። መዝገብ በአንደኛው መጠይቅ
ውስጥ ካለ በሌላኛው ውስጥ ካልሆነ ከ INTERSECT ውጤቶች ይወጣል። የእንደዚህ አይነት ሁኔታ ምሳሌ ከዚህ በታች ተሰጥቷል.
ከታች ያለው ስክሪፕት በSQL Server እና Oracle ዳታቤዝ ውስጥ ብቻ ይሰራል።

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
ኢንተርሴክት
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;
ይህ መመሪያ የሁሉም ምርቶች መግለጫ ከ 3 በላይ ወይም ከ 1 ከፍ ያለ መሆኑን ያሳያል. ነገር ግን ካለፈው ምሳሌ ጋር በማነፃፀር በሁለቱም ጥያቄዎች
የተመለሱት መዝገቦች የተባዙ ናቸው።

የዚህ ቀዶ ጥገና ውጤት በስእል 45 ተሰጥቷል.

ምስል 45 - የ INTERSECT ኦፕሬተር አጠቃቀምን ያሳያል

የ INTERSECT ኦፕሬተር በ MySQL ውስጥ አይደገፍም። በ MySQL ውስጥ ተመሳሳይ ተግባር ለመስራት "IN", "EXISTS" ወይም የሂሳብ
ኦፕሬተሮችን መጠቀም እንችላለን. በቀደመው ምሳሌያችን ቀላል የሂሳብ ኦፕሬተሮችን በመጠቀም ተመሳሳይ ተግባር ላይ መድረስ እንችላለን። የዚህ
አቀራረብ ምሳሌ ከዚህ በታች ተሰጥቷል.

ገጽ 44
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት>3 እና ኮድ_ምርት>1;
ይህ መመሪያ የሁሉንም ምርቶች ገለፃ ያሳያል የትኛው የምርት ኮድ ከ 3 በላይ ወይም ከ 1 በላይ ከፍ ያለ ነው. እሱ የሚጠቀመው የሂሳብ እና ቡሊያን
ስራዎችን ብቻ ነው.

የSQL MINUS አንቀጽ ሁለት የ SELECT መግለጫዎችን በማጣመር እና በሁለተኛው የ SELECT መግለጫ ያልተመለሱ ረድፎችን
ከመጀመሪያው የ SELECT መግለጫ ለማስመለስ ጥቅም ላይ ይውላል። የዚህ ሁኔታ ምሳሌ ከዚህ በታች ተሰጥቷል. ይህ ስክሪፕት
በOracle ውስጥ ብቻ ነው የሚሰራው።

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
መቀነሱ
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;
ይህ መመሪያ ከ1 ከፍ ያለ ነገር ግን ከ 3 በታች ወይም እኩል የሆነ የምርት ኮድ ያላቸውን ሁሉንም ምርቶች መግለጫ ያሳያል።

የዚህ ቀዶ ጥገና ውጤት በስእል 46 ተሰጥቷል.

ምስል 46 - የ MINUS ኦፕሬተር አጠቃቀምን ያሳያል

የቀደመው ስክሪፕት በSQL Server ውስጥ እንዲሰራ ለማድረግ “EXCEPT” የሚለውን አንቀጽ መጠቀም አለብን።

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
በስተቀር
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;
ይህ መመሪያ ከ1 ከፍ ያለ ነገር ግን ከ 3 በታች ወይም እኩል የሆነ የምርት ኮድ ያላቸውን ሁሉንም ምርቶች መግለጫ ያሳያል።

ስክሪፕቱ በ MySQL ውስጥ እንዲሰራ ለማድረግ በ"INTERSECT" አንቀጽ ላይ እንዳደረግነው ተመሳሳይ አካሄድ መከተል አለብን። የዚህ አቀራረብ
ምሳሌ ከዚህ በታች ተሰጥቷል.

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 እና ኮድ_ምርት <= 3;
ይህ መመሪያ ከ1 ከፍ ያለ ነገር ግን ከ 3 በታች ወይም እኩል የሆነ የምርት ኮድ ያላቸውን ሁሉንም ምርቶች መግለጫ ያሳያል።

ገጽ 45
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

18. የ SQL መጠይቆች - ይቀላቀላል

የ SQL መጋጠሚያዎች ረድፎችን ከሁለት ወይም ከዚያ በላይ ጠረጴዛዎች ለማጣመር ያገለግላሉ። በ SQL ውስጥ አራት አይነት መጋጠሚያዎች
አሉ።

• ውስጣዊ መገጣጠም እና ተፈጥሯዊ መገጣጠሎች - በሁለቱም ሰንጠረዦች ውስጥ ተዛማጅ እሴቶች ያላቸውን መዝገቦች ይምረጡ;
• የግራ ውጫዊ መቀላቀል - ከመጀመሪያው (ከግራ-ብዙ) ሠንጠረዥ ከቀኝ ሠንጠረዥ ጋር የሚዛመድ መዝገቦችን ይምረጡ
መዝገቦች;

• የቀኝ ውጫዊ መቀላቀል - ከሁለተኛው (ከቀኝ-በጣም) ሠንጠረዥ ከግራ ተዛማጅ ጋር መዝገብ ይምረጡ
የሠንጠረዥ መዝገቦች;

• ሙሉ የውጪ መቀላቀል - ከግራ ወይም ከቀኝ የሰንጠረዥ መዛግብት ጋር የሚዛመዱትን ሁሉንም መዝገቦች ይመርጣል።

18.1 የውስጥ መቀላቀል እና የተፈጥሮ መቀላቀል


በሁለቱም ሰንጠረዦች ውስጥ ባሉት ዓምዶች መካከል ግጥሚያ እስካለ ድረስ የውስጣዊ መቀላቀል ቁልፍ ቃል ከሁለቱም ሰንጠረዦች ሁሉንም ረድፎች

ይመርጣል። በግራፊክ የውስጠኛው መጋጠሚያ በስእል 47 ይታያል።

ምስል 47 - የውስጥ እና የተፈጥሮ መጋጠሚያዎች መዋቅር

የ INNER JOIN አገባብ በመጠቀም ምሳሌ ከዚህ በታች ቀርቧል።

የተለየ የC. ስም፣ ሲ.አድራሻ ይምረጡ


ከደንበኞች ሲ
የውስጥ ይቀላቀሉ ትዕዛዞች O
በC.cod_customer=ኦ.ኮድ_ደንበኛ
ትዕዛዝ በ c. ስም;
ይህ መመሪያ የደንበኞችን ስም እና ትዕዛዝ ያላቸውን አድራሻዎች ያሳያል። የውስጠኛው መጋጠሚያ አካላት በሁለቱም ሠንጠረዥ ውስጥ ባለው የመስክ ደንበኛ
ኮድ በግልፅ ታውጃል። የመጨረሻው ውጤት በደንበኛው ስም በፊደል ቅደም ተከተል ማዘዝ ነው.

ከውስጣዊ መቀላቀል ይልቅ የሁለቱም ሰንጠረዦች የመስክ ስም ተመሳሳይ ስለሆነ የተፈጥሮ መቀላቀልን አንቀጽ መጠቀም እንችላለን። ከዚያ NATURAL

JOIN አገባብ በመጠቀም የሚከተለውን ስክሪፕት እናገኛለን።

የተለየ የC. ስም፣ ሲ.አድራሻ ይምረጡ


ከደንበኞች C የተፈጥሮ መቀላቀል ትዕዛዞች O
ትዕዛዝ በ c. ስም;
ይህ መመሪያ የደንበኞችን ስም እና ትዕዛዝ ያላቸውን አድራሻዎች ያሳያል። NATURAL JOIN አገባብ በመጠቀም የመቀላቀል መስኮቹን በግልፅ አናወጅም።
የመጨረሻው ውጤት በደንበኛው ስም በፊደል ቅደም ተከተል ማዘዝ ነው.

ከላይ ያለው ስክሪፕት ለ MySQL እና Oracle የውሂብ ጎታዎች ብቻ ነው የሚሰራው። የSQL አገልጋይ ዳታቤዝ NATURAL JOIN አንቀጽን አይደግፍም።

ከተፈጥሮ JOIN ይልቅ ከዚህ ቀደም ጥቅም ላይ እንደዋለው የውስጣዊ JOINን በቀላሉ መጠቀም እንችላለን።

ገጽ 46
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ከላይ ያሉት የሁለቱ ስክሪፕቶች አፈጻጸም ውጤት በስእል 48 ይታያል።

ምስል 48 - ውስጣዊ እና ተፈጥሯዊ መጋጠሚያዎችን መጠቀምን ያሳያል

18.2 የግራ ውጫዊ መቀላቀል


የግራ መቀላቀል ቁልፍ ቃል ሁሉንም ረድፎች ከግራ ጠረጴዛው (ሠንጠረዡ 1) ይመልሳል፣ በቀኝ ሠንጠረዥ (ሠንጠረዡ2) ውስጥ
ያሉት ተዛማጅ ረድፎች። ምንም ተዛማጅ በማይኖርበት ጊዜ ውጤቱ በቀኝ በኩል NULL ነው. በግራፊክ የውስጠኛው መጋጠሚያ
በስእል 49 ይታያል።

ምስል 49 - የግራ ውጫዊ መጋጠሚያ መዋቅር

የግራውን መቀላቀል አንቀጽ በመጠቀም ምሳሌ ከዚህ በታች ቀርቧል።

የተለየ የC. ስም፣ ሐ.ሀገር ከደንበኞች ሲ


ይምረጡ
የግራ ተቀላቀል ትዕዛዞች
O በሲ.cod_customer=ኦ.ኮድ_ደንበኛ ማዘዝ በ
c. ስም; ይህ መመሪያ ትእዛዝ ያላቸውን ወይም የሌላቸውን
የደንበኞችን ስም እና አገር ያሳያል። የግራ ይቀላቀሉን አገባብ በመጠቀም ሁሉንም ንጥረ ነገሮች ከመጀመሪያው ሠንጠረዥ
እናሳያለን።

ከላይ ያለው የአሠራር ውጤት በስእል 50 ውስጥ ተሰጥቷል.

ገጽ 47
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምስል 50 - የግራ መጋጠሚያ አጠቃቀምን ያሳያል

18.3 የቀኝ ውጫዊ መቀላቀል


የቀኝ መቀላቀል ቁልፍ ቃል ሁሉንም ረድፎች ከቀኝ ሠንጠረዥ (ሠንጠረዡ2) ይመልሳል ፣ በግራ ሠንጠረዥ ውስጥ ተዛማጅ ረድፎች
(ሠንጠረዥ1)። ምንም ተዛማጅ በማይኖርበት ጊዜ ውጤቱ በግራ በኩል NULL ነው. በግራፊክ የውስጠኛው መጋጠሚያ በስእል 51 ይታያል።

ምስል 51 - የቀኝ ውጫዊ መጋጠሚያ መዋቅር

የቀኝ የውጭ መቀላቀልን አንቀጽ በመጠቀም ምሳሌ ከዚህ በታች ቀርቧል።

የተለየ የቀን_ትዕዛዝ፣ C. ስም ይምረጡ


ከትእዛዞች O
የቀኝ ተቀላቀል ደንበኞች ሲ

በO.cod_customer=C.cod_ደንበኛው
ትእዛዝ በኦ.ቀን_ትዕዛዝ;
ይህ መመሪያ የሁሉንም ትዕዛዞች የቀን ትዕዛዞች እና የደንበኞች ስም ያሳያል፣ እና ምንም አይነት ትዕዛዝ የሌላቸውን ደንበኞች ስምም
ያካትታል። ይህ የሚደረገው የቀኝ መቀላቀል አንቀጽን በመጠቀም ነው። በመጨረሻም ሁሉም ንጥረ ነገሮች በጊዜያቸው ይታዘዛሉ.

ከላይ የተጠቀሰው ቀዶ ጥገና ውጤት በስእል 52 ተሰጥቷል.

ገጽ 48
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ምስል 52 - የቀኝ መቀላቀልን አጠቃቀም ያሳያል

18.4 ሙሉ የውጪ መቀላቀል


የሙሉ የውጪ መቀላቀል ቁልፍ ቃል ሁሉንም ረድፎች ከግራ ሠንጠረዥ (ሠንጠረዡ1) እና ከቀኝ ሠንጠረዥ (ሠንጠረዡ2) ይመልሳል። ከግራ መጋጠሚያዎች እና

ከቀኝ መጋጠሚያዎች የተገኙ ውጤቶችን ያጣምራል። በግራፊክ የውስጠኛው መጋጠሚያ በስእል 53 ይታያል።

ምስል 53 - የሙሉ ውጫዊ መጋጠሚያ መዋቅር

የሙሉ መቀላቀልን አንቀጽ በመጠቀም ምሳሌ ከዚህ በታች ቀርቧል።

ስም፣ O.COD_ORDER ይምረጡ


ከደንበኞች ሲ
ሙሉ የውጪ ተቀላቀል ትዕዛዞች O

በC.cod_customer=ኦ.ኮድ_ደንበኛ
በ C. ስም ማዘዝ;
ይህ መመሪያ የሁሉም ደንበኞች ስም እና የትዕዛዝ ኮድ በአንድ ጊዜ ለሁሉም ደንበኞች እና ትዕዛዞች ያሳያል። ውጤቱ በደንበኞች ስም ነው የታዘዘው.

ከላይ ያለው ስክሪፕት ለ Oracle እና SQL አገልጋይ ዳታቤዝ በደንብ ይሰራል። ሆኖም፣ በ MySQL ላይ ሙሉ መቀላቀል የለንም፣ ግን በእርግጠኝነት እነሱን

መምሰል እንችላለን። ከላይ ያለውን ምሳሌ በመከተል በ MySQL ውስጥ ከዚህ በታች ያለውን አካሄድ በመከተል ማድረግ እንችላለን።

c.name፣ o.cod_order ይምረጡ


ከደንበኞች ሲ

የግራ ተቀላቀል ትዕዛዞች O በ C.cod_customer = O.cod_ደንበኛ


UNION
ከደንበኞች ሐ.ስም ፣ ኦ.ኮድ_ትእዛዝን ይምረጡ

የቀኝ ተቀላቀል ትዕዛዞች O በ C.cod_customer = O.cod_ደንበኛ;

ገጽ 49
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ይህ መመሪያ የሁሉም ደንበኞች ስም እና የትዕዛዝ ኮድ በአንድ ጊዜ ለሁሉም ደንበኞች እና ትዕዛዞች ያሳያል። የFULL OUTER JOINን
ተግባራዊነት ለመኮረጅ ሁለቱንም የግራ እና የቀኝ መጋጠሚያዎችን እንጠቀማለን።

ከላይ የተጠቀሰው ቀዶ ጥገና ውጤት በስእል 54 ተሰጥቷል.

ምስል 54 - ሙሉ የውጪ መጋጠሚያ አጠቃቀምን ያሳያል

ገጽ 50
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

19. የ SQL ጥያቄዎች - እይታዎች


በ SQL ውስጥ እይታ በ SQL መግለጫ የውጤት ስብስብ ላይ የተመሰረተ ምናባዊ ሰንጠረዥ ነው። እይታ ልክ እንደ እውነተኛ
ሠንጠረዥ ረድፎችን እና አምዶችን ይዟል። በእይታ ውስጥ ያሉት መስኮች በመረጃ ቋቱ ውስጥ ከአንድ ወይም ከዚያ በላይ
እውነተኛ ሰንጠረዦች የተገኙ መስኮች ናቸው። እይታን የመፍጠር ምሳሌ ከዚህ በታች ተሰጥቷል።

የዕይታ ምርቶች_ከታች ስቶክሚን ይፍጠሩ ኮድ_ምርትን


ይምረጡ፣ ከምርቶቹ አክሲዮን በሚገኙበት ቦታ መግለጫ <
minimal_stock ይህ መመሪያ ከሁሉም የምርት ኮድ ጋር
እይታን ይፈጥራል እና የትኛው አክሲዮን ከተመሰረተ አነስተኛ
አክሲዮን በታች እንደሆነ ይገልጻል።

የእይታን ይዘት ለማሳየት ከፈለግን የሚከተለውን አገባብ መጠቀም እንችላለን።

ከምርቶች_ከታች ስቶክ ሚን ይምረጡ ይህ መመሪያ


ሁሉንም የ"ምርቶች_ከታች ስቶክሚን" እይታ ያሳያል።

የዚህ ክዋኔ ውጤት ባዶ ነው ይህም ምንም አይነት ምርት ባለመኖሩ ከዝቅተኛው ክምችት በታች ነው።

ሌላ የፍጥረት ምሳሌ ከዚህ በታች ተሰጥቷል።

የእይታ descProducts ትዕዛዞችን እንደ ፍጠር


የተለየ መግለጫ ይምረጡ፣ አሀድ_ዋጋ ከምርቶች p,
orderproducts op የት p.cod_product =
op.cod_product order by unit_price DESC ይህ
መመሪያ የሁሉም ምርቶች መግለጫ እና አሃድ ዋጋ እይታ
ይፈጥራል። በዚህ እይታ ውስጥ ያሉ ምርቶች በክፍል ዋጋ የተገለበጡ ናቸው።

ከላይ ያለውን እይታ ከጠራ በኋላ ውጤቱ በስእል 55 ተሰጥቷል.

ምስል 55 - እይታን የመፍጠር ምሳሌ

ገጽ 51
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

20. የ SQL ጥያቄዎች - የስርዓት ውሂብ


በ SQL ውስጥ የአካባቢ መረጃን ለማውጣት የሚያገለግሉ በጣም ጠቃሚ መመሪያዎች አሉ. ከነዚህ ሁኔታዎች አንዱ የአሁኑን ቀን ማውጣት
ነው. አቀራረቡ ለ MySQL፣ SQL Server እና Oracle የተለየ ነው። በ MySQL ውስጥ ከዚህ በታች ያለውን አካሄድ በመጠቀም ይህንን ክዋኔ
መፈጸም እንችላለን.

ሌላ የፍጥረት ምሳሌ ከዚህ በታች ተሰጥቷል።

አሁን () እንደ CurrentDateTime ይምረጡ


ይህ መመሪያ የአሁኑን ቀን እና ሰዓት ይመልሳል።

ከዚህ በታች ያለውን አካሄድ በመጠቀም በ SQL አገልጋይ ውስጥ ተመሳሳይ ክዋኔ ሊደረግ ይችላል።

GETDATEን () እንደ CurrentDateTime ይምረጡ


ይህ መመሪያ የአሁኑን ቀን እና ሰዓት ይመልሳል።

በመጨረሻም፣ በOracle ውስጥ የ DUAL ጠረጴዛን መጥራት አለብን። በOracle Database ከመረጃ መዝገበ ቃላት ጋር በራስ ሰር
የተፈጠረ ሠንጠረዥ ነው። ከ DUAL ሠንጠረዥ መምረጥ ቋሚ አገላለጽ ከ SELECT መግለጫ ጋር ለማስላት ይጠቅማል። DUAL አንድ
ረድፍ ብቻ ስላለው ቋሚው አንድ ጊዜ ብቻ ይመለሳል።

TO_CHARን ይምረጡ
(SYSDATE፣ 'ወወ-ቀን-አአአአህ24፡ኤምአይ፡ኤስኤስ') "አሁን"
ከ DUAL;
ይህ መመሪያ የአሁኑን ቀን እና ሰዓት ይመልሳል።

የሶስት ኦፕሬሽኖች ውጤት ተመሳሳይ ነው እና በስእል 56 ይታያል ።

ምስል 56 - ቀኑን ከስርዓቱ ያግኙ

ሌላው የተለመደ ተግባር የአሁኑን የተመዘገበ ተጠቃሚ በመረጃ ቋቱ ውስጥ ማግኘት ነው። ይህ ክወና ለእያንዳንዱ የውሂብ ጎታ የተለያዩ SQL
መግለጫዎች አሉት። በ MySQL ውስጥ ይህ ክዋኔ እንደሚከተለው ሊከናወን ይችላል.

CURRENT_USER() እንደ CurrentLogged User ይምረጡ


ይህ መመሪያ የአሁኑን የተረጋገጠ ተጠቃሚ ይመልሳል።

ከዚህ በታች ያለውን አካሄድ በመጠቀም በ SQL አገልጋይ ውስጥ ተመሳሳይ ክዋኔ ሊደረግ ይችላል። በ SQL አገልጋይ ውስጥ "የአሁኑ
ተጠቃሚ" እንደ ንብረት እንጂ እንደ ዘዴ አይታይም።

CURRENT_USERን እንደ CurrentLogged User ይምረጡ


ይህ መመሪያ የአሁኑን የተረጋገጠ ተጠቃሚ ይመልሳል።

በመጨረሻም በ Oracle ውስጥ ያለው ተመሳሳይ ቀዶ ጥገና ከዚህ በታች ተሰጥቷል. ልክ እንደበፊቱ DUALን መጥራት ያስፈልገናል
ጠረጴዛ.

ገጽ 52
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ተጠቃሚን ከድርብ
ይምረጡ; ይህ መመሪያ የአሁኑን የተረጋገጠ ተጠቃሚ ይመልሳል።

ከላይ የተጠቀሰው አሰራር ውጤት በስእል 57 ይታያል.

ምስል 57 - ተጠቃሚው ወደ ስርዓቱ እንዲገባ ያድርጉ

ገጽ 53
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

መጽሃፍ ቅዱስ
የውሂብ ጎታ SQL ገንቢ ማሟያ መረጃ ለማይክሮሶፍት SQL አገልጋይ ፍልሰት። (ኛ) https://docs.oracle.com/cd/E10405_01/
01
appdev.120/e10379/ss_oracle_compared.htm
ተሰርስሮ ወጥቷል። 11፣ 2016, ከ

የSQL መግቢያ፡ መጠይቅ እና መረጃን ማስተዳደር። (ኛ) በ12 21፣2015 ከ https://www.khanacademy.org/computing/


computer-programming/sql የተገኘ

ከDUAL ሰንጠረዥ መምረጥ። (ኛ) ተሰርስሮ 7 https://docs.oracle.com/cd/B19306_01/ 12, 2016, ከ


server.102/b14200/queries009.htm

SQL (የተዋቀረ የመጠይቅ ቋንቋ)። (ኛ) በ01 10፣2016 ከ http://www.nchosting.com/encyclopedia/databases/


structured-query-language/ የተወሰደ

የ SQL መሰረታዊ የጥያቄ መዋቅር። http:// (ኛ) ተሰርስሮ ወጥቷል። 11 27, 2015 ፣ ከ
www.mycms.ca/index.cfm/page/sqlqueries.html

SQL ይቀላቀሉ። (ኛ) በ12 11፣2015 ከ http://www.dofactory.com/sql/join የተገኘ

SQL አጋዥ. (ኛ) በ11 18፣2015 ከ http://www.w3schools.com/sql/ የተወሰደ

SQL ምንድን ነው? (ኛ) 01 10, 2016 ከ http://www.sqlcourse.com/intro.html የተወሰደ

ገጽ 54
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

አባሪ I - ስክሪፕት ለ MySQL ዳታቤዝ


/* ሠንጠረዦችን መፍጠር */
የሰንጠረዥ ምርቶችን ይፍጠሩ (

ኮድ_ምርት ኢንቲጀር፣ መግለጫ


ቫርቻር(50) ባዶ አይደለም፣ አሃድ_ዋጋ
DECIMAL(10፣2)፣ የሚገኝ_ስቶክ ኢንቲጀር፣
አነስተኛ_የአክሲዮን ኢንቲጀር ነባሪ 0፣

CONSTRAINT ምርቶች_pk ዋና ቁልፍ (ኮድ_ምርት) );

ጠረጴዛ ይፍጠሩ ደንበኞች


(
ኮድ_ደንበኛ ኢንቲጀር፣ ስም
ቫርቻር(50) ባዶ አይደለም፣ አድራሻ
varchar(95) ነባሪ 'ያልታወቀ'፣ ዚፕ_ኮድ ቻር(8)፣ የአገር
ቫርቻር(40) ነባሪ 'ፖርቱጋል'፣ ስልክ varchar(15)፣

CONSTRAINT Customers_pk ዋና ቁልፍ (cod_customer) );

የሠንጠረዥ ትዕዛዞችን ይፍጠሩ


(
ኮድ_ትዕዛዝ ኢንቲጀር፣
የቀን_ትዕዛዝ ቀን፣
ቀን_የሚላክበት ቀን፣
ኮድ_ደንበኛ ኢንቲጀር፣
CONSTRAINT ትዕዛዞች_pk ዋና ቁልፍ (የኮድ_ትእዛዝ)፣
CONSTRAINT ትዕዛዞች_Cust_fk የውጭ ቁልፍ (ኮድ_ደንበኛ)
ዋቢ ደንበኞች(ኮድ_ደንበኛ)
);

ሰንጠረዥ ፍጠር ትዕዛዞች ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
ኮድ_ትዕዛዝ ኢንቲጀር፣ ብዛት
ኢንቲ(2)፣
CONSTRAINT ትዕዛዞች ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት፣ ኮድ_ትእዛዝ)፣
CONSTRAINT ትእዛዝ ምርቶች_ምርት_fk የውጭ ቁልፍ (ኮድ_ምርት)
ዋቢዎች ምርቶች(ኮድ_ምርት)፣
CONSTRAINT ትእዛዝ ምርቶች_ትዕዛዝ_fk የውጭ ቁልፍ (የኮድ_ትእዛዝ)
ዋቢ ትዕዛዞች(የኮድ_ትእዛዝ)
);

/* ውሂብን ወደ ሰንጠረዦች አስገባ


*/ ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ አሃድ_ዋጋ)
እሴቶች (1, 'እንቁላል', 2.49);
ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (2, 'አይስ ክሬም', 3.99); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (3, 'ሶዳ', 0.65); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (4, 'አይብ', 2.89); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (5, 'የአሳማ ሥጋ', 3.10);

ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)


እሴቶች (1, 'Anne');

ገጽ 55
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)


እሴቶች (2, 'ጴጥሮስ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (3, 'Elena');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (4, 'ሸርሊ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (5, 'ዮሐንስ');

ወደ ትዕዛዞች እሴቶች አስገባ (1, '2015-12-21', '2015-12-21', 1);


ወደ ትዕዛዞች እሴቶች አስገባ (2, '2015-12-22', '2015-12-23', 1);
ወደ ትዕዛዞች እሴቶች አስገባ (3, '2015-12-22', '2015-12-27', 2);
ወደ ትዕዛዞች እሴቶች አስገባ (4, '2015-12-27', '2015-12-30', 3);
ወደ ትዕዛዞች እሴቶች አስገባ (5, '2015-12-30', '2015-12-31', 3);

በትእዛዞች ውስጥ ያስገቡ እሴቶች (1, 1, 1);


በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 1, 1);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 2, 2);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (5, 3, 7);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (4, 3, 4);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (3, 3, 5);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 3, 5);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 4, 8);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 4, 2);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (4, 5, 5);

/* ከዚህ ቀደም በሰንጠረዦች ውስጥ የተመዘገቡ መረጃዎችን ያዘምኑ */


ምርቶችን ያዘምኑ ክፍል_ዋጋ = 1.99 መግለጫ = 'እንቁላል';

ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';

ምርቶችን አዘምን
unit_price = unit_price * 1.25 መግለጫ =
'ሶዳ';

ትዕዛዞችን ያዘምኑ O፣ ደንበኞች C


O.date_delivery ያቀናብሩ = '2015-12-29'
የት O.cod_customer = C.cod_customer እና C.name = 'ጴጥሮስ';

/* ከጠረጴዛዎች ላይ ውሂብ ሰርዝ */


ከትዕዛዝ ምርቶች ሰርዝ
የት ኮድ_ምርት = 5;

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_የያዘበት
(የኮድ_ትእዛዝን ይምረጡ
ከትእዛዝ
የት ኮድ_ደንበኛ = 3);

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_ምርት የገባበት
(የ ኮድ_ምርትን ይምረጡ
ከምርቶች
መግለጫው NULL ከሆነ);

ገጽ 56
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

/* SQL ጥያቄዎች - መሰረታዊ መዋቅር */


ከደንበኞች * ይምረጡ;

ስም ይምረጡ, አገር ከደንበኞች;

ከደንበኞች የተለየ ሀገር ይምረጡ;

ይምረጡ *
ከምርቶች
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;

O.cod_order፣ O.date_order፣ O.DATE_DELIVERY፣ C. ስም ከትእዛዞች O


ይምረጡ፣ ደንበኞች C የት O.cod_customer = C.COD_CUSTOMER;

OP.COD_PRODUCT፣ OP.QUANTITY፣ C. ስም ከትእዛዞች O፣


የደንበኞች ሲ፣ የትዕዛዝ ምርቶች OP ይምረጡ O.cod_customer =
C.COD_CUSTOMER እና O.COD_ORDER = OP.COD_ORDER
እና O.COD_ORDER = 3;

ኮድ_ምርት፣ መግለጫ፣ የሚገኝ_አክሲዮን - minimal_stock እንደ marginStock ይምረጡ


ከምርቶች;

ኮድ_ምርት፣ መግለጫ፣ ሞድ(የሚገኝ_አክሲዮን፣ አነስተኛ_አክሲዮን) እንደ modResult ይምረጡ


ከምርቶች;

/* SQL ጥያቄዎች - ሕብረቁምፊዎችን ማወዳደር */


ከደንበኞች ይምረጡ
የት ስም እንደ 'E%';

ከደንበኞች ይምረጡ
የት ስም እንደ '%a';

ከደንበኞች ይምረጡ
የት ስም እንደ '% e%';

ከደንበኞች ይምረጡ
የት ስም እንደ '_lena';

ከደንበኞች ይምረጡ
የት ስም እንደ 'E_e_a';

/* የ SQL መጠይቆች - ድምር ኦፕሬተሮች */


ከምርቶች AVG(unit_price) ይምረጡ።

ከምርቶች ROUND(AVG(unit_price)፣2) ይምረጡ።

ምረጥ መግለጫ፣ አሀድ_ዋጋ፣ የሚገኝ_አክሲዮን።


ከምርቶች

የት ዩኒት_ዋጋ>(ከምርቶች AVG(unit_price) ይምረጡ)፤

ከደንበኞች ቁጥር (*) ይምረጡ;

ከደንበኞች ቆጠራ (የተለየ አገር) ይምረጡ;

ከምርቶች ከፍተኛውን ዋጋ (ክፍል_ዋጋ) ይምረጡ፤

MAX(ዩኒት_ዋጋ) እንደ ከፍተኛው ዋጋ፣ AVG(የክፍል_ዋጋ) እንደ አማካይ ዋጋ ይምረጡ


ከ ምርቶች;

ገጽ 57
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

MIN(unit_price) እንደ ትንሹ ዋጋ ከምርቶች ምረጥ፤

MIN(ዩኒት_ዋጋ) እንደ ትንሹ ዋጋ፣ AVG(የክፍል_ዋጋ) እንደ አማካይ ዋጋ ይምረጡ


ከ ምርቶች;

SUM(የሚገኝ_አክሲዮን) እንደ አጠቃላይ ስቶክ ከምርቶች ምረጥ፤

COUNT(*) እንደ ጠቅላላ ምርቶች ምረጥ፣


AVG(የክፍል_ዋጋ) እንደ አማካኝ ዋጋ፣
MAX(የክፍል_ዋጋ) እንደ ከፍተኛው ዋጋ፣
MIN(የክፍል_ዋጋ) እንደ ትንሹ ዋጋ፣
SUM(በአክሲዮን) AS TotalStock
ከ ምርቶች;

/* SQL ጥያቄዎች - ስክላር ተግባራት */


UCASE (ስም) እንደ UPPERName ፣ LCASE (ስም) ከደንበኞች እንደ LOWERName ይምረጡ።

ከደንበኞች እንደ የመጠን ስም ፣ LENGTH (ስም) ይምረጡ።

መግለጫ፣ ዙር(ዩኒት_ዋጋ፣ 0) እንደ RPrice0፣ ዙር(ክፍል_ዋጋ፣ 1) እንደ


RPrice1፣ ዙር(የክፍል_ዋጋ፣ 2) እንደ RPrice2 ይምረጡ።

ከምርቶች;

/* የ SQL መጠይቆች - ክፍሎችን መቧደን */


ኮድ_ደንበኛን ይምረጡ፣ እንደ nትእዛዝ ይቁጠሩ (cod_customer)
ከትእዛዝ
ቡድን በ cod_customer;

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት O.COD_ORDER
= OP.COD_ORDER ቡድን በ O.cod_customer፣ O.cod_order;

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት O.COD_ORDER
= OP.COD_ORDER ቡድን በ O.cod_customer፣ O.cod_order
ድምር(ብዛት) ያለው > 10;

/* SQL ጥያቄዎች - ውሂብን ማዘዝ */


ይምረጡ *
ከደንበኞች
በስም ማዘዝ;

ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;

/* SQL መጠይቆች - ዋና ዋና ነገሮችን በመመለስ ላይ */


ይምረጡ *
ከደንበኞች
በስም ማዘዝ
ገደብ 3;

/* SQL ጥያቄዎች - ንዑስ መጠይቆች */


መግለጫ ይምረጡ
ከምርቶች
አሀድ_ዋጋ = (ከፍተኛውን(የክፍል_ዋጋ) ይምረጡ)

ገጽ 58
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ከ ምርቶች);

ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
የት ቀን_መላኪያ > = '2015-12-26');

ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);

/* SQL መጠይቆች - ኦፕሬተር "ውስጥ" እና "አለ" */


ይምረጡ *
ከትእዛዝ
ኮድ_ትዕዛዝ የት ነው (1፣ 3፣ 5);

ይምረጡ *
ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');

ይምረጡ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);

ይምረጡ *
ከደንበኞች ሲ

የት እንዳለ (ከትእዛዝ ኮድ_ደንበኛን ምረጥ O የት


C.cod_customer = O.cod_customer);

የተለየ አገር ይምረጡ


ከደንበኞች ሲ
በሌለበት ቦታ (ከትእዛዝ ኮድ_ደንበኛን ምረጥ O የት C.cod_customer
= O.cod_customer);

/* SQL ጥያቄዎች - ኦፕሬተር "ማንኛውም" እና "ሁሉም" */


መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት = ማንኛውም
( ኮድ_ምርትን ይምረጡ
ከትዕዛዝ ምርቶች
የት ብዛት = 1)

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
የሚገኝበት_ስቶክ>= ማንኛውም (የተለየ minimal_stock ይምረጡ
ከ ምርቶች);

ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
አሃድ_ዋጋ >= ሁሉም ባለበት (የተለየ አሃድ_ዋጋ ይምረጡ
ከ ምርቶች);

ገጽ 59
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

/* የ SQL መጠይቆች - ክዋኔዎች ከስብስብ ጋር */


መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት>3 እና ኮድ_ምርት>1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 እና ኮድ_ምርት <= 3;

/* የSQL መጠይቆች - ይቀላቀላል


*/ የተለየ የC. ስም፣ የC. አድራሻ ከደንበኞች ሲ
ይምረጡ
የውስጥ ይቀላቀሉ ትዕዛዞች O
ላይ ሲ.cod_customer=O.cod_ደንበኛ ትእዛዝ
በ c. ስም;

የተለየ የC. ስም፣ የC. አድራሻ ከደንበኞች ምረጥ C


ተፈጥሯዊ የመቀላቀል ትዕዛዞች በሐ.ስም ማዘዝ;

የተለየ C. ስም ይምረጡ፣ ሐ.ሀገር ከደንበኞች ሐ ግራ


ይቀላቀሉ ትዕዛዞች O በሲ.cod_customer=O.cod_ደንበኛ
ማዘዝ በ c.name;

የተለየ የቀን_ትዕዛዝ ምረጥ፣ ከትእዛዞች የ C. ስም O ቀኝ


ተቀላቀል ደንበኞች C በ O.cod_customer=C.cod_ደንበኛ
ትዕዛዝ በኦ.ቀን_ትዕዛዝ;

ከደንበኞች ሐ.ስም ፣ ኦ.ኮድ_ትእዛዝን ይምረጡ

የግራ ተቀላቀል ትዕዛዞች O በሲ.ኮድ_ደንበኛ = ኦ.ኮድ_ደንበኛ ህብረት

ከደንበኛዎች c.name፣ o.cod_order


ምረጥ C ትክክል ተቀላቀል O በ
C.cod_customer = O.cod_customer;

/* SQL ጥያቄዎች - እይታዎች */


የእይታ ምርቶች_ከታች ስቶክ ሚን እንደ ፍጠር
ኮድ_ምርት ፣ መግለጫ ይምረጡ
ከምርቶች

ገጽ 60
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016


የሚገኝበት_አክሲዮን < minimal_stock

ከምርቶች_ከታች ስቶክ ሚን ይምረጡ

የእይታ descProducts ትዕዛዞችን እንደ ፍጠር


የተለየ መግለጫ ይምረጡ፣ አሀድ_ዋጋ ከምርቶች p፣
orderproducts op የት p.cod_product =
op.cod_product ቅደም ተከተል በዩኒት_ዋጋ DESC

ከ descProductsOrders * ይምረጡ

/* SQL ጥያቄዎች - የስርዓት ውሂብ */


አሁን () እንደ CurrentDateTime ይምረጡ

CURRENT_USER() እንደ CurrentLogged User ይምረጡ

ገጽ 61
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

አባሪ II - ስክሪፕት ለ MS SQL አገልጋይ ዳታቤዝ


/* ሠንጠረዦችን መፍጠር */
የሰንጠረዥ ምርቶችን ይፍጠሩ (

ኮድ_ምርት ኢንቲጀር፣ መግለጫ


ቫርቻር(50) ባዶ አይደለም፣ አሃድ_ዋጋ
DECIMAL(10፣2)፣ የሚገኝ_ስቶክ ኢንቲጀር፣
አነስተኛ_የአክሲዮን ኢንቲጀር ነባሪ 0፣

CONSTRAINT ምርቶች_pk ዋና ቁልፍ (ኮድ_ምርት) );

ጠረጴዛ ይፍጠሩ ደንበኞች


(
ኮድ_ደንበኛ ኢንቲጀር፣ ስም
ቫርቻር(50) ባዶ አይደለም፣ አድራሻ
varchar(95) ነባሪ 'ያልታወቀ'፣ ዚፕ_ኮድ ቻር(8)፣ የአገር
ቫርቻር(40) ነባሪ 'ፖርቱጋል'፣ ስልክ varchar(15)፣

CONSTRAINT Customers_pk ዋና ቁልፍ (cod_customer) );

የሠንጠረዥ ትዕዛዞችን ይፍጠሩ


(
ኮድ_ትዕዛዝ ኢንቲጀር፣
የቀን_ትዕዛዝ ቀን፣
ቀን_የሚላክበት ቀን፣
ኮድ_ደንበኛ ኢንቲጀር፣
CONSTRAINT ትዕዛዞች_pk ዋና ቁልፍ (የኮድ_ትእዛዝ)፣
CONSTRAINT ትዕዛዞች_Cust_fk የውጭ ቁልፍ (ኮድ_ደንበኛ)
ዋቢ ደንበኞች(ኮድ_ደንበኛ)
);

ሰንጠረዥ ፍጠር ትዕዛዞች ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
ኮድ_ትዕዛዝ ኢንቲጀር፣ ብዛት
አስርዮሽ(2፣0)፣
CONSTRAINT ትዕዛዞች ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት፣ ኮድ_ትእዛዝ)፣
CONSTRAINT ትእዛዝ ምርቶች_ምርት_fk የውጭ ቁልፍ (ኮድ_ምርት)
ዋቢዎች ምርቶች(ኮድ_ምርት)፣
CONSTRAINT ትእዛዝ ምርቶች_ትዕዛዝ_fk የውጭ ቁልፍ (የኮድ_ትእዛዝ)
ዋቢ ትዕዛዞች(የኮድ_ትእዛዝ)
);

/* ውሂብን ወደ ሰንጠረዦች አስገባ


*/ ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ አሃድ_ዋጋ)
እሴቶች (1, 'እንቁላል', 2.49);
ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (2, 'አይስ ክሬም', 3.99); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (3, 'ሶዳ', 0.65); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (4, 'አይብ', 2.89); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (5, 'የአሳማ ሥጋ', 3.10);

ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)


እሴቶች (1, 'Anne');

ገጽ 62
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)


እሴቶች (2, 'ጴጥሮስ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (3, 'Elena');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (4, 'ሸርሊ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (5, 'ዮሐንስ');

ወደ ትዕዛዞች እሴቶች አስገባ (1, '2015-12-21', '2015-12-21', 1);


ወደ ትዕዛዞች እሴቶች አስገባ (2, '2015-12-22', '2015-12-23', 1);
ወደ ትዕዛዞች እሴቶች አስገባ (3, '2015-12-22', '2015-12-27', 2);
ወደ ትዕዛዞች እሴቶች አስገባ (4, '2015-12-27', '2015-12-30', 3);
ወደ ትዕዛዞች እሴቶች አስገባ (5, '2015-12-30', '2015-12-31', 3);

በትእዛዞች ውስጥ ያስገቡ እሴቶች (1, 1, 1);


በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 1, 1);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 2, 2);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (5, 3, 7);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (4, 3, 4);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (3, 3, 5);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 3, 5);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 4, 8);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 4, 2);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (4, 5, 5);

/* ከዚህ ቀደም በሰንጠረዦች ውስጥ የተመዘገቡ መረጃዎችን ያዘምኑ */


ምርቶችን ያዘምኑ ክፍል_ዋጋ = 1.99 መግለጫ = 'እንቁላል';

ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';

ምርቶችን አዘምን
unit_price = unit_price * 1.25 መግለጫ =
'ሶዳ';

ትዕዛዞችን ያዘምኑ
ቀን_ማድረስ = '2015-12-29'
የት Orders.cod_customer = (ከደንበኞች ኮድ_ደንበኛ ምረጥ = 'ጴጥሮስ');

/* ከጠረጴዛዎች ላይ ውሂብ ሰርዝ */


ከትዕዛዝ ምርቶች ሰርዝ
የት ኮድ_ምርት = 5;

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_የያዘበት
(የኮድ_ትእዛዝን ይምረጡ
ከትእዛዝ
የት ኮድ_ደንበኛ = 3);

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_ምርት የገባበት
(የ ኮድ_ምርትን ይምረጡ
ከምርቶች
መግለጫው NULL ከሆነ);

ገጽ 63
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

/* SQL ጥያቄዎች - መሰረታዊ መዋቅር */


ከደንበኞች * ይምረጡ;

ስም ይምረጡ, አገር ከደንበኞች;

ከደንበኞች የተለየ ሀገር ይምረጡ;

ይምረጡ *
ከምርቶች
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;

O.cod_order፣ O.date_order፣ O.DATE_DELIVERY፣ C. ስም ከትእዛዞች O


ይምረጡ፣ ደንበኞች C የት O.cod_customer = C.COD_CUSTOMER;

OP.COD_PRODUCT፣ OP.QUANTITY፣ C. ስም ከትእዛዞች O፣


የደንበኞች ሲ፣ የትዕዛዝ ምርቶች OP ይምረጡ O.cod_customer =
C.COD_CUSTOMER እና O.COD_ORDER = OP.COD_ORDER
እና O.COD_ORDER = 3;

ኮድ_ምርት፣ መግለጫ፣ የሚገኝ_አክሲዮን - minimal_stock እንደ marginStock ይምረጡ


ከምርቶች;

ኮድ_ምርት፣ መግለጫ፣ የሚገኝ_stock%minimal_stock እንደ modResult ይምረጡ


ከምርቶች;

/* SQL ጥያቄዎች - ሕብረቁምፊዎችን ማወዳደር */


ከደንበኞች ይምረጡ
የት ስም እንደ 'E%';

ከደንበኞች ይምረጡ
የት ስም እንደ '%a';

ከደንበኞች ይምረጡ
የት ስም እንደ '% e%';

ከደንበኞች ይምረጡ
የት ስም እንደ '_lena';

ከደንበኞች ይምረጡ
የት ስም እንደ 'E_e_a';

/* የ SQL መጠይቆች - ድምር ኦፕሬተሮች */


ከምርቶች AVG(unit_price) ይምረጡ።

ከምርቶች ROUND(AVG(unit_price)፣2) ይምረጡ።

ምረጥ መግለጫ፣ አሀድ_ዋጋ፣ የሚገኝ_አክሲዮን።


ከምርቶች

የት ዩኒት_ዋጋ>(ከምርቶች AVG(unit_price) ይምረጡ)፤

ከደንበኞች ቁጥር (*) ይምረጡ;

ከደንበኞች ቆጠራ (የተለየ አገር) ይምረጡ;

ከምርቶች ከፍተኛውን ዋጋ (ክፍል_ዋጋ) ይምረጡ፤

MAX(ዩኒት_ዋጋ) እንደ ከፍተኛው ዋጋ፣ AVG(የክፍል_ዋጋ) እንደ አማካይ ዋጋ ይምረጡ


ከ ምርቶች;

ገጽ 64
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

MIN(unit_price) እንደ ትንሹ ዋጋ ከምርቶች ምረጥ፤

MIN(ዩኒት_ዋጋ) እንደ ትንሹ ዋጋ፣ AVG(የክፍል_ዋጋ) እንደ አማካይ ዋጋ ይምረጡ


ከ ምርቶች;

SUM(የሚገኝ_አክሲዮን) እንደ አጠቃላይ ስቶክ ከምርቶች ምረጥ፤

COUNT(*) እንደ ጠቅላላ ምርቶች ምረጥ፣


AVG(የክፍል_ዋጋ) እንደ አማካኝ ዋጋ፣
MAX(የክፍል_ዋጋ) እንደ ከፍተኛው ዋጋ፣
MIN(የክፍል_ዋጋ) እንደ ትንሹ ዋጋ፣
SUM(በአክሲዮን) AS TotalStock
ከ ምርቶች;

/* SQL ጥያቄዎች - ስክላር ተግባራት */


የላይኛውን (ስም) እንደ UPPERName ፣ LOWER (ስም) እንደ LOWER ስም ከደንበኞች ይምረጡ።

ከደንበኞች ስም ፣ LEN (ስም) እንደ የመጠን ስም


ይምረጡ ፣

መግለጫ፣ ዙር(ዩኒት_ዋጋ፣ 0) እንደ RPrice0፣ ዙር(ክፍል_ዋጋ፣ 1) እንደ


RPrice1፣ ዙር(የክፍል_ዋጋ፣ 2) እንደ RPrice2 ይምረጡ።

ከምርቶች;

/* የ SQL መጠይቆች - ክፍሎችን መቧደን */


ኮድ_ደንበኛን ይምረጡ፣ እንደ nትእዛዝ ይቁጠሩ (cod_customer)
ከትእዛዝ
ቡድን በ cod_customer;

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት O.COD_ORDER
= OP.COD_ORDER ቡድን በ O.cod_customer፣
O.cod_order;

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት O.COD_ORDER
= OP.COD_ORDER ቡድን በ O.cod_customer፣
O.cod_order ድምር(ብዛት) ያለው > 10;

/* SQL ጥያቄዎች - ውሂብን ማዘዝ */


ይምረጡ *
ከደንበኞች
በስም ማዘዝ;

ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;

/* SQL መጠይቆች - ዋና ዋና ነገሮችን በመመለስ ላይ */


ከፍተኛ 3 ምረጥ *
ከደንበኞች
በስም ማዘዝ;

/* SQL ጥያቄዎች - ንዑስ መጠይቆች */


መግለጫ ይምረጡ
ከምርቶች
አሀድ_ዋጋ = (ከፍተኛውን(የክፍል_ዋጋ) ይምረጡ)
ከ ምርቶች);

ገጽ 65
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ

የት ቀን_መላኪያ > = '2015-12-26');

ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች

የት ብዛት> 3);

/* SQL መጠይቆች - ኦፕሬተር "ውስጥ" እና "አለ" */


ይምረጡ *
ከትእዛዝ
ኮድ_ትዕዛዝ የት ነው (1፣ 3፣ 5);

ይምረጡ *
ከደንበኞች

የት ስም ('ጴጥሮስ', 'ኤሌና');

ይምረጡ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);

ይምረጡ *
ከደንበኞች ሲ
የት እንዳለ ( ኮድ_ደንበኛን ይምረጡ
ከትእዛዞች O
የት C.cod_customer = O.cod_customer);

የተለየ አገር ይምረጡ


ከደንበኞች ሲ

በሌለበት ቦታ (ኮድ_ደንበኛን ይምረጡ


ከትእዛዞች O
የት C.cod_customer = O.cod_customer);

/* SQL ጥያቄዎች - ኦፕሬተር "ማንኛውም" እና "ሁሉም" */


መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት = ማንኛውም
( ኮድ_ምርትን ይምረጡ
ከትዕዛዝ ምርቶች

የት ብዛት = 1)

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
የሚገኝበት_ስቶክ>= ማንኛውም (የተለየ minimal_stock ይምረጡ
ከ ምርቶች);

ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
አሃድ_ዋጋ >= ሁሉም ባለበት (የተለየ አሃድ_ዋጋ ይምረጡ
ከ ምርቶች);

ገጽ 66
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

/* የ SQL መጠይቆች - ክዋኔዎች ከስብስብ ጋር */


መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
ኢንተርሴክት
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
በስተቀር
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;

/* የSQL መጠይቆች - ይቀላቀላል


*/ የተለየ የC. ስም፣ የC. አድራሻ ከደንበኞች ሲ
ይምረጡ
የውስጥ ይቀላቀሉ ትዕዛዞች O
ላይ ሲ.cod_customer=O.cod_ደንበኛ ትእዛዝ
በ c. ስም;

የተለየ የC. ስም፣ ሐ.ሀገር ከደንበኞች ሲ ይምረጡ

የግራ ተቀላቀል ትዕዛዞች O


በሲ.cod_customer=ኦ.ኮድ_ደንበኛ ማዘዝ በ c. ስም;

የተለየ የቀን_ትዕዛዝ ይምረጡ፣ ከትእዛዝ O ስም

ደንበኞችን በቀኝ መቀላቀል በ


O.cod_customer=C.cod_ደንበኛ ማዘዙ በኦ.ቀን_ትዕዛዝ;

ከደንበኛዎች c.name፣ O.COD_ORDERን


ይምረጡ ሐ ሙሉ የውጪ ይቀላቀሉ ትዕዛዞች O በ
C.cod_customer=O.cod_ደንበኛ ማዘዙ በሲ.ስም;

/* SQL ጥያቄዎች - እይታዎች */


የእይታ ምርቶች_ከታች ስቶክ ሚን እንደ ፍጠር
ኮድ_ምርት ፣ መግለጫ ይምረጡ

ገጽ 67
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ከምርቶች
የሚገኝበት_አክሲዮን < minimal_stock

ከምርቶች_ከታች ስቶክ ሚን ይምረጡ

የእይታ descProducts ትዕዛዞችን እንደ ፍጠር


የተለየ መግለጫ ምረጥ ዩኒት_ዋጋ ከምርቶች p,
orderproducts op የት p.cod_product =
op.cod_product ትዕዛዝ በ unit_price DESC

ከ descProductsOrders * ይምረጡ

/* SQL ጥያቄዎች - የስርዓት ውሂብ */


GETDATEን () እንደ CurrentDateTime ይምረጡ

CURRENT_USERን እንደ CurrentLogged User ይምረጡ

ገጽ 68
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

አባሪ III - ለ Oracle ዳታቤዝ ስክሪፕት


/* ሠንጠረዦችን መፍጠር */
የሰንጠረዥ ምርቶችን ይፍጠሩ (

ኮድ_ምርት ኢንቲጀር፣ መግለጫ


ቫርቻር(50) ባዶ አይደለም፣ አሀድ_ዋጋ
DECIMAL(10፣2)፣ የሚገኝ_ስቶክ ኢንቲጀር፣
አነስተኛ_የአክሲዮን ኢንቲጀር ነባሪ 0፣

CONSTRAINT ምርቶች_pk ዋና ቁልፍ (ኮድ_ምርት) );

ጠረጴዛ ይፍጠሩ ደንበኞች


(
ኮድ_ደንበኛ ኢንቲጀር፣ ስም
ቫርቻር(50) ባዶ አይደለም፣ አድራሻ
varchar(95) ነባሪ 'ያልታወቀ'፣ ዚፕ_ኮድ ቻር(8)፣ የአገር
ቫርቻር(40) ነባሪ 'ፖርቱጋል'፣ ስልክ varchar(15)፣

CONSTRAINT Customers_pk ዋና ቁልፍ (cod_customer) );

የሠንጠረዥ ትዕዛዞችን ይፍጠሩ


(
ኮድ_ትዕዛዝ ኢንቲጀር፣
የቀን_ትዕዛዝ ቀን፣
ቀን_የሚላክበት ቀን፣
ኮድ_ደንበኛ ኢንቲጀር፣
CONSTRAINT ትዕዛዞች_pk ዋና ቁልፍ (የኮድ_ትእዛዝ)፣
CONSTRAINT ትዕዛዞች_Cust_fk የውጭ ቁልፍ (ኮድ_ደንበኛ)
ዋቢ ደንበኞች(ኮድ_ደንበኛ)
);

ሰንጠረዥ ፍጠር ትዕዛዞች ምርቶች


(
ኮድ_ምርት ኢንቲጀር፣
ኮድ_ትእዛዝ ኢንቲጀር፣ ብዛት
ቁጥር(2)፣
CONSTRAINT ትዕዛዞች ምርቶች_pk ዋና ቁልፍ (የኮድ_ምርት፣ ኮድ_ትእዛዝ)፣
CONSTRAINT ትእዛዝ ምርቶች_ምርት_fk የውጭ ቁልፍ (ኮድ_ምርት)
ዋቢዎች ምርቶች(ኮድ_ምርት)፣
CONSTRAINT ትእዛዝ ምርቶች_ትዕዛዝ_fk የውጭ ቁልፍ (የኮድ_ትእዛዝ)
ዋቢ ትዕዛዞች(የኮድ_ትእዛዝ)
);

/* ውሂብን ወደ ሰንጠረዦች አስገባ


*/ ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ አሃድ_ዋጋ)
እሴቶች (1, 'እንቁላል', 2.49);
ወደ ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (2, 'አይስ ክሬም', 3.99); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (3, 'ሶዳ', 0.65); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (4, 'አይብ', 2.89); ወደ
ምርቶች አስገባ (የኮድ_ምርት፣ መግለጫ፣ የክፍል_ዋጋ)
እሴቶች (5, 'የአሳማ ሥጋ', 3.10);

ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)


እሴቶች (1, 'Anne');

ገጽ 69
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)


እሴቶች (2, 'ጴጥሮስ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (3, 'Elena');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (4, 'ሸርሊ');
ወደ ደንበኞች አስገባ (ኮድ_ደንበኛ፣ ስም)
እሴቶች (5, 'ዮሐንስ');

ወደ ትዕዛዞች እሴቶች አስገባ (1, '2015-12-21', '2015-12-21', 1);


ወደ ትዕዛዞች እሴቶች አስገባ (2, '2015-12-22', '2015-12-23', 1);
ወደ ትዕዛዞች እሴቶች አስገባ (3, '2015-12-22', '2015-12-27', 2);
ወደ ትዕዛዞች እሴቶች አስገባ (4, '2015-12-27', '2015-12-30', 3);
ወደ ትዕዛዞች እሴቶች አስገባ (5, '2015-12-30', '2015-12-31', 3);

በትእዛዞች ውስጥ ያስገቡ እሴቶች (1, 1, 1);


በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 1, 1);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 2, 2);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (5, 3, 7);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (4, 3, 4);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (3, 3, 5);
በትእዛዞች ውስጥ ያስገቡ እሴቶች (2, 3, 5);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 4, 8);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 4, 2);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (1, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (2, 5, 3);
ወደ ትእዛዝ ያስገቡ ምርቶች እሴቶች (4, 5, 5);

/* ከዚህ ቀደም በሰንጠረዦች ውስጥ የተመዘገቡ መረጃዎችን ያዘምኑ */


ምርቶችን ያዘምኑ ክፍል_ዋጋ = 1.99 መግለጫ = 'እንቁላል';

ምርቶችን አዘምን
የሚገኝ_ስቶክ = 25፣ minimal_stock = 10 አዘጋጅ
የት መግለጫ = 'እንቁላል';

ምርቶችን አዘምን
unit_price = unit_price * 1.25 መግለጫ =
'ሶዳ';

ትዕዛዞችን ያዘምኑ
ቀን_ማድረስ = '2015-12-29'
የት Orders.cod_customer = (ከደንበኞች ኮድ_ደንበኛ ምረጥ = 'ጴጥሮስ');

/* ከጠረጴዛዎች ላይ ውሂብ ሰርዝ */


ከትዕዛዝ ምርቶች ሰርዝ
የት ኮድ_ምርት = 5;

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_የያዘበት
(የኮድ_ትእዛዝን ይምረጡ
ከትእዛዝ
የት ኮድ_ደንበኛ = 3);

ከትዕዛዝ ምርቶች ሰርዝ


ኮድ_ምርት የገባበት
(የ ኮድ_ምርትን ይምረጡ
ከምርቶች
መግለጫው NULL ከሆነ);

ገጽ 70
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

/* SQL ጥያቄዎች - መሰረታዊ መዋቅር */


ከደንበኞች * ይምረጡ;

ስም ይምረጡ, አገር ከደንበኞች;

ከደንበኞች የተለየ ሀገር ይምረጡ;

ይምረጡ *
ከምርቶች
የት (የሚገኝ_አክሲዮን NULL እና unit_price> 1.00) ወይም አነስተኛ_ስቶክ > 0;

O.cod_order፣ O.date_order፣ O.DATE_DELIVERY፣ C. ስም ከትእዛዞች O


ይምረጡ፣ ደንበኞች C የት O.cod_customer = C.COD_CUSTOMER;

OP.COD_PRODUCT፣ OP.QUANTITY፣ C. ስም ከትእዛዞች O፣


የደንበኞች ሲ፣ የትዕዛዝ ምርቶች OP ይምረጡ O.cod_customer =
C.COD_CUSTOMER እና O.COD_ORDER = OP.COD_ORDER
እና O.COD_ORDER = 3;

ኮድ_ምርት፣ መግለጫ፣ የሚገኝ_አክሲዮን - minimal_stock እንደ marginStock ይምረጡ


ከምርቶች;

ኮድ_ምርት፣ መግለጫ፣ ሞድ(የሚገኝ_አክሲዮን፣ አነስተኛ_አክሲዮን) እንደ modResult ይምረጡ


ከምርቶች;

/* SQL ጥያቄዎች - ሕብረቁምፊዎችን ማወዳደር */


ከደንበኞች ይምረጡ
የት ስም እንደ 'E%';

ከደንበኞች ይምረጡ
የት ስም እንደ '%a';

ከደንበኞች ይምረጡ
የት ስም እንደ '% e%';

ከደንበኞች ይምረጡ
የት ስም እንደ '_lena';

ከደንበኞች ይምረጡ
የት ስም እንደ 'E_e_a';

/* የ SQL መጠይቆች - ድምር ኦፕሬተሮች */


ከምርቶች AVG(unit_price) ይምረጡ።

ከምርቶች ROUND(AVG(unit_price)፣2) ይምረጡ።

ምረጥ መግለጫ፣ አሀድ_ዋጋ፣ የሚገኝ_አክሲዮን።


ከምርቶች

የት ዩኒት_ዋጋ>(ከምርቶች AVG(unit_price) ይምረጡ)፤

ከደንበኞች ቁጥር (*) ይምረጡ;

ከደንበኞች ቆጠራ (የተለየ አገር) ይምረጡ;

ከምርቶች ከፍተኛውን ዋጋ (ክፍል_ዋጋ) ይምረጡ፤

MAX(ዩኒት_ዋጋ) እንደ ከፍተኛው ዋጋ፣ AVG(የክፍል_ዋጋ) እንደ አማካይ ዋጋ ይምረጡ


ከ ምርቶች;

ገጽ 71
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

MIN(unit_price) እንደ ትንሹ ዋጋ ከምርቶች ምረጥ፤

MIN(ዩኒት_ዋጋ) እንደ ትንሹ ዋጋ፣ AVG(የክፍል_ዋጋ) እንደ አማካይ ዋጋ ይምረጡ


ከ ምርቶች;

SUM(የሚገኝ_አክሲዮን) እንደ አጠቃላይ ስቶክ ከምርቶች ምረጥ፤

COUNT(*) እንደ ጠቅላላ ምርቶች ምረጥ፣


AVG(የክፍል_ዋጋ) እንደ አማካኝ ዋጋ፣
MAX(የክፍል_ዋጋ) እንደ ከፍተኛው ዋጋ፣
MIN(የክፍል_ዋጋ) እንደ ትንሹ ዋጋ፣
SUM(በአክሲዮን) AS TotalStock
ከ ምርቶች;

/* SQL ጥያቄዎች - ስክላር ተግባራት */


የላይኛውን (ስም) እንደ UPPERName ፣ LOWER (ስም) እንደ LOWER ስም ከደንበኞች ይምረጡ።

ከደንበኞች እንደ የመጠን ስም ፣ LENGTH (ስም) ይምረጡ።

መግለጫ፣ ዙር(ዩኒት_ዋጋ፣ 0) እንደ RPrice0፣ ዙር(ክፍል_ዋጋ፣ 1) እንደ


RPrice1፣ ዙር(የክፍል_ዋጋ፣ 2) እንደ RPrice2 ይምረጡ።

ከምርቶች;

/* የ SQL መጠይቆች - ክፍሎችን መቧደን */


ኮድ_ደንበኛን ይምረጡ፣ እንደ nትእዛዝ ይቁጠሩ (cod_customer)
ከትእዛዝ
ቡድን በ cod_customer;

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት O.COD_ORDER
= OP.COD_ORDER ቡድን በ O.cod_customer፣ O.cod_order;

O.cod_customer፣ O.cod_order፣ ድምር(ብዛት)፣ ቆጠራ (የኮድ_ምርት) ምረጥ


ከትዕዛዝ ኦ፣ የትዕዛዝ ምርቶች OP የት O.COD_ORDER
= OP.COD_ORDER ቡድን በ O.cod_customer፣ O.cod_order
ድምር(ብዛት) ያለው > 10;

/* SQL ጥያቄዎች - ውሂብን ማዘዝ */


ይምረጡ *
ከደንበኞች
በስም ማዘዝ;

ይምረጡ *
ከደንበኞች
በ DESC ስም ማዘዝ;

/* SQL መጠይቆች - ዋና ዋና ነገሮችን በመመለስ ላይ */


ይምረጡ *
ከደንበኞች
የት RowNum <= 3
በስም ማዘዝ;

/* SQL ጥያቄዎች - ንዑስ መጠይቆች */


መግለጫ ይምረጡ
ከምርቶች
አሀድ_ዋጋ = (ከፍተኛውን(የክፍል_ዋጋ) ይምረጡ)

ገጽ 72
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

ከ ምርቶች);

ስም ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ = (ከፍተኛ ምረጥ(የተለየ ኮድ_ደንበኛ)
ከትእዛዝ
የት ቀን_መላኪያ > = '2015-12-26');

ቀን_ማድረሻን ይምረጡ
ከትእዛዝ
ኮድ_ትእዛዝ = (ከፍተኛ ምረጥ(ኮድ_ትእዛዝ)
ከትዕዛዝ ምርቶች
የት ብዛት> 3);

/* SQL መጠይቆች - ኦፕሬተር "ውስጥ" እና "አለ" */


ይምረጡ *
ከትእዛዝ
ኮድ_ትዕዛዝ የት ነው (1፣ 3፣ 5);

ይምረጡ *
ከደንበኞች
የት ስም ('ጴጥሮስ', 'ኤሌና');

ይምረጡ *
ከደንበኞች
ኮድ_ደንበኛ የት እንደገባ (የኮድ_ደንበኛን ይምረጡ
ከትእዛዞች);

ይምረጡ *
ከደንበኞች ሲ

የት እንዳለ (ከትእዛዝ ኮድ_ደንበኛን ምረጥ O የት


C.cod_customer = O.cod_ደንበኛው);

የተለየ አገር ይምረጡ


ከደንበኞች ሲ
በሌለበት ቦታ (ከትእዛዝ ኮድ_ደንበኛን ምረጥ O የት C.cod_customer
= O.cod_customer);

/* SQL ጥያቄዎች - ኦፕሬተር "ማንኛውም" እና "ሁሉም" */


መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት = ማንኛውም
( ኮድ_ምርትን ይምረጡ
ከትዕዛዝ ምርቶች
የት ብዛት = 1)

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
የሚገኝበት_ስቶክ>= ማንኛውም (የተለየ minimal_stock ይምረጡ
ከ ምርቶች);

ስም ፣ አድራሻ ይምረጡ
ከደንበኞች
ኮድ_ደንበኛ <ማንኛውም (ከትእዛዝ ኮድ_ደንበኛ ምረጥ)

መግለጫ ይምረጡ፣ የሚገኝ_አክሲዮን።


ከምርቶች
አሃድ_ዋጋ >= ሁሉም ባለበት (የተለየ አሃድ_ዋጋ ይምረጡ
ከ ምርቶች);

ገጽ 73
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016

/* የ SQL መጠይቆች - ክዋኔዎች ከስብስብ ጋር */


መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
UNION ሁሉም
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 3 የት
ኢንተርሴክት
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 1;

መግለጫ ይምረጡ
ከምርቶች
ኮድ_ምርት > 1 የት
መቀነሱ
መግለጫ ይምረጡ
ከምርቶች
የት ኮድ_ምርት > 3;

/* የSQL መጠይቆች - ይቀላቀላል


*/ የተለየ የC. ስም፣ የC. አድራሻ ከደንበኞች ሲ
ይምረጡ
የውስጥ ይቀላቀሉ ትዕዛዞች O
ላይ ሲ.cod_customer=O.cod_ደንበኛ ትእዛዝ
በ c. ስም;

የተለየ የC. ስም፣ የC. አድራሻ ከደንበኞች ምረጥ C


ተፈጥሯዊ የመቀላቀል ትዕዛዞች በሐ.ስም ማዘዝ;

የተለየ C. ስም፣ ሐ.ሀገር ይምረጡ


ከደንበኞች ሲ
የግራ ተቀላቀል ትዕዛዞች O
በሲ.cod_customer=ኦ.ኮድ_ደንበኛ ማዘዝ በ c. ስም;

የተለየ የቀን_ትዕዛዝ ይምረጡ፣ ከትእዛዝ O ስም

ደንበኞችን በቀኝ መቀላቀል በ


O.cod_customer=C.cod_ደንበኛ ማዘዙ በኦ.ቀን_ትዕዛዝ;

ከደንበኞች ሐ.ስምን፣ O.COD_ORDERን ይምረጡ

ሙሉ የውጪ ይቀላቀሉ ትዕዛዞች O ላይ


C.cod_customer=O.cod_ደንበኛ

ገጽ 74
Machine Translated by Google

ተግባራዊ SQL መመሪያ ለግንኙነት ዳታቤዝ 2016


በ C. ስም ማዘዝ;

/* SQL ጥያቄዎች - እይታዎች */


የእይታ ምርቶች_ከታች ስቶክ ሚን እንደ ፍጠር
ኮድ_ምርት ፣ መግለጫ ይምረጡ
ከምርቶች
የሚገኝበት_አክሲዮን < minimal_stock

ከምርቶች_ከታች ስቶክ ሚን ይምረጡ

የእይታ descProducts ትዕዛዞችን እንደ ፍጠር


የተለየ መግለጫ ምረጥ ዩኒት_ዋጋ ከምርቶች p,
orderproducts op የት p.cod_product =
op.cod_product ትዕዛዝ በ unit_price DESC

ከ descProductsOrders * ይምረጡ

/* SQL ጥያቄዎች - የስርዓት ውሂብ */


TO_CHARን ይምረጡ
(SYSDATE፣ 'ወወ-ቀን-አአአአህ24፡ኤምአይ፡ኤስኤስ') "አሁን"
ከ DUAL;

ተጠቃሚን ከድርብ ይምረጡ;

ገጽ 75

የህትመት ስታቲስቲክስን ይመልከቱ

You might also like