§ 24. Использование SQL для построения запросов

24.1. Мова запытаў SQL

Майстар запытаў і Канструктар — усяго толькі візуальныя інструменты для стварэння запытаў. Любы запыт, створаны ў Access з дапамогай візуальных інструментаў, можна прагледзець у рэжыме SQL (прыклад 24.1). У гэтым рэжыме запыт адлюстроўваецца як запіс на мове SQL (англ. Structured Query Language — структураваная мова запытаў).

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

Некаторыя магчымасці мовы  SQL:

  1. Стварэнне, змяненне і выдаленне табліц БД. 
  2. Выбарка інфармацыі з БД.
  3.  Дабаўленне запісаў у табліцу БД.
  4.  Рэдагаванне і выдаленне запісаў у табліцы БД.

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

Перавагі мовы  SQL:

  1. Дэкларатыўнасць — паказвае, якія аперацыі трэба выканаць. Спосаб іх рэалізацыі выбіраецца аўтаматычна.
  2.  Наяўнасць міжнародных стандартаў.
  3.  Незалежнасць ад пэўнай СКБД

Недахопы мовы  SQL:

  1. Стандарт мовы складаны і аб’ёмны.
  2. Магчымасць адступлення ад стандарту (шмат якія кампаніі ўносяць свае змяненні ў мову).

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

Каманда SQL складаецца з аператараў (ключавых слоў) і ідэнтыфікатараў (прыклад 24.2). Калі ў запыце некалькі каманд, то ў канцы каманды ставіцца кропка з коскай (;).  У Access адначасова можна выканаць толькі адну каманду SQL, таму кропку з коскай можна не ставіць. Паводле агульнапрынятага стылю для запісу ключавых слоў рэкамендуецца выкарыстоўваць вялікія літары.

Калі ідэнтыфікатар змяшчае прабелы, то ён ставіцца ў квадратныя дужкі  (прыклад 24.3).

У Access выкарыстоўваецца інтэрактыўная версія мовы SQL — Microsoft Jet SQL. Каб стварыць запыт SQL у Access (прыклад 24.4), неабходна:

1) перайсці ў меню Создание;

2) выбраць Конструктор запросов;

3) закрыць акно Добавление таблицы;

4) выбраць Режим SQL;

5) у акне, якое адкрыецца, ўвесці тэкст запыту і пры неабходнасці захаваць запыт;

6) выканаць запыт, націснуўшы    кнопку на Панели инструментов.

У Access рэалізаваны наступныя складовыя часткі мовы  SQL:

  1. Мова вызначэння даных (Data Definition Language — DDL). Выкарыстоўваецца для вызначэння структуры базы даных.
  2.  Мова маніпулявання данымі (Data Manipulation Language — DML). Дае магчымасць выбаркі інфармацыі з базы даных і яе пераўтварэння.

Прыклад 24.1. Напісанне запыту на мове SQL.

Табліца БД:

Запыт у рэжыме Канструктар, які дазваляе знайсці сеансы, кошт білетаў на якія не перавышае  9 р. 50 к.:

Вынік запыту (рэжым табліцы):

ЗапытSQL:

 

Мова SQL была прапанавана кампаніяй IBM у пачатку 70-х гг. для праверкі магчымасцей рэляцыйнай мадэлі БД.

Распрацоўшчыкі мовы запытаў SQL:

 

Дональд Чэмбэрлін
(Donald D. Chamberlin)

Рэй Бойс
(Ray Boyce)

Першы міжнародны стандарт мовы SQL быў прыняты ў 1989 г.

У цяперашні час дзейнічае стандарт, прыняты ў 2003 г. (SQL:2003), з некаторымі мадыфікацыямі і дапаўненнямі, занесенымі пазней (SQL:2008, SQL:2011, SQL:2016).

SQL з’яўляецца непрацэдурнай мовай праграміравання. Каманды SQL могуць выконвацца непасрэдна ў інтэрактыўным рэжыме, а таксама ўбудоўваюцца ў базавую мову праграміравання, якой можа быць любая стандартная мова, напрыклад C++.

Прыклад 24.2. У запыце SQL з 24.1:

Аператары

SELECT — вызначае палі, якія змяшчаюць запытаныя даныя.

FROM — вызначае табліцу, якая змяшчае палі, паказаныя ў  SELECT.

WHERE — вызначае ўмовы адбору палёў, якім павінны адпавядаць усе запісы, што ўключаюцца ў вынікі.

Ідэнтыфікатары палёў

Сеансы. Кинотеатр, Сеансы. Фильм, Сеансы. Время, Сеансы. Стоимость — змяшчаюць адрас (імя аб’екта БД) і назва поля.

Прыклад 24.3. Сінтаксіс ідэнтыфікатараў  SQL.

Запыт:

SELECT Товары.[Номер склада], Товары.Наименование, Товары.Поставщик, Товары.Цена, Товары.Количество

FROM Товары

WHERE (((Товары.[Номер склада])=2))

Результат:

Прыклад 24.4. . Стварэнне запыту SQL у Access.

Выбар рэжыму SQL:

Акно для ўводу запыту SQL: