Главная страница
Навигация по странице:

  • Групповые функции в операторе select

  • ЗАДАНИЯ Задание1.

  • Атрибуты

  • Проектирование. 380305БИ_Проектирование баз данных_лабораторные_ПоповВБ.docx. Лабораторная работа 1. Интерфейс субд mysql. Предоставление доступа и привилегий. Утилиты, входящие в состав субд цель работы


    Скачать 1.15 Mb.
    НазваниеЛабораторная работа 1. Интерфейс субд mysql. Предоставление доступа и привилегий. Утилиты, входящие в состав субд цель работы
    АнкорПроектирование
    Дата11.12.2022
    Размер1.15 Mb.
    Формат файлаdocx
    Имя файла380305БИ_Проектирование баз данных_лабораторные_ПоповВБ.docx.docx
    ТипЛабораторная работа
    #839179
    страница14 из 14
    1   ...   6   7   8   9   10   11   12   13   14

    Синтаксис оператора SELECT

    Оператор SELECT имеет следующую структуру:

    SELECT [STRAIGHT_JOIN]

    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]

    [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY]

    [DISTINCT | DISTINCTROW | ALL]

    select_expression,...

    [INTO {OUTFILE | DUMPFILE} 'file_name' export_options]

    [FROM table_references

    [WHERE where_definition]

    [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]

    [HAVING where_definition]

    [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]

    [LIMIT [offset,] rows]

    [PROCEDURE procedure_name]

    [FOR UPDATE | LOCK IN SHARE MODE]]

    SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц.

    select_expression может содержать следующие функции и операторы:


    + - * /

    Арифметические действия

    %

    Остаток от деления (как в C)

    | &

    Битовые функции (используется 48 бит)

    - С

    Мена знака числа

    ( )

    Скобки

    BETWEEN(A, B, C)

    (A >= B) AND (A <= C)

    BIT_COUNT()

    Количество бит

    ELT(N, a, b, c, d)

    Возвращает a, если N == 1, b, если N == 2 и т. д. a, b, c, d - строки.

    ПРИМЕР:

    ELT(3, "First", "Second", "Third", "Fourth")
    вернет "Third"

    FIELD(Z, a, b, c)

    Возвращает a, если Z == a; b, если

    Z == b и т. д., где a, b, c, d строки

    ПРИМЕР:

    FIELD("Second", "First", "Second", "Third", "Fourth")
    вернет "Second"

    IF(A, B, C)

    Если A истина (!= 0 and != NULL), то вернет B, иначе вернет C

    IFNULL(A, B)

    Если A не null, вернет A, иначе вернет B

    ISNULL(A)

    Вернет 1, если A == NULL, иначе вернет 0. Эквивалент ('A == NULL')

    NOT !

    NOT, вернет TRUE (1) или FALSE (0)

    OR, AND

    Вернет TRUE (1) или FALSE (0)

    SIGN()

    Вернет -1, 0 или 1 (знак аргумента)

    SUM()

    Сумма столбца

    = <> <= < >= >

    Вернет TRUE (1) или FALSE (0)

    expr LIKE expr

    Вернет TRUE (1) или FALSE (0)

    expr NOT LIKE expr

    Вернет TRUE (1) или FALSE (0)

    expr REGEXP expr

    Проверяет строку на соответствие регулярному выражению expr

    expr NOT REGEXP expr

    Проверяет строку на соответствие регулярному выражению expr

    select_expression может также содержать один или большее количество следующих математических функций:

    ABS()

    Абсолютное значение (модуль числа)

    CEILING()

    ()

    EXP()

    Экспонента

    FORMAT(nr, NUM)

    Форматирует число в формат '#, ###, ###.##' с NUM десятичных цифр

    LOG()

    Логарифм

    LOG10()

    Логарифм по основанию 10

    MIN(), MAX()

    Минимум или максимум соответственно. Должна иметь при вызове два или более аргумента, иначе рассматривается как групповая функция

    MOD()

    Остаток от деления (аналог %)

    POW()

    Степень

    ROUND()

    Округление до ближайшего целого числа

    RAND([integer_expr])

    Случайное число типа float, 0 <= x <= 1.0, используется integer_expr как значение для запуска генератора

    SQRT()

    Квадратный корень

    select_expression может также содержать одну или больше следующих строковых функций.

    CONCAT()

    Объединение строк

    INTERVAL(A, a, b, c, d)

    Возвращает 1, если A == a; 2, если A == b... Если совпадений нет, вернет 0. A, a, b, c, d - строки.

    INSERT(org, strt, len, new)

    Заменяет подстроку org[strt...len(gth)] на new. Первая позиция строки=1

    LCASE(A)

    Приводит A к нижнему регистру

    LEFT()

    Возвращает строку символов, отсчитывая слева

    LENGTH()

    Длина строки

    LOCATE(A, B)

    Позиция подстроки B в строке A

    LOCATE(A, B, C)

    Позиция подстроки B в строке A, начиная с позиции C

    LTRIM(str)

    Удаляет все начальные пробелы из строки str

    REPLACE(A, B, C)

    Заменяет все подстроки B в строке A на подстроку C

    RIGHT()

    Получение подстроки справа

    RTRIM(str)

    Удаляет хвостовые пробелы из строки str

    STRCMP()

    Возвращает 0, если строки одинаковые

    SUBSTRING(A, B, C)

    Возвращает подстроку из A, с позиции B до позиции C

    UCASE(A)

    Переводит A в верхний регистр

    И наконец несколько просто полезных функций, которые тоже можно применить в select_expression.

    CURDATE()

    Текущая дата

    DATABASE()

    Имя текущей базы данных из которой выполняется выбор

    FROM_DAYS()

    Меняет день на DATE

    NOW()

    Текущее время в форматах YYYYMMDDHHMMSS или "YYYY-MM-DD HH:MM:SS". Формат зависит от того в каком контексте используется NOW(): числовом или строковом

    PASSWORD()

    Шифрует строку

    PERIOD_ADD(P:N)

    Добавить N месяцев к периоду P (в формате YYMM)

    PERIOD_DIFF(A, B)

    Возвращает месяцы между A и B. Обратите внимание, что PERIOD_DIFF работает только с датами в форме YYMM или YYYMM

    TO_DAYS()

    Меняет DATE (YYMMDD) на номер дня

    UNIX_TIMESTAMP([date])

    Возвращает метку времени unix, если вызвана без date (секунды, начиная с GMT 1970.01.01 00:00:00). При вызове со столбцом TIMESTAMP вернет TIMESTAMP.

    date может быть также строкой DATE, DATETIME или числом в формате YYMMDD (или YYYMMDD)

    USER()

    Возвращает логин текущего пользователя

    WEEKDAY()

    Возвращает день недели (0 = понедельник, 1 = вторник, ...)


    Групповые функции в операторе select
    Следующие функции могут быть использованы в предложении GROUP:


    AVG()

    Среднее для группы GROUP

    SUM()

    Сумма элементов GROUP

    COUNT()

    Число элементов в GROUP

    MIN()

    Минимальный элемент в GROUP

    MAX()

    Максимальный элемент в GROUP

    ЗАДАНИЯ

    Задание1.

    В качестве предметной области рассматривается автотранспортное предприятие (гараж), предоставляющее услуги автомобильных перевозок топлива. База данных должна хранить данные об автомобилях, водителях, марках перевозимого топлива, данные о перевозках – автомобиль, водитель, перевезенное топливо, пробег, дата. Водители закреплены за автомобилями, причем за одним автомобилем может быть закреплено несколько водителей и каждый водитель может ездить на нескольких автомобилях.

    Задание 2.

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

    • информация о расписании рейсов (номер рейса, тип самолета, пункт отправления, пункт назначения, дата вылета, время вылета, время полета, цена билета);

    • информация о свободных местах на рейс (номер рейса, дата вылета, общее количество мест, количество свободных мест);

    • информация о пассажирах, купивших билеты на рейсы (номер паспорта, фамилия, имя, отчество, номер рейса, дата вылета);

    • архив, в который помещается информация о выполненном рейсе (Номер рейса, дата вылета, общее количество мест, количество проданных мест).

    Задание 3.

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

    Задание 4.

    Спроектировать базу данных, предназначенную для хранения информации о торгах на товарно-сырьевой бирже. На торги могут быть представлены разные товары одной и той же фирмы, и одни и те же товары разных фирм. Каждый товар имеет свой уникальный код, произведен определенной фирмой в определенное время. Товар имеет гарантийный срок хранения, единицу измерения. Товары поставляются партиями. Партия характеризуется: номером, условиями поставки (предоплата или нет). Партии товаров выставляют брокеры. В одну партию товаров включаются разнообразные товары от разных производителей определенного количества и цены. Считается, что партии товаров, выставленные на продажу, покупает сама биржа, и она же расплачивается с брокером и производителями товара. Если условием поставки указана предоплата, то биржа перечисляет деньги в день заключения договора, а если нет – то в день отгрузки. Брокеры работают за фиксированный процент прибыли от суммы заключенных сделок и перечисляют конторе, в которой они работают, фиксированную сумму денег, а все остальные заработанные ими деньги составляют их чистый доход (зарплату).
    Задание 5.

    Рассматривается предприятие, которое занимается поставкой и вводом в эксплуатацию оборудования для предприятий. БД должна хранить данные о заказчиках, о ценах и сроках выполнения заказов. На один вид оборудования может поступать несколько заявок от различных предприятий. На поставку оборудования или комплектующих на предприятие-заказчик оформляется заказ. На одно предприятие может быть поставлено оборудование разных наименований и в нескольких экземплярах по разным заказам. Необходимо вести учет поставок. С заказчиком по каждой поставке составляется договор купли-продажи.

    Задание 6.

    Сфера услуг отеля включает: обслуживание и бронирование номеров, ресторан, спортивный и тренажерный залы, сауну. Основной услугой является гостиничный номер, все остальные входят в разряд прочих услуг. Все заказы и их оплата записываются в базе данных отеля. Платежи за гостиничные номера и другие услуги учитываются отдельно друг от друга. Список клиентов содержит: код клиента, имя и фамилию клиента, страну, город, номер телефона. Список номеров включает: номер комнаты, класс номера, оплата номера в день. В информацию о платежах за номера входит: дата, код клиента, номер комнаты, число дней. Описание прочих услуг включает дату, код клиента, вид услуги (ресторан, спортивные тренажеры, досуг), размер оплаты.
    Задание 7.

    Издательство — предприятие, занимающееся выпуском разнообразной печатной продукции. Издательство заключает договор с заказчиком (клиентом) на выполнение заказа. Заказчиком может выступать частное лицо или организация. Частное лицо может быть автором издания (или одним из авторов, если их несколько) или представителем автора. Организация для контактов с издательством также имеет своего представителя – контактную персону. Заказ может быть книгой, брошюрой, рекламным проспектом, буклетом, бюллетенем для голосования или каким-либо другим видом издательской продукции. Подготовленные издательством материалы заказчика печатаются в типографиях, где издательство размещает свои заказы. Информацию о работе издательства можно сгруппировать следующим образом:

    • сведения о заказчиках (частное лицо или организация, личные данные контактной персоны, адрес, телефон, факс);

    • сведения о заказах (номер заказа, заказчик, вид печатной продукции, издание, типография, дата приема заказа, отметка о выполнении, дата выполнения заказа);

    • сведения об изданиях (код издания, автор и название, объем в печатных листах, тираж, номер заказа);

    • сведения об авторах (личные данные: Ф.И.О., домашний адрес, телефон; дополнительные сведения);

    • сведения о типографиях (название, адрес, телефон).

    Задание 8.

    Хозрасчетная поликлиника ведет прием и учет пациентов, учет их посещений (визитов) и учет обслуживания пациентов специалистами (врачами) поликлиники. Существует необходимость в хранении информации обо всех посещениях поликлиники пациентами и о том, на приеме у каких специалистов они находились. Хранимую информацию о деятельности хозрасчетной поликлиники и ее пациентах можно сгруппировать так:

    • пациент (номер истории болезни, Ф. И. О. пациента, домашний адрес пациента, телефон);

    • специалист (личный номер специалиста, Ф. И. О. специалиста, специальность, домашний адрес, телефон);

    • визиты (пациент, специалист, визит первый или повторный, дата визита, анамнез, диагноз, лечение, стоимость лекарств, стоимость услуг).

    • архив, куда переносится информация о пациенте, если после его последнего визита прошел определенный срок (например, 3 года),

    Задание 9.

    Задание: Спроектировать базу данных и создать приложение для автоматизации работы фирмы по производству обуви. База данных должна хранить данные о каждом сотруднике, список поставщиков необходимой продукции или комплектующих и данные о каждом поставщике, список поставляемой продукции или комплектующих, список выполняемых сотрудниками работ. Каждый поставщик может поставлять несколько видов продукции. Каждый сотрудник может выполнять несколько видов работ, и каждый вид работ может выполняться несколькими сотрудниками.

    Задание 10.

    В базе данных фирмы “Мебель” хранится информация об изделиях, мастерах, их изготавливающих, клиентах фирмы, а также о накладных, составляемых при отгрузке изделий клиентам. Каждый мастер может изготавливать несколько изделий, однако каждое изделие изготавливается только одним мастером. В накладной указывается отпускная цена изделия, которая может отличаться от его себестоимости вследствие торговых наценок, индивидуальных скидок клиентам, в частности – при оптовых закупках. Руководству фирмы желательно знать, какие изделия выпускаются каждым из мастеров, сколько изделий и на какую сумму

    Задание 11.

    База данных должна хранить данные о сотрудниках предприятия, перечень отделов и подразделений предприятия. В справочнике содержатся сведения о сотрудниках. Должен учитываться отдел, в котором работает сотрудник. Каждый отдел относится к какому-либо подразделению предприятия, причем несколько отделов относятся к одному подразделению. В базе данных должна храниться информация об отделах и подразделениях.
    Задание 12.

    Рассмотрим специализированную библиотеку, которая располагает книжным фондом определенной тематической направленности. Предполагается, что каждая книга фонда может быть в одном экземпляре, так и в нескольких. Поэтому каждому экземпляру книги соответствует уникальный инвентарный номер и библиотечный код книги. Данные о книге содержатся в библиографической карточке, где указывается библиотечный код книги, автор, издательство и год издания. Библиотека выдает книги читателям во временное пользование. При записи в библиотеку каждому читателю присваивается порядковый номер, ему выдается читательский билет и для него заводится учетная карточка. Учетная карточка содержит информацию о выданных и возвращенных книгах.

    ЛИТЕРАТУРА

      1. http://www.opennet.ru/docs/RUS/mysql_notes/#f1

      2. Поль Дюбуа. MySQL / Поль Дюбуа (Paul DuBois) // – Издательский дом "Вильямс". М.

      3. Chris Anley. Hackproofing MySQL / Chris Anley / MySQL.

      4. http://dev.mysql.com/doc/refman/4.0/ru/

      5. http://dev.mysql.com/doc/refman/5.0/en/

      6. man mysqld

      7. man mysqld_safe

      8. mysqldump –help



    1Эта и все, описанные ниже команды добавлены начиная с версии 5.12

    2 Атрибуты ssl_cipher, x509_issuer, x509_subject обязательны для заполнения для версии сервера 5.12

    3 Для случая, если работаете на том же компьютере где запущен сервер БД

    4 Даны для справки, для текущей версии сервера может быть существенно расширены

    5 Перечень типов данных, поддерживаемых СУБД необходимо уточнить у производителя

    6 В случае если данные вставляются не во все ячейки таблицы то это указывается при формировании инструкции tablename(id, id2), где tablename – имя таблицы, а id, id2 наименования атрибутов таблицы.

    7 В случае использования табулятора \t

    8 В случае Enter \r\n

    9 См утилиту Mysqldump

    10 Примечание. Корректно работает только при задании кодировки по умолчанию. Задается в разделе MYSQLD default_character_set=win1251

    11

    1   ...   6   7   8   9   10   11   12   13   14


    написать администратору сайта