
- •Оглавление
- •Введение
- •Общие сведения о sql
- •Сведения об операторах sql
- •Сведения о типах данных
- •Методические указания по выполнению практической части лабораторной работы на тему «Разработка базы данных в субд MySql»
- •4.1 На что следует обратить внимание перед началом работы
- •4.2 Начало работы с MySql
- •4.3 Построение простых запросов
- •4.4 Выполнение операций с несколькими таблицами
- •4.5 Упорядочение результата order by
- •Варианты заданий
- •Список литературы
Тип множества SET
SET – это строковый тип, который может принимать ноль и более значений, каждое из которых должно быть выбрано из списка допустимых значений, определенных при создании таблицы. Элементы множества SET разделены запятыми. Как следствие, сами элементы множества не могут содержать запятых.
Например, столбец определенных как SET(‘один’, ‘два’) NOT NULL может принимать такие значения: «один», «два», «один, два»
Множество SET может иметь максимум 64 различных элемента.
Методические указания по выполнению практической части лабораторной работы на тему «Разработка базы данных в субд MySql»
В разработанной ЛР создание и наполнение БД предлагается выполнить с помощью командной строки. Это менее удобный и реже используемый способ, но он позволяет увидеть процесс моделирования БД «изнутри», более полно понять назначение операторов языка SQL, без знания которых проектирование с помощью специальных инструментов может быть затруднительным.
Предлагаемую ЛР можно условно разделить на три части:
Выполнение одиночного оператора SELECT;
Выполнение операции;
Упорядочение результата.
В процессе выполнения работы будут подробно изучены следующие операторы:
FROM
WHERE
GROUP BY
HAVING
SELECT
UNION
NATURAL JOIN
INNER JOIN
OUTER JOIN
ORDER BY
И использованы следующие типы данных:
Числовые типы данных
Символьные типы данных
4.1 На что следует обратить внимание перед началом работы
Большинство возникающих ошибок вызываются некорректным синтаксисом. Всегда следует проверять запросы. И настоятельно рекомендуется сперва писать запрос в «Блокноте», (а еще лучше в «Notepad++» и лишь потом копировать их в командную строку.
Следует отличать ` ` и ‘ ’ . Это два разных символа. Первый в латинской раскладке на месте буквы «ё», второй на месте русской «э».
` ` - используется для названий атрибутов, БД, таблиц и т.д. В принципе, данные кавычки можно опускать, они необходимы лишь в случае использования в названии каких-либо символов (тире, пробел и т.д.)
‘ ’ – Используется для выделения строковых данных и данных даты и времени.
MySQL по умолчанию НЕ чувствителен к регистру. Но принято любые команды писать большими буквами, а любые данные – мелкими. (Если не указать специально, то абсолютно не важно, с маленькой или с большой буквы вводятся названия таблиц, БД, атрибутов).
Связь может быть реализована между атрибутами с абсолютно идентичными типами данных. INT UNSIGNED и INT – разные типы данных.
Комментарии выделены двумя способами:
-- Комментарий |
В случае комментирования строки |
/* Комментарий */ |
В случае комментирования нескольких строк |
Текст запросов помещен в рамку.
4.2 Начало работы с MySql
Запустить командную строку ,выбрав в системном меню Пуск – Программы – MySQL – MySQL Server 6.0 – MySQL Command Line Client.
Открывшееся окно выглядеть так, как это показано на рис. 1.
Рис.1
На предложение ввести пароль нажмите клавишу <Enter>. После того как появилось приглашение mysql> выглядеть так, как показано на рис.2.
Рис.2
4.3 Построение простых запросов
4.3.1 FROM
Выбрать все данные из таблицы поставщиков (ключевые слова SELECT… FROM…):
SELECT *
FROM P; -- получим новую таблицу.
В результате получим новую таблицу, содержащую полную копию данных из исходной таблицы P.
4.3.2 WHERE
Выбрать все строки из таблицы поставщиков, удовлетворяющих некоторому условию (ключевое слово WHERE…):
SELECT *
FROM P
WHERE P.PNUM > 2; -- выбрать все строки, удовлетворяющих условию
В качестве условия в разделе WHERE можно использовать сложные логические выражения, использующие поля таблиц, константы, сравнения (>, <, = и т.д.), скобки, союзы AND и OR, отрицание NOT.
4.3.3 GROUP BY
Упорядочение результатов запроса (ключевое слово ORDER BY…):
Использовать GROUP BY имеет смысл только вместе с одной из аналитических групповых функций
MAX() - максимальное значение в колонке
MIN()- минимальное значение в колонке
COUNT() - количество значений в колонке
SUM() - сумма всех значений в колонке
AVG() - среднее значение
SELECT
PD.PNUM, --выбранная колонка.
SUM(PD.VOLUME) AS SM --сумма всех значений в колонке.
FROM PD --получим новую таблицу.
GROUP BY PD.DNUM; --упорядочить результата запроса.
Этот запрос будет выполняться следующим образом.
Сначала строки исходной таблицы будут сгруппированы так, чтобы в каждую группу попали строки с одинаковыми значениями DNUM.
Потом внутри каждой группы будет просуммировано поле VOLUME.
От каждой группы в результирующую таблицу будет включено по одной строке.
Исходная таблица PD
Результат после группировки :
4.3.4 HAVING
Получить номера деталей, суммарное поставляемое количество которых превосходит 400 (ключевое слово HAVING…):
SELECT
PD.DNUM,
SUM(PD.VOLUME) AS SM
GROUP BY PD.DNUM
HAVING SUM(PD.VOLUME) > 400; -- отбор групп.
В результате получим следующую таблицу из исходной таблицы PD:
Замечание. В одном запросе могут встретиться как условия отбора строк в разделе WHERE, так и условия отбора групп в разделе HAVING. Условия отбора групп нельзя перенести из раздела HAVING в раздел WHERE. Аналогично и условия отбора строк нельзя перенести из раздела WHERE в раздел HAVING, за исключением условий, включающих поля из списка группировки GROUP BY.