Запит sql у ms access. Вступ. Sql - мова доступу та управління субд access Приклади sql запитів у access

SQL - одна з найпоширеніших мов програмування, для створення та управління базою даних, а також для проведення різноманітних дій із самими даними.

Як показує практика, він досить простий у освоєнні та максимально використовує стандартну лексику англійської мови. Як і будь-яка інша мова програмування, SQL має власну логіку та синтаксис, набір основних командта правила їх використання.

Класифікація команд мови SQL

Усі стандартні можна розглядати, виходячи з їх призначення. Як основу негласної класифікації можна взяти такі набори, як:

    Команди для побудови запитів.

    Команди вбудованих процедур та функцій.

    Команди тригерів та системних таблиць.

    Набори комбінацій для роботи з датою та строковими змінними.

    Команди для роботи з даними та таблицями.

Цю класифікацію можна продовжувати до нескінченності, але основні набори команди мови SQLбудуть побудовані саме з цих типів.

Розглядаючи класифікацію мови, не можна не згадати про те, що вона є універсальною, про що говорить сфера її використання. Ця мова програмування та її різновиди задіяні не лише у стандартному середовищі, але й в інших програмах, які, так чи інакше, ви використовували.

Сферу використання SQL можна розглядати з погляду офісного програмного забезпечення, А саме MicrosoftAccess. Ця мова, а точніше, її різновид - MySQL, дозволяє адмініструвати бази даних мережі Internet. Навіть середовище розробки Oracle використовує основу своїх запитів команди SQL.

Використання SQL у MicrosoftAccess

Одним із самих простих прикладівВикористання мови для програмування баз даних вважається пакетом програмного забезпечення MicrosoftOffice. Вивчення цього програмного продуктупередбачено шкільним курсом інформатики, а одинадцятому класі розглядається система управління базою даних MicrosoftAccess.

Саме при вивченні цього додатка учні знайомляться з мовою розробки баз даних і отримують базове розуміння всього, що в нього входить. SQL команди Access досить примітивні, звичайно, якщо розглядати їх на професійному рівні. Виконання таких команд дуже просте, а створюються в пристосованому редакторі коду.

Розглянемо конкретний приклад:

SELECT Pe_SurName

WHERE Pe_Name = "Мері";

Виходячи з синтаксису команди можна зрозуміти, що вона поверне користувачеві прізвище людини, в даному випадку жінки на ім'я Мері, яка зберігається в таблиці бази даних Contacts.

Хоча використання SQL в Access обмежено, іноді такі прості запити дуже можуть спростити виконання поставленого завдання.

Використання команд SQL в Oracle

Oracle – це, напевно, єдиний серйозний конкурент Microsoft SQL Server. Саме це середовище розробки та управління постійно призводить до вдосконалення функцій програмного продукту компанії Microsoft, оскільки конкуренція – це двигун прогресу. Незважаючи на постійне суперництво, команди SQL Oracle повторюють SQL. Хоча Oracle і вважається практично повною копією SQL, логіка цієї системи та мови загалом вважається простіше.

Система Oracle при використанні певного набору команд не має такої складної структури. Якщо розглядати можливості даних серед розробки баз даних, Oracle немає складної структури вкладених запитів.

Така різниця дозволяє багато разів прискорити роботу з даними, але, на противагу, веде до нераціонального використання пам'яті, в окремих випадках. Структура Oracle переважно побудована на тимчасових таблицях та його використанні. Як приклад: команди SQL у цій системі будуються за аналогією зі стандартами мови SQL, хоча незначно і відрізняються від нього.

SELECTCONCAT(CONCAT(CONCAT('Співробітник', sname), CONCAT(SUBSTR(fname, 0, 1), SUBSTR(otch, 0, 1))), CONCAT('прийнятнароботу', acceptdate)) FROM employees WHERE acceptdate > to_date ('01.01.80', 'dd.mm.yyyy');

Цей запит поверне дані про співробітників, які прийняті на роботу у певний проміжок часу. Хоча структура запиту відрізняється, від виконання команд SQL у цих системах схоже, крім дрібних деталей.

Використання SQL у мережі Internet

З появою всесвітнього павутиння, тобто інтернету, сфера використання мови SQL розширюється. Як відомо, у мережі зберігається маса інформації, але вона не хаотично розташована, а розміщена на сайтах та серверах за певними критеріями.

За зберігання інформації в Інтернеті, як і в інших місцях, безпосередньо відповідають бази даних, а сайти є системами управління. Як правило, сайти та їх програмний код організовані на різних мовахпрограмування, але в основі баз даних лежить один із різновидів SQL, а саме мова створення баз даних, орієнтована під веб-інтерфейси MySQL.

Синтаксис і основний набір команд цієї мови повністю копіюють звичний для всіх SQL, але з деякими своїми доповненнями, які дають йому на відміну від Microsoft tSQL Server.

Команди SQL повністю схожі як по синтаксису, а й у стандартному набору службових слів. Різниця полягає лише у викликі та структуруванні запиту. Для прикладу можна розглянути запит для створення нової таблиці, саме вона є першою, чому навчають дітей у школах на інформатиці:

$link = mysqli_connect("localhost", "root", "", "tester");

if (!$link) die("Error");

$query = "create table users(

login VARCHAR(20),

password VARCHAR(20)

if (mysqli_query($link, $query)) echo "Таблиця створена.";

elseecho "Таблиця не створена: ".mysqli_error();

mysqli_close($link);

В результаті виконання такого запиту можна отримати нову таблицю "Юзери", в якій буде два поля: логін та пароль.

Синтаксис змінено під Веб, але основою покладено команди MicrosoftSQLServer.

Побудова запитів MicrosoftSQLServer

Вибірка таблиць певного набору даних одне з основних завдань SQL. Для таких операцій передбачена команда select SQL. Саме про неї йтиметься нижче.

Правила побудова команди дуже прості, а сама команда select в SQL будується так. Наприклад, є таблиця, де є дані про співробітника, яка, наприклад, має ім'я Person. Поставимо завдання, що з таблиці потрібно вибрати дані про співробітників, дата народження яких - у проміжку першого січня до першого березня поточного року включно. Для такої вибірки необхідно виконати команду SQL, у якій буде не лише стандартна конструкція, але й умова вибору:

Select * from Person

Where P_BerthDay >= '01/01/2016' and P_BerthDay<= ‘03/01/2016’

Виконання такої команди поверне всі дані про співробітників, день народження яких перебуває в тому періоді, який ви задали. Іноді може стояти завдання вивести лише прізвище, ім'я та по батькові співробітника. Для цього запит потрібно побудувати трохи інакше, наприклад, таким чином:

SelectP_Name - ім'я

P_SurName - прізвище

P_Patronimic - по-батькові

Where P_BerthDay >= '01/01/2016' and P_BerthDay<= ‘03/01/2016’

Однак це лише вибір чогось. Він, по суті, не впливає ні на що, а лише надає інформацію. Але якщо ви вирішили зайнятися мовою SQL всерйоз, вам доведеться навчитися вносити зміни до баз даних, оскільки їх побудова без цього просто неможлива. Як це робиться, буде розглянуто трохи нижче.

Основні команди SQL для зміни даних

Синтаксис мови побудований як виконання запитів, а й у маніпуляцій з даними. В основному завданням програміста баз даних є написання скриптів для вибірок та звітів, але іноді необхідно вносити правки до таблиць. Список команд SQL для таких дій невеликий і складається з трьох основних команд:

    Insert (пров. Вставити).

    Update (пров. Оновлення).

    Delete (пров. Видалити).

Призначення цих команд легко визначити, для цього достатньо буде лише перекласти їхню назву. Ці команди прості у використанні і мають не складну схему побудови, але варто згадати, що деякі з них, при неправильному використанні, можуть завдати непоправної шкоди базі.

Як правило, перед використанням такі MSSQL команди потрібно продумати і врахувати всі можливі наслідки їх виконання.

Вивчивши дані команди, ви зможете повноцінно розпочати роботу з таблицями баз даних, тим самим видозмінювати її та вносити якісь нові пермінні або видаляти старі.

Команда Insert

Для вставки даних у таблицю використовується найбезпечніша команда – Insert. Неправильно вставлені дані завжди можна видалити та внести до бази даних заново.

Команда Insert призначена для вставки в таблицю нових даних та дозволяє додати як повний набір, так і вибірково.

Наприклад розглянемо команду вставки раніше описану таблицю Person. Для того, щоб внести дані в таблицю, необхідно виконати команду SQL, яка дозволить вставити всі дані в таблицю або заповнити її вибірково.

Insert into person

Select 'Григор'єв','Віталій','Петрович','01/01/1988'

Команди такого плану автоматично заповнюють усі осередки таблиці із зазначеними даними. Бувають ситуації, коли співробітник не має по батькові, скажімо, він за обміном приїхав працювати з Німеччини. У такому разі потрібно виконати команду вставки даних, яка занесе до таблиці лише те, що потрібно. Синтаксис такої команди буде наступним:

Insertintoperson(P_Name, P_SurName ,P_BerthDay)

Values ​​('Девід', 'Гук','02/11/1986')

Така команда заповнить лише зазначені осередки, а решта матимуть значення null.

Команда для зміни даних

Для зміни даних як всього рядка, так і деяких осередків використовується команда Update SQL. Виконувати таку команду потрібно лише з певною умовою, а саме точно вказувати, в який рядок за номером необхідно внести зміни.

Команда Update SQL має легкий синтаксис. Для правильного використання необхідно вказати, які дані, в якій колонці та в якому запису варто змінити. Далі скласти скрипт та виконати його. Розглянемо приклад. Потрібно змінити дату народження Девіда Гука, який було внесено до таблиці працівників під номером 5.

Set P_BerthDay = '02/10/1986' where P_ID = 5

Умова (у цьому скрипті) не дасть змінити дату народження у всіх записах таблиці, а оновить лише потрібні.

Саме цією командою програмісти користуються найчастіше, тому що вона дозволяє змінювати дані в таблиці, не завдаючи істотної шкоди всієї інформації.

Команди для використання вбудованих процедур та функцій

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

Якщо судити логічно, потрібно скопіювати текст вибірки і вставити в потрібне місце, але можна обійтися і більш простим рішенням. Розглянемо приклад, коли на робочому інтерфейсі виведено кнопку для друку звіту, скажімо в Excel. Ця операція буде виконуватись у міру необхідності. Для таких цілей служать вбудовані процедури, що зберігаються. Команди в даному випадку укладаються в процедуру і викликаються за допомогою команди SQLExec.

Припустимо, що було створено процедуру виведення дати народження працівників з раніше описаної таблиці Person. У такому разі немає потреби писати весь запит. Для отримання необхідної інформації достатньо виконати команду Exec [ім'я процедури] та передати необхідні для вибірки параметри. Як приклад, можна розглянути механізм створення процедури такого характеру:

CREATEPROCEDUREPrintPerson

@DB smalldatetime

@DE smalldatetime

SELECT * від Person

FROM HumanResources.vEmployeeDepartmentHistory

WHERE P_BerthDay >= @DB and P_BerthDay<= @DE

ANDEndDateISNULL;

Ця процедура поверне всі відомості про працівників, день народження яких перебуватиме в заданому часі.

Організація цілісності даних. Тригери

Деякі MS SQL-команди, можна сказати, конструкції, дозволяють як організувати маніпуляції з даними, а й забезпечити їх цілісність. Для таких цілей у мові призначено системні конструкції, які створює сам програміст. Це звані тригери, які зможуть забезпечити контроль даних.

І тут для організації перевірки умов використовуються стандартні команди SQL-запросов. У тригерах можна створювати масу умов та обмежень для роботи з даними, які допоможуть керувати не тільки доступом до інформації, але й заборонити видалення, зміну або вставку даних.

Типи команд SQL, які можна використовувати у тригері, не обмежені. Розглянемо з прикладу.

Якщо описувати механізм створення тригера, то типи команд SQL тут такі самі, як із створенні процедури. Сам алгоритм буде описано нижче.

Насамперед потрібно описати службову команду для створення тригерів:

Вказуємо для якої операції з даними (у нашому випадку це операція зміни даних).

Наступним кроком буде вказівка ​​таблиць та змінних:

declare @ID int. @Date smalldatetime @nID int. @nDatesmalldatetime

DEclare cursor C1 для вибору P_ID, P_BerthDay from Inserted

DEclare cursor C2 для вибору P_ID, P_BerthDay from deleted

Задаємо кроки вибору даних. Після, в тілі курсорів прописуємо умову та реакцію на нього:

if @ID = @nID and @nDate = "01/01/2016"

sMasseges "Виконати операцію неможливо. Дата не підходить"

Варто згадати у тому, що тригер можна як створити, а й відключити на час. Таку маніпуляцію може провести лише програміст, виконавши команди SQL SERVER:

altertablePERSONdisabletriggerall - для відключення всіх тригерів, створених для даної таблиці, і, відповідно, altertablePERSONenabletriggerall - для їх включення.

Ці основні команди SQL використовуються найчастіше, але їх комбінації можуть бути найрізноманітнішими. SQL - дуже гнучка мова програмування і дає розробнику максимум можливостей.

Висновок

З усього вищесказаного можна зробити єдиний висновок: знання мови SQL просто необхідно тим, хто збирається всерйоз зайнятися програмуванням. Він лежить в основі всіх операцій, що виконуються як в інтернеті, так і в домашніх базах даних. Саме тому майбутній програміст обов'язково повинен знати безліч команд цієї мови, тому що лише за їх допомогою можна, так би мовити, спілкуватися з комп'ютером.

Звичайно, недоліки є, як і у всьому світі, але вони настільки незначні, що просто тьмяніють перед перевагами. Серед усіх мов програмування SQL практично єдина у своєму роді, адже вона є універсальною, і знання написання скриптів і кодів лежать в основі практично всіх сайтів.

Головною перевагою SQL беззастережно можна вважати його простоту, адже, як-не-як, саме він внесений до шкільної програми. З ним може впоратися навіть програміст-початківець, який до ладу не знається на мовах.

Створення таблиці Power Design за допомогою DDL

Всі дії з визначення бази даних, які можна виконувати за допомогою інструмента RAD, такого як Access, можна також виконувати і за допомогою SQL. У цьому випадку замість клацань мишею на елементах меню виконується введення команд за допомогою клавіатури. Ті, хто воліє маніпулювати графічними об'єктами, вважають, що RAD-інструменти є легкими та природними для розуміння та вивчення. Інші ж, кому більше подобається складати слова в пропозиції, що мають певну логіку, вважають, що легшими і природнішими є команди SQL. Так як деякі речі легко уявити, використовуючи об'єктну парадигму, а з іншими легко справлятися за допомогою SQL, корисно добре знати обидва методи.

У наступних розділах буде застосовуватися SQL, щоб виконувати ті ж дії зі створення, зміни та видалення таблиці, для яких у попередньому розділі використовувався інструмент RAD.

Використання мови SQL із програмою Microsoft Access

Програма Access була розроблена як інструмент швидкої розробки програм (RAD), що не потребує програмування. Незважаючи на те, що можна писати і виконувати команди на мові SQL безпосередньо в Access, щоб зробити це, можна зайти також із "чорного ходу". Щоб відкрити основний редактор, який використовується для введення коду SQL, виконайте такі дії.

  1. Відкрийте базу даних, а потім виберіть зі списку Об'єкти опцію Запити.
  2. У області завдань, розташованої у правій частині вікна, виберіть опцію Створити запит у режимі конструктора. З'явиться діалогове вікно Додати таблицю.
  3. Виберіть будь-яку таблицю, клацніть на кнопках Додати та Закрити. Не звертайте увагу на курсор, який блимає у щойно створеному вікні Запит.
  4. У головному меню Access виберіть команду Вигляд Режим SQL. З'явиться вікно редактора зі стартовим оператором SQL SELECT.
  5. Видаліть оператор SELECT та введіть потрібний оператор SQL.
  6. Закінчивши роботу, клацніть на піктограмі Зберегти. Access запропонує ввести ім'я для щойно створеного запиту.
  7. Введіть ім'я запиту та натисніть кнопку ОК.

Щойно створена команда буде збережена та виконана пізніше як запит. На жаль, Access не виконує весь діапазон команд SQL. Наприклад, він не виконує команду CREATE TABLE. Однак після створення таблиці можна виконувати практично будь-яке необхідне перетворення з даними, що в ній.

Створення таблиці

При роботі з повнофункціональною СУБД, наприклад, такою, як Microsoft SQL Server, Oracle 9i або IBM DB2, в процесі створення таблиці за допомогою SQL необхідно вводити ту ж інформацію, що і при створенні таблиці за допомогою будь-якого інструменту RAD. Різниця тут у тому, що RAD-інструмент допомагає це робити, надавши у ваше розпорядження діалогове вікно створення таблиці (або будь-яку подібну структуру) та не дозволяючи вводити неправильні імена полів, типи чи розміри. SQL стільки уваги вам не приділить. Працюючи з SQL, слід точно знати від початку, що треба робити. Необхідно ввести цілий оператор CREATE TABLE, перш ніж SQL зверне на нього увагу, не кажучи вже про те, щоб повідомити, чи немає в операторі помилок.

Наступна команда створює таблицю, ідентичну створеній раніше:

CREATE TABLE PowerSQL
ProposalNumber SMALL INT
FirstName CHAR (15),
LastName CHAR (20),
Address CHAR (30),
City CHAR (25),
StateProvince CHAR (2),
PostalCode CHAR (10),
Country CHAR (30),
Phone CHAR (14),
HowKnown CHAR (30),
Proposal CHAR (50),
BusinOrCharity CHAR (1);

Як видно, інформація по суті та сама, що й при створенні таблиці за допомогою інструментів RAD (як описувалося раніше в цьому розділі). Можна надати перевагу будь-якому способу створення таблиць. Втім, що добре в мові SQL – так це його універсальність. Один і той же стандартний синтаксис працюватиме в будь-якій системі керування базами даних.

Пам'ятай:
Будь-які зусилля, вкладені у вивчення SQL, виправдовуватимуться протягом тривалого часу, тому що швидко сходити зі сцени ця мова не збирається. А зусилля, вкладені в те, щоб стати експертом серед розробки, ймовірно, принесуть меншу віддачу. І хоч би яким прекрасним був останній RAD-інструмент, будьте певні - протягом двох-трьох років його замінить більш досконала технологія. Чудово якщо за цей час ви зможете відшкодувати зусилля, вкладені в вивчення даного інструменту! Якщо можете, то користуйтеся ним. А якщо не зможете, то мудріше дотримуватиметься старого та випробуваного засобу. Знання SQL набагато довше приноситиме дивіденди
.

У попередніх статтях було розглянуто питання. Розглянуто технологію створення структури таблиць бази даних "sql_training_st.mdb" на основі SQL запитів. Крім того, за допомогою SQL запитів було здійснено заповнення таблиць СУБД ACCESS "sql_training_st.mdb".

Відомо, що в реляційних базах даних мова SQL призначена для маніпулювання даними, визначення структури баз даних та її складових частин, управління доступом користувачів до БД та для управління транзакціями або управління змінами в БД.

Мова SQL складається з чотирьох груп:

  • мова маніпулювання даними DML;
  • мова визначення даних DDL;
  • мова керування даними DCL;
  • мова керування транзакціями TCL.

До групи DML відносяться чотири основні типи запитів SQL:

  • INSERT - призначений додавання однієї чи кількох записів у кінець таблиці;
  • UPDATE – призначений для зміни вже існуючих записів у стовпцях таблиці або модифікації даних у таблиці;
  • DELETE - призначений видалення записів з таблиці;
  • SELECT - призначений вибірки даних з таблиць.

Перші три типи SQL запитів (INSERT, UPDATE, DELETE), які відносяться до коригувальних запитів до бази даних, були розглянуті на сторінці

У цій статті розглянемо запити на вибірку даних із таблиць БД Access.

Для отримання інформації, що зберігається в базі даних БД Access 2003 або 2007, можна застосувати запит SELECT на вибірку даних з таблиць.

Складемо наступний SQL запит (інструкцію SQL) на вибірку, цього виберемо режим SQL, виконавши команду Вид/Режим SQL. Вводимо з клавіатури таку інструкцію SQL:

SELECT *
FROM Студенти;

Ця інструкція складається з двох пропозицій "SELECT *" та "FROM Студенти". Перша пропозиція містить оператор SELECT та ідентифікатор * ("ідентифікатор *" означає виведення всіх стовпців таблиці). Друга пропозиція містить оператор FROM та ідентифікатор "Студенти".

FROM - визначає таблицю "Студенти", яка містить поля, зазначені у реченні SELECT. Слід зазначити, що у запиті на вибірку завжди присутні два оператори: SELECT та FROM. Залежно від умов відбору, у запиті на вибірку можуть бути присутні й інші оператори. На малюнку 1 представлений скріншот запиту на вибірку даних.


Рис. 1. SQL запит SELECT на вибірку даних

У цьому прикладі формується вибірка даних із усіх стовпців таблиці Студенти.

Зберігаємо запит на ім'я "Студенти-запрос1". В результаті виконання команди "Зберегти" в "Області переходів" з'явиться об'єкт - "Запити: Студенти-запит1".

Після збереження запиту на вибірку виконайте цей запит, клацнувши на піктограмі «Виконати». Результати виконання команди "Виконати" представлені на рис. 2.



Рис. 2. Вибірка даних із усіх стовпців таблиці Студенти

Мова SQL не має функцій повноцінної мови розробки, а спрямований на доступ до даних, тому його включають до складу засобів розробки програм. У цьому випадку його називають вбудованим SQL.Стандарт мови SQL підтримують сучасні реалізації наступних мов програмування: PL/1, Ada, C, COBOL, Fortran, MUMPS та Pascal.

У спеціалізованих системах розробки додатків типу клієнт-сервер середовище програмування, крім того, зазвичай доповнено комунікаційними засобами (встановлення та роз'єднання з'єднань з серверами БД, виявлення та обробка помилок, що виникають в мережі тощо), засобами розробки інтерфейсів користувача, засобами проектування та налагодження.

Розрізняють два основні методи використання вбудованого SQL: статичний та динамічний.

При статичномувикористання мови (Статичний SQL)у тексті програми є виклики функцій мови SQL, які жорстко включаються у модуль після компіляції. Зміни в функціях, що викликаються, можуть бути на рівні окремих параметрів викликів за допомогою змінних мови програмування.

При динамічномувикористання мови (динамічний SQL)передбачається динамічна побудова викликів SQL-функцій та інтерпретація цих викликів, наприклад, звернення до даних віддаленої бази, під час виконання програми. Динамічний метод зазвичай застосовується у випадках, коли додаток заздалегідь невідомий вид SQL-виклику і він будується в діалозі з користувачем.

Основним призначенням мови SQL (як та інших мов для роботи з базами даних) є підготовка та виконання запитів. В результаті вибірки даних з однієї або декількох таблиць може бути отримано безліч записів уявленням.

Поданняпо суті є таблицею, яка формується в результаті виконання запиту. Можна сказати, що воно є різновидом запиту, що зберігається. За одним і тим самим таблицям можна побудувати кілька уявлень. Саме подання описується шляхом вказівки ідентифікатора подання та запиту, який має бути виконаний для отримання.



Для зручності роботи з уявленнями в мову SQL введено поняття курсору. Курсорє своєрідним покажчиком, що використовується для переміщення по наборах записів при їх обробці.

Опис та використання курсору в мові SQL виконується в такий спосіб. В описовій частині програми виконують зв'язування змінної типу курсор (CURSOR) із оператором SQL (зазвичай із оператором SELECT). У частині програми, що виконується, проводиться відкриття курсору (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...), що супроводжується відповідною обробкою, і, нарешті, закриття курсору (CLOSE<имя курсора>).

У реляційних СУБД для виконання операцій над відносинами використовуються дві групи мов, що мають як свою математичну основу теоретичні мови запитів, запропоновані Е. Коддом:

Реляційна алгебра;

Реляційне літочислення.

У реляційній алгебріоперанди та результати всіх дій є відносинами. Мова реляційної алгебри є процедурними, оскільки відношення, що є результатом запиту до реляційної БД, обчислюється при виконанні послідовності реляційних операторів, що застосовуються до відносин. Оператори складаються з операндів, у ролі яких виступають відносини, та реляційних операцій.

Операції реляційної алгебри Кодда можна поділити на дві групи: базові теоретико-множинні та спеціальні реляційні. Перша група операцій включає класичні операції теорії множини: об'єднання, різницю, перетин і твір. Друга група являє собою розвиток звичайних теоретико-множинних операцій у напрямку реальних завдань маніпулювання даними, до її складу входять операції: проекція, селекція, розподіл і з'єднання.

Мови обчисленьє непроцедурними (описовими чи декларативними) та дозволяють висловлювати запити за допомогою предикату першого порядку (висловлювання у вигляді функції), якому мають задовольняти кортежі або домени стосунків. Запит до БД, виконаний з використанням подібної мови, містить лише інформацію про бажаний результат. Для цих мов характерно наявність наборів правил запису запитів. Зокрема, до мов цієї групи належить SQL.

Особливості застосування запитів SQL

Запитом SQL називають запит, який створюється за допомогою інструкції SQL. Прикладами запитів SQL є запити на об'єднання, запити на сервер, керуючі та підлеглі запити.

Запит на об'єднання – такий запит, в якому поєднуються поля (стовпці) однієї або декількох таблиць або запитів в одне поле або стовпець у результуючому наборі записів. Наприклад, шість продавців щомісяця представляють керівництву опису наявних товарів. Створивши запит на об'єднання, можна об'єднати ці описи в результуючому наборі записів, а потім розробити запит створення таблиці, заснований на запиті на об'єднання.

Запит на сервер виконує передачу через ODBC команд SQL - серверу, наприклад, Microsoft SQL Server. Запити до сервера дозволяють працювати з таблицями на сервері замість їх приєднання. Результатом виконання запиту на сервер може бути завантаження записів або зміна даних.

Керуючий запит створює або змінює об'єкти бази даних, такі як таблиці Access або SQL Server.

Підлеглий запит складається з інструкції SQL SELECT, що знаходиться всередині іншого запиту вибірки або запиту на зміну. Ці інструкції вводяться в рядок "Поле" бланка запиту для визначення нового поля або в рядок "Умова відбору" для визначення умови відбору поля. Підлеглі запити використовуються для виконання наступних дій:

Перевірка у підпорядкованому запиті існування деяких результатів за допомогою зарезервованих слів EXISTS або NO EXISTS;

Пошук у головному запиті будь-яких значень, які рівні, більше або менше значень, що повертаються у підлеглому запиті (за допомогою зарезервованих слів ANY, IN або ALL);

Створення підлеглих запитів усередині підлеглих (вкладених підлеглих запитів).

Мова SQL в Access може застосовуватися розробки екранних форм, звітів, і навіть під час створення макрокоманд і програм на VBA.

Зв'язок мов QBE та SQL

У Access між мовами QBE та SQL є тісний зв'язок. Запитні таблиці (бланки, форми) мовою QBE, заповнювані користувачем, перед безпосереднім виконанням перетворюються на вирази SQL. Тобто мова SQL є внутрішнім стандартом виконання запитів. Такий механізм має перевагу, оскільки дозволяє всередині системи Access уніфікувати підготовку запитів до виконання на локальному та віддаленому комп'ютерах. У разі SQL – повідомлення реально передається до комп'ютера – серверу запита.

У Access запит може бути в одному з трьох режимів (станів): Конструктора, SQL та таблиці. Режим конструктора застосовують для розробки нового запиту з чистого аркуша (без використання Майстерів або інших засобів) або зміни макета існуючого запиту. Режим SQL використовується для введення або перегляду інструкцій SQL. Режим таблиці застосовують до роботи з результатами виконання запиту.

SQL у формах та звітах

Основними джерелами записів у екранних формах та звітах є таблиці та запити. У другому випадку запитом може бути готовий запит до БД або створюваний для розробки форми або звіту.

SQL у макрокомандах

Макрокоманди входять до складу макросів, які використовують для автоматизації виконання часто повторюваних дій у роботі з БД. Макрос є однією або декількома макрокомандами з аргументами.

Макроси викликаються з вікна БД або автоматично при настанні певних подій. Подія, якою викликається макрос, може бути, наприклад, натискання кнопки в області форми або відкриття вікна БД. Поряд з виконанням деяких дій над об'єктами БД макроси можуть викликати інші макроси, програми на Visual Basic і зовнішні програми.

З багатьох макрокоманд з SQL безпосередньо пов'язані дві макрокоманди: Запуск Запиту SQL (Run SQL) і Відкрити Запит (OpenQuery)

Макрокоманда Запуск Запиту SQLзапускає запит на зміну або керуючий запит Access за допомогою відповідної інструкції SQL. Ця макрокоманда уможливлює виконання дій у макросі без попереднього збереження запитів. За допомогою макрокоманди можна виконувати і збережені запити.

Запитами на змінує інструкції SQL, що реалізують такі функції: додавання (INSERT INTO), видалення (DELETE), створення таблиці (SELECT ... INTO) та оновлення (UPDATE)

Керуючими запитамиє інструкції SQL, що виконують такі функції: створення таблиці (CREATE TABLE), зміна таблиці (ALTER TABLE), видалення таблиці (DROP TABLE), створення індексу (CREATE INDEX) та видалення індексу (DROP INDEX)

Єдиним та обов'язковим аргументом макрокоманди Запуск Запиту SQLє інструкцією SQL. Аргумент макрокоманди у вигляді тексту SQL – інструкції вводиться вручну у вікні введення макрокоманди або копіюються з вікна SQL, що найчастіше зручніше.

Макрокоманда Відкрити Запитдозволяє відкривати запит на вибірку або перехресний запит (в режимах таблиці, конструктора та попереднього перегляду), запускати запит на зміну або введення даних.

У макрокоманді задаються три аргументи: ім'я запиту, режим та режим даних. Перший аргумент задає ім'я запиту, що відкривається, і є обов'язковим. Другий аргумент визначає режим відкриття запиту («Таблиця», «Конструктор» та «Перегляд»). Третій аргумент визначає режим введення даних у запит («Додавання», «Зміна» та «Тільки читання»)

SQL у програмах на VBA

VBA, як і макроси, призначені для автоматизації виконання повторюваних операцій над об'єктами БД Access.

У Access існують такі способи запуску програм VBA:

Включення програми до процедури обробки події;

Виклик функції у виразі;

виклик процедури Sub в іншій процедурі або у вікні налагодження;

Виконання макрокоманди ЗапускПрограми (RunCode) у макросі.

Функції застосовуються у виразах, що визначають обчислювані поля у формах, звітах чи запитах. Вирази використовуються для визначення умов у запитах і фільтрах, а також у макросах, в інструкціях та методах VBA, а також в інструкціях SQL. У процедуру Sub можна включати загальнодоступні VBA - підпрограми, що викликаються з інших процедур.

Розглянемо виконання запиту до бази даних за допомогою інструкцій SQL у програмі Visual Basic для додатків.

У запиті проводиться відбір у базі даних записів, які відповідають певним умовам (запит на вибірку), або видається інструкція виконання зазначених дій із записами, задовольняють певним умовам (запит зміну).

Існують такі способи виконання запитів:

виклик методу Execute (для виконання запитів SQL на зміну);

Створення та виконання спеціального об'єкта QueryDef;

Використання інструкції SQL як аргумент методу OpenRecordset;

Виконує метод OpenRecordset для існуючого об'єкта QueryDef;

Виклик методів RunSQL та OpenQuery.

Метод Executeвикористовується, якщо потрібно виконати таку зміну БД, при якому не повертаються записи. Наприклад, операції вставки або видалення записів.

Об'єкт QueryDefє збережене визначення запиту у базі даних. Його можна розглядати як відкомпільовану інструкцію SQL.

Метод OpenRecordsetвикористовується, щоб відкрити об'єкт типу Recordset для виконання наступних операцій над ним.

Метод RunSQLвиконує макрокоманду Запуск Запиту SQLу програмі VBA

Метод OpenQueryвиконує макрокоманду Відкрити Запит (OpenQuery) у програмі VBA. З його допомогою можна відкрити запит у режимі таблиці, конструктора або перегляду. При цьому встановлюється один із наступних режимів роботи з даними: додавання, зміна або читання.

Вибір варіанта виконання запиту визначається програмістом з урахуванням особливостей задачі, що вирішується.

Запит SQL - це запит, який створюється за допомогою інструкцій SQL. Мова SQL (Structured Query Language) використовується при створенні запитів, а також для оновлення та управління реляційними базами даних, такими як бази даних Microsoft Access.

Коли користувач створює запит у режимі конструктора запиту, Microsoft Access автоматично створює еквівалентну інструкцію SQL. Є ряд запитів, які можна зробити лише у режимі SQL. Досвідченим програмістам часто простіше одразу писати вираз на SQL, ніж формувати запит.

Вид запиту в конструкторі:

При складних розрахунках отримання результату доводиться послідовно робити кілька запитів. Зрозуміло, що ці дії повинні виконуватись автоматично без участі користувача.

Для цього використовуються макроси, що складаються з декількох команд, що послідовно виконуються.

Обчислення у запитах, можливості створення та редагування формул.

Для полів із зазначених у схемі запиту таблиць можна вказати будь-які обчислення.

Щоб зробити обчислення, необхідно додати додаткові обчислювані поля, значення яких розраховуються на базі значень інших полів запиту.

Підсумкові запити, угруповання, підсумкові функції.

Підсумковий запит створюється за допомогою режиму – Зведений запит.

Можна використовувати три таблиці, включаючи сполучну таблицю.

При цьому можна будь-де запитати викликати контекстне меню (права кнопка миші) і вибрати ознаку «групові операції».

У бланку запиту з'явиться новий рядок Угруповання.

Підсумкові функції: у полі, яким ми хочемо порахувати підсумки, вибрати зі списку функцію «Sum» (сума), щоб підсумувати всі значення вибраних полів. Функція «Підрахунок» визнає кількість значень поля. інформація редагування microsoft

Запит - це звернення до СУБД до виконання будь-яких операцій із даними: вибору частини даних із загального обсягу, додавання обчислюваних полів, масове зміна даних, і т. буд.

У запиті можна:

  • - відібрати інформацію із кількох пов'язаних таблиць;
  • - Використовувати складні умови відбору;
  • - користувач може сам ввести значення параметрів, додати поля, що обчислюються;
  • - Виконати підсумкові розрахунки.

Типи запитів:

  • - вибірка;
  • - Створення таблиці;
  • - оновлення (зміна даних);
  • - Додавання записів;
  • - Видалення записів.

Запити використовуються як джерела записів для форм і звітів. Здебільшого і у формах, і у звітах перед видачею потрібно відібрати частину даних за будь-якими умовами та відсортувати дані. Це робиться за допомогою запитів. Запит може зберігатися окремо або прив'язаний до форми або звіту.

У Microsoft Access є кілька типів запитів.