контрольная работа. ЗКТ-45-19_лаб_bd 6 семестр (3). Методические указания к лабораторным работам для бакалавров направлений 09. 03. 03, 09. 03. 04 Заочная форма обучения
Скачать 1.55 Mb.
|
Федеральное государственное бюджетное образовательное учреждение высшего образования «Чувашский государственный университет имени И.Н.Ульянова» Факультет информатики и вычислительной техники Кафедра компьютерных технологий Базы данных Методические указания к лабораторным работам для бакалавров направлений 09.03.03, 09.03.04 Заочная форма обучения Первый семестр изучения дисциплины ОглавлениеОбщие сведения 1 Лабораторная работа 1. Основы OpenOffice.Org Base 3 Лабораторная работа 2. Использование OpenOffice.Org Base 6 Лабораторная работа 3. Основы работы с MySQL 10 Лабораторная работа 4. Операторы и функции в MySQL 16 Литература 21 Оформление отчетов 22 Общие сведенияПо стандарту № 922 от 19.09.2017 г., для программы бакалавриата по прикладной информатике установлена компетенция ОПК-2. Она состоит из нескольких индикаторов, в том числе ОПК-2.3: «Применяет информационные технологии, в том числе отечественного производства, при решении теоретических и прикладных задач профессиональной деятельности». В соответствии с этим стандартом, при определении профессиональных компетенций на основе профессиональных стандартов Организация, в которой учатся обучающиеся, осуществила выбор профессиональных стандартов, соответствующих профессиональной деятельности выпускников, с индикаторами профессиональных компетенций: ПК-1.5 - Разрабатывает базы данных ИС; ПК-1.6 - Владеет технологиями программирования. Дисциплина «Базы данных» направлена на обеспечение указанных индикаторов. В лабораторных работах, приведенных далее, рассматривается знакомство с СУБД Microsoft Access, MySQL, MS SQL Server, использование среды разработчика Visual Studio для обращения к БД. По тексту встречается аббревиатура «ПКМ», означающая «Правая кнопка мыши». Варианты предметной области: Расписание учебных занятий. Информация: название группы, число студентов, название направления, название дисциплины, время, название аудитории, вместимость аудитории, ученая степень, должность, контактные данные, фамилия, инициалы, вид занятия, скан утверждения. Кафедра. Информация: название дисциплины, число часов, фамилия, имя, отчество, ученая степень, название направления, номер курса, форма обучения, должность, вид занятия, текст рабочей программы. Деканат. Информация: Фамилия, имя, отчество, номер студенческого билета, оценка, название группы, название направления, форма обучения, должность преподавателя, фамилия и инициалы преподавателя, домашний адрес студента, контактные данные, число студентов группы, скан приказа о зачислении. Абитуриенты. Информация: Адрес, должность принявшего документы, фамилия, имя, отчество, сведения о родителях, телефон, дата приема документов, направление, название факультета, баллы ЕГЭ, фамилия и инициалы работника, дата рождения, скан ответа на вступительном экзамене. Выпускники. Информация: адрес, должность, место работы, фамилия, имя, отчество, телефон, дата приема выпуска, направление, название факультета, средний балл успеваемости, дата рождения, название дисциплины, оценка, тема диплома, название группы, текст дипломного проекта. Библиотека. Информация: Фамилия и инициалы автора, № читательского билета, дата выдачи, срок сдачи, пени, Фамилия читателя, имя, отчество, адрес, телефон, Издательство, число страниц, год издания, число экземпляров, инвентарный №, тип издания, скан обложки. Автохозяйство. Информация: Гос. номер, марка, фамилия, имя, отчество, год выпуска, модель, цвет, тип кузова, дата рождения, адрес, телефон, стоимость, должность, почтовый индекс, территория, число мест, грузоподъемность, история поездок. Агентство недвижимости. Информация: Фамилия клиента, имя, отчество, цена, адрес, сумма, номер агента, Фамилия и инициалы агента, дата сделки, телефон агента, телефон клиента, адрес клиента, адрес агента, адрес объекта, тип объекта, свойства объекта недвижимости, фото клиента. Кредиты банка. Информация: Фамилия клиента, имя, отчество, адрес, сумма, номер агента, Фамилия и инициалы агента, дата сделки, телефон агента, телефон клиента, адрес клиента, адрес агента, вид кредита, срок договора, процентная ставка, фото клиента. Отгрузка товаров. Информация: адрес доставки, фамилия и инициалы работника, табельный номер, код товара, название товара, количество, фамилия получателя, дата, время, имя получателя, город, отчество, телефон, фото внешнего вида. Поступление товаров. Информация: название поставщика, код товара, название товара, количество, дата, время, способ доставки, табельный номер получившего, адрес поставщика, фамилия и инициалы получившего товар, фото внешнего вида. Налог с физических лиц. Информация: ИНН, фамилия, имя, отчество, дата рождения, адрес проживания, почтовый индекс, адрес регистрации, сумма исчисленного налога, пени, дата отправки, фамилия и инициалы отправителя сообщения, табельный номер, код подразделения, налоговая история. Заработная плата по предприятию. Информация: код должности, название должности, фамилия, имя, отчество, табельный номер, должностной оклад, премия, налоговый вычет, код подразделения, название подразделения, месяц, год, скан заявления о материальной помощи. Оказанные услуги. Информация: Вид услуги, дата, время, фамилия и инициалы исполнителя, фамилия клиента, имя, отчество, наименование услуги, стоимость, сумма, история услуг. Расчеты с поставщиками. Информация: название поставщика, код товара, название товара, количество, дата, время, способ доставки, адрес поставщика, ИНН поставщика, сумма, стоимость, вид поставки, код исполнителя, фото внешнего вида. Материалы на складе. Информация: фамилия и инициалы работника, табельный номер, код товара, название товара, количество, дата, время, телефон, усушка, срок годности, место хранения, фото внешнего вида. Преподаватели и требуемые по их предметам в библиотеке книги. Информация: ФИО, должность, степень, звание, адрес, стаж работы в ЧГУ, название книги, автор, объем, место хранения, год выпуска, реферат. Студенты, зарегистрированные в библиотеке и взятые ими книги. Информация: фамилия, имя, отчество, год рождения, адрес, курс, дата регистрации, история выдачи книг, инвентарный №, название, автор, издательство, город, объем, скан обложки, реферат. Аудитории и посещающие их студенты и преподаватели. Информация: путь из деканата, размер, описание, дата создания, фото, название, корпус, координаты, группа, дни недели, пары, ФИО, дни недели, пары. Учебные планы и соответствующие группы. Информация: группа, предмет, число лекций и др. видов учебной работы, номер, курс, число студентов, направление, дополнительные сведения, форма обучения. Лабораторная работа 1. Основы OpenOffice.Org BaseЦель: создание, оформление, связывание таблиц OpenOffice.Org Base. Может быть использована программа OpenOffice.Org Base либо LibreOffice.Org Base. Можно скачать с сайта Управления информатизации ЧГУ: http://ui.chuvsu.ru/index.php/dostupnoe-programmnoe-obespechenie. Теория1. Apache OpenOffice (ранее OpenOffice.org, OO.org, OO.o, OOo) — свободный пакет офисных приложений. Конкурирует с коммерческими офисными пакетами (в том числе Microsoft Office) как на уровне форматов, так и на уровне интерфейса пользователя. Одним из первых стал поддерживать новый открытый формат OpenDocument (ISO/IEC 26300). Официально поддерживается на платформах Linux, Microsoft Windows, macOS Intel/PowerPC. Основан на коде StarOffice, который был приобретён, а затем выпущен с открытым исходным кодом фирмой Sun Microsystems. После покупки последней права на OO.o перешли к компании Oracle. Ранее распространялся по схеме двойного лицензирования: по лицензиям LGPL и SISSL. Но 3 сентября 2005 года компания Sun Microsystems объявила об отказе от SISSL для всех своих открытых проектов, и пакет с тех пор имеет только лицензию LGPL. Существует переносимая версия пакета OpenOffice.org для операционных систем семейства Microsoft Windows с возможностью использования без установки, что позволяет запускать пакет, например, с флеш-накопителя. Офисный пакет OpenOffice.org может свободно устанавливаться и использоваться на домашних компьютерах, в школах, офисах, вузах, государственных, бюджетных и коммерческих организациях и учреждениях согласно лицензии Apache. Задание: создать и заполнить в OO Base таблицы по варианту, связать их, скопировать, выполнить поиск в таблице. Для этого выполнить последующие действия. Запустить программу Open Office. Выбрать пункт «База данных» (БД). Либо сразу запустить OpenOffice.org Base. В открывшемся окне «Мастер баз данных» выбрать «Создать новую БД», нажать кнопку «Далее», «Готово». В открывшемся окне «Сохранение» выбрать папку для сохранения и указать имя файла, где будет сохранена БД. Создать две таблицы в режиме дизайна. Для создания таблицы нажать соответствующую ссылку (рис. 1), появится исходное окно базы данных (рис. 2). Рисунок 1 – Окно БД с ссылкой для создания таблиц Рисунок 2 – Окно продолжения создания таблицы В этом окне поля сделать нужные ПО ВАРИАНТУ предметной области. Для поля, которое может содержать большое количество текста, тип поля сделать «Памятка». Надо создать первичный ключ, нажав ПКМ на нужное поле, как изображено на рис. 3, после чего около этого поля появится изображение ключа. Рисунок 3 – Окно с полями по варианту Закрыть окно на рис. 3, при этом согласиться с сохранением и ввести название таблицы. Название таблицы появится в исходном окне, где находится ссылка «Создать таблицу в режиме дизайна». Аналогично создаётся вторая таблица с другими полями, причем первичный ключ должен быть тоже, например, с названием ID. При создании таблицы, где будут повторяющиеся значения непервичного ключа, в меню Сервис выберите «Проектирование индекса». В открывшемся окне нажмите кнопку «Создать новый индекс» (рис. 4), выбрать индексируемое поле, нажать «Закрыть», согласиться с сохранением изменений. Рисунок 4 – Окно создания индекса В меню «Сервис» нажмите «Связи». Откроется окно Relation Design (Проект связей). Добавьте в проект связей (Relation Design) обе таблицы с помощью кнопки «Добавить». Перенесите индексируемое поле одной таблицы на ключевое поле другой (типы полей должны совпадать). Схема должна выглядеть примерно, как на рис. 5. Рисунок 5 – Схема связей Нажать «Закрыть», согласиться с сохранением изменений. В исходном окне БД открыть главную таблицу двойным нажатием на её название. Заполнить таблицу данными (3 строки, в одну из которых поместить СВОЮ ФАМИЛИЮ). Закрыть окно ввода данных в таблицу. Так же ввести данные во вторую таблицу. Выделите таблицу. В меню «Правка» нажмите «Копировать», затем «Вставить». Появится окно, в котором нужно выбрать значение переключателя «Структура и данные», нажать «Далее», а в поле «Имя таблицы» ввести свою фамилию (рис. 6). Рисунок 6– Копирование таблицы В следующем появившемся окне перенести все поля слева направо, нажав кнопку «>>». Нажать готово. В исходном окне появится новая таблица. Открыть её и сделать скриншот. Поиск данных Откройте таблицу. Нажмите кнопку «Найти запись». Введите значение, которое есть в таблице. Нажмите «Найти». Сделать скриншот. Контрольные вопросы. 1. Какие типы полей существуют в OpenOffice.Org Base? 2. Как создать первичный ключ? Основная часть отчета по лабораторной работе, кроме перечисленного в разделе «Оформление отчетов» и ответов на контрольные вопросы, содержит скриншоты: Всех таблиц с содержимым. Таблиц, открытых в конструкторе. Схемы связей. Результата поиска данных. Лабораторная работа 2. Использование OpenOffice.Org BaseПроизводится создание форм, отчетов и запросов в OpenOffice.Org Base. Производится сортировка, фильтрация, доступ к другим источникам данных OpenOffice.Org Base2. Может быть использована программа OpenOffice.Org Base либо LibreOffice.Org Base. Цель работы: ознакомление с созданием форм, отчетов, запросов и некоторыми действиями в OpenOffice.Org Base. Задание Выполнить действия согласно изложенным в исходном тексте лабораторной работы, при этом учитывать замечания: - если не установлен OpenOffice.Org Base, тогда можно использовать LibreOffice.Org Base или скачать и установить из Интернета. - при создании формы выбрать вид с полями, а не в виде таблицы. - добавить в таблицу поле «Пол» целого типа. Это нужно для сохранения потом в это поле выбора из переключателя; - если неизвестен вариант, использовать список группы из деканата. Создавать копии экрана: - результата запуска запроса после создания и для подсчета; - результата запуска формы с переключателем; - результата запуска отчета; - вида таблицы до и после сортировки; - вида таблицы до и после фильтрации; Составить отчет по данной лабораторной работе с копиями экрана и ответами на все контрольные вопросы. Выслать отчет на проверку. Порядок выполнения: Запустите OpenOffice.Org Base или LibreOffice.Org Base. Запрос Создайте запрос к одной из созданных ранее таблиц ПО ВАРИАНТУ, используя мастер для создания запроса следующим образом.3 (Примечание: добавьте к таблице поле Пол, целого типа. Если таблица связана с другой, связь лучше сделать 1:М или удалить. Иначе затрудняется вставка новых записей.) Для создания запроса в исходном окне выберите «Запросы», затем нажмите ссылку «Создать запрос в режиме дизайна». В появившемся окне выберите таблицу, к данным которой создается запрос, нажмите кнопку «Добавить», затем «Закрыть». В нижней части окна Query Design (Дизайн запросов) укажите имена полей базы данных, которые требуется включить, а также условия отображения полей, например, сравнение с каким-то числом (рис. 1). Чтобы переупорядочить столбцы в нижней области конструктора, перетащите заголовок столбца в новое расположение или выберите столбец и нажмите CTRL и клавишу со стрелкой. Установить сортировку по возрастанию для одного поля: Рис. 1 – Окно дизайна запросов Сохранить запрос, ввести его имя. Чтобы проверить запрос, дважды щелкните его имя в документе базы данных. Результат запроса отобразится в таблице, аналогичной представлению источника данных, также результаты запроса можно посмотреть, не выходя из режима дизайна, для этого нужно выбрать пункт меню Вид – Вид или просто нажать клавишу F4. Если запрос не выводит никаких значений, возможно, следует изменить критерий. В итоге запрос должен выводить какие-то значения. Сделать скриншот. Для того, чтобы знать сколько различных значений хранится в таблице создадим следующий запрос. Изменим существующий запрос, при этом выбираем поле для подсчета, пишем псевдоним «количество» и выбираем функцию «Количество» (Count), а для соседнего поля – «Group» (Группировка). (Примечание: удалите все остальные столбцы из запроса.).4 Форма Формы могут создаваться на основе таблиц или на основе запросов. Создадим форму, которая будет отображать все данные о записи с возможностью их добавления. Для создания новой формы в OpenOffice.org base можно использовать Мастер форм. Если файл базы данных, в котором нужно создать новую форму, не открыт, тогда откройте его. В левой области окна БД щелкните по значку «Формы». Нажмите «Использовать мастер для создания формы». Открываем Мастер форм и приступаем к выполнению шагов. Шаг 1. Помещаем в форму все поля таблицы. Шаг 2. Выбираем добавление субформы. Шаг 3. Выбираем поля для субформы. Шаг 4. На этом шаге не меняем ничего Шаг 5. Выбираем расположение элементов на форме. В данном случае столбцы подписи располагаются слева и на основной форме и на субформе. Шаг 6. Здесь задаем условие, что в форме будут отображены все данные, но их нельзя изменять и удалять, можно только добавлять новые данные (рис. 2). Рис. 2. Установка источника данных Шаг 7. Выбираем оформление формы: цвет фона светло-синий и трехмерный вид поля. Шаг 8. На заключительном шаге задаем имя формы как «информация о записях» и отмечается, что после заполнения формы хотим с ней работать После завершения последнего шага используем кнопку «Готово», на этом создание формы закончено. Создание отчетов Для создания отчета, выбираем мастер отчетов. Для создания нового отчета в OpenOffice.org BASE необходимо выполнить следующую последовательность действий: • Откройте файл базы данных, в которой необходимо создать новый отчет, если он не открыт. • В левой области окна базы данных щелкните значок Отчеты. • Выберите задачу «Использовать мастер для создания отчета». 1) Выбор полей Указывается таблица или запрос, для которого создается отчет, и поля, которые нужно включить в отчет. В данном случае сделаем отчет по количеству наименований. Поэтому выбираем второй созданный запрос, добавляем поле «Количество». 2) Группировка Записи отчета можно группировать на основе значений одного или нескольких полей. Выберите поля, по которым будет сгруппирован итоговый отчет. В отчете можно группировать до четырех полей. При группировке нескольких полей OpenOffice.org base создает вложенные группы согласно их уровню группировки. 3) Параметры сортировки Выберите поля, по которым требуется сортировать отчет. Поля можно сортировать по четырем уровням, на каждом — по возрастанию или по убыванию. Сгруппированные поля можно сортировать только внутри соответствующих групп. 4) Выбор стиля Выберите разметку из разных шаблонов и стилей и ориентацию страницы (книжную или альбомную). (Примечание: выберите в виде набора полей, а не в виде таблицы.) Отчет можно создать как статический или как динамический. При открытии динамического отчета он отображается с текущим содержимым. При открытии статического отчета всегда отображаются те данные, которые содержались в этом документе в момент его создания. Отчеты, построенные на основе таблиц, будут статическими, то есть будут отображать только ту информацию, которая содержалась в таблице во время их создания. Для создания отчета, который каждый раз будет предоставлять полную информацию нужно построить его на основе запроса. Использование OpenOffice.Org Base 1) Создание переключателя для определения пола экземпляра сущности a. На панели элементов управления, выберите инструмент Дополнительные элементы управления. b. Выберите инструмент «Группа». c. Определите место в форме, куда нужно поместить верхний левый угол группы и щелкните мышью. С этого момента начинает свою работу Мастер группового блока – данные. d. В первом окне диалога (Создание группы переключателей) введите значения «мужской» и «женский». Нажмите кнопку Далее. e. В следующем окне откажитесь от необходимости выборе значения по умолчанию. f. Нажмите Далее. g. Задайте значения для каждого параметра: 1 – мужской, 2 – женский. Нажмите Далее. h. В следующем окне щелкните Сохранить значение в поле и в списке полей выберите Пол. Нажмите Далее. i. В следующем окне определите вариант оформления группы и выберите тип элементов группы. Нажмите Далее. j. Дальше введите подпись для группы переключателей Пол и нажмите кнопку Готово. Для изменения рисунка фона формы щелкните правой кнопкой на фоне, чтобы открыть контекстное меню, и выберите пункт Страница -> Фон. Из выпадающего списка Тип выберите строку Цвет. Цвет может быть выбран щелчком мыши на одном из возможных цветов. Измените цвет на Оранжевый 4. Нажмите OK. Если слова в Метках форм имеют слишком малый размер, измените размер шрифта. Щелкните по метке при нажатой клавише Control, чтобы выбрать ее. Щелкните правой кнопкой по выбранной метке. Из контекстного меню выберите пункт Элемент управления. Нажмите на кнопку Шрифт (Кодировка) , чтобы открыть окно Символ. Здесь можно изменить гарнитуру, кегль, начертание и эффекты шрифта (для последнего надо перейти на вкладку Эффекты шрифта). Выполните нужные изменения. 2) Сортировка Откройте таблицу. Выделите столбец, по которому он будет отсортирован. Нажмите кнопку «Сортировка». Появится окно, в котором надо задать параметры сортировки. Задайте сортировку так, чтобы сначала таблица сортировалась по содержимому одного столбца, затем по содержимому другого столбца. Нажмите «ОК». Сделайте скриншот. 3) Фильтрация Откройте таблицу. Выделите значение, по которому будет производиться фильтрация, сделайте скриншот. Нажмите кнопку «Быстрый фильтр». Сделайте скриншот. Для отмены – нажмите кнопку «Удалить фильтр/сортировку». В меню сервис нажмите «Фильтр таблиц». Уберите галочку около одной из таблиц. Закройте программу. Снова запустите программу, откройте свою БД. Убедитесь, что не видно таблицы, у которой убрали галочку. Контрольные вопросы. 1. Определение запроса в OpenOffice.org Base. 2. Создание формы в OpenOffice.org Base. 3. Создание отчетов в OpenOffice.org Base. 4. Как выполнить сортировку и фильтрацию в OpenOffice.Org Base? 6. Создание переключателя. Лабораторная работа 3. Основы работы с MySQLСистемные требования: для работы нужно иметь доступ в Интернет, так как используется онлайновый MySQL. Цель работы: ознакомление с СУБД MySQL в режиме онлайн. Теоретическая часть MySQL - это одна из систем управления реляционными базами данных, т.е. связанных с данными в таблицах. Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License), http://www.gnu.org/licenses/, в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях. Работа с MySQL в режиме онлайн представляется пользователю в виде обработки запросов (команд). Некоторые запросы не требуют обращения к таблицам. Например: SELECT VERSION(); -- вывод версии СУБД SELECT CURRENT_DATE; --вывод сегодняшней даты SELECT SIN(PI()/4); -- вычисление и вывод синуса выражения SELECT (4+1)*5; -- вычисление и вывод выражения Таблицы размещаются в базах данных (БД). Для создания БД используется команда CREATE DATABASE. Например: CREATE DATABASE i; -- создание БД с именем i Чтобы отобразить список существующих БД, используется команда SHOW DATABASES; -- вывод списка БД При создании БД она автоматически не выбирается; выбирать ее нужно отдельно. Сделать i текущей БД можно с помощью следующей команды: USE i; -- сделать текущей БД с именем i Особенностью используемого сайта является то, что в каждом запросе результаты предыдущего запросы теряются, в том числе созданные таблицы и БД, поэтому каждый раз надо начинать с нового их создания. После создания БД нужно определиться со структурой своей базы, т.е. с тем, какие могут понадобиться таблицы, и какие столбцы должны содержаться в каждой из них. В данной лабораторной работе будет нужна таблица, содержащая по записи (т.е. строке) на каждое из физических лиц. Назвать ее можно t, и храниться в ней будут, как минимум, фамилии. Но так как сама по себе фамилия неинформативна, в таблице должны будут присутствовать и другие данные. Например, если люди в чьём-то подчинении, в таблицу можно добавить и фамилию начальника. Кроме того, в базу стоит внести и описательную информацию - например, кем является и пол. Информация о возрасте тоже может оказаться полезной, но хранить такие данные в базе неудобно. Возраст со временем меняется, а это значит, что придется довольно часто обновлять записи. Значительно удобнее хранить фиксированные значения - например, даты рождения. В таком случае возраст всегда можно получить, вычислив разницу между текущей датой и датой рождения. В MySQL есть функции для арифметических действий над данными, так что это совсем несложно. Можно записать в базу и дату освобождения, например чтобы узнать, в каком возрасте освобождён. Ограничимся уже выбранными: фамилией (name), начальником (owner), должностью (who), полом (sex), датой рождения (birth) и датой освобождения (free). Чтобы определить структуру новой таблицы, используется команда CREATE TABLE: CREATE TABLE t (name VARCHAR(20), owner VARCHAR(20), who VARCHAR(20), sex CHAR(1), birth DATE, free DATE); Тип VARCHAR подойдет для хранения фамилии, начальника и должности, так как длина данных этого типа может варьироваться. Конечно, длины таких столбцов вовсе не должны совпадать и не должны быть равны 20 - можно выбрать любое значение в пределах от 1 до 255 (если при выборе длины столбца окажется, что столбец маловат, можно будет исправить ошибку при помощи команды ALTER TABLE). Пол физлица можно обозначать несколькими способами, например буквами "m" и "f", или словами male (мужской) и female (женский). С буквами "m" и "f" будет проще. Применение типа данных DATE для хранения дат рождения и освобождения вполне очевидно. После создания таблицы в неё можно добавлять строки. Один из способов добавления строк – команда INSERT INTO, например: INSERT INTO t VALUES ('Ivanov99', 'Ivanova99','student','M',NULL, NULL); -- добавление строки в таблицу В этом примере после INTO указано имя таблицы, в скобках перечислены значения полей (столбцов) в том же порядке, в каком были объявлены столбцы. Текстовые строки заключаются в прямые одинарные кавычки, значения NULL означают пустое значение. Для того, чтобы вывести содержимое таблицы на экран, используется оператор SELECT, например: SELECT * FROM t; --вывод всех строк и столбцов из таблицы t. Строки в таблицах часто располагают в порядке возрастания значения какого-то столбца, т.е. сортируют. Для этого с оператором SELECT используется предложение ORDER BY. Например: SELECT * FROM i.t Dolgnosti ORDER BY who; -- вывод содержимого таблицы t, отсортированного по столбцу who. В этом запросе «Dolgnosti» – псевдоним таблицы t. Для выполнения групповых операций в составе оператора SELECT применяется предложение GROUP BY, например: SELECT pol, count(pol) as Kol_vo FROM t GROUP BY pol; -- группировка В этом запросе используется агрегатная функция Count, которая подсчитывает количество строк. В результате запроса для каждого пола отдельно подсчитывается число строк, и в качестве заголовка столбца с этим числом используется «Kol_vo». Чтобы изменить значения данных в строках таблицы, для которых выполняется некоторое условие, используется оператор UPDATE с предложением WHERE, например: UPDATE t SET owner='Bush99' WHERE owner='Petrova99'; -- изменить значение в столбце owner для строки, отвечающей условию. В этом запросе после SET записано имя поля, для которого производится обновление и новое значение, а после WHERE записано условие, при котором строка обновляется. Задание. Прочитать текст лабораторной работы. В соответствии с последующими методическими указаниями выполнить нижеперечисленные действия, сохраняя копии экрана: 1. Запуск MySQL. 2. Выполнение запросов без обращения к таблицам. 3. Создание БД и вывод списка БД. 4. Определение новой таблицы и вывод списка таблиц. 5. Ввод данных в таблицу. 6. Сортировка таблицы и различные запросы на выборку. 7. Обновление данных. Ответить на все контрольные вопросы. Составить отчет по лабораторной работе, выслать на проверку. Методические указания к выполнению задания 1. Запуск MySQL Зайти на сайт: https://paiza.io/en/languages/mysql (если сайт недоступен, можно использовать другие сайты с сервисом МуSQL онлайн, например: https://www.mycompiler.io/new/sql https://www.jdoodle.com/online-mysql-terminal/ http://www.sqlfiddle.com/ Нажать кнопку «Start MySQL Online (Free)» (рис. 1). Рисунок 1 – Скриншот начальной страницы сайта с МуSQL онлайн 2. Выполнение запросов без обращения к таблицам Удалите из черной области образцы запросов. Скопируйте запрос SELECT VERSION(), CURRENT_DATE; -- вывод версии MySQL и сегодняшней даты и вставьте в черную область. Нажмите кнопку Run (Ctrl-Enter). Внизу в области Output должен появиться результат выполнения запроса, как видно из следующего рисунка (рис. 2). Рисунок 2 – Скриншот с текстом и результатом запроса без обращения к таблице Если нет результата, нажмите кнопку «Share or Embed»: и выберите вкладку Embed. Если прокрутить содержимое вкладки, результат будет виден. Точно так же выполнить следующий запрос, удалив предыдущий, при этом вместо числа 5 использовать свой номер варианта (рис. 3): SELECT SIN(PI()/4), (4+1)*5; -- вычисление синуса и выражения Рисунок 3 – Скриншот, показывающий результаты запроса с выражениями 3. Создание БД и вывод списка БД Выполнить следующие запросы (вместо i использовать первую букву своей фамилии в английской транслитерации, например, для фамилии «Сидоров» будет команда CREATE DATABASE S;): CREATE DATABASE i; -- создание БД с именем i SHOW DATABASES; -- вывод списка БД Рисунок 4 – Скриншот, показывающий текст и результаты запроса, связанного с именами баз данных 4. Определение новой таблицы и вывод списка таблиц Выполнить следующие запросы (так же как и ранее, заменив имя БД на первую букву своей фамилии) (рис. 5): CREATE DATABASE i; -- создание БД USE i; -- сделать текущей БД с именем i CREATE TABLE t (name VARCHAR(20), owner VARCHAR(20), who VARCHAR(20), pol CHAR(1), birth DATE, free DATE); -- создание таблицы с именем t SHOW TABLES; -- вывод списка таблиц Рисунок 5 – Скриншот, показывающий текст и результаты запроса на создание таблицы 5. Ввод данных в таблицу Выполнить следующий запрос, написав после фамилий вместо 99 № своего варианта: INSERT INTO t VALUES ('Ivanov99', 'Ivanova99','student','M', '2000-01-01', NULL); -- добавление строки в таблицу То же самое сделать, изменив фамилию Ivanov на Petrov, а затем на Sidorov, при этом изменяя должность, пол и даты (в одной из дат число месяца сделать как номер своего варианта). Должно получиться три строки в таблице (рис. 6). Рисунок 6 – Скриншот, показывающий текст и результаты запроса на заполнение строк 6. Сортировка таблицы и различные запросы на выборку Для сортировки выполнить запрос (рис. 7): SELECT * FROM i.t Dolgnosti ORDER BY who; -- вывод содержимого таблицы t, отсортированного по столбцу who; Рисунок 6 – Скриншот, показывающий текст и результаты запроса с сортировкой Выполнить другой запрос на выборку, сгруппировывающий по одинаковым полам (рис. 7): SELECT pol, count(pol) as Kol_vo FROM t GROUP BY pol; -- группировка Рисунок 7 – Скриншот, показывающий текст и результаты запроса с группировкой 7. Обновление данных Вывести данные таблицы, затем изменить существующие данные, например, сменить фамилию, используя в качестве образца следующие запросы (рис. 8): SELECT * FROM t; UPDATE t SET owner='Bush99' WHERE owner='Petrova99'; -- изменить значение в столбце owner для строки, отвечающей условию SELECT * FROM t; Рисунок 8 – Скриншот, показывающий текст и результаты запроса на обновление Контрольные вопросы. Что указывается при создании таблицы? Сколько таблиц находится в схеме, с которой производились операции? Как использовать оператор UPDATE? Отчет по лабораторной работе, дополнительно к указанному в разделе «Оформление отчетов», должен включать скриншоты, показывающие тексты и результаты выполнения запросов. Лабораторная работа 4. Операторы и функции в MySQLЦель работы: получить навыки использования некоторых функций и операторов в MySQL. Теоретическая часть Оператор SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц. С оператором SELECT могут использоваться различные дополнительные предложения, некоторые из которых приведены далее: DISTINCT указывает, что не должны возвращаться дублирующиеся записи select_expression,... задает столбцы, в которых необходимо проводить выборку. FROM table_references задает таблицы, из которых надлежит извлекать строки. Если указано имя более чем одной таблицы, следует выполнить объединение JOIN. WHERE where_definition GROUP BY col_name HAVING where_definition ORDER BY col_name LIMIT [offset,] rows - может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1). При указании ключевых слов следует точно соблюдать порядок, указанный выше. Например, выражение HAVING должно располагаться после всех выражений GROUP BY и перед всеми выражениями ORDER BY. Используя ключевое слово AS, выражению в SELECT можно присвоить псевдоним. Псевдоним используется в качестве имени столбца в данном выражении и может применяться в ORDER BY или HAVING. Оператор JOIN при использовании в командах SELECT может использоваться с различными параметрами, некоторые из которых приведены далее: LEFT - если запись для правой таблицы в частях ON или USING в LEFT JOIN не найдена, то для данной таблицы используется строка, в которой все столбцы установлены в NULL. Эту возможность можно применять для нахождения результатов в таблице, не имеющей эквивалента в другой таблице. RIGHT - тает аналогично LEFT JOIN. INNER - полное объединение используемых таблиц. Оператор UNION используется для объединения результатов работы нескольких команд SELECT в один набор результатов. Синтаксис оператора UNION SELECT ... UNION [ALL] SELECT ... [UNION SELECT ...] Столбцы, перечисленные в части select_expression должны быть одинакового типа. Имена столбцов, указанные в первом SELECT будут использованы как имена столбцов для всего результата. Если не используется ключевое слово ALL для UNION, все возвращенные строки будут уникальными, так как по умолчанию подразумевается DISTINCT для всего результирующего набора данных. Если указать ключевое слово ALL, то результат будет содержать все найденные строки из всех примененных команд SELECT. Если для всего результата UNION необходимо применить оператор ORDER BY, следует использовать круглые скобки. Задание Прочитать текст лабораторной работы. Выполнить последующие действия, сохраняя копии экрана: Создание и заполнение исходных таблиц. Использование оператора соединения JOIN. Использование оператора пересечения IN. Использование оператора объединения UNION. Ответить на все контрольные вопросы. Составить отчет по лабораторной работе. Выслать отчет на проверку. Порядок выполнения: Запустить MySQL онлайн, как в предыдущей лабораторной работе, используя, например, https://paiza.io/en/languages/mysql#! (может быть использован и другой сайт, предоставляющий функции MySQL онлайн). 1. Создание и заполнение исходных таблиц Создайте две таблицы, как изложено далее, а в конце фамилий вместо числа 5 напишите НОМЕР СВОЕГО ВАРИАНТА по списку, например для 10-го варианта будет Ivanov10. Для создания и заполнения таблицы qwer и вывода её содержимого выполнить скрипт: CREATE TABLE qwer(q integer, w char(20)); INSERT INTO qwer (q, w) VALUES(1, 'Ivanov5'); INSERT INTO qwer (q, w) VALUES(2, 'Ivanoff5'); INSERT INTO qwer (q, w) VALUES(3, 'Ivanov5'); INSERT INTO qwer (q, w) VALUES(4, 'L5'); INSERT INTO qwer (q, w) VALUES(5, 'Petrov5'); INSERT INTO qwer (q, w) VALUES(1, 'Ivanova5'); SELECT * FROM qwer; Выполнить похожий скрипт, создающий и заполняющий таблицу t2 и выводящий её содержимое: CREATE TABLE t2(fio char(20), summa integer); INSERT INTO t2 (fio, summa) VALUES('Ivanoff5', 354); INSERT INTO t2 (fio, summa) VALUES ('Ivanov5', 10); INSERT INTO t2 (fio, summa) VALUES ('Ivanova5', 23); INSERT INTO t2 (fio, summa) VALUES ('Petroff5', 2); INSERT INTO t2 (fio, summa) VALUES ('Petrov5', 1); INSERT INTO t2 (fio, summa) VALUES ('Petrova5', 3); INSERT INTO t2 (fio, summa) VALUES ('Sidorov5', 0); INSERT INTO t2 (fio, summa) VALUES ('Sidorova5', 4); SELECT * FROM t2; 2. Использование оператора соединения JOIN После создания и заполнения обеих таблиц введите и выполните запрос, обозначаемый B, следующего вида: SELECT * FROM qwer INNER JOIN t2 p ON (qwer.w = p.fio); Должен появиться результат наподобие рис. 3, в котором выводятся только записи, у которых есть соответствия в полях обеих таблиц. Рис. 3 – Фрагмент скриншота, показывающего результат запроса SELECT INNER JOIN Выполните тот же запрос, но добавьте до точки с запятой «ORDER BY w»; таблица будет выведена в алфавитном порядке фамилий (рис. 4): SELECT * FROM qwer INNER JOIN t2 p ON (qwer.w = p.fio) ORDER BY w; Рис. 4 – Фрагмент скриншота, показывающего текст и результат запроса с сортировкой (здесь и далее первые 16 строк текста совпадают с первыми 16 строками на рис. 3) По сравнению с предыдущим рисунком изменились номера. В запросе B замените слово INNER на LEFT; должны выводиться все строки первой таблицы, а если нет соответствия во второй, справа будут пустые значения (NULL) (рис. 5). Рис. 5 – Фрагмент скриншота, показывающего текст и результат запроса с LEFT Затем замените LEFT на RIGHT; результат должен быть противоположный (рис. 6): Рис. 6 – Фрагмент скриншота, показывающего текст и результат запроса с RIGHT 3. Использование оператора пересечения IN Чтобы получить пересечение двух или более наборов данных, в MySQL можно использовать оператор IN. Выполните запрос следующего вида (рис. 7): SELECT fio FROM t2 WHERE fio IN (SELECT w FROM qwer); Рис. 7 – Фрагмент скриншота, показывающего текст и результат запроса с INNER 4. Использование оператора объединения UNION Выполните следующий запрос: SELECT w, q FROM qwer UNION SELECT fio, summa FROM t2; Должно отобразиться последовательно содержимое указанных полей обеих таблиц (рис. 8): Рис. 8 – Фрагмент скриншота, показывающего текст и результат запроса с UNION Модифицируйте запрос следующим образом: (SELECT w, q FROM qwer) UNION (SELECT fio, summa FROM t2) ORDER BY w; Список будет выведен в алфавитном порядке (рис. 9): Рис. 9 – Фрагмент скриншота, показывающего запрос с UNION и сортировкой Добавьте перед точкой с запятой «LIMIT 5,4», будет выведено только 4 строки, начиная с 5-й (рис. 10): Рис. 10 – Фрагмент скриншота, показывающего запрос с LIMIT Контрольные вопросы. Что позволяет сделать JOIN? Что позволяет сделать оператор UNION? Как заменить маленькую букву на большую с помощью операторов и функций MySQL? Отчет по лабораторной работе должен быть оформлен по правилам оформления отчетов и среди прочего включать скриншоты результатов выполнения всех операторов (команд) JOIN, IN, UNION. ЛитератураБазы данных: Метод. указания к лабораторным работам / А. П. Димитриев; Чуваш. ун-т. Чебоксары, 2011. 36 с. Фуллер Л. У., Кук К. Access 2010 для чайников = Access 2010 For Dummies. – М.: Диалектика, 2010. 384 с. Балтер Э. Microsoft Office Access 2007: профессиональное программирование = Alison Balter's Mastering Microsoft Office Access 2007 Development. – М.: «Вильямс», 2008. – 1296 с. Грох М., Стокман Дж., Пауэлл Г. Microsoft Office Access 2007. Библия пользователя = Microsoft Office Access 2007 Bible. – М.: «Диалектика», 2008. 1200 с. Фуллер Л.У., Кук К., Кауфельд Дж. Microsoft Office Access 2007 для «чайников» / Пер. с англ. – М.: Диалектика, 2007. – 384 с. Костромин В.А. OpenOffice.org – открытый офис для Linux и Windows. – СПб.: БХВ-Петербург, 2005. – 272 с. Руководство пользователя OpenOffice.org 2. – СПб.: БХВ-Петербург, 2007. – 320 с. OpenOffice.org pro для профессионала. – Изд. 2-е, испр. и доп. – М.: ДМК Пресс, 2008. – 448 с. Питоньяк Э. OpenOffice.org pro Автоматизация работы. – М.: ДМК Пресс, 2008. – 512 с. Хахаев И. А., Машков В. В., Губкина Г. Е. и др. OpenOffice.org: Теория и практика. – М.: ALT Linux, Бином. Лаборатория знаний, 2008. – 318 с. Козодаев Р., Маджугин А. OpenOffice.org 3. Полное руководство пользователя. – СПб.: БХВ-Петербург, 2009. – 704 с. Справочное руководство по MySQL. URL: http://www.mysql.ru/docs/man/ (дата обращения: 02.09.2021). Желтов В.П., Михайлов А.Л., Стаценко Е.Ф., Димитриев А. П. Автоматизированные системы обработки информации и управления: Метод. указания по оформлению студенческих работ. Чебоксары, Чуваш. ун-т, 2005. 60 с. ГОСТ 7.32-2017. Межгосударственный стандарт. Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления5. Строковые функции. URL: https://phpclub.ru/mysql/doc/string-functions.html (дата обращения: 02.09.2021). Синтаксис оператора JOIN. URL: https://phpclub.ru/mysql/doc/join.html (дата обращения: 02.09.2021). Синтаксис оператора UNION. URL: https://phpclub.ru/mysql/doc/union.html (дата обращения: 02.09.2021). Оформление отчетовОтчет по лабораторной работе должен включать титульный лист, основную часть с заключением (выводами), рекомендуется включить приложение. Заголовки (не пункты) располагают в отдельной строке (строках) симметрично к тексту. Заголовки разделов и подразделов отделяют от текста пробелом в одну строку сверху. В заголовках не допускаются переносы слов. Точку в конце заголовка не ставят. Заголовок и начало текста не должны располагаться на разных страницах. Заголовки подразделов (при наличии) и пунктов печатаются с прописной буквы. Рекомендуется разделы основной части начинать с новой страницы, включая список использованных источников и приложения. В титульном листе указывают вуз, факультет, кафедру, дисциплину, вид работы и ее номер, текст названия работы, исполнителя, руководителя, город, год. Основная часть должна включать следующие разделы: – Введение. – Необходимое число разделов; заголовок каждого из разделов должен начинаться с арабской цифры, после которой ставится точка. – Заключение. Во введении должны быть: - цель работы (при наличии); - задание; - исходные данные, необходимые для выполнения задания (по варианту или номер варианта при отсутствии других данных). Как правило, введение не содержит номера и не должно содержать подразделов. Основная часть должна содержать: - материалы из теоретической части лабораторной работы (при наличии); - основные результаты выполненной работы в виде экранных копий; - ответы на контрольные вопросы; - листинги программного текста (если они не включены в приложение). Заключение должно содержать: – Краткие выводы по результатам выполненной работы. – Оценку полноты решений поставленных задач. Аналогично введению заключение не нумеруется и не должно содержать подразделов. Рисунки должны иметь номера и наименования, при этом недопустимы общие фразы, такие как «Выполнение задания 1», «Результаты». Качество напечатанного текста и оформления иллюстраций должно удовлетворять требованию их четкого воспроизведения [3]. Необходимо соблюдать четкость изображения. До появления рисунка в тексте должно сообщаться, что изображено на рисунке с этим номером. Цвет шрифта должен быть черным, размер шрифта - не менее 12 пт. Рекомендуемый тип шрифта для основного текста отчета - Times New Roman. Полужирный шрифт применяют только для заголовков разделов и подразделов, заголовков структурных элементов. Использование курсива допускается для обозначения объектов (биология, геология, медицина, нанотехнологии, генная инженерия и др.) и написания терминов (например, in vivo, in vitro) и иных объектов и терминов на латыни. Размеры полей: левое - 30 мм, правое - 15 мм, верхнее и нижнее - 20 мм. Абзацный отступ должен быть одинаковым по всему тексту отчета и равен 1,25 см. Страницы должны иметь номера (кроме титульного листа). Образец титульного листа: 1 https://ru.wikipedia.org/wiki/OpenOffice 2 Упражнение № 12. Создание элемента управления. https://infopedia.su/17x2034.html 3 http://infomod.ru/system/files/laboratornaya_rabota_2.pdf (Дата обращения 2018 г.). К 2020 г. страница удалена 4 Ю.В. Степура, С.Ю. Чепурных ОФИСНЫЕ ПАКЕТЫ. БАЗЫ ДАННЫХ BASE. Екатеринбург: ГОУ ВПО УГТУ−УПИ. 2009. 5 Настоящий стандарт распространяется на отчеты о работах, выполняемых высшими учебными заведениями |