Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_po_SRS.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.63 Mб
Скачать

Создание базы данных

Для создания базы данных используется команда:

CREATE DATABASE <Имя базы>;

Например:

CREATE DATABASE `students`;

При создании базы данных можно сразу выбрать кодировку:

CREATE DATABASE `students` DEFAULT CHARACTER SET cp1251

COLLATE cp1251_general_ci;

Итак, открываем программу MySQL WorkBench, заходим в SQL - Editor. В текстовом поле

на вкладке SQL набираем команду:

CREATE DATABASE `students` DEFAULT CHARACTER SET cp1251

COLLATE cp1251_general_ci;

Среди всех баз данных может быть выбрана одна текущая, к которой направляются все команды SQL. Выбирается текущая база данных с помощью команды SQL

USE <База данных>;

Например, только что созданную базу данных students можно выбрать SQL-командой

USE `students`;

Создание пользователя базы данных:

После создания базы данных необходимо создать пользователя базы данных и назначить ему полномочия. Полномочия (или привилегии) — это права определенного пользователя выполнять определенные действия над определенным объектом. Пользователь должен обладать наименьшим набором привилегий, необходимых для выполнения конкретных задач.

Создание и назначение полномочий осуществляются SQL-командой:

GRANT <Привилегии> [<Столбцы>]

ON <База данных>.<Таблица>

TO <Имя пользователя> [IDENTIFIED BY '<Пароль>']

[WITH GRANT OPTION];

В параметре <Привилегии> могут быть указаны через запятую следующие полномочия:

  • ALL или ALL PRIVILEGES — все полномочия;

  • USAGE — без всех полномочий;

  • SELECT — возможность выбирать записи в таблицах;

  • INSERT — право вставлять новые записи в таблицы;

  • UPDATE — полномочия изменять значения в существующих полях таблиц;

  • DELETE — разрешение удалять записи;

  • FILE — возможность сохранять данные из таблиц в файл и, наоборот,

  • восстанавливать их из файла;

  • CREATE — право создавать новые базы данных или таблицы. Если в

  • команде GRANT указана определенная база данных или таблица, то пользователь может создавать только указанную базу данных или таблицу;

  • ALTER — полномочия изменять структуру существующих таблиц;

  • INDEX — право создавать и удалять индексы определенных таблиц;

  • DROP — возможность удаления базы данных или таблицы;

  • PROCESS — разрешение просматривать и удалять процессы на сервере;

  • RELOAD — возможность перезагружать таблицы полномочий;

  • SHUTDOWN — право останавливать сервер MySQL.

В параметре <Имя пользователя> указывается имя пользователя (например, Boris) или Имя_пользователя@Имя_хоста (например, Boris@localhost). Новому пользователю можно назначить пароль. Если указана опция WITH GRANT OPTION, то пользователь может предоставлять свои полномочия другим.

Создадим нового пользователя с именем Boris и назначим ему ограниченные привилегии. Для этого на вкладке SQL набираем следующую команду:

GRANT select, insert, update, delete, index, alter, create, drop ON `students`.* TO Boris@localhost IDENTIFIED BY '456';

После создания пользователя или изменения привилегий необходимо перезагрузить привилегии с помощью SQL-команды

FLUSH PRIVILEGES;

Для лишения пользователя полномочий используется команда SQL

REVOKE <Привилегии> [<Столбцы>]

ON <База данных>.<Таблица>

TO <Имя пользователя>;

Если полномочия были предоставлены опцией WITH GRANT OPTION, то удалить их можно с помощью команды SQL

REVOKE GRANT OPTION

ON <База данных>.<Таблица>

TO <Имя пользователя>;

Для удаления пользователя используется SQL-команда

DROP USER <Имя пользователя>;

Для просмотра прав пользователя предназначена команда SQL

SHOW GRANTS FOR '<Имя пользователя>'@'<Хост>';

Для примера выведем полномочия созданного пользователя Boris:

SHOW GRANTS FOR 'Boris'@'localhost';

Скриншот MySQL Workbench – Server Administration:

Создание таблицы:

Создать таблицу в базе данных позволяет SQL-команда

CREATE TABLE <Имя таблицы> (

<Имя поля1> <Тип данных> [<Опции>],

<Имя поля2> <Тип данных> [<Опции>],

...

) [<Дополнительные опции>];

В параметре <Опции> могут быть указаны следующие значения:

  • NOT NULL означает, что поле обязательно должно иметь значение при вставке новой записи в таблицу (если не задано значение по умолчанию). Если опция не указана, то поле может быть пустым;

  • PRIMARY KEY указывает, что поле является первичным ключом таблицы. Записи в таком поле должны быть уникальными. Опция также может быть указана после перечисления всех полей;

  • AUTO_INCREMENT указывает, что поле является счетчиком: если при вставке новой записи указать NULL, то MySQL автоматически генерирует значение, на единицу большее максимального значения, уже существующего в поле. В таблице может быть только одно поле с этой опцией;

  • DEFAULT задает для поля значение по умолчанию, которое будет использовано, если при вставке записи для этого поля не было явно указано значение;

  • CHARACTER SET определяет кодировку текстового поля;

  • COLLATE задает тип сортировки текстового поля.

В параметре <Дополнительные опции> могут быть указаны следующие значения:

  • ENGINE — тип таблицы (например, MyISAM);

  • DEFAULT CHARSET — кодировка (например, cp1251);

  • AUTO_INCREMENT — начальное значение для автоматической генерации значения поля.

Для вывода всех типов таблиц, поддерживаемых текущей версией MySQL, предназначена SQL-команда SHOW ENGINES;

На практике обычно используются два типа таблиц — MyISAM и InnoDB. Тип MyISAM является "родным" типом таблиц и применяется по умолчанию. Хотя версии MySQL под Windows по умолчанию могут устанавливать тип InnoDB. В отличие от типа MyISAM таблицы типа InnoDB поддерживают транзакции и внешние ключи, но не имеют поддержки полнотекстового поиска. Кроме того, таблицы типа InnoDB работают медленнее таблиц MyISAM, но зато они более надежны.

Для вывода всех кодировок применяется SQL-команда

SHOW CHARACTER SET;

Чтобы получить список всех типов сортировки можно воспользоваться SQL-командой

SHOW COLLATION;

Для создания таблиц в текстовом поле набираем следующие команды:

CREATE TABLE `Avtoservis` (

`id_City` INT NOT NULL AUTO_INCREMENT,

`City` CHAR(50) NOT NULL,

PRIMARY KEY (`id_City`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Klienti` (

`id_Customer` INT NOT NULL AUTO_INCREMENT,

`Name` CHAR(50) NOT NULL,

`Address` CHAR(255) NOT NULL,

`id_City` INT NOT NULL,

`Phone` CHAR(30),

PRIMARY KEY (`id_Customer`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Usluga` (

`id_Tovar` INT NOT NULL AUTO_INCREMENT,

`Tovar` CHAR(50) NOT NULL,

`Price` INT NOT NULL,

PRIMARY KEY (`id_Tovar`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Orders_Items` (

`id_Orders` INT NOT NULL,

`id_Tovar` INT NOT NULL,

`Col` TINYINT unsigned,

PRIMARY KEY (`id_Orders`, `id_Tovar`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Orders` (

`id_Orders` INT NOT NULL AUTO_INCREMENT,

`id_Customer` INT NOT NULL,

`Date_orders` DATE,

`Sum` INT,

PRIMARY KEY (`id_Orders`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Вывести все таблицы из указанной базы данных позволяет SQL-команда

SHOW TABLES FROM <Имя базы данных>;

Для примера выведем все таблицы из базы данных tests:

SHOW TABLES FROM `tests`;

Чтобы отобразить структуру конкретной таблицы из указанной базы данных, можно воспользоваться командой SQL

SHOW COLUMNS FROM <Таблица> FROM <Имя базы данных>;

Для примера выведем структуру таблицы City из базы данных tests:

SHOW COLUMNS FROM `City` FROM `tests`;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]