Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Побудова простих запитів СУБД MySQL

Работа добавлена на сайт samzan.net:


ДЕРЖАВНИЙ УНІВЕРСИТЕТ ІНФОРМАЦІЙНО – КОМУНІКАЦІЙНИХ

ТЕХНОЛОГІЙ

ЛЬВІВСЬКИЙ КОЛЕДЖ ДЕРЖАВНОГО УНІВЕРСИТЕТУ

ІНФОРМАЦІЙНО – КОМУНІКАЦІЙНИХ ТЕХНОЛОГІЙ

Навчальна дисципліна: Бази даних

Лабораторія: Комп’ютерних технологій

Розглянуто                                                                                                     Затверджую

на засіданні циклової комісії                                                 Заступник директора з НВР

Обслуговування комп’ютерної техніки

Протокол №___від «___»_________20__р.

Голова комісії ______________Кужій Л.І.                    ___________Плешівський Я.М.

Інструкція

до лабораторної роботи №7

Побудова простих запитів СУБД MySQL

Склала викладач:

Дмитрів Г.Р.

Львів – 2011

Назва лабораторії: Комп’ютерних технологій.

Навчальна дисципліна: Бази даних.

Назва роботи: “Побудова простих запитів”.

Мета роботи: Навчитися будувати прості запити до бази даних за допомогою оператора SELECT. Навчитися отримувати з бази даних необхідну інформацію.

1. Теоретичні положення

СИНТАКСИС  оператора SELECT:

 SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,...

        [FROM tables... [WHERE where_definition] [GROUP BY column,...]

        [ORDER BY column [ASC | DESC], ...] HAVING full_where_definition

        [LIMIT [offset,] rows] [PROCEDURE procedure_name]]

        [INTO OUTFILE 'file_name'... ]

Тут where_definition:

 where_definition:

   where_expr or where_expr [AND | OR] where_expr

where_expr має формат:

 where_expr:

   column_name [> | >= | = | <> | <= | <]

   column_name_or_constant or column_name LIKE column_name_or_constant or

   column_name IS NULL or column_name IS NOT NULL or (where_definition)

ОПИС: 

Оператор SELECT є наріжним каменем усієї мови SQL. Він використовується, щоб виконати запити до бази даних. Це дійсно основа мови SQL. В MySQL версії менше 3.21.x речення WHERE дуже обмежене. HAVING буде працювати там, де речення WHERE нічого не робить. Деякі приклади, які не працюють у реченні WHERE - REGEXP і операторі !. В основному, Ви не можете використовувати функції з WHERE, але Ви можете використовувати функції з HAVING.

HAVING по суті, WHERE стосовно до результатів. Він використовується головним чином для вузької області даних, повернутих запитом. Ви повинні мати права select для використання SELECT.

Найвища ціна. SELECT MAX(price) FROM shop;

+ -------+

| article |

+ -------+

|        4 |

+ -------+

Вся інформація про найдорожчу статтю.

SELECT *

FROM   shop

WHERE  price = ( SELCT MAX(price) FROM shop )

У цьому запиті використовується підзапит – значення поля дорівнює результату вкладеного запиту. На жаль, MySQL "поки що" не підтримує підзапити, тому для вирішення цього завдання необхідно виконати таке: знайти найвищу ціну після чого робити звичайне порівняння : ... WHERE price=знайдена ціна.

  

Найвища ціна за кожну зі статей.

SELECT article, MAX(price) AS price

FROM   shop

GROUP BY article

Цей запит виконає MAX(price) для кожного значення поля article і виведе наступне:

+---------+-------+

|  article | price  |

+ --------+ -------+

|    0001 |  3.99  |

|    0002 | 10.99 |

|    0003 |  1.69  |

|    0004 | 19.95 |

+--------+-------+

Продавець, що продає статтю по найвищій ціні, для кожної статті

SELECT article, dealer, price

FROM   shop s1

WHERE  price = ( SELECT MAX(s2.price)

                 FROM shop s2

                 WHERE s1.article = s2.article )

Найкращим способом виконати це завдання в MySQL є такий:

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

CREATE TEMPORARY TABLE tmp (

        article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,

        price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL);

LOCK TABLES article read;

INSERT INTO tmp SELECT article, MAX(price)

        FROM shop GROUP BY article;

SELECT article, dealer, price FROM shop, tmp

WHERE shop.article=tmp.article AND shop.price=tmp.price;

UNLOCK TABLES;

DROP TABLE tmp;

  

Використання зовнішніх ключів

Єдине, що MySQL не дозволяє робити – це виконувати операцію CHECK для перевірки існування ключа в таблиці; і автоматично видаляти рядки з таблиці з певним зовнішнім ключем.

  

От приклад роботи із зовнішніми ключами.

Створення першої таблиці:

CREATE TABLE persons (

    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,

    name CHAR(60) NOT NULL,

    PRIMARY KEY (id)

);

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

CREATE TABLE shirts (

    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,

    style ENUM(' t-shirt', 'polo', 'dress') NOT NULL,

    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,

    owner SMALLINT UNSIGNED NOT NULL REFERENCES persons,

    PRIMARY KEY (id)

);

Наповнення створених таблиць:

INSERT INTO persons VALUES (NULL, 'Antonio Paz');

INSERT INTO shirts VALUES

(NULL, 'polo', 'blue', LAST_INSERT_ID()),

(NULL, 'dress', 'white', LAST_INSERT_ID()),

(NULL, ' t-shirt', 'blue', LAST_INSERT_ID());

INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska');

INSERT INTO shirts VALUES

(NULL, 'dress', 'orange', LAST_INSERT_ID()),

(NULL, 'polo', 'red', LAST_INSERT_ID()),

(NULL, 'dress', 'blue', LAST_INSERT_ID()),

(NULL, ' t-shirt', 'white', LAST_INSERT_ID());

От що вони тепер містять:

SELECT * FROM persons;

+---+--------------------------+

| id | name                          |

+ --+--------------------------+

|  1 | Antonio Paz               |

|  2 | Lilliana Angelovska   |

+---+--------------------------+

SELECT * FROM shirts;

+ --+--------+--------+-------+

| id | style   | color   | owner |

+---+--------+ -------+--------+

|  1 | polo    | blue    |     1     |

|  2 | dress   | white  |     1     |

|  3 | t-shirt | blue     |     1     |

|  4 | dress   | orange |    2     |

|  5 | polo    | red      |     2     |

|  6 | dress   | blue    |     2     |

|  7 | t-shirt | white   |     2     |

+---+--------+--------+--------+

Тепер можливо виконати запит з об'єднанням цих двох таблиць із ключем id (Всі небілі футболки, що належать людям, чиї імена починаються з 'Lilliana'):

SELECT s.* FROM persons p, shirts s

 WHERE p.name LIKE 'Lilliana%'

   AND s.owner = p.id

   AND s.color <> 'white';

+---+------+---------+--------+

| id | style | color    | owner |

+---+------+---------+--------+

|  4 | dress | orange |      2    |

|  5 | polo  | red       |      2    |

|  6 | dress | blue     |      2    |

+---+-------+--------+--------+

3. Матеріально технічне забезпечення

Вимоги до програмного забезпечення

Необхідна наявність програмних продуктів, перерахованих вище, і ОС, у якій ці продукти досить надійно працюють. Система повинна працювати в ОС – Linux, ОС - Windows 2000 і вище.

Вимоги до апаратного забезпечення

Вимоги для різний реалізацій різко відрізняються, наприклад, для стійкого функціонування зв’язку mysql+php достатньо Pentium 100 з 16Мб ОП (однак для Windows 2000, а також для Linux Mandriva природно вимоги більш високі для якісної роботи, а саме: Pentium III з 256Mб ОП).

4. Правила охорони праці і безпеки життєдіяльності

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

5. Ескізи, схеми, інша наочність

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

6. Підготовка устаткування до роботи

Лабораторна робота проводиться з використанням комп’ютерної техніки. Після отримання допуску до виконання лабораторної роботи студент вмикає комп’ютер і працює у відповідності до інструкції проведення лабораторної роботи.

7. Зміст та послідовність виконання завдання

Ввійти в операційну систему Linux під відповідним користувачем, відкрити консоль. Запустити монітор MySQL в режимі суперкористувача використовуючи команду:

mysql –u root

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

8. Зміст і вимоги до звіту

  1.  Розглянути теоретичні положення лабораторної роботи, а також методичні рекомендації.
  2.  Проробити приклади з виконання запитів до бази даних, відповідно до теоретичних положень.
  3.  Стосовно власних баз даних виконати ряд основних запитів по аналогії з вказаними у теоретичних положеннях і тих які розглядалися на лекціях.
  4.  Зробити висновки з виконання лабораторної роботи.

9. Висновки

Після виконання лабораторної роботи студент оформляє звіт і робить короткі висновки в кінці звіту, щодо досягнення ним мети лабораторного заняття.

10. Контрольні питання

11. Джерела інформації

  1.  Лора Томсон, Люк Веллинг, MySQL. Учебное пособие, изд. "Вильямс", 2005.-304 стр.
  2.  Поль Дюбуа, MySQL (2-е издание), изд. "Вильямс", 2004.-1056 стр.
  3.  Інтернет ресурси.

12. Завдання для самостійної роботи та особливі вказівки

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




1. ТЕМА 4. Теория сравнительных преимуществ и международная торговля
2. Реферат з історії України студентки групи КЗ14 І курсу Факультету міжнародних відносин Сторожук
3. Практическая энциклопедия бухгалтера1
4. Надежда Сценарий праздника Жил был Хармс Подготовила-
5. Детский сад общеразвивающего вида с приоритетным осуществлением деятельности по социальноличностном
6. Лабораторная работа 3
7. Реферат- Насилие в семьях
8. Вольность Руслан и Людмила
9. РЕГИОНАЛЬНЫЙ МНОГОПРОФИЛЬНЫЙ КОЛЛЕДЖ Г.html
10.  52 Константа равновесия Kp равна произведению парциальных давлений газообразных продуктов в сте
11. Дневник памяти Николас Спаркс Дневник памяти OCR Etriel Дневник памяти- АСТ Транзит
12. Инвестиционная привлекательность строительного предприятия
13. а роторный представляющий собой прерывистый процесс искривления ствола скважины последовательными зарезк
14. Дарасун Расположение Регион- Забайкальский край
15. Личные и имущественные правоотношения супругов Студент
16. N 2 О ПРИМЕНЕНИИ СУДАМИ РОССИЙСКОЙ ФЕДЕРАЦИИ ТРУДОВОГО КОДЕКСА РОССИЙСКОЙ ФЕДЕРАЦИИ в ред
17. В Израиле тоже есть расходе выражение
18. Исследование и оценка финансовой устойчивости ООО
19. тема НАССР 5
20. Элиты общероссийские партии местные избирательные системы