ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.08.2020
Просмотров: 1889
Скачиваний: 3
ALTER TABLE clients ADD PRIMARY KEY (nk);
Як первинний ключ не можна використовувати поле, що допускає значення NULL. Створити первинний ключ можна й простіше - при побудові таблиці в такий спосіб:
CREATE
TABLE clients
(
nk
int NOT NULL,
fio
varchar(50) NOT NULL,
addr
varchar(55) NOT NULL,
city
varchar(20) NOT NULL,
phone
varchar(8) NOT NULL,
gr
INT NOT NULL,
PRIMARY KEY (nk)
);
Таблиця orders містить відомості про замовлення. По полю nk у цій таблиці ідентифікується замовник. Припустимо, що в таблицю orders хтось увів значення, якого немає в таблиці clients. Щоб не допустити подібної ситуації, варто використовувати запит для створення зовнішнього ключа:
ALTER TABLE orders ADD FOREIGN KEY(nk) REFERENCES clients;
Такий зв'язок називається декларативною цілісністю бази даних. Команда ALTER використовується не тільки для додавання ключів, але й для реорганізації таблиці в цілому. Наприклад, можна додати в таблицю нове поле email:
ALTER TABLE clients ADD email VARCHAR(20) NULL;
Зверніть увагу, що ви не можете додати нове поле зі значенням NOT NULL у таблицю, у якій уже є дані.
За допомогою ALTER можна ввести список обмежень на значення, що вводяться. Наприклад, якщо компанія працює тільки із клієнтами Києва, Донецька і Запоріжжя, то доцільно ввести список припустимих значень для таблиці clients:
ALTER TABLE
clients
ADD
CONSTRAINT INVALID_STATE SHECK (city
IN ('Київ', 'Донецьк', 'Запоріжжя' ));
Видалення полів і таблиць. Оператор DROP
Видалити поле можна командою ALTER. Наприклад, видалити поле email з таблиці clients можна командою:
ALTER TABLE clients DROP email;
А видалити таблицю ще простіше:
DROP clients;
Відключення від СУБД
Використовуючи запит DISCONNECT, можна відключитися від використовуваної бази даних, а потім, використовуючи запит CONNECT, підключитися до іншої бази даних. У деяких серверах SQL запит DISCONNECT не працює, а замість CONNECT застосовується запит USE.
При використанні PHP для відключення від сервера MySQL існує функція _close(), а для підключення до сервера MySQL використовується функція mysql_connect(). Ці функції будуть докладніше розглянуті в наступних розділах.
3 РОЗРОБКА Й РЕДАГУВАННЯ БД ЗА ДОПОМОГОЮ PHPMYADMIN
3.1 Створення БД і таблиць за допомогою phpMyAdmin.
Робота з базою даних у режимі командного рядка вимагає певних навичок і знань. Набагато зручніше створювати й редагувати БД за допомогою спеціальних програм оболонок для mysql. Найбільш відома з них phpMyAdmin. Програма має інтуїтивно зрозумілий інтерфейс і проста в освоєнні. Для того, щоб запустити phpMyAdmin, необхідно спочатку запустити DENWERR, потім відкрити браузер і в командному рядку набрати http://localhost/Tools/phpmyadmin/. Відкриється стартова сторінка програми:
Рис. 3.1 - Стартова сторінка phpMyAdmin
На лівій панелі в списку, що виникає, вибирається база даних, з якою збираємося працювати. Праворуч - інструменти для створення нової бази даних. Наприклад, створимо базу даних library. У текстовому полі Создать новую БД набираємо library. У списку Сравнения вибираємо cp1251_general_ci і натискаємо Создать.
Рис. 3.2 - Діалогове вікно створення нової БД
База даних створена. У верхній частині правої панелі відображається SQL-Запит для створення БД, що згенерував phpMyAdmin.
У нижній частині правої панелі представлені інструменти для створення таблиць. Для створення таблиці необхідно вказати ім'я таблиці, кількість полів і натиснути кнопку Пошел. У наступному вікні необхідно прописати назви полів, тип полів, атрибути та ін. Створимо таблицю book з такими полями:
inv - інвентарний номер;
autor - автор книги;
nazv - назва книги;
izdat - видавництво;
gorod - місто видання;
year - рік видання;
price - вартість книги.
Рис. 3.3 - Створення структури таблиці
У правій частині - кнопки для налаштування атрибутів і редагування властивостей обраних полів.
Тепер заповнимо таблицю відповідними записами. Для цього натискаємо кнопку Вставить й у вікні, що відкрилося, прописуємо значення полів для таблиці. У цьому вікні можна заповнити відразу два рядки таблиці. Після заповнення полів натискаємо кнопку Обзор для перегляду сформованої таблиці.
Рис. 3.4 - Перегляд таблиці
Заповнювати таблиці можна й іншим шляхом, підготувавши інформацію в текстових файлах, а потім імпортувати їх. Для цього в основному меню треба вибрати Структура, а потім в нижній частині вікна, що з'явилося, натиснути Вставить текстовые файлы в таблицю та дотримуватись подальших інструкцій.
Аналогічно створюємо таблицю reader (читачі) з інформацією про читачів:
n_bil - номер квитка;
fio - прізвище, ім'я, по батькові;
addres - адреса;
tel - телефон;
і таблицю abonement (абонемент) з інформацією про видані книги
inv - інвентарний номер;
n_bil - номер читацького квитка;
data_vid – дата видачі;
data_vozvr – дата повернення.
Можна встановити зв'язок між таблицями, скориставшись інструментом Связанный вид у вікні Структура. Так, таблиці Book і abonement зв'язуємо по полю inv, а таблиці reader і abonement - по полю n_bil.
За необхідності можна зробити оновлення, видалення, перейменування й інші операції для таблиць і полів, скориставшись відповідними опціями меню й інструментами.
PhpMyAdmin дозволяє протестувати запити на вибірку даних і інші SQL-запити. Для цього треба скористатися елементами меню Поиск і SQL. Наприклад, знайдемо книги, які випущені видавництвом «Питер» після 2000 року. Для цього вибираємо меню Поиск і формуємо бланк запиту
Рис. 3.5 - Вікно формування запиту
Результати виконання запиту показані на рис. 3.6.
Рис. 3.6 - Результат виконання запиту
3.2 Резервне копіювання БД
З метою забезпечення безпеки й збереження інформації, а також при переносі бази даних на інший комп'ютер доводиться робити копіювання бази даних у зовнішній файл, або, як говорять програмісти, зняти дамп БД. Для виконання цієї процедури необхідно:
-
Виберіть ту БД, дамп якої Ви хочете отримати.
-
Натисніть на закладку Экспорт.
-
У лівому полі Экпорт клацніть по посиланню Отметить все.
-
У поле Данные поставте позначку Полная вставка.
-
Поставте позначку Послать. Якщо цього не зробити, дамп буде створений, але Ви його не побачите у вигляді файлу.
-
Радіокнопка Сжатие дозволяє стиснути дамп (особливо це актуально, якщо дамп нараховує десятки мегабайтів і більше) і одержати його у вигляді zip або gzip архіву.
-
Натисніть кнопку Пошел.
Рис. 3.7 - Вікно створення дампа БД
Далі вказуємо місце для збереження файлу.
3.3. Завантаження дампа в базу
Операція, обернена експорту.
-
Відкрити phpMyAdmin на комп'ютері, куди переноситься база даних.
-
Вибрати БД, у яку потрібно імпортувати дамп. Якщо БД не існує, то її потрібно створити. Важливо пам'ятати, що БД повинна бути порожньою, без таблиць. У протилежному випадку phpMyAdmin просто додасть дані до уже існуючих таблиць, приписавши їх знизу.
-
Натиснути на закладку SQL. На деяких версіях phpMyAdmin для цієї мети є ще одна закладка, що так і називається: Импорт. У поле Или (воно друге зверху) натискаємо кнопку Обзор. Відкриється вікно Провідника, у якому треба вказати шлях до файлу дампа.
-
Відзначити перемикач Автодетект. Це допоможе phpMyAdmin правильно визначити формат файлу з дампом.
-
Вибрати кодування cp1251 .
-
Натисніть кнопку Пошел і дочекайтеся повідомлення про успіх.
Рис. 3.8 - Вікно імпортування БД
4 КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ ПРО PHP
4.1 Основні положення
PHP - це мова вбудованих в HTML-сторінки сценаріїв, що виконуються на сервері. Синтаксис запозичений з таких мов, як С, Perl, Java, і при цьому додана маса можливостей, яких цим мовам бракує.
Основні переваги РНР:
-
безкоштовна;
-
постійно вдосконалюється;
-
працює на UNIX і Windows платформах;
-
має широкий набір функцій (більше 3 тис.);
-
припускає об’єктно-орієнтоване програмування.
Головним достоїнством РНР є здатність роботи з базами даних (MySQL, PostgreSQJL, InterBase, MS SQL і ін.).
Для тестування PHP скриптів необхідно встановити веб-сервер і інтерпретатор PHP. Можна скористатися пакетом Denwer (http://denwer.ru), який уже містить всі необхідні компоненти й настройки. Усі подальші коментарі припускають, що на вашій локальній машині встановлений пакет Denwer у директорію С:\WebServers\.
Файли з HTML кодом, які містять РНР код, повинні мати розширення .php. Тіло скипта обрамляється символами <?php і ?>. Скрипт може вбудовуватись в будь-яке місце HTML коду, більше того, РНР скрипти можуть чергуватися з HTML кодом. На відміну від сценаріїв, написаних на javascript, PHP скрипти виконуються не браузером, а сервером, тому кінцевий користувач відкриває в браузері вже остаточно згенерований сервером HTML код сторінки, у якому відсутні елементи PHP коду. Наприклад, для того, щоб переконатися в тому, що РНР сценарії обробляються, напишемо найпростіший код
<html>
<head>
<title>Приклад</title>
</head>
<body>
<?php
echo "Привіт, я - скрипт PHP!";
?>
</body>
</html>
Далі зберігаємо файл з ім'ям index.php у папці C:\WebServers\home\site1\www\. Потім запускаємо Denwer і в адресному рядку браузера набираємо http://site1, після чого у вікні браузера спостерігаємо текст
Привіт, я - скрипт PHP!
Неважко здогадатися, що оператор echo здійснює виведення інформації на екран. Аналогічно діє команда print.
Якщо тепер подивитися HTML код сторінки, ми побачимо таке
<html>
<head>
<title>Приклад</title>
</head>
<body>
Привіт, я - скрипт PHP!
</body>
</html>
Як бачимо, сервер обробив скрипт, згенерував HTML код сторінки й жодних слідів від РНР не залишилося. Більше того, у РНР скрипт можна впакувати всю сторінку
<?phpecho "<html><head>"; echo "<title>Приклад</title>"; echo "</head>"; echo "<body>"; echo " Привіт, я - скрипт PHP!”;echo "</body>"; echo "</html>"; ?>
Результат буде таким самим.
При написанні програм на РНР, наприкінці кожного виразу необхідно ставити крапку з комою. Коментарі обрамляються сиволами /* і */. Однорядкові коментарі пишуть після комбінації //.
Далі розглянемо основні конструкції мови РНР.
4.2 Змінні в PHP
Імена змінних починаються зі знака $, після якого повинна слідувати буква. Імена змінних чутливі до регістра букв: наприклад, $var - не те ж саме, що $Var або $VAR. Ім'я змінної може складатися з будь-яких символів ASCII, код яких більше 127. Однак кириличні символи використовувати все-таки не рекомендується.
Важливою перевагою PHP є те, що в PHP не потрібно описувати змінні явно, та вказувати їхній тип. Інтерпретатор все це робить сам. Однак іноді він може помилятися (наприклад, якщо в текстовому рядку насправді задане десяткове число), тому зрідка виникає необхідність явно вказувати, який же тип має той або інший вираз.
Для роботи зі змінними в PHP є спеціальні функції:
isset() - перевіряє, чи була оголошена змінна й чи відрізняється її значення від NULL;
empty() - аналог isset();
unset() - убудована функція мови, що видаляє значення змінної й видаляє саму змінну зі списку доступних змінних.
4.3 Типи даних (змінних) в PHP
PHP підтримує 8 базових типів даних:
-
4 скалярні типи:
boolean. Логічний тип даних, змінні цього типу можуть набувати значення true (правда) або false (неправда).
integer. Цілочисельний тип даних, змінні можуть набувати цілі значення (...-2, -1, 0, 1, 2...) у діапазоні від -2^31 до +2^31. Якщо значення перевищує цей поріг - воно автоматично переводиться в тип float.
float. Числовий тип даних із плаваючою точкою, може містити як цілі, так і дробові величини.
string. Строковий тип даних. Містить довільну кількість різних символів. PHP не накладає ніяких обмежень на довжину рядка.
-
2 комплексних типи:
array. Масив, містить упорядкований список елементів.
object. Об'єкт, містить якийсь об'єкт (екземпляр класу).
-
2 спеціальні типи:
resource. Посилання на абстрактний елемент, т.зв. зовнішній ресурс. Приклади зовнішніх ресурсів - посилання на файл і посилання на результат виконання запиту.
NULL. Порожній тип даних, що позначає відсутність якого-небудь значення. Про такі значення звичайно говорять "не визначене". Порожнім значенням можна ініціалізувати змінні будь-якого іншого типу.
Є функція gettype(), що повертає тип, який РНР призначив для змінної. Існує також функція settype(), що явно встановлює тип.
Трохи докладніше розглянемо масиви, оскільки при взаємодії з базами даних доводиться оперувати з масивами.
Існує два типи масивів, що відрізняються за способом ідентифікації елементів.
У масивах першого типу елемент визначається індексом у послідовності. Такі масиви називаються простими масивами. Нумерація починається з нуля.
Ініціалізація масиву здійснюється двома способами.
а) Поелементно.
$mass[0] = "Нуль";
$mass[1] = "Один";
$mass[2] = "Два";
$mass[3] = "Три";
Крім того, можна не вказувати індекс. PHP автоматично привласнить елементу індекс останнього елемента плюс один, тобто додасть елемент у кінець масиву.
$mass[] = "Нуль";
$mass[] = "Один";
$mass[] = "Два";
$mass[] = "Три";
б) Можна вказати всі елементи масиву відразу.
$mass = array ("Нуль", "Один", "Два", "Три");
Масиви другого типу мають асоціативну природу, і для звертання до елементів використовуються ключі, логічно пов’язані зі значеннями. Такі масиви називають асоціативними масивами. Основною відмінністю асоціативних масивів від списків є можливість звертання до елементу масиву не по числовому індексу, а по індексу у вигляді рядка. Індекси асоціативного масиву називаються ключами.