- •Практическое занятие №3 Работа с сервером MySql при помощи терминального клиента mysql.Exe Теоретические сведения Введение
- •Подсоединение к серверу и отсоединение от него
- •Создание пользователей MySqLи назначение прав доступа
- •Использование mysqlв пакетном режиме
- •Выполнение запросов
- •Создание и выбор базы данных
- •Работа с таблицами Типы данных столбцов
- •Просмотр существующих таблиц
- •Создание таблицы
- •Просмотр структуры таблицы
- •Модификация структуры таблицы
- •Переименование таблицы
- •Добавление данных в таблицу
- •Обновление (модификация) данных в таблице
- •Удаление строк в таблице
- •Удаление таблицы
- •Определение ключей в бд Определение первичных ключей
- •Определение внешних ключей
- •Задание
- •Содержание отчета
Обновление (модификация) данных в таблице
Оператор UPDATEобновляет столбцы в соответствии с их новыми значениями в строках существующей таблицы. В выраженииSETуказывается, какие именно столбцы следует модифицировать и какие величины должны быть в них установлены. В выраженииWHERE, если оно присутствует, задается, какие строки подлежат обновлению. В остальных случаях обновляются все строки.
UPDATE имя_таблицы SET имя_столбца=выражение [, имя_столбца=выражение ...] [WHERE условие];
Следующий оператор обновляет значение в одной строке таблицы:
UPDATE parts SET weight=105 WHERE part_name=’Screw’;
Удаление строк в таблице
Оператор DELETEудаляет строки существующей таблицы. В выраженииWHERE, если оно присутствует, задается, какие строки подлежат удалению. В остальных случаях удаляются все строки.
DELETE FROM имя_таблицы [WHERE условие];
Следующие операторы удаляют сначала одну а затем все остальные строки таблицы parts:
delete from parts where part_id=4;
delete from parts;
Удаление таблицы
Оператор DROP TABLEудаляет одну или несколько таблиц. Все табличные данные и определения удаляются, так что будьте внимательны при работе с этой командой!
Следующий оператор удаляет таблицу parts:
DROP TABLE имя_таблицы [, имя_таблицы...];
Можно использовать расширенный синтаксис оператора, который удаляет таблицу только в том случае, если таблица существует:
DROP TABLE IF EXISTS имя_таблицы [, имя_таблицы...];
Данный синтаксис может оказаться полезным при написании сценариев, т.к. в противном случае при попытке удалить несуществующую таблицу сценарий завершится с ошибкой.
Определение ключей в бд Определение первичных ключей
Первичным ключом называю атрибут или набор атрибутов отношения (таблицы), однозначно идентифицирующий кортеж отношения (строку).
Ключи могут быть определены как при создании таблицы в операторе CREATETABLE, так и после этого в процессе модификации структуры таблицы в оператореALTERTABLE. Ниже приводятся примеры использования указанных операторов для определения первичных и внешних ключей.
Определение первичного ключа при создании таблицы parts:
CREATE TABLE Parts
(Part_ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
Part_name VARCHAR(80),
Material VARCHAR(80),
WeightINTEGER CHECK (WEIGHT>0));
Определение первичного ключа после создания таблицы parts:
ALTER TABLE Parts ADD PRIMARY KEY (Part_ID);
После определения первичного ключа для него необходимо задать атрибуты NOT NULL и AUTO_INCREMENT при помощи команды ALTER TABLE:
ALTER TABLE Parts CHANGE Part_ID Part_ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT;
Описание созданной таблицы, полученное при помощи DESCRIBE:
Определение внешних ключей
Определение внешнего ключа при создании таблицы Delivery:
CREATE TABLE Delivery
(Part_ID INTEGER UNSIGNED,
Quantity INTEGER CHECK (Quantity >0),
FOREIGN KEY (Part_ID) REFERENCES Parts (Part_ID));
Определение внешнего ключа при модификации таблицы Delivery:
ALTER TABLE DELIVERY ADD FOREIGN KEY (Part_ID) REFERENCES Parts(Part_ID);
Описание созданной таблицы, полученное при помощи DESCRIBE:
Задание
Запустить командную строку cmd.exeи перейти в каталог, где находится файлmysql.exe.
Подключиться к серверу MySQL, запустив программуmysql.exeсо следующими параметрами (host– имя хоста сервера,user– Ваш логин):
mysql -h host -u user –p
Установить пароль для доступа к серверу MySQL:
Set password for<имя_пользователя> =password('<пароль>');
Выполните запрос для получения версии MySQL-сервера, текущей даты и времени, имени текущего пользователя:
select version(), now(), current_date, current_time, user();
Создать базу данных с указанным преподавателем именем:
create database <имя_базы>;
Выполнить запрос для просмотра существующих БД:
show databases;
Выполнить команду для подключения к вашей базе данных:
USE<имя_базы>;
Закрыть соединение с сервером и выйти из программы mysql.exe
exit;
Написать командный файл (*.bat) для определения параметров соединения и запускаmysql.exe. Запуститьmysql.exeпри помощи созданного командного файла.
Написать сценарий (набор SQL-команд) для создания базы данных «Предприятие». Концептуальное описание БД «Предприятие»:
База данных «Предприятие» содержит информацию о работе некоторого промышленного предприятия, которое осуществляет сборку изделий (проектов) из деталей. В базе данных присутствуют следующие сущности: Детали, Проекты, Поставщики, Поставки, Города. Таблица «Детали» содержит описания деталей. Поля: Номер_детали, Наименование, Материал, Вес. Таблица «Поставщики» содержит описания организаций, поставляющих детали. Поля: Номер_поставщика, Наименование, Номер_города. Таблица «Проекты» содержит описание проектов (сборочных изделий). Поля: Номер_проекта, Наименование, Номер_города. Таблица «Города» содержит описание городов, в которых могут находиться проекты и поставщики. Поля: Номер_города, Наименование. Каждый проект содержит некоторое количество различных деталей, поставляемых различными поставщиками в определенном количестве. Проект рассматривается как совокупность поставок. Таблица «Поставки» содержит записи о типе, количестве деталей и цене одной детали, поставляемых определенным поставщиком для определенного проекта. Поля: Номер проекта, Номер_поставщика, Номер_детали, Количество, Цена.
В сценарии необходимо определить первичные и внешние ключи в таблицах. Для генерации значений первичных ключей использовать спецификатор AUTO_INCREMENT. Задать для первичных ключей требование обязательности данных NOT NULL. Задать для полей ВЕС, КОЛИЧЕСТВО и ЦЕНА беззнаковый целочисленный тип.
Внести в сценарий операторы заполнения таблиц тестовыми данными (не менее 5-и строк в каждой таблице). Запустить сценарий в пакетном режиме. При необходимости произвести отладку (устранение ошибок).
Написать сценарий для удаления всех данных и всех таблиц в БД. Запустить сценарий в пакетном режиме. При необходимости произвести отладку (устранение ошибок).