Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Базы данных

Автор:   •  Ноябрь 24, 2020  •  Лабораторная работа  •  949 Слов (4 Страниц)  •  296 Просмотры

Страница 1 из 4

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

В ходе выполнения лабораторной работы необходимо создать с помощью построителя запросов:

  1. Запрос на выборку.

Вывод данных таблицы personal_name:

SELECT *
FROM `personal_name`

[pic 1]

Вывод данных двух полей surname и name из таблицы personal_name:

SELECT `surname` , `name` 
FROM `personal_name`

[pic 2]

  1. Запрос на выборку с параметрами.

Вывод данных полей из нескольких таблиц параметром поля`position`.`salary` меньше или равно значению 87,95

SELECT  

        `transf_exec`.`nom_doc` ,  

        `order_doc`.`date_approval` ,  

        `order_doc`.`short_descript` ,

        `transf_exec`.`date_transf_exec` ,

        CONCAT(  `personal_name`.`surname` ,  ' ', LEFT(  `personal_name`.`name` , 1 ) ,  '.', LEFT(  `personal_name`.`patronymic` , 1 ) ,  '.' ) AS FIO,  

        `position`.`position_eml` ,  

        `position`.`salary`

FROM transf_exec

LEFT JOIN  `delo`.`order_doc` ON  `transf_exec`.`nom_doc` =  `order_doc`.`nom_doc`

LEFT JOIN  `delo`.`designation` ON  `transf_exec`.`id_pos` =  `designation`.`id_pos`

LEFT JOIN  `delo`.`position` ON  `designation`.`id_pos` =  `position`.`id_pos`

LEFT JOIN  `delo`.`personal_name` ON  `designation`.`id_name` =  `personal_name`.`id_name`

WHERE  `position`.`salary` <= 87.95

[pic 3]

  1. Запрос на обновление данных.

[pic 4]

UPDATE `position` SET `salary`=45.00 WHERE `id_pos`=5

[pic 5]

  1. Запрос на удаление записей.

[pic 6]

[pic 7]

[pic 8]

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

помощи построителя запросов:

5. Используя инструкцию CREATE TABLE, создайте запрос на создание новой таблицы для выбранной ранее предметной области, содержащей пять полей, различных типов данных, определив в запросе первичный

ключ и проиндексировав соответствующие поля, используя предложение

CONSTRAINT. После чего создайте запрос на создание еще одной таблицы, содержащей внешний ключ по отношению к первичному ключу предыдущей таблицы. Запустите запрос, после чего проверьте, отразились ли изменения в схеме данных.

CREATE TABLE IF NOT EXISTS `spr_status` (

  `id_stat` int(1) NOT NULL AUTO_INCREMENT COMMENT 'ид_записи',

  `simv_stat` varchar(2) COLLATE utf8_unicode_ci NOT NULL COMMENT 'символ статуса',

  `name_stat` tinytext COLLATE utf8_unicode_ci NOT NULL COMMENT 'Наименование статуса',

  `date_stat` date DEFAULT NULL COMMENT 'дата статуса',

  `time_stat` time DEFAULT NULL COMMENT 'время статуса',

  PRIMARY KEY (`id_stat`,`simv_stat`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Статус документа' AUTO_INCREMENT=1 ;

[pic 9]

CREATE TABLE IF NOT EXISTS `assign_status` (

  `id_assign` int(5) NOT NULL AUTO_INCREMENT COMMENT 'ид_записи',

  `id_stat` int(1) NOT NULL COMMENT 'символ статуса',

  PRIMARY KEY (`id_assign`),

  KEY `id_stat` (`id_stat`),

  CONSTRAINT `ibfk_1` FOREIGN KEY (`id_stat`) REFERENCES `spr_status` (`id_stat`) ON DELETE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Назначение статуса' AUTO_INCREMENT=1 ;

[pic 10]

6. Используя команду CREATE INDEX, создайте запрос на создание нового индекса, используя различные условия назначения индексов (IGNORE NULL, DISALLOW NULL, PRIMARY), а также типы сортировки.

Запрос на создание составного уникального индекса:

CREATE UNIQUE INDEX

`index_ifkd_1`

ON

`designation` (`id_pos`,`id_name`) USING BTREE

Запрос на создание индекса с указанием обратной сортировки (работает в MySQL начиная с версии 8.0):

...

Скачать:   txt (9.1 Kb)   pdf (985.5 Kb)   docx (293.3 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club