Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 1503 Лабораторна робота 15 на тему База даних Mysql

Лабораторна робота 15 на тему База даних Mysql

« Назад

Лабораторна робота 15

Тема: База даних Mysql

Мета: Навчитись створювати бази даних, заносити дані, створювати запити, знищувати дані.

Хід роботи

Усі сучасні web-сервіси використовують бази даних, у них зберігають списки зареєстрованих користувачів. У пакеті Denver входить база даних Mysql.

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

Якщо ви знайомі з базами даних, наприклад з MS Access, що входити в MS Office, то ви знаєте, що всі дані в базі даних зберігаються у зв'язаних таблицях. Кожна таблиця містить набір полів, кожне може зберігати інформацію одного типу. Якби створювали базу даних в MS Access, то таблиця повинна мати наступні поля:

назва

тип поля

1. 

ідентифікатор

лічильник

2. 

прізвище ім'я

текстове

3. 

е-mail

текстове

4. 

дата народження

дата/час

5. 

інформація про учня

поле МЕМО

6. 

рік вступу в школу

числовий

Тут необхідні невеликі пояснення:

  • у таблиці повинно бути поле, значення якого унікально для кожного запису. Найпростіший спосіб створення такого поля - це довірити цю роботу самій базі даних, поле типу «лічильник» буде формуватися автоматично і буде приймати значення 1, 2, 3 і т.д.

  • поле «МЕМО» містить текстову інформацію великого обсягу на відміну від просто «текстового» поля, розмір якого обмежено 255 символами.

  • Поле «рік вступу в школу» зробити типом дата/час не зручно, тому що доведеться заповнювати не тільки рік, але й місяць, і день вступу.

База даних Mysql також оперує таблицями, полями, типами полів. Для цього в командному рядку Windows (кнопка Пуск – Виконати cmd) наберіть команду для запуску бази даних. Зверніть увагу, запуск Mysql походить із ВІРТУАЛЬНОГО диска, у наведеному прикладі це диск Z.

Z:\>cd usr     
Z:\usr>cd local    
Z:\usr\local>cd mysql-5.5    
Z:\usr\local\mysql-5.5>cd bin    
Z:\usr\local\mysql-5.5\bin>mysql -u root -p    
Enter password:         
Welcome to the Mysql monitor.  Commands end with ; or \g.    
Your Mysql connection id is 1    
Server version: 5.0.45-community-nt Mysql Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.    
mysql>

Параметри -u root -p, повідомляють, що запуск походить від імені суперкористувача root з порожнім паролем.

Уся робота з базою даних відбувається не через звичний графічний інтерфейс, а через командний рядок (рисунок 1)!

Спосіб роботи з Mysql - це використання утиліти Phpmyadmin, яка входить в Denver, і доступна за адресою http://localhost/phpmyadmin. Уся робота відбувається через web-інтерфейс. Подібні утиліти є на багатьох віддалених серверах, на яких ви будете розміщати ваші сайти

Команди Mysql

Усі команди друкуються на консолі. Запам'ятайте прості правила:

  • Рядок у консолі починається із символів mysql>.

  • Команди можуть бути досить довгими, і ви можете натискати на клавішу Enter, переносячи команду на наступний рядок. Для завершення і виконання команди необхідно поставити символом «крапка з коми».

  • У випадку, якщо ви ввели команду неправильно, на екрані з'явиться повідомлення про помилку з коментарем Mysql.

  • Для того, щоб не набирати всю команду заново, ви можете нажати на клавіатурі кнопку зі стрілкою нагору, викликати попередню команду, а після внести в неї виправлення.

  • Відповідь консолі «Query OK (0.03 sec)» повідомляє, що команда успішно виконана.

Часто використовувані команди:

show databases; (команда, що показує вже існуючі бази даних). Відповідь консолі представлено на рисунку 2.

Ви бачите, що в цей момент у користувача створено три бази даних.

create database name; (створити базу даних name) Замість «name» ви повинні ввести ім'я вашої нової бази даних. При цьому створюється порожня база, що не містить ні яких таблиць. При цьому Denver створить у каталозі C:\Webservers\usr\local\mysql\data порожній каталог з іменем вашої бази даних. Ви можете використовувати цей каталог з усім умістом для переносу своїх баз із комп'ютера на комп'ютер.

use name; (перейти до бази даних «name») Ту ж саму команду можна записати коротше: \u name

drop database name; (вилучити базу даних name) При цьому буде вилучений каталог, у якім зберігалася база даних з усім умістом. Ні яких додаткових питань при видаленні Mysql задавати не буде, так що будьте уважні.

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

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

mysql> create table student (id_student int not null auto_increment, 
name varchar(50),
birthday date,       
info text,       
e_mail varchar(50),
yare int,
primary key (id_student));  
Query OK, 0 rows affected (0.06 sec)

У даному прикладі створена таблиця student, що містить шість полів. У першому рядку ми задали ім'я таблиці. Далі йде опис поля id_student, воно повинне бути цілим (int), не може бути порожнім (not null) і автоматично збільшуватись на одиницю для кожного нового запису (auto_increment). Це - аналог поля типу «лічильник» в MS Access. Поле name містить текст довжиною в 50 символів, поле birthday має тип дата (у ньому зберігається інформація виду 2006-08-24). Поле info може містити фрагмент тексту великого обсягу. Останній рядок задає ключове поле (id_author), через яке дана таблиця може зв'язуватися з іншими таблицями.

Увага! Назва бази даних і всі поля ОБОВ'ЯЗКОВО пишіть латиницею, без пробілів.

На віддалених серверах, як правило, дозволяється використовувати тільки одну базу даних (додаткові бази за додаткові гроші). А кількість таблиць у базі не обмежено, тому в одній базі зберігають усі таблиці. Щоб працювати з ними було зручно, усім таблицям для одного сервісу використовувати однотипні назви, наприклад: school_students, school_teachers і т.п.

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

mysql> describe student;

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

mysql> describe student; 
6 rows in set (0.00 sec)   mysql>

Для додавання даних у таблиці існує універсальна мова SQL

Sql-запити

Абревіатура SQL розшифровується, як Structure Query Language - Структурована мова Запитів. За допомогою цієї мови ви можете витягти інформацію з будь-якої сучасної бази даних. Основні групи запитів.

Додавання даних у таблицю

Дана команда додає в таблицю user запис про учня. Повинні бути перераховані всі поля, у тій послідовності, як вони створювалися за допомогою команди create table. Тому що перше поле id_student формується автоматично, ми не повинні самі додавати значення, це зробить параметр null. Поля «інформація про учня» і «e-mail» залишені порожніми, але вони однаково повинні бути зазначені в запиті. У даному запиті використовували російські букви, але необхідно пам'ятати, що Mysql підтримує кодування koi-8, тому при виводі даних у браузері з такими символами будуть проблеми. Якщо команда набрана правильно, ви одержите відповідь:

Query OK, 1 row affected (0.33 sec)

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

Вибір даних

mysql> SELECT * FROM student;

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

mysql> SELECT * FROM student WHERE yare > 2001;

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

mysql> SELECT * FROM student ORDER BY name;

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

mysql> SELECT * FROM student ORDER BY binary(lower(name));

Видалення даних

mysql> DELETE FROM student WHERE id_ student = 5;

Даний запит видаляє запис із таблиці для учня, у якого ідентифікатор рівний п'яти.
Наступний запит вилучить усі записи з таблиці:

mysql> DELETE FROM student WHERE id_ student >= 1;

Зміна даних

Запит на зміну даних у запису з ідентифікатором id_student рівному чотирьом. Можна змінити одне або кілька полів у даного запису. Порядок змінюваних полів у запиті значення не має.

Практичні завдання

  1. У режимі командного рядка створіть базу даних «users», яка повинна містити інформацію про зареєстрованих користувачів сайту. Обов'язкові поля: ім'я клієнта, логін, пароль, e-mail, додаткова інформація. Ви можете доповнити список полів за своїм розсудом. У режимі командного рядка заповните не менш п'яти записів у створеній вами таблиці.

  2. Напишіть sql-запит для виводу усіх користувачів, у яких порожній пароль.

  3. (*) Запустите Denver, запустите утиліту Phpmyadmin, http://localhost/phpmyadmin. Навчитеся створювати базу даних, створювати в них таблицю.

  4. Як запустити консоль Mysql?

  5. Як довідатися, які бази даних доступні вам на вашому комп'ютері?

  6. Що означає символ зірочки в запиті на вибірку даних?

  7. Як за допомогою одного запиту вилучити всі дані з таблиці?

  8. Які Sql-Запити ви довідалися в цьому уроці?

Питання для самоконтролю

Що відбувається на жорсткому диску комп'ютера при створенні нової бази даних? Нової таблиці?

З повагою ІЦ "KURSOVIKS"!