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

  • Пример

  • Select distinct

  • Примеры.

  • II. Использование функций 1. Агрегатные функции. Примеры.

  • Select count ( distinct номер_поставщика ) from SPJ

  • Select avg(

  • Лабораторная работа №5. Работа с внешними базами данных. Ограничение доступа. Цель работы

  • Предоставление доступа к базам данных

  • Рисунок 17 - Редактирование прав пользователя

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


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

    Пример выполнения
    1. Выбор всех строк и столбцов таблицы.

    Пример.

    Выдать полную информацию о поставщиках.

    Select * from S

    Результат: таблица S в полном объеме.

    Подготовьте запрос и проверьте полученный результат.



    2. Измение порядка следования столбцов.

    Пример.

    Выдать таблицу S в следующем порядке: фамилия, город, рейтинг, номер_поставщика.

    Select фамилия, город, рейтинг, номер_поставщика from S

    Результат: таблица S в требуемом порядке.

    Подготовьте запрос и проверьте полученный результат.



    3. Выбор заданных столбцов.

    Пример.

    Выдать номера всех поставляемых деталей.

    Select номер_детали fromSPJ

    Результат: столбец номер_детали таблицы SPJ


    4. Выбор без повторения.

    Пример.

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

    Select distinct номер_детали from SPJ

    Подготовьте запрос и проверьте полученный результат.



    5. Использование в запросах констант и выражений.

    Пример.

    Select номер_детали, "вес в граммах", вес*454 fromP

    Результат:

    P1 вес в граммах=5448

     

    ---------------------

     

    ---------------------

     

    P6 вес в граммах=8226

    Подготовьте запрос и проверьте полученный результат.



    6.Ограничение в выборке.

    Пример.

    Выдать номера всех поставщиков, находящихся в Париже с рейтингом > 20.

    Select номер_поставщика fromSwhere город="Париж" and рейтинг>20

    Подготовьте запрос и проверьте полученный результат.



    7. Выборка с упорядочиванием.

    Пример.

    Выдать номера поставщиков, находящихся в Париже в порядке убывания рейтинга.

    Select номер_поставщика, рейтинг fromSwhere город="Париж" orderby рейтинг desc

    Подготовьте запрос и проверьте полученный результат.



    8. Упорядочивание по нескольким столбцам.

    Пример.

    Выдать список поставщиков, упорядоченных по городу, в пределах города - по рейтингу.

    Select * from S order by 4, 3

    Подготовьте запрос и проверьте полученный результат.



    9. Фраза in ( not in ).

    Пример.

    Выдать детали, вес которых равен 12, 16 или 17.

    Select номер_детали, название, вес fromPwhere вес in (12, 16, 17)



    12. Выбор по шаблону.

    Примеры.

    а) Выбрать список деталей, начинающихся с буквы "Б"11

    Select номер_детали, название, вес fromPwhere название like "Б%"



    II. Использование функций

    1. Агрегатные функции.

    Примеры.

    а) Выдать общее количество поставщиков.

    Select count (*) from S

    Результат: 5

    Подготовьте запрос и проверьте полученный результат.



    б) Выдать общее количество поставщиков, поставляющих в настоящее время детали.

    Select count ( distinct номер_поставщика ) from SPJ

    Результат: 5

    Подготовьте запрос и проверьте полученный результат.



    д) Выдать средний, минимальный и максимальный объем поставок для поставщика S1 с соответствующим заголовком.

    Select avg(количество) average, min(количество) minimum,

    max(количество) maximum from SPJ where номер_поставщика='S1'
    Подготовьте запрос и проверьте полученный результат.



    Вариант 4.

    1. Выдать номера и фамилии поставщиков, поставляющих по крайней мере одну деталь, поставляемую по крайней мере одним поставщиком, который поставляет по крайней мере одну красную деталь. Т.е. необходимо выдать полные сведения о всех поставщиках которые поставляют такие детали, которые есть в поставках поставщиков, поставляющих красные детали.



    2. Выдать список деталей, поставляющихся для всех изделий, изготавливаемых в Лондоне.



    3. Выдать номера деталей, поставляемых каким-либо поставщиком из Лон-дона.



    4. Выдать номера деталей, поставляемых для какого-либо изделия из Лон-дона.



    Контрольные вопросы

    1. Что такое коррелированный запрос? Чем отличается коррелированный запрос от некоррелированного?

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

    1. Какие существуют ограничения на формирование коррелированного запроса?

    Важное свойство коррелированного подзароса состоит в следующим: так как он зависит от значения результата внешнего оператора select, то должен выполняться повторно по одному разу для каждого значения, производимого внешним оператором select. Некоррелированный подзапрос выполняется только один раз.

    1. Какими средствами SQL реализуются следующие операции реляционной алгебры: ограничение, декартово произведение, проекция, пересечение, объединение, разность, соединение?

    Синтаксис операции объединения:

    Синтаксис операции пересечения:

    Синтаксис операции декартового произведения:

    Синтаксис операции проекции:

    Соединением отношений   и   по условию   называется отношение

    1. Что такое внешнее соединение?

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

    1. В каких случаях вместо фразы IN можно использовать операцию сравнения?

    Иногда пользователь может знать, что заданный подзапрос должен возвратить в точности одно значение, как в рассматриваемом примере. В таком случае можно использовать вместо обычного IN более простой оператор сравнения (например, =, > и т. д.).

    1. Какие существуют средства группирования в SQL? Как они исполь-зуются?

    GROUP BY

    (группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)

    Лабораторная работа №5.

    Работа с внешними базами данных. Ограничение доступа.
    Цель работы: Ознакомиться со средствами предоставления полномочий на использование баз данных и таблиц и основами работы с внешними базами данных.

    Предоставление доступа к базам данных

    СУБД MySQL использует специальную базу данных для предоставления прав доступа к своим базам данных. Эти права могут базироваться на именах серверов и/или пользователей и предоставляться для одной или нескольких баз данных

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

    СУБД MySQL имеет три таблицы, а именно:

    База данных: mysql Таблица: db

    База данных: mysql Таблица: db

    Поле

    Тип

    Null

    Ключ

    Умолчание

    Extra

    Хост

    char(60)

     

    PRI

     

     

    Db

    char(32)

     

    PRI

     

     

    Пользователь

    char(16)

     

    PRI

     

     

    Select_priv

    char(1)

     

     

    N

     

    Insert_priv

    char(1)

     

     

    N

     

    Update_priv

    char(1)

     

     

    N

     

    Delete_priv

    char(1)

     

     

    N

     

    Create_priv

    char(1)

     

     

    N

     

    Drop_priv

    char(1)

     

     

    N

     




    База данных: mysql Таблица: host

    Поле

    Тип

    Null

    Ключ

    Умолчание

    Extra

    Хост

    char(60)

     

    PRI

     

     

    Db

    char(32)

     

    PRI

     

     

    Select_priv

    char(1)

     

     

    N

     

    Insert_priv

    char(1)

     

     

    N

     

    Update_priv

    char(1)

     

     

    N

     

    Delete_priv

    char(1)

     

     

    N

     

    Create_priv

    char(1)

     

     

    N

     

    Drop_priv

    char(1)

     

     

    N

     

    База данных: mysql Таблица: user

    База данных: mysql Таблица: user

    Поле

    Тип

    Null

    Key

    Умолчание

    Extra

    Хост

    char(60)

     

    PRI

     

     

    Пользователь

    char(16)

     

    PRI

     

     

    Пароль

    char(8)

     

     

     

     

    Select_priv

    char(1)

     

     

    N

     

    Insert_priv

    char(1)

     

     

    N

     

    Update_priv

    char(1)

     

     

    N

     

    Delete_priv

    char(1)

     

     

    N

     

    Create_priv

    char(1)

     

     

    N

     

    Drop_priv

    char(1)

     

     

    N

     

    Reload_priv

    char(1)

     

     

    N

     

    Shutdown_priv

    char(1)

     

     

    N

     

    Process_priv

    char(1)

     

     

    N

     

    File_priv

    char(1)

     

     

    N

     

    Текущей базой данных называется база данных, открытая с помощью операторов use Database или с помощью утилиты mysqladmin. Любая другая база данных называется внешней. Для ссылки на таблицу во внешней базе данных необходимо указать имя этой базы данных как часть имени таблицы, например, salesdb:contracts, где salesdb - имя внешней базы данных, contracts - имя таблицы. К имени базы данных можно добавить имя сервера, т.е. сетевой машины, где запущен еще один сервер баз данных mysql, и таким образом в случае распределенной базы данных обращение к таблице contracts базы данных salesdb, размещенной на сервере central, будет выглядеть следующим образом: salesdb@central:contracts.

    В программе MYSQL-FRONT также существует механизм, обеспечивающий наделение пользователей определенными правами (см. Рисунок 17).



    Рисунок 17 - Редактирование прав пользователя

    При наличии сетевого соединения с сервером выполните приведенную последовательность выполнения лабораторной работы, при отсутствии соединения создать еще 1го пользователя в вашей БД, наделив его привилегиями лишь для просмотра таблиц, в этом случае все приведенные операции осуществлять от имени созданного пользователя.
    1   ...   6   7   8   9   10   11   12   13   14


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