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

Асноўныя аператары SQL

Стандарт мовы SQL быў прыняты ў 1992 годзе і выкарыстоўваецца да гэтага часу. Менавіта ён і стаў эталонам для многіх сістэм кіравання базамі дадзеных. Вядома, некаторыя вытворцы выкарыстоўваюць свае інтэрпрэтацыі стандарту. Але ў любы сістэме ўсё ж маюцца галоўныя складнікі - аператары SQL.

ўвядзенне

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

Вызначаюць некалькі катэгорый аператараў SQL:

  • вызначэнне аб'ектаў базы дадзеных;
  • маніпуляванне значэннямі;
  • абарона і кіраванне;
  • параметры сеансу;
  • інфармацыя пра базу;
  • статычны SQL;
  • дынамічны SQL.

Аператары SQL для маніпулявання дадзенымі

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

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

INSERT INTO

імя табліцы (імя слупка 1, імя слупка 2)

VALUES (значэнне 1, значэнне 2).

Для выкарыстання аператара SQL запыту INSERT пры некалькіх значэннях, прымяняецца такі сінтаксіс:

INSERT INTO

імя табліцы 1 (імя слупка 1, імя слупка 2)

SELECT імя слупка 1, імя слупка 2

FROM імя табліцы 2

WHERE імя табліцы 2.имя слупка 1> 2

Гэты запыт абярэ усе дадзеныя з табліцы 2, якія больш 2 па слупка 1 і уставіць іх у першую.

UPDATE. Як відаць з назвы, гэты аператар SQL запыту абнаўляе дадзеныя ў існуючай табліцы па вызначаным прыкмеце.

прыклад:

UPDATE імя табліцы 1

SET імя слупка 2 = «Васіль»

WHERE імя табліцы 1.имя слупка 1 = 1

Дадзеная канструкцыя запоўніць значэннем Васіль ўсе радкі, у якіх сустрэне лічбу 1 у першым слупку.

DELETE. Выдаляе дадзеныя з табліцы. Можна паказаць якое-небудзь ўмова або жа прыбраць усе радкі.

DELETE FROM імя табліцы

WHERE імя таблицы.имя слупка 1 = 1

Прыведзены запыт выдаліць з базы ўсе дадзеныя са значэннем адзін у першым слупку. А вось так можна ачысціць усю табліцу:

DELETE FROM імя табліцы.

Далей варта расказаць пра аператара SELECT. Ён з'яўляецца адным з самых важных, таму яму прыйдзецца прысвяціць асобны раздзел.

аператар SELECT

Галоўнае прызначэнне SELECT - выбарка дадзеных па вызначаным умовам. Вынікам яго працы заўсёды з'яўляецца новая табліца з адабранымі дадзенымі. Аператар MS SQL SELECT можа быць выкарыстаны ў масе розных запытаў. Таму разам з ім можна разгледзець і іншыя сумежныя ключавыя словы.

Для выбару ўсіх дадзеных з пэўнай табліцы выкарыстоўваецца знак "*".

SELECT *

FROM імя табліцы 1

Вынікам працы дадзенага запыту будзе дакладная копія табліцы 1.

А тут адбываецца выбарка па ўмове WHERE, якое дастае з табліцы 1 усе значэння, больш за 2 ў Стоўбцах 1.

SELECT *

FROM імя табліцы 1

WHERE імя табліцы 1.имя слупка 1> 2

Таксама можна паказаць у выбарцы, што патрэбныя толькі пэўныя слупкі.

SELECT імя табліцы 1.имя слупка 1

FROM імя табліцы 1

Вынікам дадзенага запыту будуць усе радкі, са значэннямі з слупка 1. З дапамогай аператараў MS SQL можна скласці ўласную табліцу, на хаду замяніўшы, вылічыўшы і падставіўшы пэўныя значэння.

SELECT

імя табліцы 1.имя слупка 1

імя табліцы 1.имя слупка 2

імя табліцы 1.имя слупка 3

«=» AS EQ

імя табліцы 1.имя слупка 2 * імя табліцы 1.имя слупка 3 AS SUMMA

FROM імя табліцы 1

Дадзены, на першы погляд складаны запыт выконвае выбарку ўсіх значэнняў з табліцы 1, затым стварае новыя калонкі EQ і SUMMA. У першую заносіць знак «+», у другую твор дадзеных з слупка 2 і 3. Атрыманы вынік можна прадставіць у выглядзе табліцы, для разумення як гэта працуе:

слупок 1

слупок 2

слупок 3

EQ

SUMMA

Імя тавару 1

10

50

+

500

Імя тавару 2

15

100

+

1500

Пры выкарыстанні аператара SELECT, можна адразу правесці парадкаванне дадзеных па якой-небудзь прыкмеце. Для гэтага выкарыстоўваецца слова ORDER BY.

SELECT

імя табліцы 1.имя слупка 1

імя табліцы 1.имя слупка 2

імя табліцы 1.имя слупка 3

FROM імя табліцы 1

ORDER BY імя слупка 2

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

слупок 1

слупок 2

слупок 3

1

1

54

3

2

12

7

3

100

2

5

1

То бок, усе радкі былі ўсталяваныя ў такім парадку, каб у слупку 2 значэння ішлі па ўзрастанні.

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

Табліца «Супрацоўнікі»

нумар

Імя

прозвішча

1

Вася

Васін

2

петя

Пеціна

Табліца «Заробак»

нумар

стаўка

налічана

1

1

10000

2

0,5

3500

Зараз трэба, як-то звязаўшы гэтыя дзве табліцы атрымаць агульныя значэнні. Выкарыстоўваючы асноўныя аператары SQL зрабіць гэта можна так:

SELECT

Сотрудники.Номер

Сотрудники.Имя

Зарплата.Ставка

Зарплата.Начислено

FROM Супрацоўнікі, Зарплата

WHERE Сотрудники.Номер = Зарплата.Номер

Тут адбываецца выбарка з двух розных табліц значэнняў, аб'яднаных па нумары. Вынікам будзе наступны набор дадзеных:

нумар

Імя

стаўка

налічана

1

Вася

1

10000

2

петя

0,5

3500

Яшчэ крыху пра SELECT. Выкарыстанне агрэгатных функцый

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

Да прыкладу, каб атрымаць колькасць запісаў з табліцы «Супрацоўнікі», трэба выкарыстоўваць запыт:

SELECT COUNT (*) AS N

FROM Супрацоўнікі

У выніку атрымаецца табліца з адным значэннем і слупком.

N

2

У запытах можна выкарыстоўваць функцыі, вылічаць суму, максімальныя і мінімальныя значэння, а таксама сярэдняе. Для гэтага ўжываюцца ключавыя словы SUM, MAX, MIN, AVG.

Напрыклад, трэба правесці выбарку з ужо вядомай табліцы «Зарплата»:

нумар

стаўка

налічана

1

1

10000

2

0,5

3500

Можна ўжыць такі запыт і паглядзець што атрымаецца:

SELECT

SUM (Зарплата.Начислено) AS SUMMA

MAX (Зарплата.Начислено) AS MAX

MIN (Зарплата.Начислено) AS MIN

AVG (Зарплата.Начислено) AS SRED

FROM Зарплата

Выніковая табліца будзе такі:

SUMMA

MAX

MIN

SRED

13500

10000

3500

6750

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

Аб'яднанне, перасячэнне і рознасці

Аб'яднаць некалькі запытаў у SQL

SELECT Сотрудники.Имя

FROM Супрацоўнікі

WHERE Сотрудники.Номер = 1

UNION

SELECT Сотрудники.Имя

FROM Супрацоўнікі, Зарплата

WHERE Зарплата.Номер = 1

Пры гэтым варта ўлічваць, што пры такім аб'яднанні табліцы павінны быць сумяшчальныя. Гэта значыць мець аднолькавую колькасць слупкоў.

Сінтаксіс аператара SELECT і парадак яго апрацоўкі

Перш за ўсё SELECT вызначае вобласць, з якой ён будзе браць дадзеныя. Для гэтага выкарыстоўваецца ключавое слова FROM. Калі не пазначана, што менавіта выбраць.

Затым можа прысутнічаць SQL аператар WHERE. З яго дапамогай SELECT прабягае па ўсіх радках табліцы і правярае дадзеныя на адпаведнасць умове.

Калі ў запыце маецца GROUP BY, то адбываецца групоўка значэнняў па ўказаных параметрах.

Аператары для параўнання дадзеных

Іх маецца некалькі тыпаў. У SQL аператары параўнання могуць правяраць розныя тыпы значэнняў.

  • «=». Пазначае, як можна здагадацца, роўнасць двух выразаў. Напрыклад, ён ужо выкарыстоўваўся ў прыкладах вышэй - WHERE Зарплата.Номер = 1.

  • «>». Знак больш. Калі значэнне левай частцы выказвання больш, то вяртаецца лагічнае TRUE і ўмова лічыцца выкананым.

  • «<». Знак менш. Зваротны папярэдняга аператар.

  • Знакі «<=» і «> =». Адрозніваецца ад простых аператараў больш і менш, тым, што пры роўнасці аперанд ўмова таксама будзе сапраўдным.

  • «<>». Няроўна. Ўмова будзе лічыцца TRUE, толькі калі адзін аперанд ня роўны іншаму. У яго маецца яшчэ адна інтэрпрэтацыя - «! =».

LIKE

Перавесці дадзенае ключавое слова можна як «падобны». Аператар LIKE ў SQL выкарыстоўваецца прыкладна па такім жа прынцыпе - выконвае запыт па шаблоне. Гэта значыць ён дазваляе пашырыць выбарку даных з базы выкарыстоўваючы рэгулярныя выразы.

Напрыклад, пастаўлена такая задача: з ужо вядомай базы «Супрацоўнікі» атрымаць ўсіх людзей, чыё імя заканчваецца на "я". Тады запыт можна скласці так:

SELECT *

FROM Супрацоўнікі

WHERE Імя LIKE `% я`

Знак адсотка ў дадзеным выпадку азначае маску, гэта значыць любы сімвал і іх колькасць. А па літары "я" SQL вызначыць што апошні сімвал павінен быць менавіта такім.

CASE

Дадзены аператар SQL Server ўяўляе сабой рэалізацыю множнага выбару. Ён нагадвае канструкцыю switch ў многіх мовах праграмавання. Аператар CASE ў SQL выконвае дзеянне па некалькіх умовам.

Напрыклад, трэба выбраць з табліцы «Заробак» максімальнае і мінімальнае значэнне.

нумар

стаўка

налічана

1

1

10000

2

0,5

3500

Тады запыт можна скласці так:

SELECT *

FROM Зарплата

WHERE CASE WHEN SELECT MAX (Налічана) THEN Максімум

WHEN SELECT MIN (Налічана) THEN Мінімум

END вынік

У дадзеным кантэксце сістэма шукае максімальнае і мінімальнае значэнне ў слупку «Налічана». Затым з дапамогай END ствараецца полі «вынік», у якое будзе заносіцца «Максімум» або «Мінімум» у залежнасці ад выніку выканання ўмовы.

Дарэчы, у SQL маецца і больш кампактная форма CASE - COALESCE.

Аператары вызначэння дадзеных

Гэта выгляд дазваляе праводзіць разнастайнае змена табліц - стварэнне, выдаленне, мадыфікацыі і працу з індэксамі.

Першы з іх, які варта разгледзець - CREATE TABLE. Ён робіць не што іншае, як стварае табліцу. Калі проста набраць запыт CREATE TABLE, нічога не здарыцца, бо трэба яшчэ пазначыць некалькі параметраў.

Напрыклад, для стварэння ўжо знаёмай табліцы «Супрацоўнікі» трэба выкарыстоўваць каманды:

CREATE TABLE Супрацоўнікі

(Нумар number (10) NOT NULL

Імя varchar (50) NOT NULL

Прозвішча varchar (50) NOT NULL)

У гэты запыце, у дужках адразу ж вызначаюцца імёны палёў і іх тыпы, а таксама можа ён быць роўны NULL.

DROP TABLE

Выконвае адну простую задачу - выдаленне названай табліцы. Мае дадатковы параметр IF EXISTS. Ён паглынае памылку пры выдаленні, калі шуканая табліца не існуе. Прыклад выкарыстання:

DROP TABLE Супрацоўнікі IF EXISTS.

CREATE INDEX

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

CREATE INDEX название_индекса

ON название_таблицы (название_столбца)

Выкарыстоўваецца дадзены аператар у T-SQL, Oracle, PL SQL і многіх іншых інтэрпрэтацыях тэхналогіях.

ALTER TABLE

Вельмі функцыянальны аператар, які валодае шматлікімі варыянтамі. У агульным выпадку вырабляе змяненне структуры, вызначэння і размяшчэння табліц. Выкарыстоўваецца аператар у Oracle SQL, Postgres і многіх іншых.

Далей будуць прадстаўлены розныя варыянты выкарыстання ALTER TABLE.

  • ADD. Ажыццяўляе даданне слупка ў табліцу. Сінтаксіс яго такі: ALTER TABLE название_таблицы ADD название_столбца тип_хранимых_данных. Можа мець параметр IF NOT EXISTS, што здушыць памылку, калі які ствараецца слупок ўжо ёсць;

  • DROP. Выдаляе слупок. Таксама мае ключ IF EXISTS, без якога згенерыруюць памылка, гаворачая аб тым, што патрабаваны слупок адсутнічае;

  • CHANGE. Служыць для перайменавання імя поля ў паказаны. Прыклад выкарыстання: ALTER TABLE название_таблицы CHANGE старое_имя новое_имя;

  • MODIFY. Дадзеная каманда дапаможа змяніць тып і дадатковыя атрыбуты пэўнага слупка. А выкарыстоўваецца ён вось так: ALTER TABLE название_таблицы MODIFY название_столбца тип_данных атрыбуты;

CREATE VIEW

У SQL маецца такое паняцце, як прадстаўленне. Сцісла, гэта нейкая віртуальная табліца з дадзенымі. Утворыцца яна ў выніку выбаркі з дапамогай аператара мовы SQL SELECT. Ўяўленні могуць абмяжоўваць доступ да базы дадзеных, хаваць іх, замяняць рэальныя імёны слупкоў.

Працэс стварэння адбываецца з дапамогай простага запыту:

CREATE VIEW назву прадстаўлення AS SELECT FROM * назву табліцы

Выбарка можа адбывацца як усёй базы цалкам, так і па некаторым умове.

Трохі пра функцыі

У SQL запытах вельмі часта выкарыстоўваюцца розныя убудаваныя функцыі, якія дазваляюць ўзаемадзейнічаць з дадзенымі і ператвараць іх на лета. Варта разгледзець іх, бо яны складаюць неад'емную частку структураванага мовы.

  • COUNT. Вырабляе падлік запісаў або радкоў у канкрэтнай табліцы. У якасці параметру можна паказаць імя слупка, тады даныя будуць узяты з яго. SELECT COUNT * FROM Супрацоўнікі;

  • AVG. Дадзеная функцыя прымяняецца толькі на слупкі з лікавымі дадзенымі. Яе вынікам з'яўляецца вызначэнне сярэдняга арыфметычнага ўсіх значэнняў;

  • MIN і MAX. Гэтыя функцыі ўжо выкарыстоўваліся ў гэтым артыкуле. Вызначаюць яны максімальнае і мінімальнае значэння з названага слупка;

  • SUM. Усё проста - функцыя вылічае суму значэнняў слупка. Ўжываецца выключна для лікавага выгляду дадзеных. Дадаўшы ў запыт параметр DISTINCT, будуць падсумоўвацца толькі унікальныя значэння;

  • ROUND. Функцыя акруглення дзесятковых дробавых лікаў. У сінтаксісе выкарыстоўваецца назва слупка і колькасць знакаў пасля коскі;

  • LEN. Простая функцыя, вылічаць даўжыню значэнняў слупка. Вынікам будзе новая табліца з указаннем колькасці знакаў;

  • NOW. Гэта ключавое слова выкарыстоўваецца для вылічэння бягучай даты і часу.

дадатковыя аператары

Многія прыклады з аператарамі SQL маюць ключавыя словы, якія выконваюць невялікія задачы, але тым не менш моцна спрашчаюць выбарку або дзеянні з базамі дадзеных.

  • AS. Прымяняецца, калі трэба візуальна аформіць вынік, прысвойваючы азначанае імя атрыманай табліцы.

  • BETWEEN. Вельмі зручны інструмент для выбаркі. Ён паказвае вобласць значэнняў, сярод якіх трэба атрымаць дадзеныя. На ўваход прымае параметр ад і да якога чысла выкарыстоўваецца дыяпазон ;.

  • NOT. Аператар надае супрацьлегласць выразе.

  • TRUNCATE. Выдаляе дадзеныя з згаданага ўчастка базы. Адрозніваецца ад аналагічных аператараў тым, што аднавіць дадзеныя пасля яго выкарыстання немагчыма. Варта ўлічыць, што рэалізацыя гэтага ключавога слова ў розных інтэрпрэтацыях SQL можа адрознівацца. Таму перад тым як спрабаваць выкарыстоўваць TRUNCATE, лепш азнаёміцца з даведачнай інфармацыяй.

  • LIMIT. Устанаўлівае колькасць радкоў для вываду. Асаблівасць аператара ў тым, што ён заўсёды размяшчаецца ў канцы. Прымае адзін абавязковы параметр і адзін апцыянальны. Першы паказвае, колькі радкоў з абранымі дадзенымі трэба паказаць. А калі выкарыстоўваецца другі, то аператар спрацоўвае як для дыяпазону значэнняў.

  • UNION. Вельмі зручны аператар для аб'яднання некалькіх запытаў. Ён ужо сустракаўся сярод прыкладаў гэтай у гэтым артыкуле. Можна вывесці патрэбныя радкі з некалькіх табліц, аб'яднаўшы іх UNION для больш зручнага выкарыстання. Сінтаксіс яго такі: SELECT имя_столбца FROM имя_таблицы UNION SELECT имя_другого_столбца FROM имя_другой табліцы. У выніку атрымаецца зводная табліца з аб'яднанымі запытамі.

  • PRIMARY KEY. Перакладаецца як «першасны ключ». Уласна, менавіта такая тэрміналогія і выкарыстоўваецца ў даведачных матэрыялах. Ён азначае унікальны ідэнтыфікатар радка. Ўжываецца, як правіла, пры стварэнні табліцы для ўказанні поля, якое і будзе ўтрымліваць яго.

  • DEFAULT. Гэтак жа, як і папярэдні аператар, выкарыстоўваецца ў працэсе выканання які стварае запыту. Ён вызначае значэнне па змаўчанні, якім будзе запоўнена поле пры яго стварэнні.

Некалькі саветаў пры распрацоўцы платформы для працы з SQL

  1. NULL. Пачаткоўцы і не толькі праграмісты пры складанні запытаў вельмі часта забываюць пра магчымасць атрымання значэння NULL. У выніку ў код закрадаецца памылка, якую цяжка адсачыць ў працэсе адладкі. Таму пры стварэнні табліц, выбарцы або пераліку значэнняў трэба спыніцца і падумаць, а ўлічана Ці ўзнікненне NULL ў гэты участку запыту.

  2. Памяць. У гэтым артыкуле былі паказаны некалькі функцый, здольныя выконваць некаторыя задачы. Пры распрацоўцы абалонкі для працы з базай, можна «пераважыць» вылічэнне простых выразаў на сістэму кіравання базамі дадзеных. У некаторых выпадках гэта дае значны прырост у прадукцыйнасці.

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

  4. Злучэнне. Пасля атрымання дадзеных з некалькіх табліц многія праграмісты пачынаюць зводзіць іх разам сродкамі памяці абалонкі. Але навошта? Бо можна скласці адзін запыт у якім гэта ўсё будзе прысутнічаць. Не прыйдзецца пісаць лішні код і рэзерваваць дадатковую памяць у сістэме.

  5. Сартаванне. Калі ёсць магчымасць прымяняць парадкаванне ў запыце, то ёсць сіламі СКБД, то трэба яе выкарыстоўваць. Гэта дазволіць значна зэканоміць на рэсурсах пры працы праграмы або сэрвісу.

  6. Шмат запытаў. Калі даводзіцца ўстаўляць мноства запісаў паслядоўна, то для аптымізацыі варта задумацца аб пакетнай ўстаўцы дадзеных адным запытам. Гэта таксама дасць магчымасць павялічыць прадукцыйнасць ўсёй сістэмы ў цэлым.

  7. Прадуманае размяшчэнне дадзеных. Перад складаннем структуры базы трэба задумацца пра тое, а ці неабходна такая колькасць табліц і палёў. Можа ёсць спосаб аб'яднаць іх ці адмовіцца ад некаторых. Вельмі часта праграмісты ўжываюць залішняя колькасць дадзеных, якія нідзе і ніколі не будуць выкарыстоўвацца.

  8. Тыпы. Для эканоміі месца і рэсурсаў трэба абачліва ставіцца да відаў выкарыстоўваюцца дадзеных. Калі ёсць магчымасць скарыстацца менш «цяжкім» для памяці тыпам, то трэба ўжываць менавіта яго. Напрыклад, калі вядома, што ў дадзеным полі лікавае значэнне не будзе перавышаць 255, то навошта выкарыстоўваць 4-байтных INT, калі ёсць TINYINT у 1 байт.

заключэнне

У заключэнне трэба адзначыць, што мова структураваных запытаў SQL цяпер выкарыстоўваецца практычна паўсюдна - сайты, вэб-сэрвісы, праграмы для ПК, прыкладання для мабільных прылад. Таму веданне SQL дапаможа ўсіх галінах распрацоўкі.

Разам з тым мадыфікацыі спрадвечнага стандарту мовы часам адрозніваюцца адзін ад аднаго. Напрыклад, аператары PL SQL могуць мець iншы сінтаксіс, чым у SQL Server. Таму перад тым як пачаць распрацоўку з гэтай тэхналогіяй, варта азнаёміцца з кіраўніцтвамі па ёй.

У будучыні аналагі, якія маглі б перасягнуць па функцыянальнасці і прадукцыйнасці SQL, наўрад ці з'явяцца, таму дадзеная сфера з'яўляецца даволі перспектыўнай нішай для любога праграміста.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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