Загрузил Усон Молдодосов

Лабораторная работа №2

реклама
Министерство образования и науки РФ
ФГБОУ ВО Алтайский государственный университет
Физико-технический факультет
Кафедра вычислительной техники и электроники
Базы данных. Open Server Panel.
Методические указания
Барнаул 2018
Базы данных. Open Server Panel.
1. Вспомогательные материалы
1.1.
Open Server Panel (OSPanel)
Open Server Panel — это портативная серверная платформа и программная среда,
созданная специально для веб-разработчиков с учётом их рекомендаций и пожеланий.
Программный комплекс имеет богатый набор серверного программного обеспечения,
удобный, многофункциональный продуманный интерфейс, обладает мощными
возможностями по администрированию и настройке компонентов. Платформа широко
используется с целью разработки, отладки и тестирования веб-проектов, а так же для
предоставления веб-сервисов в локальных сетях.
Хотя изначально программные продукты, входящие в состав комплекса, не
разрабатывались специально для работы друг с другом, такая связка стала весьма
популярной среди пользователей Windows, в первую очередь из-за того, что они получали
бесплатный комплекс программ с надежностью на уровне Linux серверов..
Идея проекта Open Server заключается в независимости от рабочего места. Обычный
разработчик часто зависит от конкретного компьютера, от операционной системы и
программ установленных на этом компьютере, и даже от дома или офиса где находится этот
компьютер. Open Server призван освободить вас и ваши программы от подобных неудобств,
он сделает вас по-настоящему свободным и независимым разработчиком.
Вы получите набор портативных (не требующих установки) программ на все случаи
жизни. И конечно же вы получите мощную серверную платформу, где вы сможете
комфортно заниматься разработкой веб-проектов. Вам больше не нужно думать за каким
компьютером вы работаете, за своим, на работе или используете ноутбук коллеги. Вам
больше не нужно тратить время на поиск и установку программ если пришлось
переустановить Windows — нужно только подключить внешний диск или флэшку с Open
Server и все ваши программы тут как тут!
Если Open Server необходим вам только как замена таким программам как Denwer,
Vertrigo, Xampp и т.д., то вы можете смело воспользоваться версией Mini, которая содержит
только серверную часть платформы.
Сайт проекта: https://ospanel.io/
1.2.
phpMyAdmin
phpMyAdmin – это приложение, написанное на PHP и обеспечивающее полноценную, в
том числе удаленную, работу с базами данных MySQL через браузер. Так как phpMyAdmin
позволяет во многих случаях обойтись без непосредственного ввода команд SQL, то работа с
2
базами данных становится вполне посильной задачей даже для человека весьма
поверхностно знакомого с MySQL.
Активное использование MySQL в веб-программировании обусловило его
актуальность, а интуитивно понятный интерфейс в совокупности с широкой
функциональностью и поддержкой более 60 языков (в т.ч. и русского) обеспечило ему
популярность среди веб-разработчиков.
phpMyAdmin по-русски: http://php-myadmin.ru
Страница проекта: http://phpmyadmin.net
1.3.
Создание таблиц
В простейшем случае синтаксис создания таблицы выглядит следующим образом:
CREATE TABLE <имяТаблицы>
(<список имен столбцов (атрибутов) и их типов>);
Например, CREATE TABLE l5_test (c1 NUMERIC, c2 CHAR(35));
В таблице 1 описаны типы данных при создании таблиц БД.
Таблица 1
#
1
2
Тип данных Использование
Диапазоны
TINYINT
Очень маленькое Диапазон числа со знаком от –128 до 127. Диапазон числа
целое число
без знака (unsigned) от 0 до 255.
SMALLINT
Маленькое целое Диапазон числа со знаком от –32768 до 32767. Диапазон
число
числа без знака (unsigned) от 0 до 65535.
3
MEDIUMIN Среднее
T
число
4
INT
или
Целое число
INTEGER
5
целое Диапазон числа со знаком от –8388608 до 8388607.
Диапазон числа без знака (unsigned) от 0 до 16777215.
Диапазон числа со знаком от –2147483648 до 2147483647.
Диапазон числа без знака (unsigned) от 0 до 4294967295.
BIGINT
Большое
число
FLOAT
Малое
(одинарной
точности) число
с плавающей
запятой. Не может
быть числом без
6
целое
Диапазон числа со знаком от –9223372036854775808 до
9223372036854775807. Диапазон числа без знака (unsigned)
от 0 до 18446744073709551615.
Диапазоны от –3.402823466E+38 до –1.175494351E-38, 0 и
1.175494351E-38 до 3.402823466E+38.
Тип FLOAT обычно используется для представления
приблизительных числовых типов данных. Стандарт
ANSI/ISO SQL92 допускает факультативное указание
точности (но не интервала порядка числа) в битах в
3
#
Тип данных Использование
знака
Диапазоны
круглых скобках, следующих за ключевым словом FLOAT.
Реализация
MySQL
также
поддерживает
это
факультативное указание точности. При этом если
ключевое слово FLOAT в обозначении типа столбца
используется без указания точности, MySQL выделяет 4
байта для хранения величин в этом столбце. Возможно
также иное обозначение, с двумя числами в круглых
скобках за ключевым словом FLOAT. В этом варианте
первое число по-прежнему определяет требования к
хранению величины в байтах, а второе число указывает
количество разрядов после десятичной запятой, которые
будут храниться и показываться (как для типов DECIMAL
и NUMERIC). Если в столбец подобного типа попытаться
записать число, содержащее больше десятичных знаков
после запятой, чем указано для данного столбца, то
значение величины при ее хранении в MySQL округляется
для устранения излишних разрядов..
Диапазоны
от
-1.7976931348623157E+308
до
2.2250738585072014E-308, 0 и от 2.2250738585072014E308 до 1.7976931348623157E+308.
7
Для типов REAL и DOUBLE PRECISION не
предусмотрены установки точности. MySQL воспринимает
Нормальное
DOUBLE как синоним типа DOUBLE PRECISION - это
(двойной
DOUBLE,
точности) число еще одно расширение стандарта ANSI/ISO SQL92. Но,
вопреки требованию стандарта, указывающему, что
с плавающей
DOUBLE
точность для REAL меньше, чем для DOUBLE
PRECISION запятой. Не может
быть числом без PRECISION, в MySQL оба типа реализуются как 8байтовые числа с плавающей точкой удвоенной точности
знака
(если не установлен ``ANSI-режим''). Чтобы обеспечить
максимальную совместимость, в коде, требующем
хранения приблизительных числовых величин, должны
использоваться типы FLOAT или DOUBLE PRECISION
без указаний точности или количества десятичных знаков.
8
Действительные
DECIMAL(n числа
с
,p),
фиксированной
NUMERIC(n запятой, n-всего
знаков, p- после
,p)
запятой
Начиная с 5.03, в MySQL появилась новая библиотека для
арифметики чисел с фиксированной точкой и изменился
подход к хранению таких чисел. Теперь целая часть и часть
после точки хранятся как 2 отдельных, целых числа.
4
#
Тип данных Использование
Диапазоны
Дата
Дата в диапазоне от «1000-01-01» до «9999-12-31». MySQL
хранит поле типа DATE в виде «YYYY-MM-DD» (ГГГГММ-ДД).
9
DATE
DATETIME Дата и время
Допустимые диапазоны от «1000-01-01 00:00:00» до «999912-31 23:59:59». MySQL хранит поле типа DATETIME
в виде «YYYY-MM-DD HH:MM:SS» (ГГГГ-ММ-ДД ЧЧММ-СС).
TIMESTAM
Дата и время
P
Диапазон от «1970-01-01 00:00:00» до, примерно, 2037
года. MySQL может хранить поле типа TIMESTAMP
в видах «YYYYMMDDHHMMSS» (TIMESTAMP(14)),
«YYMMDDHHMMSS»
(TIMESTAMP(12)),
«YYYYMMDD» (TIMESTAMP(8)) и др.
10
11
12
Диапазон от «-838:59:59» до «838:59:59». MySQL хранит
поле TIME в виде «HH:MM:SS», но позволяет присваивать
значения столбцам TIME с использованием либо строки
или числа.
TIME
Время
YEAR
Год в 2- или 4Если вы используете 4 цифра, то допустимые значения
хцифровом виде
1901-2155, и 0000. Если 2 цифры, то 1970-2069 (70-69).
(4 цифры поMySQL хранит значения поля YEAR в формате «YYYY».
умолчанию)
CHAR
Строка
фиксированной
длины,
которая
справа
дополняются
пробелами
до указанной
длины,
при хранении
VARCHAR
Строка
переменной
длины.
Диапазон длины от 1 до 255 символов. Значения
Примечание:
VARCHAR сортируются и сравниваются без учета
конечные
регистра, если не установлен флаг BINARY.
пробелы
удаляются
при
13
14
15
Диапазон длины от 1 до 255 символов. Завершающие
пробелы удаляются, когда значение извлекается. Значения
CHAR сортируются и сравниваются без учета регистра
в зависимости
от кодировки
по
умолчанию,
если не установлен флаг BINARY.
5
#
Тип данных Использование
Диапазоны
сохранении
(в отличие от
спецификации
ANSI SQL).
16
TINYBLOB,
TINYTEXT
BLOB или ТЕХТ с максимальной длиной 255 (2^8 - 1)
символов.
17
BLOB,
TEXT
BLOB или ТЕХТ с максимальной длиной 65535 (2^16 - 1)
символов.
18
MEDIUMBL
OB,
MEDIUMTE
XT
BLOB или ТЕХТ с максимальной длиной 16777215 (2^24 1) символов.
LONGBLOB
,
LONGTEXT
BLOB или ТЕХТ с максимальной длиной 4294967295 (2^32
- 1) символов.
ENUM
Перечисление
Строка-объект, который может принимать только одно
значение, выбирается из списка значений «значение 1»,
«значение 2» или NULL. ENUM максимум может иметь
65535 различных значений.
Набор
Строка-объект, который может принимать ноль и более
значений, каждому из которых должно быть выбрано одно
из списка значений («значение 1», «значение 2», …) Поле
SET может иметь максимум 64 варианта значений.
19
20
21
SET
Расширенный синтаксис:
CREATE TABLE имя_таблицы
({column|[table_constraint]},[ON COMMIT{DELETE|PRESERVE}ROWS]);
column определяется как:
имя_поля {domain | datatype [size]} [column_constraint…][ DEFAULT
default_value ] [ COLLATE collate_value ]
Фраза ON COMMIT может быть указана только для временных таблиц. По умолчанию
для временных таблиц подразумевается фраза ON COMMIT DELETE ROWS.
После имени таблицы в круглых скобках через запятую указывается список полей
(называемых также столбцами) и ограничений. Каждое поле имеет имя и тип (datatype). Тип
может быть определен как любой допустимый тип языка SQL или как домен.
6
Фраза DEFAULT определяет значение по умолчанию. Это значение имеет более
высокий приоритет, чем значение по умолчанию, указанное в домене (если вместо типа
данных используется домен).
Ограничения для таблицы (table_constraint) и ограничения для столбца
(column_constraint), называемые также ограничениями целостности, накладывают
определенные условия на вводимые в таблицу данные.
Ограничения для столбца указываются непосредственно после описания столбца, а
ограничения для таблицы – через запятую после описания любого столбца.
В стандарте SQL92 ограничения должны иметь имена, которые генерируются СУБД. В
наиболее продвинутых БД, в частности Oracle, доступ к ограничениям возможен
посредством служебных таблиц словаря базы данных и дополнительного набора команд
языка SQL.
Ограничения для столбца могут указываться следующими фразами:

NOT NULL – в любой добавляемой или изменяемой строке столбец всегда
должен иметь значение, отличное от NULL;

UNIQUE – все значения столбца должны быть уникальны;

PRIMARY KEY – устанавливает один столбец как первичный ключ и
одновременно подразумевает, что все значения столбца будут уникальны;

CHECK (condition) – указываемое в скобках условие использует для сравнения
значение столбца и возвращает TRUE, FALSE или UNKNOWN. Если при
попытке выполнения SQL-оператора возвращаемое значение равно FALSE, то
оператор выполнен не будет.
column_constraint определяется как:
[CONSTRAINT constraint_name]{ NOT NULL } | { PRIMARY KEY } | UNIQUE
| { REFERENCES имя_таблицы [(имя_поля .,…) ] [ref_specification]} |
{ CHECK (condition) } | [ INITIALLY DEFFERED | INITIALLY IMMEDIATE ]
[[ NOT ] DEFFERABLE ]
ref_specification определяется как:
[MATCH {FULL | PARTIAL } ] [ ON UPDATE { CASCADE | SET NULL |
SET DEFAULT | NO ACTION } ] [ ON DELETE { CASCADE | SET NULL | SET
DEFAULT | NO ACTION } ]
Ограничения для таблицы могут указываться следующими фразами:
CHECK (condition) – указываемое в скобках условие использует для сравнения
значение столбца и возвращает TRUE, FALSE или UNKNOWN. Если при попытке
7
выполнения SQL-оператора возвращаемое значение равно FALSE, то оператор выполнен не
будет;
FOREIGN KEY (fields_list) – это ограничение по внешнему ключу аналогично
ограничению REFERENCES для столбцов и гарантирует, что все значения, указанные во
внешнем ключе будут соответствовать значениям родительского ключа, обеспечивая
ссылочную целостность. Следует отметить, что типы данных столбцов, используемых в этом
ограничении, должны совпадать, а типы таблиц (постоянная базовая таблица, глобальная
локальная временная таблица, локальная временная таблица) родительского и внешнего
ключа - соответствовать друг другу.
Стандарт SQL92 позволяет устанавливать режим контроля ограничений как перед
выполнением каждого SQL-оператора, так и в конце текущей транзакции. В последнем
случае допускается нарушение ограничения целостности внутри транзакции. Этот режим
очень полезен для внесения данных в таблицы, связанные ограничением REFERENCES.
Объявление ограничений имеет в стандарте SQL92 следующее формальное описание:
[CONSTRAINT constraint_name ]{ PRIMARY KEY (имя_поля .,…) } | {
UNIQUE (имя_поля .,…) } | { FOREIGN KEY (имя_поля .,…) } {
REFERENCES имя_таблицы [(имя_поля .,…)] [ref_specification] } | {
CHECK (condition) } [[ NOT ] DEFFERABLE ]
ref_specification определяется как:
[MATCH {FULL | PARTIAL } ] [ ON UPDATE { CASCADE | SET NULL | SET
DEFAULT | NO ACTION } ] [ ON DELETE { CASCADE | SET NULL | SET
DEFAULT | NO ACTION } ]
Ссылочная спецификация (ref_specification) определяет для ограничений FOREIGN
KEY и REFERENCES тип совпадения и действия, выполняемые при внесении изменений в
родительский ключ. Совпадение может быть определено как MATCH FULL (полное
совпадение) или MATCH PARTIAL (частичное совпадение).
При полном совпадении значения родительского и внешнего ключей должны
полностью совпадать, или все значения внешнего ключа должны быть NULL.
При частичном совпадении некоторые значения внешнего ключа могут быть равны
NULL и значения каждой строки внешнего ключа, отличные от NULL, должны совпадать со
значениями родительского ключа.
Если тип совпадения не указан, то предполагается что любое значение внешнего ключа
присутствует в родительском ключе, но при этом во внешнем ключе допускаются значения
NULL (частично или полностью).
8
1.4.
Изменение структуры таблиц
После создания таблицы ее структуру можно изменять с помощью оператора ALTER
TABLE. Необходима некоторая осторожность с этим оператором, поскольку при его
использовании возможна потеря данных.
Добавление или удаление столбца осуществляется просто:
ALTER TABLE MyTable ADD C1 NUMBER(4);
ALTER TABLE MyTable DROP COLUMN C1;
Первый оператор добавляет столбец с именем С1 и присваивает ему тип числа длиной
четыре символа. Второй оператор удаляет только что созданный столбец. Обратите
внимание, что при создании столбца клю­чевое слово COLUMN опускается.
Столбец можно удалить в любой момент. При этом, однако, все данные из этого
столбца будут потеряны. Также в любой момент можно добавить пустой или необязательный
(NULL) столбец. Обязательный столбец можно добавить, указав значение по умолчанию.
Предположим, например, что добавляется столбец С1 в таблицу Т1:
ALTER TABLE Т1 ADD (C1 CHAR(30) DEFAULT ‘EMPTY’ NOT NULL);
Либо сначала нужно создать его в таблице как необязательный, заполнить все его
строки данными, а затем объявить его обязательным при помощи конструкции MODIFY.
После того как этот столбец будет заполнен во всех строках таблицы, можно выполнить
следующий оператор:
ALTER TABLE Т1 MODIFY C1 NOT NULL;
Теперь столбец C1 будет обязательно требовать присвоения значения.
При модификации столбца можно увеличивать количество символов в текстовых
столбцах и количество цифр в числовых столбцах. Также можно свободно увеличивать или
уменьшать количество цифр после десятичной точки. Если данный столбец является пустым
во всех строках, можно уменьшать длину текстовых и числовых данных, а также менять тип
данных столбца.
Аналогично можно добавлять и изменять ограничения
ALTER TABLE T1 ADD CONSTRAINT T1_PK PRIMARY KEY (C1);
Здесь в таблицу T1 добавляется ограничение с именем T1_PK на столбец C1 – он
становится первичным ключом.
1.5.
Операторы модификации данных
Существуют следующие операторы модификации данных в таблицах:
оператор
DELETE
INSERT
функция
Удаление записей из таблицы БД
Добавление записей (строк) в таблицу БД
9
UPDATE
Обновление данных в столбце таблицы БД
1.5.1. Вставка данных
INSERT [INTO] tbl_name [(col_name,...)] VALUES (expression,...),
(...),...[ ON DUPLICATE KEY UPDATE col_name=expression, ... ]
или INSERT [INTO] tbl_name [(col_name,...)] SELECT ...
или INSERT [INTO] tbl_name SET col_name=(expression | DEFAULT), ...[
ON DUPLICATE KEY UPDATE col_name=expression, ... ]
Оператор INSERT вставляет новые строки в существующую таблицу. Форма данной
команды INSERT ... VALUES вставляет строки в соответствии с точно указанными в
команде значениями. Форма INSERT ... SELECT вставляет строки, выбранные из другой
таблицы или таблиц. Форма INSERT ... VALUES со списком из нескольких значений
поддерживается в версии MySQL 3.22.5 и более поздних. Синтаксис выражения
col_name=expression поддерживается в версии MySQL 3.22.10 и более поздних.
tbl_name задает таблицу, в которую должны быть внесены строки. Столбцы, для
которых заданы величины в команде, указываются в списке имен столбцов или в части SET:
Если не указан список столбцов для INSERT ... VALUES или INSERT ... SELECT, то
величины для всех столбцов должны быть определены в списке VALUES() или в результате
работы SELECT. Если порядок столбцов в таблице неизвестен, для его получения можно
использовать DESCRIBE tbl_name.
Любой столбец, для которого явно не указано значение, будет установлен в свое
значение по умолчанию. Например, если в заданном списке столбцов не указаны все столбцы
в данной таблице, то не упомянутые столбцы устанавливаются в свои значения по
умолчанию.
Вы также можете использовать ключевое слово DEFAULT для того, чтобы установить
столбец в его значение по умолчанию (новшество в MySQL 4.0.3). Это облегчает написание
INSERT, присвающим значения всем, за исключением одного-двух, столбцам, т.к. такой
ситнаксис позволяет вам обойтись без указания списка столбцов, которые оператор INSERT
должен обновить.
В MySQL всегда предусмотрено значение по умолчанию для каждого поля. Это
требование ``навязано'' MySQL, чтобы обеспечить возможность работы как с таблицами,
поддерживающими транзакции, так и с таблицами, не поддерживающими их.
Выражение expression может относится к любому столбцу, который ранее был внесен в
список значений. Например, можно указать следующее:
INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
Но нельзя указать:
INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);
10
Если указывается ключевое слово LOW_PRIORITY, то выполнение данной команды
INSERT будет задержано до тех пор, пока другие клиенты не завершат чтение этой таблицы.
В этом случае данный клиент должен ожидать, пока данная команда вставки не будет
завершена, что в случае интенсивного использования таблицы может потребовать
значительного времени. В противоположность этому команда INSERT DELAYED позволяет
данному клиенту продолжать операцию сразу же. Следует отметить, что указатель
LOW_PRIORITY обычно не используется с таблицами MyISAM, поскольку при его указании
становятся невозможными параллельные вставки.
Если в команде INSERT со строками, имеющими много значений, указывается
ключевое слово IGNORE, то все строки, имеющие дублирующиеся ключи PRIMARY или
UNIQUE в этой таблице, будут проигнорированы и не будут внесены. Если не указывать
IGNORE, то данная операция вставки прекращается при обнаружении строки, имеющей
дублирующееся значение существующего ключа. Количество строк, внесенных в данную
таблицу, можно определить при помощи функции C API mysql_info().
Если вы указываете ON DUPLICATE KEY UPDATE (новшество в MySQL 4.1.0), и
производится вставка строки, которая вызывает ошибку дублирующегося первичного
(PRIMARY) или уникального (UNIQUE) ключа, то вполняется UPDATE старой строки.
Например:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE
c=c+1;
Если a определяется как UNIQUE и уже содержит 1, то тогда вышеуказанная команда
будет аналогична следующей:
UPDATE table SET c=c+1 WHERE a=1;
Внимание: если столбец b также является уникальным ключем, то UPDATE
переписывается как:
UPDATE table SET c=c+1 WHERE a=1 OR b=2 LIMIT 1;
и если несколько записей соответствуют a=1 OR b=2 только одна запись будет обновлена! В
общем случае, следует избегать использования ON DUPLICATE KEY на таблицах со
множеством уникальных (UNIQUE) ключей.
Например, таблица имеет следующую структуру:
T1(id BIGINT,name VARCHAR(100),price NUMERIC(8,2) DEFAULT 99.99)
INSERT into T1 VALUES (1,’ковер’,4500)
INSERT into T1 VALUES (2,’салфетка’)
INSERT into T1 (id,name) VALUES (2,’салфетка’)
INSERT into T1 SET id=1,name=’ковер’,price=4500
INSERT into T1 SET id=2,name=’салфетка’
11
1.5.2. Модификация данных
UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE
where_definition] [ORDER BY ...] [LIMIT rows]
или
UPDATE
tbl_name [, tbl_name ...] SET
col_name2=expr2 ...] [WHERE where_definition]
col_name1=expr1
[,
Оператор UPDATE обновляет столбцы в соответствии с их новыми значениями в
строках существующей таблицы. В выражении SET указывается, какие именно столбцы
следует модифицировать и какие величины должны быть в них установлены. В выражении
WHERE, если оно присутствует, задается, какие строки подлежат обновлению. В остальных
случаях обновляются все строки. Если задано выражение ORDER BY, то строки будут
обновляться в указанном в нем порядке.
Если доступ к столбцу из указанного выражения осуществляется по аргументу
tbl_name, то команда UPDATE использует для этого столбца его текущее значение.
Например, следующая команда устанавливает столбец age в значение, на единицу большее
его текущей величины:
UPDATE persondata SET age=age+1;
Значения команда UPDATE присваивает слева направо. Например, следующая команда
удваивает значение в столбце age, затем инкрементирует его:
UPDATE persondata SET age=age*2, age=age+1;
Если столбец устанавливается в его текущее значение, то MySQL замечает это и не
обновляет его.
Команда UPDATE возвращает количество фактически измененных строк. В версии
MySQL 3.22 и более поздних функция C API mysql_info() возвращает количество строк,
которые были найдены и обновлены, и количество предупреждений, имевших место при
выполнении UPDATE.
В версии MySQL 3.23 можно использовать LIMIT #, чтобы убедиться, что было
изменено только заданное количество строк.
Начиная с версии MySQL 4.0.4 также можно выполнять UPDATE для множества
таблиц:
UPDATE
items,month
items.id=month.id;
SET
items.price=month.price
WHERE
Обратите внимание: ORDER BY или LIMIT не применяются для многотабличных
обновлений.
12
1.5.3. Удаление записей
DELETE FROM tbl_name [WHERE where_definition]
Удаляет записи, отвечающие условию «WHERE», из таблицы tbl_name. Если условие
«WHERE» не указать – удалит все записи.
Кстати, для очистки таблицы (удаления всех записей) существует более быстрая
относительно времени выполнения команда
TRUNCATE TABLE tbl_name
2. Задания
При оформлении отчета указывайте используемые команды, при необходимости
вставляйте скриншоты.
2.1.
Установка OSPanel
2.1.1. Возьмите у преподавателя дистрибутив либо скачайте самостоятельно,
запустите установочный файл OSPanel: open_server_5_2_8_basic.exe
На запрос, куда распаковать, укажите доступный для записи каталог, например
c:\temp
Дождитесь окончания установки.
2.1.2. Запустите OSPanel
13
2.1.3. В трее найдите иконку OSPanel, нажмите на неё правой кнопкой мыши,
выберите «Настройки». В открывшемся окне на вкладке «Модули» под
надписью «MySQL/MariaDB» выберите «MariaDB-10.2» («MariaDB-10.2-x64»).
Затем нажмите кнопку «Сохранить», потом «Закрыть».
2.1.4. Запустите
OSPanel,
выбрав
в
меню
«Запустить». Цвет иконки в трее должен
смениться на зелёный. Если запуск не удался
(цвет иконки стал красным), попробуйте сменить
в настройках версию MariaDB на 10.1.
Если выдается ошибка, связанная с файлом hosts,
то в Настройках OSPanel на вкладке Сервер
поставьте галочку напротив «Не вносить
изменения в HOSTS файл»
14
2.2.
Запуск PhpMyAdmin
2.2.1. После успешного запуска OSPanel выберите в меню через иконку в трее
«Дополнительно-PhpMyAdmin». Откроется окно в браузере, введите в поле
«Пользователь» root и нажмите кнопку «Вперёд».
На открывшейся странице выберите вкладку SQL
2.3.
Создание базы данных.
2.3.1. Для того, чтобы создать базу данных, в поле «Выполнить SQL-запрос(ы) на
сервере "127.0.0.1"» введите команду*
create database ivanov;
*вместо ivanov подставьте свою фамилию в транслитерации.
15
В отчёте по лабораторной приведите запрос и результат выполнения команды
(скриншот).
2.3.2. Ваша новая БД должна появиться в списке баз в левой колонке на странице.
Выберите её, щёлкнув по ней левой кнопкой мыши.
Работа со структурой таблиц.
2.4.
2.4.1. Для того, чтобы создать таблицу, в поле «Выполнить SQL-запрос(ы) на сервере
"127.0.0.1"» необходимо ввести команду «create table (описание столбцов)» (см.
п. 1.3).
Создайте таблицу с именем l2t1 в БД из п.2.3 с тремя столбцами в соответствии с
вашим вариантом по Таблице 2.
Таблица 2
Вариант
тип столбца 1
тип столбца 2
тип столбца 3
Вариант
тип столбца 1
тип столбца 2
тип столбца 3
1
TINYINT
FLOAT
DATE
31
DATETIME
VARCHAR
MEDIUMBLOB
2
SMALLINT
DOUBLE
DATETIME
32
TIMESTAMP
TINYBLOB
LONGBLOB
3
MEDIUMINT
NUMERIC(n,p)
TIMESTAMP
33
TIME
BLOB
ENUM
4
INTEGER
DATE
TIME
34
YEAR
MEDIUMBLOB
SET
5
BIGINT
DATETIME
YEAR
35
CHAR
LONGBLOB
TINYINT
6
FLOAT
TIMESTAMP
CHAR
36
VARCHAR
ENUM
SMALLINT
7
DOUBLE
TIME
VARCHAR
37
TINYBLOB
SET
MEDIUMINT
8
NUMERIC(n,p)
YEAR
TINYBLOB
38
BLOB
TINYINT
INTEGER
9
DATE
CHAR
BLOB
39
MEDIUMBLOB
SMALLINT
BIGINT
10
DATETIME
VARCHAR
MEDIUMBLOB
40
LONGBLOB
MEDIUMINT
FLOAT
11
TIMESTAMP
TINYBLOB
LONGBLOB
41
ENUM
INTEGER
DOUBLE
12
TIME
BLOB
ENUM
42
SET
BIGINT
NUMERIC(n,p)
13
YEAR
MEDIUMBLOB
SET
43
TINYINT
FLOAT
DATE
14
CHAR
LONGBLOB
TINYINT
44
SMALLINT
DOUBLE
DATETIME
15
VARCHAR
ENUM
SMALLINT
45
MEDIUMINT
NUMERIC(n,p)
TIMESTAMP
16
TINYBLOB
SET
MEDIUMINT
46
INTEGER
DATE
TIME
17
BLOB
TINYINT
INTEGER
47
BIGINT
DATETIME
YEAR
18
MEDIUMBLOB
SMALLINT
BIGINT
48
FLOAT
TIMESTAMP
CHAR
19
LONGBLOB
MEDIUMINT
FLOAT
49
DOUBLE
TIME
VARCHAR
20
ENUM
INTEGER
DOUBLE
50
NUMERIC(n,p)
YEAR
TINYBLOB
21
SET
BIGINT
NUMERIC(n,p)
51
DATE
CHAR
BLOB
22
TINYINT
FLOAT
DATE
52
DATETIME
VARCHAR
MEDIUMBLOB
23
SMALLINT
DOUBLE
DATETIME
53
TIMESTAMP
TINYBLOB
LONGBLOB
16
24
MEDIUMINT
NUMERIC(n,p)
TIMESTAMP
54
TIME
BLOB
ENUM
25
INTEGER
DATE
TIME
55
YEAR
MEDIUMBLOB
SET
26
BIGINT
DATETIME
YEAR
56
CHAR
LONGBLOB
TINYINT
27
FLOAT
TIMESTAMP
CHAR
57
VARCHAR
ENUM
SMALLINT
28
DOUBLE
TIME
VARCHAR
58
TINYBLOB
SET
MEDIUMINT
29
NUMERIC(n,p)
YEAR
TINYBLOB
59
BLOB
TINYINT
NUMERIC(n,p)
30
DATE
CHAR
BLOB
60
MEDIUMBLOB
SMALLINT
DATE
В отчёте по лабораторной приведите запрос и результат выполнения команды
(скриншот), а также скриншот со структурой таблицы (в левой панели выделите
таблицу, а в правой щёлкните по вкладке «Структура»).
2.4.2. Удалите созданную таблицу l2t1 командой
drop table l2t1;
2.4.3. Создайте таблицу с именем
использованием ограничений:
l2t2
аналогичную
предыдущей,

для столбца 1 установите ограничение первичного ключа,

для столбца 2 - чтобы он был обязателен для заполнения,

для столбца 3 установите значение по умолчанию на ваш выбор.
но
с
В отчёте по лабораторной приведите запрос и результат выполнения команды
(скриншот), а также скриншот со структурой таблицы (в левой панели выделите
таблицу, а в правой щёлкните по вкладке «Структура»).
2.4.4. Создайте таблицу с именем
использованием ограничений:
l2t3
аналогичную
предыдущей,

для столбца 3 – уникальность значения,

столбец 1 – внешний ключ на столбец1 в таблице l2t2.
но
с
В отчёте по лабораторной приведите запрос и результат выполнения команды
(скриншот), а также скриншот вкладки «Дизайнер» вашей БД (в левой панели
выделите БД, а в правой щёлкните по вкладке «Дизайнер»), на нём должна
отобразиться связь ваших таблиц.
2.4.5. Добавьте в таблицу l2t3 столбец, названный вашей фамилией, и типом на ваш
выбор, но отличным от других столбцов, с выбранным вами значением по
умолчанию. Воспользуйтесь для этого командой alter table.
В отчёте по лабораторной приведите запрос и результат выполнения команды
(скриншот).
2.4.6. Удалите в таблице l2t3 2-й столбец, добавьте ограничение уникальности на 1-й
столбец, удалите ограничение внешнего ключа.
17
В отчёте по лабораторной приведите тексты запросов и скриншот вкладки
«Дизайнер» вашей БД.
2.4.7.
Создайте таблицу l2t4 со столбцом-первичным ключом с
автоматическим счетчиком. Используя конструкцию ALTER TABLE добавьте в
таблицу l2t4 столбцы с типами, аналогичными типам первичных
(альтернативных) ключей таблиц l2t2 и l2t3. Для новых столбцов добавьте
ограничения внешнего ключа в соответствии с номером вашего варианта по
Таблице 3.
Таблица3
Вариант
1 21 41
2 22 42
3 23 43
4 24 44
5 25 45
6 26 46
7 27 47
8 28 48
9 29 49
10 30 50
11 31 51
12 32 52
13 33 53
14 34 54
15 35 55
16 36 56
17 37 57
18 38 58
19 39 59
20 40 60
Параметр 1
ON DELETE RESTRICT
ON DELETE CASCADE
ON DELETE SET NULL
ON DELETE NO ACTION
ON DELETE SET DEFAULT
ON UPDATE RESTRICT
ON UPDATE CASCADE
ON UPDATE SET NULL
ON UPDATE NO ACTION
ON UPDATE SET DEFAULT
ON DELETE RESTRICT
ON DELETE CASCADE
ON DELETE SET NULL
ON DELETE NO ACTION
ON DELETE SET DEFAULT
ON UPDATE RESTRICT
ON UPDATE CASCADE
ON UPDATE SET NULL
ON UPDATE NO ACTION
ON UPDATE SET DEFAULT
Параметр 2
ON UPDATE SET DEFAULT
ON UPDATE NO ACTION
ON UPDATE SET NULL
ON UPDATE CASCADE
ON UPDATE RESTRICT
ON DELETE SET DEFAULT
ON DELETE NO ACTION
ON DELETE SET NULL
ON DELETE CASCADE
ON DELETE RESTRICT
ON UPDATE NO ACTION
ON UPDATE SET NULL
ON UPDATE CASCADE
ON UPDATE RESTRICT
ON DELETE SET DEFAULT
ON DELETE NO ACTION
ON DELETE SET NULL
ON DELETE CASCADE
ON DELETE RESTRICT
ON DELETE RESTRICT
В отчёте по лабораторной приведите тексты запросов и скриншот вкладки
«Дизайнер» вашей БД.
2.5.
Составные ключи.
2.5.1. Создайте таблицу с именем l2t5 с типами столбцов из таблицы 2 для номера
варианта=НомерВашегоВарианта+7. Группе из первого и третьего столбцов
назначьте ограничение первичного ключа. Создайте таблицу l2t6 с внешним
ключом на таблицу l2t5. В отчёте по лабораторной приведите выполненные
запросы скриншот вкладки «Дизайнер» вашей БД.
18
2.6.
Работа с данными в таблицах
2.6.1. Составьте и выполните запросы для добавления по 3 записи в таблицы l2t2 и
l2t3.
2.6.2. Составьте и выполните запрос для добавления записи в таблицу l2t2, чтобы для
3-го столбца использовалось значение по умолчанию.
2.6.3. Составьте и выполните запрос добавления записей в таблицу l2t3 как выборки
записей из таблицы l2t2 – воспользуйтесь командой
INSERT INTO l2t3 SELECT (столбец1,столбец3) FROM l2t2;
Тексты запросов п. 2.6.1-2.6.3 внесите в отчёт, добавьте скриншоты данных
таблиц l2t2 и l2t3.
2.6.4. Добавьте несколько записей в таблицу l2t4. Сделайте скриншот содержимого
таблицы l2t4. Удалите/обновите родительские записи в таблицах l2t2, l2t3, чтобы
убедиться в работе ограничений внешнего ключа ON UPDATE, ON DELETE.
Сделайте скриншот содержимого таблицы l2t4 после выполнения запросов.
Тексты запросов и скриншоты внесите в отчет.
2.6.5. Составьте и выполните запрос для изменения всех записей в таблице l2t3.
2.6.6. Составьте и выполните запрос для изменения одной записи в таблице l2t3 в
двух вариантах – 1) при помощи LIMIT, 2) при помощи условия выборки
WHERE.
2.6.7. Составьте и выполните запрос для удаления одной записи в таблице l2t3,
используя условие выборки.
Тексты запросов п. 2.6.5-2.5.7 внесите в отчёт, добавьте скриншот данных
таблицы l2t3.
2.7.
Резервное копирование
2.7.1. Для сохранения ваших данных достаточно экспортировать данные вашей БД.
Для этого в левой панели PhpMyAdmin выберите вашу БД, а в верхнем меню
«Экспорт». Нажмите «OK», начнется скачивание файла выгрузки вашей БД.
Приведите в отчете скриншот куска скаченного файла.
Результаты оформить в виде отчёта по лабораторной
19
Скачать