|
Нечувствительность к регистру относится только к ключевым словам SQL. Ради
удобочитаемости все ключевые слова SQL в этой книге записаны заглавными буквами.
Мы рекомендуем такой стиль как хороший, «опробованный на практике» способ. В
MySQL и mSQL имена баз данных, таблиц и колонок к регистру чувствительны. Но
это характерно не для всех СУБД. Поэтому, если вы пишете приложение, которое
должно работать с любыми СУБД, не следует использовать имена, различающиеся
одним только регистром.
Первый элемент SQL-запроса - всегда глагол. Глагол выражает действие, которое
должно выполнить ядро базы данных. Хотя остальная часть команды зависит от
глагола, она всегда следует общему формату: указывается имя объекта, над
которым осуществляется действие, а затем описываются используемые при действии
данные. Например, в запросе CREATE TABLE people (char(10)) используется глагол
CREATE, за которым следует дополнение (объект) TABLE .Оставшаяся часть запроса
описывает таблицу, которую нужно создать.
SQL-запрос исходит от клиента - приложения, предоставляющего фасад, с помощью
которого пользователь взаимодействует с базой данных. Клиент составляет запрос,
основываясь на действиях пользователя, и посылает его серверу SQL. После этого
сервер должен обработать запрос и выполнить указанные действия. Сделав свою
работу, сервер возвращает клиенту одно или несколько значений.
Поскольку основная задача SQL - сообщить серверу баз данных о том, какие
действия необходимо выполнить, он не обладает гибкостью языка общего назначения.
Большинство функций SQL связано с вводом и выводом из базы: добавление,
изменение, удаление и чтение данных. SQL предоставляет и другие возможности, но
всегда с оглядкой на то, как они могут использоваться для манипулирования
данными в базе.
Создание и удаление таблиц
Успешно установив MySQL или mSQL, вы можете приступить к созданию своей первой
таблицы. Таблица, структурированное вместилище данных, является основным
понятием реляционных баз. Прежде чем начать вводить данные в таблицу, вы должны
определить ее структуру. Рассмотрим следующую раскладку:
каждого поля, а также возможные дополнительные сведения о полях. Тип данных
поля определяет, какого рода данные могут в нем содержаться. Типы данных SQL
сходны с типами данных в других языках программирования. Полный стандарт SQL
допускает большое разнообразие типов данных. MySQL реализует большую их часть,
в то время как mSQL -лишь несколько наиболее полезных.
Общий синтаксис для создания таблиц следующий:
CREATE TABLE table_name (colutnn_namel type [modifiers] [, column_name2 type
[modifiers]] )
Какие идентификаторы - имена таблиц и колонок - являются допустимыми, зависит
от конкретной СУБД. mSQL обеспечивает поддержку имен в объеме, близком к
минимальному. В качестве идентификатора он допускает любую последовательность
букв набора ISO 8859-1 (Latin 1), цифр и знака «-», длиной до 20 символов.
Идентификатор должен начинаться с буквы. Проблемы вызывает ограничение на
использование только ISO 8859-1. Для хорошей переносимости SQL нужно избегать
имен, начинающихся не с допустимой буквы. MySQL предоставляет больше
возможностей. Длина идентификатора может быть до 64 символов, допустим символ
«$», и первым символом может быть цифра. Более важно, однако, что MySQL
допускает использование любых символов из установленного в системе локального
набора.
Колонка - это отдельная единица данных в таблице. В таблице может содержаться
произвольное число колонок, но использование больших таблиц бывает
неэффективным. Вот здесь правильное проектирование базы данных, обсуждавшееся в
главе 2, начинает играть важную роль. Создав правильно нормализованные таблицы,
можно объединять их («join») для осуществления поиска в данных, размещенных в
нескольких таблицах. Механику объединения таблиц мы обсудим позднее в данной
главе.
Как и бывает в жизни, разрушить легче, чем создать. Следующая команда удаляет
таблицу:
DROP TABLE Lable_name
Эта команда не оставит и следа от таблицы в базе данных. MySQL уничтожит все
данные удаленной таблицы. Если у вас не осталось резервной копии, нет абсолютно
никакого способа отменить действие данной операции. Мораль этой истории: всегда
храните резервные копии и будьте очень внимательны при удалении таблиц. В один
«прекрасный» день это вам пригодится.
В MySQL можно одной командой удалить несколько таблиц, разделяя их имена
запятыми. Например, DROP TABLE people, animals, plants удалит эти три таблицы.
Можно также использовать модификатор IF EXISTS для подавления ошибки в случае
отсутствия удаляемой таблицы. Этот модификатор полезен в больших сценариях,
предназначенных для создания базы данных и всех ее таблиц. Прежде чем создавать
таблицу, выполните команду DROP TABLE table_name IF EXISTS.
Типы данных в SQL
Каждая колонка таблицы имеет тип. Как уже указывалось, типы данных SQL сходны с
типами данных традиционных языков программирования. В то время как во многих
языках определен самый минимум типов, необходимых для работы, в SQL для
удобства пользователей определены дополнительные типы, такие как MONEY и DATE.
Данные типа MONEY можно было бы хранить и как один из основных числовых типов
данных, однако использование типа, специально учитывающего особенности денежных
расчетов, повышает легкость использования SQL, которая является одной из
главных его целей.
|
|