Пример выполнения работы




Работа с СУБД Mysql

 

Учебное пособие по выполнению

лабораторных работ

 

 

содержание

 

Введение................................................................................................................. 3

1. основные Понятия и определения..................................................................... 4

2. установка MySQL.............................................................................................. 6

3. лабораторный практикум................................................................................ 11

Лабораторная работа № 1 Проектирование базы данных с использованием ER-технологии... 11

Лабораторная работа № 2 Создание и связывание таблиц базы данных в среде MySQL.......... 14

Лабораторная работа № 3 Вставка, удаление и обновление данных............................................ 24

Лабораторная работа № 4 Создание простых запросов на выборку............................................. 31

Лабораторная работа № 5 Создание сложных запросов на выборку............................................ 40

Лабораторная работа № 6 Создание хранимых процедур.............................................................. 47

Лабораторная работа № 7 Создание триггеров............................................................................... 55

Лабораторная работа № 8 Транзакции............................................................................................. 58

Лабораторная работа № 9 Работа с представлениями.................................................................... 62

Лабораторная работа № 10 Управление правами пользователей.................................................. 66

4. Варианты заданий к лабораторным работам................................................ 70

БИБЛИОГРАФИЧЕСКИЙ СПИСОК................................................................. 77

Приложения......................................................................................................... 79

Введение

 

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

Практикум знакомит студента с созданием баз данных и таблиц, их заполнением, извлечением и удалением записей. Рассмотрены встроенные функции, транзакции, временные таблицы, хранимые процедуры, триггеры, курсоры. Описаны способы обеспечения целостности и безопасности данных

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

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

По результатам лабораторного практикума оформляется отчет в виде пояснительной записки объемом 20–25 страниц формата А4. Текст готовится с помощью текстового процессора Microsoft Word. Размеры полей страницы: левое – 25 мм, правое – 10 мм, верхнее – 20 мм, нижнее – 25 мм. Размер шрифта – 14 пунктов. Тип шрифта – Times New Roman. Величина абзацного отступа – 10 мм. Межстрочный интервал – одинарный. Каждый раздел записки начинается с новой страницы, номера страниц располагаются внизу страницы по центру. Рисунки и таблицы нумеруются последовательно арабскими цифрами.

 

Основные Понятия и определения

 

Базу данных (БД) можно определить как унифицированную совокупность данных, совместно используемую различными приложениями в рамках некоторой единой автоматизированной информационной системы.

Программное обеспечение, осуществляющее операции над БД, получило название СУБД – система управления базами данных.

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

Для подготовки запросов чаще всего используют структурированный язык запросов – SQL (Structured Query Language). Этот язык стал фактическим стандартом языка работы с реляционными БД. Он является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т. д. Поэтому SQL автономно не используется, а обычно погружен в среду встроенного языка программирования СУБД или процедурного языка (типа C++ или Pascal).

Современные СУБД позволяют создавать запросы, не применяя SQL. Однако его применение позволяет расширить возможности СУБД.

Категории SQL-запросов:

· определение данных (Data Definition Language, DDL) – SQL-запросы, позволяющие пользователям создавать и модифицировать структуру объектов БД (таблицы, представления и индексы); команды DDL влияют на контейнеры, содержащие данные, а не на данные;

· запросы данных (Data Query Language, DQL) – включает выражения SQL для получения данных из базы;

· манипуляции с данными (Data Manipulation Language, DML) – SQL-запросы, позволяющие пользова­телю добавлять и удалять данные (в форме строк), а также модифици­ровать имеющиеся в БД;

· контроль данных (Data Control Language, DCL) – SQL-запросы, позволяющие администраторам контролировать доступ к данным в базе и использовать различные системные привилегии СУБД;

· контроль транзакций – набор команд, которые пользователь применяет для того, чтобы вся транзакция либо была успешно выполнена, либо нет; команды контроля транзакций не вполне соответствуют син­таксису SQL-запросов, но положительно влияют на выполнение запросов, включенных в транзакцию.

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

Клиент – приложение, посылающее запрос на обслуживание сервером. Клиент инициирует связь с сервером, определяет вид запроса, получает от сервера результат обслуживания, подтверждает окончание обслуживания. Поскольку стандартом интерфейса «клиент-сервер» в этом случае является язык SQL, СУБД называют SQL-сервером.

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

По пользовательскому интерфейсу SQL-клиенты разделяются на три типа:

· клиент с интерфейсом командной строки – команды вводятся с клавиатуры как текст, клиент можно использовать в любой операционной системе;

· клиент с графическим интерфейсом пользователя (GUI, Graphical User Interface) – выполняется в оконной системе (Microsoft Windows) и отображает данные, используя графические элементы (значки, кнопки и диалоговые окна);

· клиент с Web-интерфейсом – выполняется на сервере БД, а для взаимодействия с пользователем используется Web-браузер на клиентском компьютере.

Одним из наиболее популярных SQL-серверов БД является MySQL – небольшая и надежная реляционная СУБД с возможностью отката и восстановления после сбоя, многопользовательская, многопоточная, с высокой производительностью. Сервер MySQL предназначен как для критических по задачам производственных систем с большой нагрузкой, так и для встраивания в программное обеспечение массового распространения.

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

Система MySQL может быть реализована как:

· автономная настольная система;

· клиент-серверная система.

Если MySQL используется как автономная настольная система, то клиентское приложение исполняется на том же компьютере, на котором хранится программное обеспечение MySQL и БД. Сетевые соединения от клиента к серверу не устанавливаются. Настольные системы полезны в следующих случаях:

· при доступе к БД лишь одного пользователя;

· при небольшом числе пользователей, работающих с БД не одновременно.

Клиент-серверная система может иметь:

· двухзвенную установку;

· трехзвенную установку.

Независимо от варианта установки, программное обеспечение и базы данных MySQL размещаются на центральном компьютере (сервере баз данных). Пользователи работают на компьютерах-клиентах. Доступ пользователей к серверу БД производится при помощи:

· приложений с компьютеров-клиентов (в двухзвенных системах);

· приложений, выполняющихся на специальном компьютере – сервере приложений(в трехзвенных системах).

В двухзвенных системах клиенты исполняют приложения, осуществляющие доступ к серверу БД непосредственно через сеть. Клиенты называются толстыми, поскольку выполняют два вида работы:

· исполняют программный код, соответствующий функциональным задачам;

· исполняют код, отображающий результаты доступа к БД.

Двухзвенная установка полезна при небольшом количестве пользователей, потому что для соединения с каждым из пользователей расходуются системные ресурсы (память и блокировки). Чем больше количество соединений с пользователями, тем хуже производительность системы из-за соперничества за ресурсы.

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

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

Таким образом, в трехуровневой архитектуре Интернета выделяются:

· клиент – Web-браузер (клиентское приложение), который взаимодействует с Web-сервером, посылая ему запросы на отображение той или иной Web-страницы;

· Web-сервер – на котором выполняется Web-приложение, формирующее SQL-запрос к СУБД (которая должна вернуть необходимые данные из БД);

· сервер баз данных – на котором размещены СУБД и база данных.

 

Установка MySQL

 

С Web -страницы https://dev.mysql.com/downloads/ можно загрузить дистрибутив MySQL.Для загрузки доступны:

· MySQL 5.1 – рекомендуемая версия (релиз);

· MySQL 5.4 – версия, находящаяся в стадии бета-тестирования;

· MySQL 6 – версия, находящаяся в стадии альфа-тестирования;

· MySQL 4.1 – устаревшая, но поддерживаемая версия.

Когда разрабатываемая версия переходит в стадию релиза, в нее прекращают добавлять нововведения и лишь исправляют най­денные ошибки. Все нововведения добавляются в новую версию. Поддержка старой рекомендуемой версии прекращается. Справочное руководство можно найти по адресу https://dev.mysql.com/doc/.

На открывшейся странице будет представлен список дистрибутивов, скомпилированных под разные операционные системы. Для Windows предлагаются:

· Windows Essentials (x86) – урезанная версия дистрибутива, из которой удалены все вспомогательные утилиты («голый» сервер MySQL);

· Windows (x86) – полная версия, включающая автоматический установщик;

· Without installer (unzip in C:\) – полная версия дистрибутива без автоматического установщика.

Рекомендуется выбрать дистрибутив Windows (x86). Можно загрузить графические клиенты для работы с MySQL-сервером (MySQL Administrator, MySQL Query Browser, MySQL Migration Toolkit), которые свободно распространяются на сайте https://dev.mysql.com/downloads/gui-tools/5.0.html.

При работе в Windows NT/2000/XP/Server 2003 необходимо войти в систему с привилегиями администратора, разархивировать дистрибутив mysql-5.0.51b-win32.zip во времен­ный каталог, после чего запустить файл setup.exe. Для продолжения установки следует нажать кнопку Next, после чего откроется окно, в котором предлагается тип инсталляции:

· Typical – устанавливаются сервер MySQL, клиент командной строки mysql и утилиты командной строки;

· Complete – устанавливаются все компоненты (эталонный набор, встроенный сервер библиотеки, поддержка скриптов, документация);

· Custom – предоставляет возможность выбора необходимых пакетов и изменения инсталляционного пути.

После завершения настройки выводится завершающее окно. Если вас удовлетворяют параметры настройки, то нажмите кнопку Install.

По окончании инсталляции можно зарегистрироваться на Web-сайте MySQL. Регистрация дает возможность участвовать в форумах – forums.mysql.com, сообщать об ошибках – bugs.mysql.com и подписаться на информационный бюллетень. Для получения подробной информации, нажмите More, для продолжения – Next. Заключительный экран инсталлятора сообщает об окончании установки.

Для запуска Мастера Конфигурации нужно поставить галочку в пункт Configure the MySQL Server now. К настройке всегда можно вернуться, выбрав пункт системного меню Пуск > Программы > MySQL > MySQL Server 5.0 > MySQL Server Instance Config Wizard. Рекомендуется сразу произвести настройку.

Настройка начинается со стартового окна. После нажатия кнопки Next открывается окно, в котором предлагается выбрать тип конфигурации.

Доступны два типа конфигурации:

· Detailed Configuration (детализированная конфигурация) – предназначена для опытных пользователей, которые хотят сконфигурировать сервер, учитывая возможности компьютера и конкретные задачи;

· Standard Configuration (стандартная конфигурация) – предназначена для новых пользователей, которым нужно быстро установить MySQL, не вникая в детали конфигурации сервера.

Для гибкой настройки системы следует выбрать пункт De­tailed Configuration. После нажатия кнопки Next открывается окно на­стройки производительности MySQL. В этом окне есть три опции:

· Developer Machine (машина разработчика) – типичная настольная рабочая станция, на которой MySQL предназначен только для личного использования и на которой выполняется множество других приложений; сервер MySQL будет сконфигурирован для использования минимальных системных ресурсов;

· Server Machine (сервер) – машина, на которой сервер MySQL выполняется вместе с другими приложениями-серверами (FTP, e-mail, Web-серверы); сервер MySQL будет сконфигурирован для использования умеренной части ресурсов;

· Dedicated MySQL Server Machine (выделенный сервер) – машина выполняет только функции выделенного сервера MySQL и никакие другие приложения на ней не выполняются; сервер MySQL будет сконфигурирован для использования всех доступных системных ресурсов.

Опции различаются по интенсивности использования процессора, объема оперативной памяти и жесткого диска. Следует выбрать первый пункт.

Следующее окно позволяет выбрать предпочти­тельный тип для таблиц, который назначается по умолчанию. В этом окне есть три опции:

· Multifunctional Database (многофункциональная БД) – допускается использование двух механизмов памяти – InnoDB и MyISAM, при этом ресурсы равномерно разделяются между ними; рекомендуется для пользователей, использующих оба механизма памяти на регулярной основе;

· Transactional Database Only (только транзакционная БД) – допускается использование обоих механизмов памяти – InnoDB и MyISAM, но большинство ресурсов выделяется механизму InnoDB; рекомендуется для пользователей, почти исключительно использующих InnoDB и минимально использующих MyISAM;

· Non-Transactional Database Only (только нетранзакционная БД) – отключается механизм памяти InnoDB и все ресурсы выделяются механизму памяти MyISAM; рекомендуется для пользователей, не использующих InnoDB.

Следует выбрать первый пункт. Результатом работы утилиты MySQL Server Instance Config Wizard является конфигурационный файл my.ini, который всегда можно отредактиро­вать вручную (можно скорректировать тип таблиц).

Можно определить местонахождение файлов таблиц InnoDB, если в системе есть более надежное устройство хранения данных (система RAID). Вы­бор диска и пути к файлам осуществляется в следующем окне.

Следующее окно предлагает выбрать максимальное число клиен­тов, которые могут одновременно подключиться к серверу. Первый пункт (рекомендуется) предполагает число соедине­ний не больше 20, второй пункт устанавливает предел на 500 соедине­ний, а третий пункт позволяет назначить предел.

Следующее окно позволяет разрешить или отключить организацию сети TCP/IP и конфигурировать порт, используемый для соединения с сервером (по умолчанию – 3306). Здесь же можно включить и отключить строгий режим, который заставляет MySQL быть похожим на другие СУБД. Для приложений, рассчитанных на «прощающее» поведение MySQL, этот режим можно отключить.

В следующем окне устанавливается кодировка по умолчанию:

· стандартная кодировка символов – по умолчанию используется набор символов latin1 (для английского и многих западноевропейских языков);

· улучшенная многоязычная поддержка – набор символов Unicode, который может использовать символы из множества различных языков;

· ручной выбор кодировки символов – установка кодировки символов вручную.

Необ­ходимо отметить третий пункт и в выпадаю­щем списке выбрать пункт ср1251, соответствующий русской Windows-кодировке.

В среде Windows можно установить MySQL в качестве службы, что обеспечит его запуск при старте системы и корректное завершение работы при выключении компьютера. Сервер MySQL может быть запущен автоматически при старте системы и перезапущен автоматически в случае отказа службы. Следующее окно предназначено для настройки службы. Флажок Install As Windows Service позволяет установить службу с именем, которое можно выбрать в выпадающем списке.

Чтобы не запускать сервер MySQL автоматически, удалите галочку из опции Автоматический запуск сервера MySQL. Флажок Include Bin Directory in Windows PATH позволяет прописать путь к каталогу MySQL в системной переменной path, что удоб­но при частом использовании утилит из этого каталога.

В следующем окне производится настройка учетных записей. Если вы не знакомы с системой авторизации MySQL и производите установку пер­вый раз, рекомендуется снять флажок Modify Security Settings.

После нажатия кнопки Execute на конечной странице утилиты настройки MySQL-сервера MySQL Server Instance Config Wizard будет создан конфигурационный файл my.ini и запущен сервер MySQL.

После установки MySQL в меню Пуск будет создан новый раздел MySQL со следующими пунктами:

· MySQL Command Line Client – клиент командной строки MySQL;

· MySQL Server Instance Config Wizard – мастер конфигурации сервера;

· MySQL Manual – руководство пользователя (ссылка на документацию).

После установки и конфигурирования MySQL необхо­димо убедиться в его работоспособности. Пройдите путь Пуск > Все программы > MySQL > MySQL Server 5.0 > MySQL Command Line Client. В окне DOS введите пароль, который установлен при инсталляции, и нажмите Enter (если пароль не установлен – сразу Enter).

Если при запуске клиента в командной строке выводится сообщение «Character set ‘cp1251’is not a compiled character set and is not specified in the ‘C:\mysql\\share\charsets\Index.xml’ file», звучит сигнал и окно закрывается, необходимо исправить конфигурационный файл my.ini. Директива default-character-set=cp1251 должна присутствовать только в секции [mysqld] и отсутствовать в секции [mysql] (там ее следует закомментировать – поставить впереди символ #).


Лабораторный практикум

Лабораторная работа № 1
Проектирование базы данных с использованием ER-технологии

Теоретические сведения

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

Разработка логической модели методом «сущность-связь»(ER-методом) предусматривает выполнение следующих шагов, детально описанных в работе [3]:

1) построение ER-диаграммы, включающей все сущности и связи, важные с точки зрения интересов предметной области;

2) анализ связей и определение их характеристик – степени связи, мощности и класса принадлежности;

3) построение набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения;

4) подготовка списка всех неключевых атрибутов и назначение каждого из этих атрибутов одному из предварительных отношений;

5) проверка нахождения всех полученных отношений в нормальной форме Бойса-Кодда;

6) построение модели данных.

 

Практическая работа

При выполнении лабораторной работы необходимо:

· для своего варианта, соответствующего определенной предметной области, построить логическую модель данных в соответствии со стандартом IDEF1X;

· построить физическую модель;

· составить отчет по лабораторной работе.

 

Пример выполнения работы

Особенности диалекта SQL в СУБД MySQL рассмотрим на примере учебной базы данных book Интернет-магазина, торгующего компьютерной литературой. В базе данных должна поддерживаться следующая информация:

· тематические каталоги, по которым сгруппированы книги;

· предлагаемые книги (название, автор, год издания, цена, имеющееся на складе количество);

· зарегистрированные покупатели (имя, отчество, фамилия, телефон, адрес электронной почты, статус – авторизованный, неавторизованный, заблокированный, активный с хорошей кредитной историей);

· покупки, совершенные в магазине (время совершения покупки, число приобретенных экземпляров книги).

Логическая модель данных предметной области в стандарте IDEF1X представлена на рис. 1. Выделены сущности КАТАЛОГ, КНИГА, КЛИЕНТ, ЗАКАЗ, между которыми установлены неидентифицирующие связи мощностью oдин-ко-многим, определенные спецификой предметной области.

Рис. 1. Логическая модель данных предметной области

 

Физическая модель данных предметной области в стандарте IDEF1X для целевой СУБД MySQL представлена на рис. 2.

Рис. 2. Физическая модель предметной области

 

База данных book состоит из четырех таблиц:

· catalogs – список торговых каталогов;

· books – список предлагаемых книг;

· users – список зарегистрированных пользователей магазина;

· orders – список заказов (осуществленных сделок).

Таблица catalogs состоит из двух полей:

· cat_ID – уникальный код каталога;

· cat_name – имя каталога.

Оба поля должны быть снабжены атрибутом not null, поскольку неопределенное значение для них недо­пустимо.

Таблица books состоит из семи полей:

· book_ID – уникальный код книги;

· b_name – название книги;

· b_author – автор книги;

· b_year – год издания;

· b_price – цена книги;

· b_count – количество книг на складе;

· b_cat_ID – код каталога из таблицы catalogs.

Цена книги b_price и количество экземпляров на складе b_count могут иметь атрибут null. На момент доставки час­то неизвестны количество товара и его цена, но отразить факт наличия товара в прайс-листе необходимо.

Поле b_cat_ID устанавливает связь между таблицами catalogs и books. Это поле должно быть объявлено как внешний ключ (FK)с правилом каскадного удаления и обновления. Обновление таблицы catalogs вызовет автоматическое обновление таблицы books. Удаление каталога в таблице catalogs приведет к автоматическому удалению всех записей в таблице books, соответствующих каталогу.

Таблица users состоит из семи полей:

· user_ID – уникальный код покупателя;

· u_name – имя покупателя;

· u_patronymic – отчество покупателя;

· u_surname – фамилия покупателя;

· u_phone – телефон покупателя (если имеется);

· u_email – e-mail покупателя (если имеется);

· u_status – статус покупателя.

Статус покупателя представлен полем типа enum, которое может принимать одно из четырех значений:

· active – авторизованный покупатель, который может осуществлять покупки через Интернет;

· passive – неавторизованный покупатель (значение по умолчанию), который осуществил процедуру регистрации, но не подтвердил ее и пока не может осуществлять покупки через Интернет, однако ему доступны каталоги для просмотра;

· lock – заблокированный покупатель, не может осуществлять покупки и просматривать каталоги магазина;

· gold – активный покупатель с хорошей кредитной историей, которому предоставляется скидка при следующих покупках в магазине.

Поля u_phone и u_email могут быть снабжены атрибутом null. Остальные поля должны получить атрибут not null.

Таблица orders вклю­чает пять полей:

· order_ID – уникальный номер сделки;

· o_user_ID – номер пользователя из таблицы users;

· o_book_ID – номер товарной позиции из таблицы books;

· o_time – время совершения сделки;

· o_number – число приобретенных товаров.

Поля таблицы orders должны быть снабжены атрибутом not null, т. к. при совершении покупки вся информация должна быть занесена в таблицу.

В таблице orders устанавливается связь с таблицами users (за счет поля o_user_id) и books (за счет поля o_book_id). Эти поля объявлены как внешние ключи (FK)с правилом каскадного удаления и обновления. Обновление таблиц users и books приведет к автоматическому обновлению таблицы orders. Удаление любого пользователя в таблице users приведет к автоматическому удалению всех записей в таблице orders, соответствующих этому пользователю.

 

Лабораторная работа № 2
Создание и связывание таблиц базы данных в среде MySQL

Теоретические сведения

Рассмотрим следующие вопросы:

· создание и выбор базы данных;

· создание таблиц;

· столбцы и типы данных в MySQL;

· создание индексов;

· удаление таблиц, индексов и баз данных;

· изменение структуры таблиц.

Базы данных, таблицы и индексы легко создаются в рамках графического ин­терфейса MySQL, но мы будем использовать монитор MySQL (клиент командной строки), чтобы лучше понять структуру БД, таблиц и индексов.

Чувствительность к регистру и идентификаторы.

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

· Все идентификаторы, кроме имен псевдонимов, могут содержать до 64 сим­волов. Имена псевдонимов могут иметь до 255 символов.

· Идентификаторы могут содержать любые допустимые символы, но имена баз данных не могут содержать символы /, \ и., а имена таблиц – символы. и /.

· Зарезервированные слова можно использовать для идентификаторов, если заключить их в кавычки.

Комментарий в SQL. Начинается с двух дефисов (--), за которыми должен следовать пробел. Кроме того, MySQL содержит ряд собственных комментариев. Shell-комментарий # действует аналогично – все, что расположено правее его, является текстом комментария. С-комментарий /* */ является многострочным – комментарий начинается с /* и заканчивается, когда встретится завершение */.

Создание и выбор базы данных. Осуществляется с помощью оператора

create database имя_базы_данных;

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

show databases;

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

use имя_базы_данных;

Теперь все действия по умолчанию будут применяться именно к этой БД.

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

create [temporary] table [if not exists]

имя_таблицы (определение таблицы)

[type=тип_таблицы];

Ключевое слово TEMPORARY используется для создания таблиц, которые будут существовать только в текущем сеансе работы с БД и будут автоматически удалены, когда сеанс завершится.

При использовании выражения IF NOT EXISTS таблица будет создана толь­ко в том случае, если еще нет таблицы с указанным именем.

Создать таблицу с такой же схемой, как у существующей, позволяет команда

create [temporary] table [if not exists]

имя_таблицы LIKE имя_старой_таблицы;

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

· Объявить для любого столбца NOT NULL или NULL (столбцу запрещено или не запрещено содержать значения NULL). По умолчанию – NULL.

· Объявить для столбца значение по умолчанию, используя ключевое слово DEFAULT, за которым должно следовать значение по умолчанию.

· Использовать ключевое слово AUTO_INCREMENT, чтобы генерировать порядковый номер. Автоматически генерируемое значение будет на единицу большим, чем наибольшее значение в таблице. Первая введенная строка будет иметь порядковый номер 1. В таблице можно иметь не более одного столбца AUTO_INCREMENT, и он должен индексироваться.

· Объявить столбец первичным ключом таблицы с помощью выражения PRIMARY KEY.

· Объявить столбец внешним ключом, используя выражение FOREIGN KEY,с ссылкой на соответствующую таблицу с помощью выражения REFERENCES.

· Индексировать столбец с помощью слов INDEX или KEY (синонимы). Такие столбцы не обяза­тельно должны содержать уникальные значения.

· Индексировать столбец с помощью слова UNIQUE, которое используется для указания того, что столбец должен содержать уникальные значения.

· Создать полнотекстовые индексы на основе столбцов типа TEXT, CHAR или VARCHAR с помощью слова FULLTEXT (только с таблицами MyISAM).

После закрывающей скобки можно указать тип таблицы:

· MyISAM – таблицы этого типа являются «родными» для MySQL, работают очень быстро и поддерживают полнотекстовую индексацию;

· InnoDB – ACID-совместимый механизм хранения, поддерживающий транзакции, внешние ключи, каскадное удаление и блокировки на уровне строк;

· BDB (Berkeley DB) – является механизмом хранения, который обеспечивает поддержку транзакций и блокировки на уровне страниц;

· MEMORY (HEAP) – таблицы целиком хранятся в оперативной памяти и никогда не записываются на диск, поэтому работают очень быстро, но ограничены в размерах и не допускают возможности восстановления в случае отказа системы;

· MERGE – тип позволяет объединить несколько таблиц MyISAM с одной структурой, чтобы к ним можно было направлять запросы как к одной таблице;

· NDB Cluster – тип предназначен для организации кластеровMySQL, когда таблицы распределены между несколькими компьютерами, объединенными в сеть;

· ARCHIVE – тип введен для хранения большого объема данных в сжатом формате; таблицы поддерживают только два SQL-оператора: INSERT и SELECT, причем оператор SELECT выполняется по методу полного сканирования таблицы;

· CSV – формат представляет собой обычный текстовый фал, записи в котором хранятся в строках, а поля разделены точкой с запятой (широко распространен в компьютерном мире, любая программа, поддерживающая CSV-формат, может открыть такой файл);

· FEDERATED – тип позволяет хранить данные в таблицах на другой машине сети (при создании таблицы в локальной директории создается только файл определения структуры таблицы, а все данные хранятся на удаленной машине).

MySQL поддерживает следующие типы данных, допустимые для столбцов:

· числовые;

· строковые;

· календарные;

· null – специальный тип, обозначающий отсутствие информации.

Числовые типы используются для хранения чисел и представляют два подтипа:

· точные числовые типы;

· приближенные числовые типы.

К точным числовым типам (табл. 1) относятся целый тип INTEGER и его вариации, а также вещественный тип decimal (синонимы numeric и dec). Последний используется для представления денежных данных.

Числовые типы могут характеризоваться максимальной длиной М. Для типа decimal параметр м задает число символов для отображения всего числа, a d – для его дробной части. Например: b_price DECIMAL (5, 2). Цифра 5 определяет общее число символов под число, а цифра 2 – количество знаков после запятой (ин­тервал величин от –99.99 до 99.99). Можно не использовать параметры вообще, указать только общую длину или указать длину и число десятичных разрядов.

Объявления точных числовых типов можно завершать ключевыми словами UNSIGNED и (или) ZEROFILL. Ключевое слово UNSIGNED указывает, что столбец содержит только положи­тельные числа или нули. Ключевое слово ZEROFILL означает, что число будет отображаться с ведущими нулями.

Таблица 1

Тип Объем памяти Диапазон
TINYINT (M) TINYINT unsigned 1 байт от -128 до 127 (от -27 до 27-1) от 0 до 255 (от 0 до 28-1)
SMALLINT (M) SMALLINT unsigned 2 байта от -32 768 до 32 767 (от -215 до 215-1) от 0 до 65 535 (от 0 до 216-1)
MEDIUMINT (M) MEDIUMINT unsigned 3 байта от -8 388 608 до 8 388 607 (от -223 до 223-1) от 0 до 16 777 215 (от 0 до 224-1)
INT (INTEGER) (M) INT unsigned 4 байта от -2 147 683 648 до 2 147 683 647 (от -231 до 231-1) от 0 до 4 294 967 295 (от 0 до 232-1)
BIGINT (M) BIGINT unsigned 8 байт (от-263 до263-1) (от 0 до 264 -1)
BIT (M) (М +7)/8 байт От 1 до 64 битов, в зависимости от значения М
BOOL, BOOLEAN 1 байт 0 (false) либо 1 (true)
DECIMAL (M, D), NUMERUC (M, D) М + 2 байта Повышенная точность, зависит от параметров М и D

К приближенным числовым типам (табл. 2) относятся:

· FLOAT – представление чисел с плавающей запятой с обычной точностью;

· DOUBLE – представление чисел с плавающей запятой с двойной точностью.

Таблица 2

Тип Объем памяти Диапазон
FLOAT (М, D) 4 байта Минимальное по модулю значение 1.175494351*10-39 Максимальное по модулю значение 3.402823466*1038
DOUBLE (M, D), REAL (M,D), DOUBLE PRECISION (M,D) 8 байт Минимальное по модулю значение 2.2250738585072014*10-308 Максимальное по модулю значение 1.797693134862315*10308

Числовые типы с плавающей точкой также могут иметь параметр unsigned. Атрибут предотвращает хранение в столбце отрицательных величин, но максималь­ный интервал величин столбца остается прежним.

Приближенные числовые данные могут задаваться в обычной форме (например, 45.67) и в форме с плавающей точкой (например, 5.456Е-02 или 4.674Е+04).

Текстовые типы и строки (табл. 3):

· CHAR – хранение строк фиксированной длины;

· VARCHAR – хранение строк переменной длины;

· TEXT, BLOB и их вариации – хранение больших фрагментов текста;

· ENUM и SET – хранение значений из заданного списка.

Таблица 3

Тип Объем памяти Максимальный размер
CHAR(M) М символов М символов
VARCHAR(M) L +1 символов М символов
TINYBLOB, TINYTEXT L +1 символов 28-1 символов
BLOB, TEXT L +2 символов 216-1 символов
MEDIUMBLOB, MEDIUMTEXT L +3 символов 224-1 символов
LONGBLOB, LONGTEXT L +4 символов 232


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: