Работа с СУБД 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, не вникая в детали конфигурации сервера.
Для гибкой настройки системы следует выбрать пункт Detailed 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-2025 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование. Дата создания страницы: 2017-10-12 Нарушение авторских прав и Нарушение персональных данных |
Поиск по сайту: Читайте также: Деталирование сборочного чертежа Когда производственнику особенно важно наличие гибких производственных мощностей? Собственные движения и пространственные скорости звезд |