JavaRush /Блоги Java /Random-TG /Мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем. (Қисми...
Roman Beekeeper
Сатҳи

Мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем. (Қисми 6 - Санҷиши супориши ниҳоӣ) - "Лоиҳаи Java аз А то Я"

Дар гурӯҳ нашр шудааст
Мақола аз як силсила дар бораи эҷоди лоиҳаи Java (пайвандҳо ба дигар маводҳо дар охир мебошанд). Ҳадафи он таҳлor технологияҳои калидӣ мебошад, ки натиҷааш навиштани боти телеграмма мебошад. Ин қисм таҳлor вазифаи ниҳоӣ дар базаи маълумотро дар бар мегирад. "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 1Салом, хонандагони азиз. Имрӯз мо вазифаро аз мақолаи охирин дар базаи маълумот таҳлил хоҳем кард. Ин ҷолиб аст, зеро он барои мусоҳибаҳо дар сатҳи миёна пешбинӣ шудааст. Яъне, пас аз ин вазифа шумо аллакай метавонед ба мусоҳиба равед ва шумо ҳадди аққал як қисми он чизеро, ки ба пойгоҳи додаҳои релятсионӣ марбут аст, бомуваффақият мегузаред. Ман медонам, ки ин мақола то чӣ андоза зарур буда метавонад ва аз ин рӯ ман тамоми таҷрибаи худро барои муфид ва ҷолиб сохтани он сарф мекунам. Ва агар шумо дар миёнаи мақола хоб нашавед, ин маънои онро дорад, ки ман ба ҳадафи худ расидаам. Ман тамоми супоришро такрор намекунам: ман онро пеш аз ба итмом расонидани ҳар як супориш иқтибос меорам, бо курсив зери он мезанам. Умедворам, ки ҳар касе, ки ин мақоларо мехонад, ҳама дархостҳоро дар базаи худ иҷро мекунад ва ҳамон чизеро ба даст меорад. Ин ба тиҷорат ҳадди аксар фоида меорад. Ва ман аз он фикре, ки ман ба касе дар кори душвори мо кӯмак кардаам, каме хурсанд мешавам)

Машқи 1

Барои сохтани ҷадвали 'Student' бо майдонҳои зерин скрипти SQL нависед: id (калиди ибтидоӣ), ном, насаб, почтаи электронӣ (нодир). Мо ин корро аллакай анҷом додаем, бинобар ин набояд ягон мушкилот вуҷуд дошта бошад. Дар скрипт шумо бояд калиди ибтидоӣ ва майдони беназиреро, ки аз ибтидоӣ фарқ мекунад, муайян кунед. Аввалан, биёед барои ин вазифа пойгоҳи нав эҷод кунем: $ CREATE DATABASE final_task; Ва биёед ин базаро истифода барем: $ USE final_task; Пас аз насб кардани муҳити зист ва барои иҷро кардани кор, мо метавонем скрипти зеринро нависем: $ CREATE TABLE донишҷӯ ( id INT AUTO_INCREMENT, ном VARCHAR(40), номи насаб VARCHAR(50), почтаи электронии VARCHAR(100), КАЛИДИ ПРАМИНИ ( id), UNIQUE (почтаи электронӣ) ); То хол дар муқоиса бо он чизе, ки мо аз сар гузаронидаем, чизи наве нест. Ҳама гуна шарҳҳо нолозиманд, биёед идома диҳем.

Вазифаи 2-3

Барои сохтани ҷадвали 'Китоб' бо майдонҳои зерин скрипти SQL нависед: id, унвон (id + унвон = калиди ибтидоӣ). Пайванди "Донишҷӯ" ва "Китоб" -ро бо муносибати "Донишҷӯ" як ба бисёр "Китоб". Биёед ду вазифаро ба як якҷоя кунем, то он зудтар ва қулайтар шавад. Ман аллакай дар мақолаҳои қаблӣ чӣ гуна илова кардани калиди хориҷиро муҳокима карда будам. Барои илова кардан, мо бояд дар хотир дошта бошем, ки мо чӣ гуна ва тавассути чӣ алоқа месозем. Мақолаи қаблӣ ба шумо кӯмак мекунад ва пас ин аст скрипт: $ CREATE TABLE book (id INT, унвон VARCHAR(100), student_id INT DEFAULT NULL, PRIMARY KEY (id, унвон), FREIGN KEY (id, student) REFERANS донишҷӯ (id) ); Бо ин роҳи содда, мо барои ҷадвали худ калиди таркибӣ илова кардем PRIMARY KEY (id, title) , акнун калид маҳз ҷуфт хоҳад буд. Ин маънои онро дорад, ки дар ҷадвал зиёда аз як арзиши майдони ID-и шабеҳ мавҷуд буда метавонад. Ва маҳз ҳамин тавр барои унвон.

Вазифаи 4

Барои сохтани ҷадвали 'Муаллим' бо майдонҳои зерин скрипти SQL нависед: id (калиди ибтидоӣ), ном, насаб, почтаи электронӣ (нодир), мавзӯъ. Мо омода кардани пойгоҳи додаи худро барои дархостҳо идома медиҳем, ҷадвали муаллимон эҷод мекунем: $ CREATE TABLE муаллим( id INT AUTO_INCREMENT, ном VARCHAR(30), насаб VARCHAR(30), почтаи электронӣ VARCHAR(100), мавзӯъ VARCHAR(40), КАЛИДАИ ИБТИДОЙ ( id), UNIQUE (почтаи электронӣ); То ҳол ин мушкил нест, дуруст? Се вазифа аллакай ба охир расид!

Вазифаи 5

Пайванди "Донишҷӯ" ва "Муаллим" -ро бо муносибати "Донишҷӯ"-и бисёр-ба-бисёр Муаллим'. Акнун ин ҷолибтар аст! Мо бори охир дар ин бора сӯҳбат кардем. Ичозат дихед ба шумо хотиррасон кунам, ки барои ноил шудан ба ин чи лозим аст: шумо бояд як чадвали фосилавие созед, ки дар он чуфтхои талаба-муаллим нигох дошта шавад. Бо ёрии он муносибатхои бисьёр-ба-серо ба вучуд овардан мумкин аст. Аз ин рӯ, биёед ҷадвали student_x_techers эҷод кунем . Равиши номгузорӣ кушода аст ва инчунин метавонад: student_teacher . $ Эҷоди Ҷадвали student_x_teachers ( student_id INT NO NULL, teacher_id INT NO NULL, КАЛИДИ ИБТИДОДӢ (id_id_student, teacher_id), КАЛИДИ ХОРИҶӢ (id_id) REREIGN REREIGN (id) донишҷӯ(id), КАЛИДИ ХОРИҶӢ (id-муаллим) REREIGN REFERANS муаллим(id) ); Тавре ки шумо мебинед, ҳама чиз равшан ва мувофиқ иҷро карда мешавад. Мо калиди таркибӣ барои ду калиди хориҷӣ дорем: student_id ва teacher_id. Чаро калиди хориҷӣ низ? Барои он ки мо боварӣ ҳосил кунем, ки сабтҳо дар ҷадвалҳои донишҷӯён ва муаллимон барои ҷуфтҳои сабтшуда мавҷуданд.

Вазифаи 6

"Донишҷӯ" -ро интихоб кунед, ки дар насабашон "оро" дорад, масалан "Сидоров", "Вороновский". Барои он ки барои мо ҷолиб ва визуалӣ бошад, ман тавсия медиҳам, ки аввал чанд донишҷӯро илова кунем, то баъзеи онҳо ба ин дархост мувофиқ бошанд ва баъзеашон не. Аз ин рӯ, биёед шахсонеро, ки дар натиҷаи дархост дохил карда шаванд, нависед: $ INSERT INTO INTO донишҷӯ (ном, насаб, почтаи электронӣ) АРЗИШҲО ('Ivan', 'Сидоров', 'ivan.sidorov@gmail.com'); $ ДОДАНИ БА донишҷӯ (ном, насаб, почтаи электронӣ) АРЗИШҲО ('Николай', 'Вороновский', 'nikolay.voronovsky@gmail.com'); Ва шахсоне, ки набояд дохил шаванд: $ INSERT БА донишҷӯ (ном, насаб, почтаи электронӣ) VALUES ('Roman', 'Fortny', 'roman.fortny@gmail.com'); $ ДОДАНИ БА донишҷӯ (ном, насаб, почтаи электронӣ) VALUES('Костя', 'Peterов', 'kostya.petrov@gmail.com'); Биёед натиҷаро тафтиш кунем, ба рӯйхати маълумотҳо дар ҷадвали донишҷӯён нигаред: $ SELECT * FROM student; ва мо ба даст меорем: "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 2Дар маҷмӯъ чаҳор сабт мавҷуд аст, дутои онҳо бояд мувофиқат кунанд ва дутоаш мувофиқат накунад. Ҳама маълумотро барои дархост омода карда, мо метавонем барои худи супориш дархост пешниҳод кунем: $ ИНТИХОБ КУНЕД * АЗ донишҷӯ КУҶО насаб МИСЛИ '%oro%'; "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 3Дар натиҷа, Ivan ва Николай аз рӯйхат гузаштанд.

Вазифаи 7

Вазифаи навбатӣ, мо мехонем: Аз ҷадвали 'Student' ҳамаи насабҳо ('familia_name') ва шумораи такрори онҳоро интихоб кунед. Ба назар гиред, ки дар базаи маълумотҳо номҳо мавҷуданд. Аз рӯи миқдор бо тартиби кам ҷудо кунед. Он бояд чунин бошад:
насаб миқдор
Peterов 15
Ivanов 12
Сидоров 3
Барои равшанӣ, шумо бояд маълумоти бештар илова кунед. Бе гапи дигар Peterовхо, Ivanовхо ва Сидоровхоро илова мекунем, ки хешу табории худро намедонанд ;) Сурогаи электрониро ихтироъ намекунам, онро аз сабтхои нав хорич мекунам. Фармони зеринро 12 маротиба иҷро мекунем: $ INSERT INTO донишҷӯ (ном, фамorя) VALUES ('Ivan', 'Ivanов'); Биёед 15 Peterовро илова кунем: $ INSERT INTO INTO (ном, нас_ном) АРЗИШҲО ('Peter', 'Peterов'); Ва ду Сидоров (мо аллакай якто дорем))): $ INSERT INTO донишҷӯ (ном, насаб) VALUES ('Сидор', 'Сидоров'); Ҳоло маълумот омода аст. Барои ба даст овардани чунин маълумот шумо бояд гурӯҳбандӣ кунед, барои гурӯҳбандӣ шумо бояд оператори Group By -ро истифода баред ва ин корро аз рӯи майдони Last_name анҷом диҳед. Шумо инчунин метавонед аҳамият диҳед, ки шумораи такрорҳо ҳамчун миқдор таъин карда мешаванд ва дар ин ҷо шумо инчунин бояд дар хотир дошта бошед, ки чӣ гуна тахаллусҳо дар SQL сохтан лозим аст: $ SELECT last_name, COUNT(*) ҳамчун миқдор АЗ ГУРУХИ донишҷӯён БО насаб ТАРТИБ БА COUNT(*) DESC ; "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 4Ҳамин тавр, ман онро бо Peterовҳо барзиёд иҷро кардам - ​​он 16 шуд))

Вазифаи 8

Шарт: 3 номҳои бештар такроршавандаро аз 'Student' интихоб кунед. Аз рӯи миқдор бо тартиби кам ҷудо кунед. Он бояд чунин бошад:
ном миқдор
Искандар 27
Сергей 10
Peterус 7
О, барои ин мо аллакай Ivanу Петер ва Сидор дорем. Аз ин рӯ, зарурати илова кардани онҳо нест. Мо аллакай медонем, ки чӣ гуна ба навъҳо ҷудо кардан лозим аст. Ягона чизе, ки мо имрӯз дар бораи он сӯҳбат накардаем, ин аст, ки чӣ тавр интихоб кардани шумораи муайяни сабтҳо. Ин аллакай дар ҳалли қаблии мушкилоти пойгоҳи додаҳо пайдо шудааст. Барои онҳое, ки онро нахондаанд, хонед. Барои боқимонда, биёед рост ба матлаб меравем: $ SELECT name, COUNT(*) ҳамчун миқдор АЗ ГУРӮҲИ донишҷӯён аз рӯи ном ORDER BY BY COUNT(*) DESC LIMIT 3; "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 5Тавре ки аз пурсиш дида мешавад, агар шумо тартиби операторҳоро дар дархости SELECT донед, дар иҷрои чунин дархост мушкorе ба вуҷуд намеояд. Ва ин вазифа холо хам ба зиммаи мост. Ва донише, ки қаблан пешниҳод шуда буд, барои ҳалли ин мушкилот кофӣ аст.

Вазифаи 9

Шарти вазифа: "Донишҷӯ" -ро интихоб кунед, ки шумораи бештари "Китоб" ва "Муаллим" -ро дорад. Аз рӯи миқдор бо тартиби кам ҷудо кунед. Он бояд чунин бошад:
Surname_муаллим Номи_насаби донишҷӯ Миқдори китоб
Peterов Сидоров 7
Ivanов Смит 5
Peterов Канкава 2
Пас, ин вазифа назар ба супориши пештара душвортар аст, дуруст? Тааҷҷубовар нест: аз он бӯи ҳамроҳ мешавад... ва зиёда аз як) Аввалан, мо бояд фаҳмем, ки чӣ кор кунем... Маълум аст, ки миқдори Китоб гурӯҳбандиро талаб мекунад. Аммо чӣ? Ва чаро мо бояд онҳоро гурӯҳбандӣ кунем? Дархост се ҷадвал, гурӯҳбандӣ ва ҷудокуниро дар бар мегирад. Бо назардошти он, ки сабтҳое, ки дар он китобҳо нестанд, нишон дода намешаванд, ин маънои онро дорад, ки шумо бояд INNER JOIN -ро гиред. Мо инчунин дархости LEFT JOIN дархост хоҳем кард, то дар ин бобат ҳеҷ мушкиле набошад. Ва якчанд вариант вуҷуд дорад. Аввалин коре, ки мо мекунем, ин аст, ки се ҷадвалро ба як сабт муттаҳид кунем. Баъдан, мо ба донишҷӯён гурӯҳбандӣ мекунем ва ба он номи муаллимро илова мекунем. Мо чиро интихоб мекунем? Номи муаллим, донишҷӯ ва шумораи китобҳо. Биёед барои дархост маълумот илова кунем:
  • се муаллим;
  • даҳ китоб;
  • ду хонандаро бо се муаллим пайваст мекунанд.

Се муаллим

$ ВОХИД КАРДАН БА муаллим(насаби) АРЗИШХО ('Матвиенко'); $ ВАЗЪ НАМОЕД БА муаллим(насаб_насаб) АРЗИШХО ('Шевченко'); $ ВОХИД КУНЕД БА муаллим(насаби) АРЗИШХО ('Василенко');

10 китоб

Ман ҳуҷҷатҳои донишҷӯёни 1 ва 2-ро мегирам. Ман китобҳоро ба онҳо замима мекунам. Азбаски AUTO_INCREMENT муқаррар карда нашудааст, барои ҳар дафъа навиштани ID-и нав, шумо бояд амалҳои зеринро иҷро кунед: $ ALTER TABLE book MODIFY id INT NOT NULL AUTO_INCREMENT; Баъдан, китобҳоро барои донишҷӯи аввал илова кунед: $ INSERT INTO book (унвон, донишҷӯ_id) VALUES('book1', 1); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book2', 1); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book3', 1); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book4', 1); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book5', 1); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book6', 1); Ва китобҳо барои донишҷӯи дуюм: $ INSERT INTO book (унвон, донишҷӯ_id) VALUES('book7', 2); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book8', 2); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book9', 2); $ INSERT INTO китоб (унвон, ID-и донишҷӯ) VALUES('book10', 2);

Муносибатҳои муаллиму донишҷӯ

Барои ин, донишҷӯён_x_муаллимонро ба ҷадвал илова кунед: $ INSERT INTO student_x_teachers VALUES (1,1); $INSERT БА student_x_teachers VALUES(1,2); $INSERT INTO student_x_teachers VALUES(2,3);

Биёед дархостро амалӣ кунем

Мо марҳилаи аввалро иҷро мекунем - мо се ҷадвалро ба як сабт мепайвандем: $ ИНТИХОБ * АЗ муаллим tch INNER JOIN student_x_teachers st_x_tch ON tch.id = st_x_tch.teacher_id INNER JOIN student st ON st_x_tch.student_id = st.id INNER JOIN b book .id = b.student_id; "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 6Албатта, мо ҳоло ягон сабт надорем, аммо мо мебинем, ки мо се ҷадвалро бомуваффақият пайваст кардем. Ҳоло мо гурӯҳбандии китобҳо, мураттабсозӣ ва майдонҳоеро, ки ба мо лозиманд, илова мекунем: $ SELECT tch.last_name, st.last_name, st.id, COUNT(*) ҳамчун китобҳо АЗ донишҷӯ st INNER JOIN book b ON st.id = b.student_id INNER ҲАМРОҲ ШАВЕД student_x_teachers st_x_tch ON st.id = st_x_tch.student_id ДОХИЛӢ ҲАМРОХ БА муаллим tch ON tch.id = st_x_tch.teacher_id ГУРУХ АЗ РУИ st.id ТАРТИБИ китобҳо DESC; Аммо мо дар SQL хато мегирем ва ҷавоби зерин мегирем: Рамзи хатогӣ: 1055. Ифодаи №1-и рӯйхати SELECT дар банди GROUP BY нест ва дорои сутуни ҷамъшудаи "final_task.tch.last_name", ки аз сутунҳои GROUP BY аз ҷиҳати функсионалӣ вобаста нест банди Ин унсурҳоро гирифтан кор намекунад, зеро байни муаллим ва донишҷӯ муносибати бисёр ба бисёр вуҷуд дорад. Ва ин дуруст аст: мо наметавонем ба ҳар як донишҷӯ танҳо як муаллим гирем. Пас биёед бо роҳи дигар равем. Биёед чизеро истифода барем, ки View SQL ном дорад. Идея чист: мо як намуди алоҳида эҷод мекунем, ки ҷадвали нав аст, аллакай бо гурӯҳбандӣ ба мо лозим аст. Ва ба ин чадвал номи зарурии муаллимонро илова мекунем. Аммо мо як чизро ба назар мегирем, ки мумкин аст аз як муаллим зиёд бошад, бинобар ин сабтҳо такрор мешаванд. Намоиш эҷод кунед: $ Эҷоди VIEW studentBooks ҳамчун SELECT st.last_name,st.id,COUNT(*) ҳамчун китобҳо АЗ китоби донишҷӯи st DINER JOIN b ON st.id=b.student_id GROUP АЗ РУИ st.id ТАРТИБИ китобҳо DESC; Минбаъд, мо бо ин намуди ҷадвал ҳамчун як ҷадвали оддӣ кор мекунем, ки дорои се майдон аст: насаб_насаби донишҷӯ, ID_ID ва ҳисобкунии китобҳо. Тибқи ID-и донишҷӯ, мо инчунин метавонем муаллимро тавассути ду пайвастшавӣ илова кунем: $ SELECT tch.last_name ҳамчун 'Муаллим', sbw.last_name 'Student', sbw.books ҳамчун 'Китобҳо' аз китоби донишҷӯӣ sbw INNER JOIN student_x_teachers stch ON sbw. id = stch.student_id ДОХИЛИИ муаллим tch ON tch.id = stch.teacher_id; Ва ҳоло натиҷа чунин хоҳад буд: "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 7Ҳа! Ин дархост аст, дуруст?) Чуноне ки интизор мерафт, маълум шуд: донишҷӯе, ки id=1 дорад, шаш китоб ва ду муаллим дорад ва донишҷӯе, ки id=2 дорад, чаҳор китоб ва як муаллим дорад.

Вазифаи 10

Шарт: "Муаллим"-ро интихоб кунед, ки дар байни ҳамаи "Донишҷӯён" шумораи бештари "Китобҳо" дорад. Аз рӯи миқдор бо тартиби кам ҷудо кунед. Он бояд чунин бошад:
Surname_муаллим Миқдори китоб
Peterов 9
Ivanов 5
Дар ин ҷо мо метавонем дархости тайёрро аз вазифаи қаблӣ истифода барем. Мо дар ин бора чӣ бояд кунем? Мо аллакай ин маълумотро дорем, мо танҳо бояд гурӯҳи дигарро илова кунем ва номи донишҷӯро аз маълумоти баромад хориҷ кунем. Аммо аввал биёед як донишҷӯи дигарро ба муаллим илова кунем, то натиҷа ҷолибтар шавад. Барои ин мо менависем: $ INSERT INTO student_x_teachers VALUES (2, 1); Ва худи дархост: $ SELECT tch.last_name ҳамчун "Муаллим", SUM(sbw.books) ҳамчун "Китобҳо" аз китоби донишҷӯӣ sbw INNER JOIN student_x_teachers stch ON sbw.id = stch.student_id INNER JOIN муаллим tch ON tch.id =s муаллим_id GROUP АЗ tch.id; Дар натича мо чунин мегирем: "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 8он муаллим Василенко 10 китоб, Шевченко 6...)

Вазифаи 11

Шарт: "Муаллиме"-ро интихоб кунед, ки шумораи "Китобҳо" барои ҳамаи "Донишҷӯён" аз 7 то 11 аст. Аз рӯи миқдор бо тартиби кам ҷудо кунед. Он бояд чунин бошад:
Surname_муаллим Миқдори китоб
Peterов ёздаҳ
Сидоров 9
Ivanов 7
Дар ин ҷо мо HAVING-ро истифода хоҳем бурд. Мо дар бораи ӯ сӯҳбат кардем. Дархост айнан мисли пештара хоҳад буд, танҳо шумо бояд шартеро илова кунед, ки шумораи китобҳо дар доираи муайян бошад. Ва тавре ки ман дар мақолаҳои қаблӣ гуфта будам, вақте ки мо бояд ҳангоми гурӯҳбандӣ ва/ё дар функсияҳои ҷамъкунӣ филтр кунем, мо бояд HAVING : $ SELECT tch.last_name ҳамчун 'Муаллим', SUM(sbw.books) ҳамчун 'Китобҳо' аз Китоби донишҷӯӣ sbw ҲАМРОҲИИ ДОХИЛИИ student_x_teachers stch ON sbw.id = stch.student_id ҲАМРОХИ ДОХИЛИИ муаллим tch ON tch.id = stch.teacher_id GROUP АЗ tch.id ДОРАД СУМ(sbw.books) > 6 ВА СУМ(sbw2) <sbw1; Ман қисми иловакардаамро таъкид кардам. Ва, дар асл, натиҷаи интизорӣ: "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Қисми 6 - Санҷиши вазифаи ниҳоӣ - 9танҳо Василенко аз ин давр гузашт))

Вазифаи 12

Шарт: Ҳама 'ном_насаб' ва 'ном'-и ҳама 'Муаллим' ва 'Донишҷӯ' бо майдони 'навъ' (донишҷӯ ё муаллим) чоп кунед. Аз рӯи алифбо аз рӯи 'name_name' мураттаб кунед. Он бояд чунин бошад:
насаб навъи
Ivanов донишҷӯ
Канкава муаллим
Смит донишҷӯ
Сидоров муаллим
Peterов муаллим
Яъне мо бояд ду баромадро якчоя кунем ва ИТТИХОД махз барои хамин аст. Ба ибораи дигар, мо сабтҳоро аз донишҷӯён ва омӯзгорон мегирем ва якҷоя чоп мекунем: $ SELECT_name, 'muallim' as type from teacher UNION ALL насабро интихоб кунед, 'student' as type from student ORDER BOY NAME; "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Кисми 6 — Тафтиши вазифаи хотимавй — 10Ва дар он ҷо ҳам муаллимон ва ҳам донишҷӯён хоҳанд буд. Чунин ба назар мерасад, ки ҳама чиз оддӣ аст, аммо ин аст, ки мо аллакай ба натиҷа назар мекунем. Ва аз ин рӯ, шумо бояд ду чизро тахмин кунед.

Вазифаи 13

Ҳолат: Ба ҷадвали мавҷудаи "Донишҷӯ" сутуни "ставка" илова кунед, ки курси ҳозираи донишҷӯро нигоҳ медорад (қимати ададӣ аз 1 то 6). Донишҷӯи ALTER TABLE ADD COSTRAINT check_rate CHECK (қурб > 0 ВА меъёр < 7); Дар ин ҷо мо майдонро тавассути ALTER TABLE ва CHECK илова мекунем, то маҳдудияти ин майдонро аз 1 то 6 муқаррар кунем.

Вазифаи 14

Ҳолат: Ин ашё талаб карда намешавад, аммо як плюс хоҳад буд. Функсияеро нависед, ки аз тамоми "Китобҳо" мегузарад ва ҳама "унвонҳо" -ро бо вергул ҷудо карда мебарорад. Дар ин ҷо шумо бояд танҳо як сатрро дар натиҷаи дархост, ки ҳамаи унвонҳои китобҳоро дар бар мегирад, баргардонед. Дар ин ҷо боз ман маҷбур шудам, ки Google-ро ҷустуҷӯ кунам. Чунин функсия вуҷуд дорад - GROUP_CONCAT , ки бо он ин кор хеле содда анҷом дода мешавад: $ SELECT GROUP_CONCAT(унвон) аз китоб; "Лоиҳаи Java аз A то Я": мо пойгоҳи додаҳо ва забони SQL-ро таҳлил мекунем.  Кисми 6 — Тафтиши супориши чамъбастй — 11Ва ин аст...)) Ҳама 14 вазифа омодаанд.

хулосахо

Уухх... Ин осон набуд. Ҷолиб буд. Вазифаҳо арзанда буданд, ман боварӣ дорам. Дар ҳоле ки мо ин вазифаҳоро иҷро мекардем, мо аз бисёр чизҳое гузаштем, ки қаблан маълум набуданд:
  • VIEW SQL
  • GROUP_CONCAT
  • ИТТИФОК
ва ғайра. Ташаккур ба ҳамаи онҳое, ки қудрати хондан ва такрор кардани он чизеро, ки ман кардам, доштанд. Кӣ медонад, ки чӣ гуна дархостҳоро беҳтар созад - дар шарҳҳо нависед, ман ҳатман онҳоро хоҳам хонд)

Рӯйхати ҳамаи маводҳои силсила дар аввали ин мақола аст.

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION