Смекни!
smekni.com

Робота з MYSQL (стр. 1 из 2)

Робота з MySQL

1. Архітектура Web-баз даних

Основна операція WEB сервера показана на рисунку 10.1.

Ця система складається з 2 об’єктів: WEB браузера та WEB сервер. Між ними має існувати канал зв’язку. WEB браузер посилає запит на сервер, сервер відсилає відповідь [1].

Рис.1.Схема роботи сервера

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

1. WEB браузер відправляє HTTP запит, що визначає WEB сторінку, використовуючи HTML форму.

2. WEB сервер приймає файл та передає його механізму PHP на обробку.

3. Механізм PHP починає синтаксичний аналіз сценарію. В сценарії присутні команди підключення до бази даних і виконання запиту до неї. PHP відкриває з єднання з сервером MySQL та відправляє необхідний запит.

4. Сервер приймає запит в базу даних, опрацьовує його, а потім відправляє результати в PHP.

5. Механізм PHP завершує виконання сценарію, формуючи результати у вигляді HTML, після чого відправляє результати в HTML форматі WEB серверу.

6. WEB сервер пересилає HTML в браузер. За допомогою якого користувач переглядає результати.

Використання мови PHP та MySQL дозволяє робити сайти динамічними, які містять інформацію в реальному часі. MySQL СУБД швидка та надійна. Крім MySQL можна використовувати Postgre SQL, Oracle, dbm, Hyperware, Informix, InterBase, SyBase.

2. Мова SQL. Загальні відомості

Запити – це основний інструмент вибірки й обробки даних у СУБД. Для створення і реалізації запитів розроблена спеціальна мова SQL (Structured Query Language – мова структурованих запитів). Перший прототип мови SQL з'явився наприкінці 70-х років і одержав через якийсь час широке поширення. Він став застосовуватися у всіх комерційних СУБД і поступово став стандартом де-факто для мов маніпулювання даними в реляційних БД. Перша версія стандарту називалася SQL-86 і була прийнята ANSI (Американським національним інститутом стандартів) і ISO (Міжнародним інститутом стандартів). Наприкінці 1992 р. був прийнятий новий міжнародний стандарт мови – це SQL-92. Цей стандарт підтримується всіма сучасними СУБД, у тому числі і MS Access.

Останній стандарт з'явився в 1999 р., у якому були введені нові типи даних, і ряд інших нововведень, важливих для розроблювачів нових версій сучасних СУБД. Ми коротко ознайомимося з деякими найбільш важливими елементами мови, що відповідають стандарту SQL-92.

Всі оператори мови можна розділити на такі три категорії:

1. Оператори контролю даних – використовуються для перевірки повноважень користувача при звертанні до БД. Це оператори GRANT і REVOKE.

2. Оператори визначення даних – використовуються для створення об'єктів БД і визначення їхньої структури. До них відносяться оператори CREATE SCHEMA, CREATE TABLE, CREATE VIEW, CREATE DOMAIN.

3. Оператори керування даними – використовуються для пошуку, видалення, зміни і збереження даних. Це оператори SELECT, UPDATE, INSERT, DELETE.

Найважливішим оператором мови SQL є оператор SELECT, призначений для вибірки даних з таблиць БД відповідно до заданого критерію і перетворення отриманих результатів до потрібного виду.

Оператор SELECT. Добір записів з однієї таблиці

Загальний формат оператора SELECT наступний:

SELECT [DISTINCT] {* | <Список полів>}

FROM <Список таблиць >

[WHERE <Умова добору записів >]

[GROUP BY <Список полів для групування>]

[HAVING <Умови добору для груп>]

[ORDER BY <Список полів для сортування>]

Результатом виконання оператора SELECT є набір даних, який складається з записів, що відповідають заданим умовам добору. В операторі обов'язково повинні бути присутніми інструкції SELECT і FROM. Інші інструкції (вказані у квадратних дужках) можуть бути відсутніми.

Інструкція SELECT повідомляє СУБД, що це команда – запит. В інструкції SELECT указується список полів, які будуть включатися в записи, що відбираються. У списку полів повинне бути задане хоча б одне поле. Якщо в список полів потрібно включити всі поля з таблиці (таблиць), то замість перерахування полів можна вказати символ *. Якщо в список полів включаються поля з різних таблиць, то для вказівки належності поля до тієї чи іншої таблиці використовують складене ім'я, що складається з імені таблиці й імені поля, розділених крапкою. Необов'язкова інструкція DISTINCT забороняє включення в результуючий набір даних повторюваних записів. В інструкції FROM перелічуються імена таблиць, з яких відбираються записи. Список повинний містити хоча б одну таблицю.

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

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

= , < , > , <> , <= , >= - операції порівняння;

Between – предикат, що перевіряє приналежність значення поля заданому діапазону значень;

In – предикат, що перевіряє приналежність значення поля заданій множині;

Like – предикат, що перевіряє відповідність значення поля заданому шаблону;

And, Or, Not – логічні операції.

Інструкція GROUP BY призначена для вказівки полів, по яких визначаються групи записів. В одну групу включаються записи з однаковими значеннями в полях, перерахованих в інструкції GROUP BY. Для груп записів можна застосовувати групові операції (їх ще називають агрегатними функціями). У мові SQL визначені такі групові операції:

- Max( ) – вибирає максимальне значення поля;

- Min( ) – вибирає мінімальне значення поля;

- Count( ) – визначає число значень у групі;

- Avg( ) – обчислює середнє значення;

- Sum( ) – обчислює суму значень полів у групі.

Інструкція HAVING застосовується разом з інструкцією GROUP BY і використовується для завдання умов добору для згрупованих даних. Правила запису умов добору аналогічні правилам завдання умов в інструкції WHERE.

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

3. Створення таблиць баз даних

Наступний етап настроювання бази даних - створення таблиць. Це робиться за допомогою SQL-команди CREATE TABLE. Загальна форма оператора CREATE TABLE виглядає у такий спосіб:

CREATE TABLE tablename(columns)

create table books

( customerid int unsigned not null auto_increment primary key,

name char (30) not null,

title char(40) not null,

price char(20) not null

);

Кожна із таблиць створюється окремим оператором CREATE TABLE.

NOT NULL означає, що всі рядки таблиці повинні мати значення в цьому атрибуті. Якщо NOT NULL не зазначене, поле може бути порожнім (NULL).

AUTO_INCREMENT — спеціальна можливість MySQL, яку можна задіяти у числових стовпцях. Якщо при вставці рядків у таблицю залишати таке поле порожнім, MySQL автоматично генерує унікальне значення ідентифікатора. Це значення буде на одиницю більше максимального значення, що вже існує в стовпці. У кожній таблиці може бути не більше одного такого поля. Стовпці з AUTO_INCREMENT повинні бути проіндексованими.

PRIMARY KEY після імені стовпця визначає, що цей стовпець є первинним ключем для таблиці. Дані в цьому стовпці повинні бути унікальними. MySQL автоматично індексує цей стовпець. Помітьте, що раніше, при використанні його с customerid у таблиці customers, без AUTO_INCREMENT не обійшлося. Автоматичний індекс по первинному ключі зберігає індекс, необхідний AUTOJNCREMENT.

Указувати PRIMARY KEY після назви стовпця треба лише тоді, коли ми маємо справу з первинним ключем у вигляді одиночного стовпця.

UNSIGNED після цілочисленого типу означає, що його значення може бути або позитивним, або нульовим.

При створенні будь-якої таблиці необхідно прийняти рішення відносно типів стовпців. У таблиці customers, як позначено в схемі, існує чотири стовпці. Перший, customerid, — це первинний ключ, що визначений безпосередньо. Згідно нашому рішенню, він буде представлятися цілим числом (тип даних int), причому unsigned. Всі інші стовпці будуть містити строкові типи даних. Для них обраний тип char. Він визначає поля фіксованої ширини. Ширина вказується в дужках, тому, наприклад, ім'я складається з 30 символів.

Цей тип даних завжди буде призначати 30 символів для імені, навіть якщо не всі символи будуть використовуватися. Для дотримання необхідного розміру MySQL додасть до даних відповідну кількість пропусків.

Для реальних клієнтів, з реальними іменами й адресами, ширина цих стовпців напевно виявиться недостатньою. Зверніть увагу, що всі стовпці оголошені NOT NULL. Це мінімальна оптимізація, у результаті якої система буде працювати небагато швидше.

4. Робота з базою даних MySQL. Створення бази даних. Бібліотека

Створення бази даних починаємо відкривши сторінку за адресою http://localhost/Tools/phpMyAdmin/.Базу даних називаємо books. Створити. На мові SQL: CREATE DATABASE `books`;


Зробимо однотабличну базу даних. Створимо таблицю, яку назвемо book. Ця таблиця матиме 4 поля.

Конструюємо таблицю: опишемо кожне поле.

CREATE TABLE `books` (`isbn` CHAR(13) NOT NULL ,`author` CHAR(30) NOT NULL, `title` CHAR(60) NOT NULL, `price` FLOAT(4) NOT NULL, PRIMARY KEY (`isbn`));

Заповнюємо таблицю. Після заповнення таблиця має наступний вигляд.

Приклад 1. Створимо сайт Бібліотека.

<html>

<head>

<title>БІБЛІОТЕКА</title>

</head>

<body>

<h1>БІБЛІОТЕКА</h1>

<form action="insert.php" method="post">