КампутарыПраграмаванне

Аператар Select (SQL)

Сам пераклад абрэвіятуры SQL (мова структурна арганізаваных запытаў) адлюстроўвае той факт, што менавіта запыты - найбольш часта ўжываецца элемент у SQL. Выбраць патрэбныя радкі, аўтаматычна выключыць залішнія дадзеныя, прапусціць або переупорядочить слупкі дапаможа Select (SQL) - аператар, які змяшчае ўказанне СКБД вывесці пэўную інфармацыю.

сінтаксіс аператара

Каб правільна выкарыстоўваць любы аператар, неабходна спачатку азнаёміцца з сінтаксісам разгляданага мовы праграмавання. Калі гаворым канкрэтна пра мову SQL, Select (аператар) мае наступны сінтаксіс:

Select

Паведамляе базе дадзеных, што мы перадаем запыт. Гэта ключавое слова.

One, two, three ...

Спіс слупкоў для вываду

From

Паказвае на імя табліцы, з якой будуць выбірацца дадзеныя. Таксама з'яўляецца абавязковым ключавым словам.

Гэта так званы «кароткі» сінтаксіс аператара, аднак ён паказвае нам на тое, што без ключавых слоў Select і from СКБД наш запыт не выканае.

Поўны сінтаксіс аператара прадстаўлены на наступным малюнку:

Тут прапанову Where дазваляе ўдакладніць пошук, задаўшы ўмова.

Для групоўкі значэнняў і прымянення да іх агрэгатнай функцыі выкарыстоўваецца прапанову Group by, а каб удакладніць вынік ужо пасля групоўкі, выкарыстоўваецца прапанову Having.

Order by дазволіць адсартаваць значэння выбраных слупкоў па ўзрастанні альбо па змяншэнні.

с информацией: Каб больш наглядна азнаёміцца з аператарам Select, прадставім, што ў нашай базе дадзеных ёсць наступная табліца Cats з інфармацыяй:

Id

Breed

Name

Birthday

Color

1

бобтейл

лорд

2017/04/01

Grey

2

керла

фінт

2017/03/16

White

3

Мау

пантэра

2017/03/30

Black

4

бобтейл

Тайсан

2017/02/23

Grey

5

Бурмилла

Афіна

2017/01/08

Black

Кожны радок табліцы змяшчае унікальны нумар кацяняці, яго пароду, мянушку, дату нараджэння і расфарбоўку. Далей будзем разглядаць, як працуе аператар Select (SQL), ужо абапіраючыся на дадзеныя з гэтай табліцы.

Як адбываецца выбарка дадзеных з табліцы

Як было разгледжана вышэй, для выбаркі патрэбнай інфармацыі з табліцы абавязкова выкарыстоўваюцца ключавыя словы.

Пасля ключавога слова Select паказваюцца слупкі для вываду. Можна зрабіць пералік патрэбных слупкоў праз коску, тады ўся канструкцыя будзе выглядаць так:

Select color, breed, name

From Cats

Як бачым, мы можам парадкаваць слупкі ў тым парадку, у якім яны нам неабходныя. Акрамя таго, можам выводзіць толькі неабходныя нам слупкі.

Існуе таксама кароткі запіс для прагляду ўсіх слупкоў табліцы. Для гэтага пасля Select паказваецца зорачка (*) праз прабел. Уся канструкцыя будзе выглядаць так:

Select *

From Cats

Вынік прыведзенага запыту - уся табліца Cats, прадстаўленая ў тым выглядзе, у якім яна змяшчаецца ў канцы мінулага падзелу.

Многія цікавяцца тым, як размясціць вынікі выканання ў SQL Select у радок. Часцей за ўсё гэта патрабуецца, калі неабходна аб'яднаць прозвішча, імя і імя па бацьку чалавека, размешчаныя ў раз'яднаных слупках.

У нашым выпадку аб'яднаем пароду і афарбоўка котак з табліцы Cats. Нюанс заключаецца ў тым, што розныя СКБД выкарыстоўваюць для радковых канкатэнацыі розныя сімвалы. У адных выпадках гэта проста плюс (+), у іншых - падвойная прамая рыса (||) або знак амперсанда (&), часам выкарыстоўваецца і аперанд Concat. Таму перад аб'яднаннем неабходна прачытаць анатацыю да канкрэтнай СКБД, з якой вы працуеце.

Select breed || ',' || color

From cats

Вынік атрымаем наступны:

Breed, Color

Бобтейл, Grey

Керла, White

Мау, Black

Бобтейл, Grey

Бурмилла, Black

Выключэнне залішніх дадзеных

Distinct - функцыя Select (SQL), якая дазваляе выключыць дубляванне абсалютна ідэнтычных радкоў з выніку выбаркі.

Напрыклад, мы хочам даведацца, кошкі якіх парод ёсць у нашай табліцы. Калі выкарыстоўваем просты запыт:

Select breed

From Cats

То атрымаем цалкам чаканы вынік:

Breed

бобтейл

керла

Мау

бобтейл

Бурмилла

Як бачым, парода бобтейл дублюецца два разы. Аргумент Distinct дазволіць выключыць дубліраванне, дастаткова толькі дапісаць запыт:

Select distinct breed

From Cats

ўдакладненне запыту

У рэальнасці практычна ні адзін запыт не выводзіць дадзеныя ў выглядзе поўнага набору радкоў табліцы. Разгледзім, якое прапанова ў Select (SQL) дазволіць задаць крытэрыі для адбору толькі патрэбных радкоў.

Такой прапановай служыць Where. У гэтым сказе ўжываецца прэдыкатаў - ўмоўнае выраз, дае на выхадзе значэнне "ісціна" ці "хлусьня". Аператар Select выме толькі тыя дадзеныя з табліцы, для якіх ўмоўнае выраз будзе мець значэнне True, ці "ісціна".

Дапаможа разабрацца з дадзенай канструкцыяй простая выбарка. Дапусцім, мы хочам ведаць усё пра котках чорнага афарбоўкі.

Select *

From cats

Where color = 'Black'

Вынікам выканання дадзенага запыту стануць наступныя радкі табліцы:

3

Мау

пантэра

2017/03/30

Black

5

Бурмилла

Афіна

2017/01/08

Black

Таксама можна камбінаваць ўмовы, выкарыстоўваючы лагічныя аператары And, Or, Not.

Прапанова Group by

Прапанова Group by, якое выкарыстоўваецца ў Select (SQL), дазваляе згрупаваць запыты па значэнні пэўнага слупка (ці слупкоў), а затым прымяніць да іх агрэгатны функцыю.

Да агрэгатным функцый адносяцца:

  • Count - вылічае колькасць радкоў, адабраных запытам.
  • Sum - арыфметычная сума ўсіх адабраных значэнняў слупка.
  • Min - выводзіць мінімальнае з адабраных значэнняў слупка.
  • Max - адпаведна, максімальную з адабраных значэнняў слупка.
  • Avg - сярэдняе значэнне.

Схему працы гэтай прапановы прасцей за ўсё зразумець на канкрэтным прыкладзе. Дапусцім, мы хочам даведацца, колькі кацянят кожнай пароды ў нас ёсць. Для гэтага неабходна сфармаваць наступны просты запыт:

Select breed, count (*)

From cats

Group by breed

Вынікам выканання стане наступная табліца:

Breed

Count

бобтейл

2

керла

1

Мау

1

Бурмилла

1

Як бачым, кацянят пароды бобтейл у нас двое, астатніх жа ўсё па адным. На практыцы па такім запыце, грунтуючыся на нашай табліцы, заводчык можа зразумець, кошкі якіх парод карыстаюцца попытам у пакупнікоў, а якіх - не.

Цалкам верагодна, што з-за велізарнай колькасці запісаў у рэальнай табліцы захочацца яшчэ ўдакладніць запыт і вывесці толькі тыя пароды кацянят, якіх засталося не больш, да прыкладу, дзесяці. Для ўдакладнення або фільтрацыі груп выкарыстоўваецца прапанову Having. Яно дазваляе адкінуць пэўныя групы, аналагічна прапанове Where, адкідаюцца асобныя радкі. Ўмова задаецца па агрэгатнай функцыі. Дапішам запыт:

Select breed, count (*)

From cats

Group by breed

Having count (*) <= 10

Паколькі ўмова мы задалі «колькасць кацянят кожнай пароды не больш за 10», то вынік атрымаем такі ж, як у прыкладзе без удакладнення. Але тут важна зразумець саму схему працы прапановы Having. А вось калі зменім лагічнае ўмова на Having count (*) = 1, то вынік скароціцца да трох радкоў і выведзе пароды кацянят, якіх засталося ўсяго па адным.

Сартаванне

Пазнаёмімся з Order by - прапановай аператара Select (SQL), якія дазваляюць адсартаваць выводныя радкі па ўзрастанні або змяншэнні значэнняў у адным або некалькіх слупках.

Важна памятаць, што Order by - гэта заключнае прапанову ўсёй канструкцыі аператара Select. Яно размяшчаецца пасля Select, From, Where, Group by, Having.

Пры правядзенні сартавання ёсць тры важных моманты:

1) Можна паказаць любую колькасць слупкоў, кожны з якіх паасобку можна адсартаваць альбо па ўзрастанні (ASC), альбо па змяншэнні (DESC).

2) Усе названыя слупкі у сказе Order by павінны абавязкова прысутнічаць сярод выбіраемых слупкоў у Select.

3) Неабавязкова пералічваць канкрэтныя імёны слупкоў для сартавання, можна проста паказаць іх нумары, пад якімі яны ідуць у інструкцыі Select.

Спадзяемся, што з дапамогай нашага артыкула вы атрымалі базавыя веды аб выкарыстанні SQL запытаў і цяпер без працы вылучыце неабходную інфармацыю з вашай СКБД.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.birmiss.com. Theme powered by WordPress.