- •Технология организации баз данных и знаний
- •Методические указания к выполнению лабораторных работ
- •Методические указания к выполнению лабораторных работ
- •Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. ИнсталляцияMySqLи создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Лабораторная работа № 1
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •4. Указания к выполнению работы
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •3. Указания к выполнению работы
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структурыswitch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива.Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции.Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций.Lab8_0.Php
- •Задание 3. Возврат значений функцией.Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией.Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин.Lab8_3.Php
- •Задание 6. Рекурсивные функции .Lab8_4.Php
- •Задание 7. Функции-переменные.Lab8_5.Php
- •Задание 8. Построение библиотек функций.Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта.Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файлеLab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файлеLab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данныхSelect
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14.Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксисаPhp
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •Содержание
Задание 8. Обновление записей в базе данных (update)
Помимо того, что данные необходимо извлекать из базы данных, их еще необходимо периодически обновлять. Например, иногда требуется повысить цены на книги в базе данных. Это можно сделать, используя оператор UPDATE.
Типовая форма этого оператора выглядит так:
UPDATE tablename
SET columnl=expressionl, column2=expression2,
[WHERE condition]
[LIMIT number]
Основная идея заключается в обновлении таблицы с именем tablename, изменяя каждый указанный столбец column соответствующим выражением expression. Конструкцией WHERE UPDATE можно ограничить до работы с определенными строками, а конструкцией LIMIT обозначить количество строк, которые нужно обновить.
Давайте рассмотрим несколько примеров.
Если мы хотим повысить цену всех книг на 10%, можно воспользоваться оператором UPDATE без конструкции WHERE:
Исходное состояние таблицы BOOKS приведено ниже.
Рис. 3.260. Состояние таблицы BOOKS до модификации данных.
update books
set price=price * 1.1;
Рис. 3.261. Состояние таблицы BOOKS после модификации данных.
Если же требуется изменить одну строку, скажем, адрес некоторого клиента, можно поступить таким образом:
update customers
set address = 'ул. Победы д.7, кв.7'
where customerid = 4;
Так, например, состояние таблицы показанное на рис. 3.248 будет приведено к виду представленному на рис 3.262.
Рис. 3.262. Результат модификации данных в таблице Customers.
Задание 9. Изменение таблиц после создания (ALTER TABLE)
Кроме обновления данных в строках, может потребоваться изменить структуру самой таблицы в базе данных. Для этого применяется очень гибкий оператор ALTER TABLE. Базовая его форма такова:
ALTER TABLE tablename alteration [, alteration ...]
В ANSI SQL один оператор ALTER TABLE может осуществить только одно преобразование, а вот в MySQL подобных ограничений нет. Разные конструкции преобразования могут изменять разные аспекты таблицы.
Типы преобразования, осуществляемые оператором ALTER TABLE, перечислены в таблице на рис. 3.263.
Синтаксис |
Описание |
ADD [COLUMN] column_description [FIRST | AFTER column ] |
Добавить столбец в указанное место (если место не указано, столбец добавляется в конец). Обратите внимание, column_description требует имени и типа, точно так же, как при работе с оператором CREATE. |
ADD [COLUMN] (column_description,column_description, ...) |
Добавить один или несколько столбцов в конец таблицы. |
ADD INDEX [index] (column, ...)(столбцы) таблицы. |
Добавить индекс в указанный столбец |
ADD PRIMARY KEY (column, ...) |
Сделать указанный столбец (ы) первичным ключом таблицы. |
ADD UNIQUE [index] (column, ...) (столбцы) таблицы. |
Добавить уникальный индекс в указанный столбец |
ALTER [COLUMN] column {SET DEFAULT value \ DROP DEFAULT} |
Добавить или удалить значение по умолчанию определенного столбца. |
CHANGE [COLUMN] column new_column_description |
Изменить столбец с именем column так, чтобы он получил указанное описание. Это можно использовать для изменения имени столбца, поскольку column_description включает в себя имя. |
MODIFY [COLUMN] column_description |
Похоже на CHANGE. Используется для изменения типов столбцов, но не имен. |
DROP [COLUMN] column |
Удалить указанный столбец. |
DROP PRIMARY KEY |
Удалить первичный индекс (не столбец!). |
DROP INDEX index |
Удалить указанный индекс. |
RENAME[AS] new_table_name |
Переименовать таблицу. в операторе ALTER TABLE |
Рис. 3.263. Возможные преобразования оператором ALTER TABLE.
Рассмотрим наиболее типичные случаи употребления ALTER TABLE.
Частенько случается так, что Вы вдруг осознаете: какой-то столбец "недостаточно велик", чтобы вместить в себе необходимые данные. Например,в нашей таблице Customers имена и фамилии могут иметь длину до 30 символов. И вскоре может оказаться, что некоторые имена и фамилии слишком длинны и сохраняются в таблице в искаженном виде. Однако это можно исправить, изменив тип данных столбца, после чего он сможет принимать имена и фамилии длиной до 35 символов.
alter table customers
modify name char(35) not null;
Другая часто встречающаяся необходимость связана с добавлением столбца. Представьте, что в каждом регионе существует свой налог с продаж, поэтому магазину приходится учитывать этот налог, но делать это раздельно, поскольку он везде разный. В таблицу Orders потребуется добавить столбец налога:
alter table orders
add tax float(6,2) after amount;
В мониторе результат добавления столбца и состав столбцов таблицы Orders:
Рис. 3.264. Модифицированный состав структуры таблицы Orders.
Иногда какой-нибудь столбец может оказаться лишним. Удалим столбец, который мы только что добавили:
alter table orders
drop tax;