§ 24. Использование SQL для построения запросов
24.3. Маніпуліраванне данымі ў табліцы БД
Мова маніпулірявання данымі DML уключае аператары, якія змяняюць стан даных. Гэтымі аператарамі з’яўляюцца:
INSERT Сінтаксіс аператара INSERT: INSERT INTO <імя табліцы> У раздзеле VALUES значэнні палёў павінны быць паказаны ў тым парадку, у якім палі задаваліся пры стварэнні табліцы. Спіс слупкоў можа адсутнічаць. Калі спіс не паказаны ў аператары, то гэта азначае, што спіс значэнняў павінен быць поўным, г. зн. змяшчаць значэнні для ўсіх палёў табліцы (прыклад 24.8). У Access адначасова можна дабавіць у табліцу толькі адзін запіс. SELECT Аператар SELECT — адзін з найбольш важных і выкарыстоўваемых аператараў DML, які мае найбольш складаную структуру сярод усіх аператараў. Ён дазваляе выбраць даныя з БД і ператвараць да патрэбнага віду атрыманыя вынікі. Вынікам выканання аператара SELECT заўсёды з’яўляецца табліца. Сінтаксіс аператара SELECT:
У прыкладах 24.9—24.13 разгледжаны розныя варыянты выкарыстання аператара SELECT у адносінах да табліцы «Сеансы» (прыклад 24.1). У якасці ўмовы выбаркі ў раздзеле WHERE аператара SELECT можна выкарыстоўваць лагічныя выразы, якія выкарыстоўваюць палі табліц, канстанты, знакі параўнання, злучнікі AND і OR, адмаўленне NOT.
Выкарыстанне розных умоў для выбаркі даных разгледжана ў прыкладзе 24.10. У якасці крытэрыя сартавання ў раздзеле ORDER BY аператара SELECT паказваюцца імёны палёў, па якіх патрабуецца ўпарадкаваць запісы ў табліцы. Сартаванне можна выконваць па некалькіх палях. Прынцып работы такога сартавання аналагічны шматузроўневаму сартаванню ў Excel. Спачатку запісы размяшчаюцца ў тым парадку, які вызначаны для першага поля. Парадак, вызначаны для наступнага поля, упарадкоўвае толькі тыя запісы, якія маюць аднолькавыя значэнні ў першым полі. Далей сартаванне ўжываецца толькі да тых запісаў, якія маюць аднолькавыя значэнні як у першым полі, так і ў другім. Па змоўчанні запісы ў табліцы сартуюцца па ўзрастанні (ASC), для сартавання ў адваротным парадку неабходна дабавіць ключавое слова DESC (прыклад 24.11). Пры складанні запытаў пры дапамозе аператара SELECT для атрымання некаторай статыстычнай інфармацыі (сумы, колькасці, сярэдняга значэння і г. д.) выкарыстоўваюцца агрэгіруючыя функцыі. Гэта функцыі, якія працуюць з наборам даных і вяртаюць выніковае значэнне. Асноўныя з іх:
Усе гэтыя функцыі вяртаюць адзінае значэнне. Пры гэтым функцыі COUNT, MIN і MAX выкарыстоўваюцца ў дачыненні да даных любога тыпу, а SUM і AVG выкарыстоўваюцца толькі для даных лікавага тыпу. Ужываць агрэгіруючыя функцыі можна ў дачыненні да ўсіх радкоў табліцы (прыклад 24.12), радкоў, вызначаным у раздзеле WHERE (прыклад 24.13) ці да груп радкоў. У адным запыце можна паказваць некалькі агрэгіруючых функцый, запісаўшы іх праз коску. Сінтаксіс агрэгіруючых функцый: <Функцыя>(<выраз>) У якасці аргумента агрэгіруючай функцыі часцей за ўсё выкарыстоўваецца назва поля табліцы, над значэннямі якога праводзяцца вылічэнні. Таксама дапускаецца ў якасці аргумента выкарыстоўваць выразы, якія ўключаюць у сябе адвольную камбінацыю назваў палёў, канстант, функцый, аб’яднаных арыфметычнымі аперацыямі. У прыкладзе 24.14 разгледжана ўжыванне агрэгіруючых функцый COUNT, SUM і AVG у аператары SELECT у адносінах да табліцы «Сеансы в мае»: У раздзеле GROUP BY аператара SELECT запісваецца імя поля, па якім павінна ажыццяўляцца групоўка даных. У гэтым выпадку значэнне агрэгіруючай функцыі вылічваецца для кожнай групы (прыклад 24.15). Вынікі запытаў можна выкарыстоўваць у іншых запытах — атрымліваецца ўкладзены запыт (прыклад 24.16). UPDATE Сінтаксіс аператара UPDATE: З дапамогай аднаго аператара UPDATE могуць быць зададзены значэнні для любой колькасці слупкоў. Аднак у адным і тым жа аператары UPDATE можна ўносіць змяненні ў кожны слупок паказанай табліцы толькі адзін раз. Пры адсутнасці раздзела WHERE будуць абноўлены ўсе радкі табліцы. У прыкладзе 24.17 прыведзены запыт на абнаўленне з указаннем у раздзеле WHERE, якія даныя трэба абнавіць. DELETE Выкарыстоўваецца для выдалення запісаў з табліц БД (прыклад 24.18). Сінтаксіс аператара DELETE: Калі раздзел WHERE адсутнічае, выдаляюцца ўсе радкі з табліцы. |
Прыклад 24.8. Дабаўленне даных у табліцу.
Значэнне радка ў гэтым выпадку можна ўводзіць без двукосся, паколькі ў радку няма прабелаў: VALUES (1, Джентельмены, '21:00', 8.50) Вынік: Прыклад 24.9. Запыт на выбар усіх даных з табліцы. SELECT * FROM Сеансы Вынік: Прыклад 24.10. Запыты на выбар даных, якія задавальняюць некаторую ўмову. 1. Выбраць даныя з палёў «Фильм», «Время», «Стоимость» табліцы «Сеансы» для запісаў, у якіх кошт білета меншы за 10 р.
Вынік: 2. Выбраць даныя з палёў «Кинотеатр», «Фильм», «Время», «Стоимость» табліцы «Сеансы» для запісаў, у якіх кошт білета ад 9 да 10 10 р.
Вынік: 3. Выбраць даныя з палёў «Фильм», «Время», «Стоимость» табліцы «Сеансы» для запісаў, у якіх значэнне поля «Кинотеатр» супадае са значэннем 'Аврора'.
Вынік: 4. Выбраць даныя з палёў «Фильм», «Время», «Стоимость» табліцы «Сеансы» для запісаў, у якіх значэнне поля «Кинотеатр» заканчваецца на 'р'.
Вынік: Прыклад 24.11. Сартаванне даных у табліцы. 1. Выконваць сартаванне даных у табліцы «Сеансы» па полі «Время» ў парадку ўзрастання.
Вынік: 2. Выканаць сартаванне даных у табліцы «Сеансы» па полі «Кинотеатр» у парадку спадання, а па полі «Время» — у парадку ўзрастання.
Вынік: Прыклад 24.12. Ужыванне агрэгіруючых функцый да вызначаных радкоў табліцы ў запытах на выбарку. Знайсці ў табліцы «Сеансы» самы позні сеанс з коштам квітка ад 6 да 9 р.
Вынік: Прыклад 24.13. Ужыванне агрэгіруючых функцый да вызначаных радкоў табліцы ў запытах на выбарку. Знайсці ў табліцы «Сеансы» самы позні сеанс з коштам квітка ад 6 да 9 р.
Вынік: Прыклад 24.14. Выкарыстанне агрэгіруючых функцый у запытах на выбарку. 1. SUM. Знайсці ў табліцы «Сеансы в мае» сумарны кошт білетаў.
Вынік: 2. AVG. Знайсці ў табліцы «Сеансы в мае» сярэдні кошт білетаў з двума лічбамі пасля коскі.
Результат: Прыклад 24.15. Выкарыстанне агрэгіруючых функцый у дачыненні да груп радкоў у запытах на выбарку. Знайсці ў табліцы «Сеансы в мае» сумарную колькасць білетаў для кожнага фільма.
Вынік: Прыклад 24.16. Укладзены запыт на выбарку.
Запыт вяртае даныя з табліцы «Туры» пра самы танны тур у Нарвегію. Прыклад 24.17. Запыты на абнаўленне табліцы «Сеансы в мае».
У выніку выканання запыту колькасць білетаў на кожны з сеансаў у кінатэатры «Мир» паменшыцца на 5. Прыклад 24.18. Запыт на выдаленне даных з табліцы «Сеансы в мае».
|