SQL операторларын қалай орындауға болады
SQL ұсынысын аяқтауға мүмкіндік беретін, барлық қазiргi серверлiк ДҚБЖдар өз құрамында утилиттар болады. Клиент Oracleлардың бiр бөлiгi жеке алғанда SQL Plusтың утилитарын өз құрамында болады, MySQL - phpmyAdminнiң утилитасы. Бiз тап сол утилитасымен демонстрация үшiн пайдаланамыз
2. Мәлiметтердiң таңдауы
Мәлiметтердiң таңдауы SQLлар арқылы атқарылатын жиi кездесетiн операция болады. SELECT оператор - бұл тiлдiң өзi маңызды операторларының мәлiметтердiң таңдауы үшiн қолданылады.
Сұрау салуды жасау
Сұрау салу - ол кестелерден жадқа нақтылы мәлiметтi шығару үшiн оған хабарлайтын деректер қорын сiздiң бағдарламаңызға берген команда. Бұл мәлiметтерi сiз компьютер немесе терминал тiкелей жiберуді пайдаланасыз, бiр жағыңыздан, жағдайлардың көпшiлiгiнде, сонымен бiрге ол принтерге жiберуге, файлда сақтауға, команда немесе процесс енгiзу мәлiметiн басқалар үшiн көрсетуге болады.
Сұрау салулар DML тiлдiң бiр бөлiктерi сияқты қаралады. Сұрау кестелердегi мәлiметтi өзгертпейді. SQLға барлық сұрау салулар жеке командалардан тұрады. Бұл команданың құрылымы алдағыш оңай, өйткенi сiз жоғары күрделi бағалар және деректердi өңдеудi орындағандай етiп оны кеңейтуiңiз керек. Бұл SELECT (таңдау ) командалары деп аталады .
SELECT командасы
Қарапайым SELECT командасы кестеден мәлiметiн алу үшiн деректер қорына жай ғана нұсқау бередi. Мысалы, сiз дүкеншiлердiң кестелерiн келесiдей етіп басып шығара алар ма едiңiз:
SELECT snum, sname, sity, comm
FROM Salespeople;
Берілгенге қорытынды 1- ші суретте көрсетілген.
1-ші сурет.SELECT командасы.
Басқаша айтқанда, бұл командалар кестеден барлық мәлiметтерiн жай ғана шығарады. Сонымен бiрге бағдарламалардың көпшiлiгi сияқты бағананың бастары жоғары бередi, кейбiр қорытындыларға толық қалыптауларына мүмкiндiк бередi, бiрақ бұл ендi тыс үйреншiктi спецификациялар. Бұл команданың әрбiр бөлiктеріне түсiндiруiндер болады:
FROM FROM FROM – кілттік сөзі , SELECT тәрiздi,
әрбiр сұрау салуда Salespeople елестетеді. Ол кестесiнiң мәлiмет көз ретiнде қолданылатын ,содан соң ақпараттың қайнар көзі ретінде қолданады.
Нүктелi үтiр деректер қорын хабарлау үшiн SQLнiң барлық командаларында қолданылады бұл команда толтырылған және орындалуға дайын. Көлбеген сызықтың кейбiр жүйелерiндегi жолда (\\\\ ) болады, команданың аяғының индикаторы болып табылады.
Мұндай сипаттың сұрау салуы кез келген көрcетiлген әдiспен қорытындылайтын түрде болады.Сол мәлiметтермен iстелiнген өздiң командасы да әртүрлi уақытқа сонша рет шығара алмайды. Бiз қалай алдыңғы-шы тарауда орнатқандығымыз - бұл кез келген ретiнен, әдетте, жол оларда кестеде табылған сол ретте мәлiм болады. Бұл мәлiметтерде жүргiзiлiп немесе сақталынатын сол ретiнде мiндеттi түрде болады.
Егер сiз кестенiң әрбiр бағанасы көргiңiз келсе, сiз қолдана алатын мiндеттi еместерді қысқартуға болады. (* ) жұлдызша толық қорытындысы үшiн қолданыла алады
SELECT *
FROM Salespeople;
Алдынғы команда тәріздес қорытындыға әкеледі.
SELECT сипаттама
SELECT командасы SELECT кілттік сөзінен басталады. Сiз көргiңiз келетін үтiрмен аттарының тiзiмi осыдан кейiн шығуы керек. Егер сiз кестенiң барлық бағаналары көргiңiз келсе, сiз (* ) жұлдызшамен бұл тiзiм алмастыра аласыз.
FROM кілттік сөз кемшiлiкпен және сұрау салу iстелiнетiн кестенiң атымен жарысалады. Қорытындысында, нүктелi үтiр( ; ) сұрау салуды аяқтау және команда ретiнде орындауға дайын екенін көрсету үшiн қолдануы керек.
SELECT команда кестеден белгiлi бiр мәлiметiн алуға қабiлеттi.
Бастапқыда, бiз кестенiң тек қана нақтылы бағаналары көруге мүмкіндік аламыз. Бұл оңай орындалады, сiз көргiңiз келген SELECTтың команданың бiр бөлiгiнен бағаналардың ерекшелiгiнiң бос тұруы мүмкін.. Мысалы, сұрау салу
SELECT sname, comm
FROM Salespeople;
2-ші суретте берілгенге қорытынды жасайды
2- сурет. Белгілі бір бағандарды таңдау
Бағананың қайта реттеуi
Егер кестенiң бағана реттеген болса онда сіз сол бағаналарды алдынғы ретті етіп істеуіңіз маңызды емес. (* ) жұлдызша олардың табиғи ретiндегi барлық бағаналарының көрсетедi, бiрақ сiз егер олардың әрбір бағаналар бөлек көрсетiңiз, онда нақты ретте ала аласыз.Реттердiң кестесi, (odate ) датаны қарап шығайық, нөмiр (snum ) дүкеншi, (onum ) реттiк нөмiрi, және (amt ) сома алуды:
SELECT odate, snum, onum, amt
FROM Orders;
Бұл сұрау салуды қорытынды суретте 3 көрсетiлген.
3-ші сурет: бағаналардың реконструкциясы
Кестелердегі мәлiметтiң құрылымы - бұл SQLға құрылымның белсендi қайта құруы үшiн жай ғана негiз.
Мол мәлiметтердiң алып тастауы
DISTINCT(айырмашылық ) - аргумент, SELECTтың сiздiң ұсынысынан екi есе шығын мәндерiн жоюға қамтамасыз ететiн дәлел. Қазіргі кезде қандай дүкеншілер реттеу кестесінен өздерінің ретін біледі. Ретті деп белгілі бір дүкеншіден, белгілі бір затты сатып алушы, белгілі бір өнімді сатып алуы . сізге әрбір реттерді білу қажеті жоқ; дүкеншілердің тізімдік нөмірі snum ғана керек. Сол үшін сіз келесілерді енгізе аласыз:
SELECT snum
FROM Orders;
Тапсырма
1. Порядок кестесінен тізім номері, сумма және дата барлық жолдары үшін шығаратын SELECT командасын жазыңыз.
2. Тапсырыс беруші кестесінен сатушы номері=1001 болатын барлық тізімді шығаратын сұранысты жазыңыз.
3. Кестені келесідей тізімде шығаратын сұранысты жазыңыз: city, sname, snum, comm..
4. SanJoe-да тапсырыс берушінің атымен тіркес бағаны (rating) шығаратын SELECT командасын жазыңыз.
5. Ешбір қайталаусыз Порядок кестесінен барлық сатушылардың snum мәнін шығаратын сұраныс жазыңыз.
6. Коммисионныйлары 10-нан жоғары Лондондағы барлық сатушылар үшін sname және city өрістерін беретін сұранысты жазыңыз.
7. Келесідей сұраныс қандай нәтиже шығарады?
8. Келесідей сұраныс қандай нәтиже шығарады?
9. Келесідей сұраныс қандай нәтиже шығарады?
№4 Практикалық жұмыс
Тақырыбы: «SQL-сұранысында IN, BETWEEN, LIKE, және ISNULL арнайы операторларды қолдану».
Жұмыс мақсаты: SQL-шартында IN, BETWEEN, LIKE, жәнеISNULL арнайы операторларды қолдану.
Қосымша реляциондық және булевтік операторларды өткен жұмыста қарастырдық, SQL арнайы операторлар қолданылады IN, BETWEEN, LIKE, и ISNULL. Сіздер осы бөлім арқасына оларды қалай қолданатынын және күрделі және қуатты предикаттарды құрастырады. IS NULL операторын талдау NULL мағынасы берілгендердің қатыспайтындығын анықтайды.Сондай-ақ NOT операторының осы операторлар орнына қолданылатыны жайлы білетін боласыздар.
ОПЕРАТОР IN
Оператор IN набор мағынасының қосылуы мүмкін немесе мүмкін еместігін анықтайды,. Сендердің қазіргі оқылып жатқан берілген мәліметтер базасына сай,егер сіз сатушыны сол арқылы тапқыныз келсе,Лондандағы немесеBarcelona енгізілген болса, онда сіз келесі сұранысты жіберуініз қажет
(Нәтижесі 1- суретте көрсетілген):
SELECT *
FROM Salespeople
WHERE city ='Barcelona' OR city = 'London';
Осы информацияны алудын басқаша да жолдары бар:
SELECT *
FROM Salespeople
WHERE city IN ( "Barcelona", "London");
Нәтиже 1-суретте көрсетілген.
1 сурет Сатушының Барселонда және Лонданда болғаны
IN набор мағынасын жеке бөлікте және үтірмен ерекшелеп анықтайды. Ол әр түрлі бағыттағы мағынаны көрсеттілген жолақта тексереді.Егер осы жағдай орындалса, онда предикат дұрыс. Енді заказ берушілердісатушыларға қатысты snum = 1001, 1007 және 1004 мағынаны іздестіреміз.2-суретте келесі сұраныстың нәтижесі көрсетілген:
SELECT *
FROM Customers
WHERE Snum IN ( 1001, 1007, 1004 );
Рисунок 2: SELECT IN номермен қолданады
ОПЕРАТОР BETWEEN
Оператор BETWEEN IN операторына ұқсас. Набордан IN сияқты номер бойынша анықтаумен қатар, BETWEEN диапазонды анықтайды,предикаттың дұрыстығын анықтау үшін мағына өсіп отыруы қажет. BETWEEN үшін сіз арнайы кілт сөзін бастапқы мағынамен бірге енгізуініз қажет, кілттік және соңғы мағына AND. IN айырмашылығы, BETWEEN тәртіпке сезімтал, алғашқы мағына сөйлемде алфабит бойынша да сан бойынша да бірінші болуы қажет.
Келесі мысал кестеден тыс болуы қажет.Барлық сатушының сатушылары 10 және 12 аралықтағы комиссионды (Нәтиже 3 суретте көрсетілген):
SELECT *
FROM Salespeople
WHERE comm BETWEEN 0.10 AND 0.12;
BETWEEN қосылған оператор үшін, шекаралас( бұл жағдайда, .10 және .12 ). кез-келген 2 мағынамен сай келсе онда предикат дұрыс болады.
Сурет 3 SELECT қолданады BETWEEN операторын
Сіздер шек қойған мағынаны анықтай білулеріңіз қажет,қосатын интерпретация приемлемалы болуы қажет немесе көрсетілген типте болуы керек:
SELECT *
FROM Salespeople
WHERE ( comm BETWEEN 0.10 AND 0.12 ) AND NOT comm IN (0 .10, 0.12 );
4-Суретте бұл сұраныстың нәтижесі көрсетілген.Жалпылама шолу бойынша,бұл біраз қолайсыз,бірақ жаңа операторлардың Буля операторларымен комбинироваться етіліп,нәтижесінде күрделі предикат шығарылады. Негізінде, сіздер IN және BETWEEN қолданасыздар.
Сурет 4.
Тапсырма
1. 1990 жылдың қазан айындағы 3-ші немесе 4-ші күндеріндегі барлық тізімді шығаратын екі сұраныс жазыңыз.
2. Peel және Motika сатушылары қызмет көрсететін барлық тапсырыс берушілердің тізімін шығаратын сұраныс жазыңыз.
3. A және G әріптерінің аралығына кіретін әріптен басталатын тапсырыс берушілердің аттарын шығаратын сұраныс жазыңыз.
4. Аттары С әрпінен басталатын барлық қолданушылардың тізімін шығаратын сұраныс жазыңыз.
5. Мәндері нөлге тең барлық қатарларды шығаратын сұраныс жазыңыз.
№5 Практикалық жұмыс
Тақырыбы: «Агрегаттық функциялар көмегімен берілгендерді жалпылау».
Жұмыстың мақсаты: SUM, AVG, COUNT, MAX және MIN агрегаттық функцияларды пайдалану арқылы берілген таңдамалы сұраулар интерпретациясының мазмұны мен практикалық ұғымдарды қалыптастыру.
Бұл жұмыста сіз базадан және ақытамадан ұғымдарды жоғалту үшін сұрауларды қарапайым пайдалаудан бастайсыз.
Сіз осылардан ақпарат алу үшін бұл ұғымдарды қалай пайдалана аласыз. Жазықтықтан топтық мағыналарды алып бірлік мағынаға дейін жинақтайтын агрегаттық немесе жалпы функциялардың көмегі арқылы жүзеге асады. Сіз бұл функцияларды қалай пайдалану керек екенін оларды қолдану үшін топтық ұғымдарды қалай ұолдану керек ененін және қортынды үшін кай топ анықталатынын білесіз, сонымен қатар қандай шарттарда бірлік сұрақтарда алынған ақпараттардан мағыналық жолақтарды біріктіруге болатынын көресіз.
Агрегаттық функциялар дегеніміз не?
Сұраулар жалпы топтық мағыналар және бірлік мағыналарды жасауы мүмкін. Оны агрегаттық функциялардың көмегімен жүзеге асырамыз. Агрегаттық функциялар барлық топтық кестелер үшін бәрләк мағына береді. Бұл функциялардың тізімі бар: * COUNT жолдардың номерін немесе сұралған NULL жазықтығының мағынасын білдіреді. * SUM барлық таңдалған жазықтықтың мағынасының арифметикалық сомасын береді. AVG берлілген жазықтықтың барлық таңдалған ұғымдарын қарапайымдандырады. MAX берлілген жазықтықтың барлық таңдалған ұғымдарын көптігін білдіреді. * MIN берлілген жазықтықтың барлық таңдалған ұғымдарын аздығын білдіреді.
Агрегаттық функцияларды қалай пайдалануға болады?
Агрегаттық функциялар SELECT сұрамында жолақтар атымен аттас пайдалнылады. Бірақ олар жолақтардың атын агрумент ретінде алады. Тек сандық жолақтар ғана SUM және AVG COUNT,MAX, MIN мен пайдаланылады. Символдық немесе сандық жазықтықтар ұолданылуыда мүмкін. Олар символдық жолақтармен қолданылғанда MAX және MIN ASCII эквивалетінде көрсетеді. ASCII MIN бірінші ал MAX соңғы мағынаны альфавиттік жүйеде хабарлап отыру керек. Айта кететін басты нәрсе қортынды функциялар HAVING сөйлемінің құрамында және SELECT сөйлемінің тізімінде ғана пайдаланылады. Басқа жағдайларда ол мүмкін емес. Егер SELECT сойлемінің тізімінде қортынды функциялар болса, ал сұрау мәтінінде топтардағы мәліметтерді біріктіруді қамтамасыз ететін GROUP BY фразасы болмаса онда SELECT сойлемінің тізімінде бірде бір элемент жазықтыққа қандайда бір ақпаратты енгізе алмайды. Бірақ жазықтық қортынды функцияның аргументі ретінде көрсетілсе онда ол енгізе алады.
Егер кестеден сіздің барлық тауарларыңыздың SUM табу үшін біз қортындысы мен келесі сұрауды енгізе алмыз.Сурет 1:
SELECT SUM (amt)
FROM Orders;
Сутер 1 Сумма таңдау
Әрине кестеде қанша жол барына тәуелсіз бірлік ұғым қайтарылатын жазықтық таңдауынан айырмашылығы бар. Сондықтан GROUP BY сөйлемі таңдалынбайынша агрегаттық функциялар жолақтар бір уақытта таңдалына алмайды. Орташа сумманы табу – ұқсас операция. Сурет2:
SELECT AVG (amt)
FROM Orders;
Сутер2 Орташасын таңдау
COUNT –тың арнайы атрибуттары
COUNT функциясы басқасынан ерекше. Олар бағандардағы ұғымдардың санын санайды немесе кестедегі жолдардың санын санайды. Жолақтарды мағынасын санағанда берілген жазықтықты әртүрлі мағыналардағы сандардың санын шығару үшін DISTINCT –пен қолдану. DISTINCT мысал біз мұны қазіргі уақытта кестеде сипаттталған сатушылардың номерін санау үшін қолдана аламыз. Қортындысы 3 сретте көрсетілген.
SELECT COUNT ( DISTINCT snum ) FROM Orders;
DISTINCT-ті қолдану.
Жоғарыдағы мысалға назар аударыңыз. DISTINCT өзі қолданылатын жазықтықтардың аты мен жай жақшаға алынады. Бірақ бұрынғыдай SELECT –тен киін емес. Бұл қолдануды DISTINCT пен COUNT жеке бағандарда пайдалану үшін ANSI стандартын талап етеді, бірақ көптеген бағдарламалар санын оларға осындай талап қоймайды.Сутер 3:
Сурет 3 Жазықтықтық мағыналар
Сіз DISTINCT көмегімен жолақтар таңдау орындалмаса бірлік сұрауларда DISTINCT көмегімен жазықтықтан (COUNT ) көп санды есептеулерді таңдай аласыз. DISTINCT былайда қолданыла алады: агрегаттың кез келген функциясымен, бірақ ол COUNT жиі пайдаланылады. MAX және MIN ешкандай эффект бомайды. Ал SUM және AVG сіз әдетте қайталанатын ұғымдарды қосу үшін барлық бағандардың орташа және жалпы мәніне заңды түрде пайдалы нұсқа болады.
COUNT мәндер мен емес жолдармен пайдалану.
Кестедегі жолдардың жалпы санын есептеу үшін жазықтықтың атынының орнына COUNT функциясын жұлдызшамен пайдаланыңыз. Мысалы келесі мысалда 4 суретте қортынды келтірілген.
SELECT COUNT (*) FROM Customers
Жұлдызшалы COUNT NULL және дубликаттармен енгізеді, сондықтан DISTINCT пайдаланыла алмайды.
Сурет 4.
Тапсырма
1. 3 қазан күні сатып алынған барлық сомманы санайтын сұраныс жазу
2. Тапсырыс беруші кестесіндегі city аймағындағы NULL-емес мәндердің санын беретін сұраныс жазыңыз.
3. Әрбір тапсырыс беруші үшін ең аз деген сомманы таңдап алатын сұраныс жазыңыз
4. Әрбір қаладағы ең жоғары бағаны таңдайтын сұраныс жазыңыз
5. Тапсырыс берушілердің санын санап шығатын сұраныс жазыңыз
№6 Практикалық жұмыс
Тақырыбы: «Сұрауларды шақыру реті».
Жұмыстық мақсаты: Практикалық ұғымдарды алу және сұрау құрастыратын қортындысы бар жұмыстардың мүмкіншілігін кеңейту: мәтінді қою таңдалған жазықтықтар арасындағы констант математикалық көрсеткіштердегі таңдалған жазықтықтарды пайдалану.
Жолақтар мен көрсетілімдер.
Көптеген SQL мәліметтер қоры арнайы әдістерді көрсетеді. Олар сіздің сұрауларыңызға қортынды жасайды. Әрине олар бағдарламадан бағдарламаға елеулі өзгерістерге шыдайды. Және олардың талқылаулары біздің тапсырмаға енбейді, бірақ бес түрлі ерекшелік SQL стандартында құрылған. Олар жазықтықтағы мағынаға және агрегаттық мәліметтерге ортнды беріп қана қоймайды.
Таңдалған жазықтықтардың көмегімен скалярлық көрсеткіш
Сіз кейін сіздің қалаулы тұтынуыңызға сай формаға енгізу үшін қарапайым сандық мәліметтерді есептеуді орындағыныңз келді дейік SQL сізге скалярлық көрсеткіштерді енгізуге мүмкіндік береді. Таңдалған жазықтықтардың арасындағы констант болады. Бұл көрсеткіштер SELECT сөйлеміндегі жазықтықта орналастыру немесе толықтыру үшін SELECT-те жазықтықты толықтыра алады. Мысалы сіз проценттік қарым –қатынастағы өз сатушыңыздан комиссионды көрсетуін сұрай аласыз. Ал ондық санда емес, тек қана жеткілікті:
SELECT snum, sname, city, comm * 100
FROM Salespeople;
Бұл сұраудан қортындыбағандары Сурет1 көрсетілген.
Қортынды бағандары.
Алдындағы мысалдағы соңғы бағанның аты жоқ, өйткені ол қортындылау бағаны - бұл сұраулы әдістер арқылы құралған мәліметтер бағандары. Сіз оларды әр уақыта құрасыз (агрегатық функцияларды, константтарды )пайдаланғанда қолданғанда немесе SELECT сұрауның сөйлемдегі көрсеткіші. Сурет1:
Сурет 1 Сұраудағы көресеткішті орналастыру
Баған кестелердегі атрибуттардың бірі кестелерден келмеген бағандар – аты жоқ кестеден кетккен бағандар.
Қортынды сұраудағы мәтінді орналастыру.
Символ 'A' егер өзі ештене білмеген жағдайда константа болады. Мысалы 1 саны сияқты. SELECT сойлеміне константты қойып мәтінді енгізе аласыз. Бірақ таңбалық константалардың сандық констаналардан айырмашылығы олар өрнектерде қолданыла алмайды. Сіз 1 + 2 деген өрнекті SELECT сойлеміне жаза аласыз. Бірақ А+В өрнегін пайдалана алмайсыз. Бұл сізге коментарий және бірлік символдардар қортындыға енгізу мүмкіндігін береді. Мысалы 2 сурет:
SELECT snum, sname, city, ' % ', comm * 100
FROM Salespeople;
2 Сурет Қортындыға таңбаларды орналастыру.
Назар аударыңыз процент алдындағы бос орын жолдың бөлшегі ретінде қойылады. Бұл қортынды мен қойылған көментариді белгілеу үшін керек. Есіңізде болу керек, сол коментрий әр қортынды жолында басылады. Сіз өз қортындыңызды былай белгілей аласыз. 3 Сурет:
SELECT ' Количество сделок на ', odate, ' составляет ', COUNT ( DISTINCT onum ), '.'
FROM Orders
GROUP BY odate;
3 сурет Мәтіннің комбинациясы жазықтықтың мағынасы және агрегаттардың мағынасы
Коментарий әр жолда өзгертілмей қойылады. Кестелерде пайдалы болады, бірақ шектеу шегі бар. Кейде біо кестеге бір ғана коментарий келсе кейде әр жолға әр түрлі коментарий жазасын. Әр түрлі бағдарламалар арнайы әдіспен қамтамасыз етіледі: Есеп генетаторы... SQL – қызықты әсіресе берлген операцияларда.
Бағандардың аттары
MySQL енгізілген бағандарға ату енгізеді. Сондықтан sname және snum т.б сияқты түсінікті және көрнекі терминдерді қолданамыз. Бұл AS көмегімен жүзеге асады.
select max(amt) AS
'Максимальдық сумма сделки' from orders;
Суретте сұраудың нәтижесі келтірілген.
Осындай лақап аттар қортындыны тұтынушыларға түсінікті ете алады.
Жазықтықтағы қортындыны реттеу
Кесте реттелмеген мәліметтердің жиындығы. SQL ORDER BY командасын пайдаланады. Сіз осылар арқылы әр бағанның өсу және кемуән көре аласыз.
SELECT * FROM Orders
ORDER BY cnum DESC;
Қортынды 4 суретте көрсетілген.
Сурет 4 Жазықтықты кішірейту көмегімен қортындыны реттеу.
Жазықтықты кішірейту көмегімен қортындыны реттеу.
Біз кестені реттей аламыз, мысалы amt көмегімен cnum –ды реттей аламыз.
Қортынды 5 Суретте көрсетілген.
SELECT *
FROM Orders
ORDER BY cnum DESC, amt DESC;
Сурет 5
Агрегатты топтарды жинақтау
Сонымен қатар ORDER BY топтарды жинақтау үшін GROUP BY –мен де қолданылады. Олай болса, ORDER BY әрқашан да соңынан келеді. Нәтижені топтастырудың алдында топтардың тізімі еркін болатын, ал енді біз топтарды белгілі бір тізбекпен ораналастырамыз.
Нәтиже 6-суретте көрсетілген.
Сурет 6
Тапсырма
1. Мысалға, әрбір сатушыда 12% коммисиалық бар. Порядок кестесіне сұраныс жазыңыз, ол тізім номері, сатушы номері және коммисиялықтың соммасын шығаратын болсын.
2. Тапсырыс беруші кестесіне сұраныс жазыңыз, ол әрбір қалада ең жоғары бағаны табатын болу керек. Нәтиже мына түрде болу керек:
Қалада (city), ең жоғары рейтиг (rating)
3. Үш ең талап етілетін тапсырыс берушілерді табыңыз.
7 Практикалық жұмыс
Тақырыбы: «Web – серверда мәліметтерді публикациялау»
Достарыңызбен бөлісу: |