Основні принципи побудови SQL запитів. Вибір даних у БД Access за допомогою sql запитів. Створення бази даних у phpmyadmin

27.10.2019 Новини

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

SELECT для вибору стовпців таблиці

Запит із оператором SELECT для вибору всіх стовпців таблиці має наступний синтаксис:

SELECT * FROM ІМ'Я_ТАБЛИЦІ

Тобто, для вибору всіх стовпців таблиці після слова SELECT потрібно ставити зірочку.

приклад 1.Є база даних фірми – Company. У ній є таблиця Org (Структура фірми) та Staff (Співробітники). Потрібно вибрати з таблиць усі стовпці. Відповідний запит для вибору всіх стовпців з таблиці Org має такий вигляд:

SELECT * FROM ORG

Цей запит поверне наступне (для збільшення картинки клацнути по ній лівою кнопкою миші):

Запит для вибору всіх стовпців з таблиці Staff виглядає так:

SELECT * FROM STAFF

Цей запит поверне таке:


Для вибору певних стовпців таблиці нам потрібно замість зірочки перерахувати через кому назви всіх стовпців, які потрібно вибрати:

SELECT ВИБИРАНІ_СТОЛБЦІ FROM ІМ'Я_ТАБЛИЦІ

приклад 2.Нехай потрібно з таблиці Org вибрати стовпці Depnumb і Deptname, в яких містяться дані відповідно про номери відділів фірми та їх назви. Запит для отримання такої вибірки буде таким:

SELECT DEPNUMB, DEPTNAME FROM ORG

А з таблиці Staff потрібно вибрати стовпці DEPT, NAME, JOB, у яких містяться відповідно дані про номер відділу, в якому працює співробітник, його ім'я та посади:

SELECT DEPT, NAME, JOB FROM STAFF

Для вибору певних рядків таблиці разом із оператором SELECT вже потрібно ключове слово WHERE, що вказує на деяке значення або кілька значень, що містяться в рядках, що нас цікавлять. Найбільш прості умови задаються за допомогою операторів порівняння та рівності (, =), а також ключового слова IS. Умов може бути кілька, тоді вони перераховуються за допомогою ключового слова AND. Запити для вибору рядків мають наступний синтаксис:

приклад 4.У попередньому прикладі ми вибирали рядки з таблиці лише за значенням одного стовпця – DEPT. Нехай тепер потрібно вибрати дані про співробітників, які працюють у 38-му відділі та посаду яких – службовець (Clerk). Для цього у секції WHERE відповідні значення слід перерахувати з використанням слова AND:


Приклад 5.Нехай потрібно вибрати із таблиці Staff ідентифікатори та імена тих співробітників, розмір комісії яких – невизначений. Для цього в секції WHERE перед вказівкою значення стовпця COMM – NULL потрібно ставити не знак рівності, а слово IS:

Цей запит поверне такі дані:


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

Використання SELECT та предикатів IN, OR, BETWEEN, LIKE

Предикати – слова IN, OR, BETWEEN, LIKE у секції WHERE – також дозволяють вибрати певні діапазони значень (IN, OR, BETWEEN) або значення у рядках (LIKE), які потрібно вибрати з таблиці. Запити з предикатами IN, OR, BETWEEN мають наступний синтаксис:

Запити з предикатом LIKE мають наступний синтаксис:

Приклад 7.Нехай потрібно вибрати з таблиці Staff імена, посади та кількість відпрацьованих років співробітників, які працюють у відділах з номерами 20 або 84. Це можна зробити таким запитом:

Результат виконання запиту:


Приклад 8.Нехай тепер потрібно вибрати з таблиці Staff ті самі дані, що у попередньому прикладі. Запит зі словом OR аналогічний запиту зі словом IN і перерахуванням значень, що цікавлять, в дужках. Запит буде наступним:

Приклад 9.Виберемо з тієї ж таблиці імена, посади та кількість відпрацьованих років працівників, зарплата яких між 15000 та 17000 включно:

Результат виконання запиту:


Предикат LIKE використовується для вибірки тих рядків, значення яких зустрічаються символи, зазначені після предикату між апострофами (").

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

Символ підкреслення (_) означає будь-який символ. Результат виконання запиту:


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

Символ відсотків (%) означає будь-яку кількість символів. Результат виконання запиту:


Значення, вказані за допомогою предикатів IN, OR, BETWEEN, LIKE, можна інвертувати за допомогою слова NOT. Тоді дані, що запитуються, матимуть протилежний сенс. Якщо ми використовуємо NOT IN (20, 84), то будуть виведені дані співробітників, які працюють у всіх відділах, крім тих, що мають номери 20 та 84. З використанням NOT BETWEEN 15000 AND 17000 можна отримати дані співробітників, зарплата яких не входить в інтервал від 15000 до 17000. Запит з NOT LIKE виведе дані співробітників, чиї імена не починаються або містять символів, зазначених з NOT LIKE.

Написати SQL запити з SELECT та предикатами IN, NOT IN, BETWEEN самостійно, а потім переглянути рішення

Є база даних "Театр". Таблиця Play містить дані про постановки. Таблиця Team - про ролі акторів. Таблиця Actor – про акторів. Таблиця Director - про режисерів. Поля таблиць, первинні та зовнішні ключі можна побачити на малюнку нижче (для збільшення натиснути лівою кнопкою миші).


приклад 12.Вивести список акторів, які неодноразово не були затверджені на головну роль. У таблиці team дані про головні ролі містяться в стовпці mainteam. Якщо роль - головна, то у відповідному рядку зазначено "Y".

SELECT та ORDER BY - сортування (упорядкування) рядків

Розібрані досі запити SQL SELECT повертали рядки, які були розташовані у будь-якій послідовності. Однак часто потрібно відсортувати рядки по порядку номерів, алфавіту та інших ознак. Для цього є ключове словосполучення ORDER BY. Такі запити мають наступний синтаксис:

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

Слово ASC показує, що порядок сортування – зростаючий. Це слово не обов'язково, тому що зростаючий порядок сортування застосовується за умовчанням. Результат виконання запиту:


Приклад 16Нехай вибираючи ті ж дані, що й у попередньому прикладі, але відсортувати (упорядкувати) записи за кількістю відпрацьованих років у спадному порядку:

Слово DESC вказує, що порядок сортування – спадний. Результат виконання запиту:


SELECT та DISTINCT - видалення дублікатів рядків

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

Приклад 17Нехай потрібно дізнатися, які існують відділи та які посади серед відділів, номери яких менше 30. Це можна зробити за допомогою наступного запиту:

Результат виконання запиту:


Оператор SELECT у підзапитах SQL

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

приклад 18.Ті самі таблиці ORG і STAFF. Нехай потрібно дізнатися, в якому підрозділі працює співробітник з ідентифікаційним номером 280, і де цей підрозділ розташований. Але інформація про підрозділи зберігається у таблиці ORG, а інформація про співробітників – у таблиці STAFF. Це можна зробити за допомогою наступного запиту з підзапитом, у якому зовнішній SELECT звертається до таблиці ORG, а внутрішній SELECT – до таблиці STAFF:

Результат виконання запиту:


Приклад 19.Нехай тепер потрібно дізнатися, в яких підрозділах (без дублювання) працюють співробітники із заробітною платою менше 13000. Для цього в секції WHERE зовнішнього SELECT (запит до таблиці ORG) задається умова, що приймає діапазон значень (IN), а внутрішній SELECT (до таблиці STAFF ) саме повертає необхідний діапазон значень:

Реляційні бази даних та мова SQL

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

Всі приклади побудовані навколо запитів до трьох таблиць,


що містить таку інформацію:

  • D_STAFF- Список співробітників компанії;

    • S_NAME - П.І.Б.
    • S_POSITION – посада (довідник);
    • S_EXPERIENCE – стаж роботи (цілий рік);
    • S_CHIEF_ID – вищий співробітник компанії (ставлення “начальник”-“підлеглий”);
    • S_COMMENTS – примітка.


  • D_PROFIE– список профілів користувачів, яка, за легендою, розгорнута на території підприємства, що розглядається, і допомагає автоматизувати деякі його бізнес-процеси. Цією системою могла бути як вітчизняна технологія “1С – Підприємство”, і система з урахуванням програмного комплексу SAP R/3, що є найяскравішим представником такого класу програмного забезпеченняза кордоном;


  • D_STAFF_PROFILE- Таблиця, що пов'язує співробітників компанії (D_STAFF) з профілями користувачів системи (D_PROFILE). Кожен запис у цій таблиці - це зв'язок, яка визначає можливість співробітника входити до системи з усіма правами та дозволами обраного йому профілю. Кожен співробітник може мати кілька дозволених профілів, а будь-який профіль може бути пов'язаний з кількома різними співробітниками. Таким чином, таблиця D_STAFF_PROFILE визначає зв'язок "багатьом-багатьом".

Короткий огляд синтаксису розглянутих SQL запитів

Оновлення даних або команда UPDATE

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

UPDATE SET ( = ) або UPDATE SET ( = (SELECT FROM WHERE))

Додавання даних або команда INSERT

Додавання нових записів у вказану таблицю. Тут також нічого складного. Вказуємо таблицю, список полів і список значень, що додаються в ці поля. Що може дати використання SQLПідзапит теж здогадатися нескладно - копіювання обраного за допомогою SELECT масиву даних у вказану таблицю (у перераховані через кому поля). Природно, що кількість і тип колонок у запит SELECTповинен відповідати кількості та типу полів таблиці, куди проводиться вставка.

INSERT INTO [()] VALUES () або INSERT INTO [()] (SELECT FROM WHERE)

Видалення даних або команда DELETE

Видаляє рядки з однієї таблиці або відразу з кількох таблиць, рядки яких об'єднані умовами. Тут все також очевидно. Вказуємо, з якої таблиці видаляємо дані, а в частині WHERE відбираємо дані, що видаляються. У другому варіанті SQL запиту з використанням інструкції DELETE показаний узагальнений синтаксис видалення записів одразу з кількох таблиць. В умовах відбору (в частині WHERE) можна також використовувати підзапити.

DELETE FROM або DELETE FROM

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

    Виконує найпростіші SQL запити за допомогою команди SELECT. Визначення простих та складових критеріїв відбору записів за допомогою конструкції WHERE. Застосування операторів BETWEEN та LIKE. Побудова ієрархічного запиту з допомогою псевдонімів таблиць і полів.

Отже, у БД forum є три таблиці:

· users (користувачі);

· topics (теми);

· Posts (повідомлення).

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

SELECT що_вибрати FROM звідки_вибрати;

Замість «що_вибрати» необхідно вказати або ім'я стовпця, значення якого хочемо побачити, або імена кількох стовпців через кому, або символ зірочки (*), що означає вибір усіх стовпців таблиці. Замість «звідки вибрати» слід вказати ім'я таблиці.

Спочатку подивимося всі стовпці з таблиці users:

SELECT * FROM users;

Це всі дані, які були внесені до таблиці.

Припустимо, що необхідно подивитися тільки стовпець id_user (оскільки для заповнення таблиці topics (теми) треба знати, які id_user є в таблиці users). Для цього у запиті вкажемо ім'я цього стовпця:

SELECT id_user FROM users;

Якщо необхідно подивитися, наприклад, імена та e-mail користувачів, то треба перерахувати стовпці, що цікавлять, через кому:

SELECT name, email FROM users;

Аналогічно можна подивитися, які дані містять й інші таблиці.

Спочатку подивимося, які теми:

SELECT * FROM topics;

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

SELECT ім'я_стовпця FROM ім'я_таблиці ORDER BY ім'я_стовпця_сортування;

За умовчанням сортування йде за зростанням, але це можна змінити, додавши ключове слово DESC.

Тепер дані відсортовані в порядку спадання.

Сортування можна проводити відразу за кількома стовпцями. Наприклад, наступний запит відсортує дані по стовпцю topic_name, і якщо в цьому стовпці буде кілька однакових рядків, то в стовпці id_author буде здійснено сортування за спаданням:

Порівняйте результат із результатом попереднього запиту.

Дуже часто користувачеві не потрібна вся інформація з таблиці. Наприклад, необхідно дізнатися, які теми було створено користувачем sveta (id = 4). Для цього у SQL є ключове слово WHERE, синтаксис такий запит:

SELECT имя_столбца FROM имя_таблицы WHERE умова;

Для прикладу умовою є ідентифікатор користувача, тобто. потрібні лише ті рядки, у стовпці id_author яких стоїть 4 (ідентифікатор користувача sveta):

SELECT * FROM topics WHERE id_author=4;

Тепер необхідно дізнатися, хто створив тему "велосипеди":

Звичайно, було б зручніше, щоб замість id автора виводилося його ім'я, але імена зберігаються в іншій таблиці. Далі розглянемо, як вибирати дані з кількох таблиць. А поки що дізнаємося, які умови можна задавати, використовуючи ключове слово WHERE.

Оператор Опис
= (Рівно) Відбираються значення, що рівні зазначеному. Приклад: SELECT * FROM topics WHERE id_author = 4; Результат:
> (більше) Відбираються значення більше, ніж зазначене. Приклад: SELECT * FROM topics WHERE id_author > 2; Результат:
< (меньше) Відбираються значення менше вказаного. Приклад: SELECT * FROM topics WHERE id_author< 3; Результат:
>= (більше чи одно) Відбираються значення великі та рівні зазначеному. Приклад: SELECT * FROM topics WHERE id_author> = 2; Результат:
<= (меньше или равно) Відбираються значення менші та рівні вказаному. Приклад: SELECT * FROM topics WHERE id_author<= 3; Результат:
!= (Не рівно) Відбираються значення не рівні вказаному. Приклад: SELECT * FROM topics WHERE id_author! = 1; Результат:
IS NOT NULL Відбираються рядки, що мають значення у вказаному полі. Приклад: SELECT * FROM topics WHERE id_author IS NOT NULL; Результат:
IS NULL Відбираються рядки, які мають значення у вказаному полі. Приклад: SELECT * FROM topics WHERE id_author IS NULL; Результат:
Empty set – немає таких рядків.
BETWEEN (між) Відбираються значення між зазначеними. Приклад: SELECT * FROM topics WHERE id_author BETWEEN 1 AND 3; Результат:
IN (значення міститься) Відбираються значення, які відповідають зазначеним. Приклад: SELECT * FROM topics WHERE id_author IN (1, 4); Результат:
NOT IN (значення не міститься) Відбираються значення, крім зазначених. Приклад: SELECT * FROM topics WHERE id_author NOT IN (1, 4); Результат:
LIKE (відповідність) Відбираються значення, що відповідають зразку. Приклад: SELECT * FROM topics WHERE topic_name LIKE "вел%"; Результат:
Можливі метасимволи оператора LIKE будуть розглянуті нижче.
NOT LIKE (не відповідність) Відбираються значення, що не відповідають зразку. Приклад: SELECT * FROM topics WHERE topic_name NOT LIKE "вів%"; Результат:

На уроці буде розглянута мова запитів: оператор SELECT sql - на вибір даних

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

Синтаксис оператора SELECT

SELECT * FROM имя_таблицы;

Це найпростіший варіант роботи з оператором, коли ми вибираємо всі записи таблиці БД.

Символ * означає вибірку всіх записів із таблиці. При цьому стовпці та рядки результуючого набору не впорядковані.

Розглянемо приклади SQL запитів select:

Приклад:якщо ви створили локальну базу даних і заповнили таблиці, як у розглянутому раніше (або скористалися сервісом sqlFiddle), то виконаємо наступний приклад.
Необхідно вибрати всі записи з таблиці teachers

SELECT * FROM имя_таблицы LIMIT 2,3;

У прикладі відбувається вибірка 3 записів таблиці, починаючи з 2 записи.
Цей запит особливо необхідний для створення блоку сторінок навігації.

Щоб упорядкувати поля результуючого набору, їх слід перерахувати через кому у потрібному порядку після слова SELECT:

SELECT name, zarplata, premia FROM teachers ORDER BY name;

Вибере значення полів name, zarplata, premia і відсортує по полю name (за алфавітом)


Приклад:БД "Комп'ютерний магазин". Вибрати дані про швидкість та пам'ять комп'ютерів. Потрібно впорядкувати результуючий набір швидкості процесора в порядку зростання.

SELECT `Швидкість`, `Пам'ять` FROM `pc` ORDER BY 1 ASC

Результат:

Сортування можна виконувати за двома полями:

SELECT name, zarplata, premia FROM teachers ORDER BY name DESC;

Вибере значення полів name, zarplata, premia і відсортує по полю name за спаданням


Видалення значень, що повторюються, в SQL

Якщо необхідно отримати унікальні рядки, можна використовувати ключове слово DISTINCT .

DISTINCT(у перекладі з англійської ВІДМІННІСТЬ) - аргумент, який усуває подвійні значення:

Приклад БД «Інститут»:потрібно дізнатися про можливі варіанти розміру премій. Якщо не використовувати Distinct, в результаті буде видаватися два однакові значення. Видалити в sql значення, що повторюються, можна при введенні Distinct — в результаті дублюючі значення не повторюються.

    SELECT Швидкість, пам'ять FROM PC;

    Результат:

    У таблиці PC первинним ключем є поле code. Оскільки це поле відсутнє у запиті, у наведеному вище результуючому наборі є дублікати рядків.

    Коли потрібно отримати унікальні рядки (наприклад, нас цікавлять лише різні комбінації швидкості процесора та об'єму пам'яті, а не характеристики всіх наявних комп'ютерів), потрібно використовувати Distinct:

    SELECT DISTINCT Швидкість, пам'ять FROM PC;

    SELECT DISTINCT Швидкість, пам'ять FROM PC;

    Результат:

    Завдання SQL Select 1_1. БД «Інститут»Виконайте запит на вибір id і name з таблиці вчителів. Відсортуйте прізвища вчителів зі спадання

    Мова sql: where умова

    Умова виконується пропозицією
    WHERE
    яке записується після пропозиції FROM.

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

    Приклад БД «Інститут»:Виводити дані викладача з таблиці teachers, прізвище якого Іванов

    Декілька умов у SQL

    Предикати (умови) можуть складатися як з одного виразу, так і з будь-якої комбінації виразів, побудованих за допомогою булевих операторів:

  1. AND ,
  2. або NOT
  3. Приклад БД «Інститут»:вивести код викладача, зарплата якого складає 10000 , а премія 500

    Реляційні оператори, що зустрічаються в умовах:
    = Рівний
    > Більше
    >= Більш ніж або одно
    Не дорівнює

    Between у SQL (між)

    Предикат BETWEEN перевіряє, чи потрапляють значення виразу, що перевіряється в діапазон, що задається прикордонними виразами, що з'єднуються службовим словом AND .

    Синтаксис:

    <Проверяемое выражение>BETWEEN<Начальное выражение>AND<Конечное выражение>

    Приклад БД "Інститут":Вивести прізвище та зарплату викладача, зарплата якого між 5000 та 10000.

    Приклад БД "Інститут":Вивести прізвище та зарплату викладача, зарплата якого не знаходиться в діапазоні від 5000 до 10000.

    Предикат IN

    Предикат IN визначає, чи буде значення виразу, що перевіряється, виявлено в наборі значень, який явно визначений.

    Синтаксис:

    < Проверяемое выражение>[ NOT ] IN (< набор значений> )

    <Проверяемое выражение>IN (<набор значений>)

    Приклад БД "Інститут":вивести імена викладачів, зарплата яких становить 5000, 10000 чи 11000

    Приклад БД "Інститут":вивести імена викладачів, зарплата яких не перебуває серед значень: 5000, 10000 чи 11000

    Завдання SQL Select 1_3. БД "Інститут"Вивести прізвище, зарплату та премію вчителів, премія яких від 2000 до 5000 рублів.

На уроці буде розглянута мова запитів SQL: основи синтаксису мови SQL, робота в phpMyAdminта сервіс для онлайн перевірки SQL запитів

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

Бази даних поділяються на:

  • Ієрархічні
  • Мережеві
  • Реляційні
  • Об'єктно-орієнтовані

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

p align="justify"> Для роботи з SQL кодом необхідна система управління базами даних (СУБД), яка надає функціонал для роботи з базами даних.

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

Зазвичай, для навчання використовується СУБД Microsoft Access, Але ми будемо використовувати найпоширенішу в Інтернеті систему -. Для зручності буде використовувати веб-інтерфейс або онлайн сервісдля побудови SQL запитів , принцип роботи з якими описаний нижче.

Важливо:При роботі з реляційними або табличними базами даних рядки таблиці називатимемо записами, а стовпці - полями.

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

Складові мови SQL

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

  1. мова маніпулювання даними (Data Manipulation Language, DML);
  2. мова визначення даних (Data Definition Language, DDL);
  3. мова керування даними (Data Control Language, DCL).

1.
Мова маніпулювання даними складається з чотирьох головних команд:

  • вибірка даних з БД -
  • вставка даних у таблицю БД -
  • оновлення (зміна) даних у таблицях БД
  • видалення даних з БД -

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

Ми будемо розглядати лише кілька з основних команд мови. Ними є:

  • створення бази даних - CREATE DATABASE
  • створення таблиці - CREATE TABLE
  • зміна таблиці (структури) - ALTER TABLE
  • видалення таблиці - DROP TABLE

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

Як зробити sql запит у phpmyadmin

  1. Запустити ярлик start denwer.
  2. В адресному рядку браузера набрати http://localhost/tools/phpmyadmin.
  3. У лівій частині вікна вибрати цікаву базу даних або створити її (якщо ще не створена). Створення бази даних у phpmyadmin розглянуто.
  4. Якщо відома таблиця, з якою буде працювати запит, у лівій частині вікна вибрати цю таблицю.
  5. Вибрати вкладку SQL та почати вводити запит.

Створення бази даних у phpmyadmin

Для початку необхідно виконати перші два пункти із .
Потім:

  • у веб-інтерфейсі, що відкрився, вибрати вкладку Бази даних;
  • в полі Створити базу данихзапровадити назву бази;
  • клацнути по кнопці Створити;
  • Тепер для продовження роботи в phpMyAdmin у створеній базі даних можна перейти до .

Робота у сервісі sql fiddle

Онлайн перевірка sql запитів можлива за допомогою сервісу.
Найпростіший спосіб організації роботи складається з наступних етапів:


Ще приклад:


Тепер деякі пункти розглянемо докладніше.

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

Приклад:створіть відразу три таблиці (teachers, lessons та courses); додайте по кілька значень у кожну таблицю.

* для тих, хто незнайомий з синтаксисом - просто скопіювати повністю код і вставити в ліве віконце сервісу

* урок зі створення таблиць у мові SQL

/*teachers*/ CREATE TABLE `teachers` ( ​​`id` INT(11 ) NOT NULL , `name` VARCHAR (25 ) NOT NULL , `code` INT (11 ) , `zarplata` INT (11 ) , `premia` INT (11), PRIMARY KEY (`id`)); INSERT INTO teachers VALUES (1 , " Іванів " , 1 , 10000 , 500 ) , (2 , " Петрів " , 1 , 15000 , 1000 ) , (3 , " Сидорів " , 1 , 1400 ) Боброва", 1, 11000, 800); /*lessons*/ CREATE TABLE `lessons` ( `id` INT(11 ) NOT NULL , `tid` INT (11 ) , `course` VARCHAR (25 ) , `date` VARCHAR (25 ) , PRIMARY KEY (`id `)); INSERT INTO lessons VALUES (1, 1, "php", "2015-05-04"), (2, 1, "xml", "2016-13-12"); /*courses*/ CREATE TABLE `courses` ( `id` INT (11 ) NOT NULL , `tid` INT (11 ) , `title` VARCHAR (25 ) , `length` INT (11 ) , PRIMARY KEY (`id `)); INSERT INTO courses VALUES (1, 1, "php", 54), (2, 1, "xml", 72), (3, 2, "sql", 25);

/*teachers*/ CREATE TABLE `teachers` (`id` int(11) NOT NULL, `name` varchar(25) NOT NULL, `code` int(11), `zarplata` int(11), `premia` int(11), PRIMARY KEY (`id`)); insert into teachers values ​​(1, "Іванов",1,10000,500), (2, "Петрів",1,15000,1000) ,(3, "Сидорів",1,14000,800), (4," Боброва", 1,11000,800); /*lessons*/ CREATE TABLE `lessons` (`id` int(11) NOT NULL, `tid` int(11), `course` varchar(25), `date` varchar(25), PRIMARY KEY (`id `)); insert into lessons values ​​(1,1, "php", "2015-05-04"), (2,1, "xml", "2016-13-12"); /*courses*/ CREATE TABLE `courses` (`id` int(11) NOT NULL, `tid` int(11), `title` varchar(25), `length` int(11), PRIMARY KEY (`id `)); insert in courses values ​​(1,1, "php",54), (2,1, "xml",72), (3,2, "sql",25);

В результаті отримаємо таблиці з даними:

Надсилання запиту:
Щоб протестувати працездатність сервісу, додайте в праве віконце код запиту.

Приклад:за допомогою запиту виберіть усі дані з таблиці teachers, які стосуються вчителя з прізвищем Іванов

На подальших уроках SQL буде використовуватися та сама схема, тому необхідно буде просто копіювати схему та вставляти у ліве вікно сервісу.

Для онлайн-візуалізації схеми бази даних можна скористатися сервісом https://dbdesigner.net/ :

  1. Створити свій обліковий запис (увійти до нього, якщо вже є).
  2. Натиснути на кнопку Go to Application.
  3. Меню Schema -> Import.
  4. Скопіювати і вставити у вікно код створення та заповнення таблиць бази даних