Как известно, с помощью базы данных можно проделать две операции: можно поместить туда данные и можно данные оттуда взять. И чаще всего инструментом решения этих задач является язык, известный как язык структурированных запросов (Structured Query Language, SQL).
Как любая реляционная СУБД, удовлетворяющая стандартам, MySQL "понимает" достаточно хорошо стандартный язык SQL, кроме того, он предлагает интересные дополнения к стандарту SQL. Для эффективного использования MySQL необходимо полностью овладеть языком SQL, который является вашим основным средством взаимодействия с сервером базы данных и играет очень важную роль в быстрой и эффективной выборке данных.
В процессе ознакомления с этой главой мы научимся пользоваться основными SQL-командами для создания баз данных и ввода информации в базу данных. Повествование будет сопровождаться соответствующими примерами. В случае если вы никогда не имели дела с базами данных или мысль об изучении других языков для вас невыносима, не волнуйтесь - язык SQL значительно проще других языков программирования и он довольно прост в изучении.
Краткая история языка SQL
Перед тем как углубиться в хитросплетения синтаксиса команд SQL, давайте разберемся с тем, как возник язык SQL.
Язык SQL "начал свою биографию" как язык SEQUEL1, или структурированный английский язык запросов, являвшийся компонентом исследовательского проекта компании IBM, известного под названием System/R. Проект System/R заключался в разработке прототипа первой реляционной СУБД и разрабатывался лабораторией IBM в Сан-Хосе в 1974 году, а язык SEQUEL являлся первым языком запросов, поддерживающим работу сразу нескольких таблиц и пользователей. В конце 1970-х годов язык SQL впервые вышел на сцену в качестве языка запросов, который использовался в реляционной СУБД Oracle. Затем очень скоро появилась реляционная СУБД Ingres, в которой также использовался SQL, чтобы в 1980-х годах стать стандартом "де-факто" для всей быстрорастущей индустрии реляционных СУБД. В 1989 году язык SQL стал стандартом ANSI, или SQL89, чтобы в 1992 году привело к появлению стандарта SQL92 или SQL2. Вот он собственно и стал стандартом для большинства используемых сейчас коммерческих СУБД (включая и MySQL).
Пренебрегая правилами
Несмотря на то, что большинство современных коммерческих СУБД поддерживают стандарт SQL92, многие из них поступают довольно вольно со спецификациями стандарта, дополняя стандартный SQL своими дополнениями и расширениями. (Примером такого вольного обращения со стандартом служит и MySQL.) Чаще всего эти расширения рассчитаны на улучшение рабочих характеристик или добавление функциональных возможностей в систему; но они могут вызвать определенные затруднения при миграции базы данных с одной СУБД на другую.
Полный перечень отклонений, допущенных в MySQL от спецификаций стандарта SQL, можно найти на Web-узлеhttp://www.mysql.com/doc/en/Compatibility.html.
Обзор языка SQL
Большая часть команд языка SQL напоминает разговорный английский язык, благодаря чему значительно упрощается его чтение, понимание и изучение. Команды формулируются в виде операторов, а каждый оператор начинается со слова, обозначающего определенное действие. Это иллюстрирует следующий пример.
Листинг 4.1.
CREATE DATABASE toys; USE toys;
SELECT id FROM toys WHERE target > 3;
DELETE FROM catalog WHERE productionStatus = "Revoked";
Очевидно, что очень просто понять функциональную нагрузку, которую несет каждый оператор. Эта простота является одной из причин популярности языка SQL.
Операторы SQL можно разделить на три основные категории, каждая из которых соответствует определенному аспекту управления базами данных.
■ Операторы, предназначенные для определения структуры базы данных. Эти
операторы определяют взаимосвязь между различными частями данных: определяют базы данных, таблицы, типы столбцов и индексов баз данных. В спецификациях SQL этот компонент называется языком определения данных (Data Definition Language, DDL); ему посвящена глава 8, "Обработка баз данных и таблиц".
■ Операторы, предназначенные для манипулирования данными. Эти операторы управляют добавлением и удалением записей, запросами и объединением таблиц, проверкой целостности данных. В спецификациях языка SQL этот компонент называется языком манипулирования данными (Data Manipulation Language, DML); ему посвящена глава 9, "Обработка данных".
■ Операторы, предназначенные для управления уровнем доступа к различным фрагментам данных. Эти операторы задают уровень доступа и привилегии безопасности для баз данных, таблиц и полей, которые можно задавать для пользователя или узла. В спецификации языка SQL этот компонент называется языком управления данными (Data Control Language, DML); ему посвящена глава 14, "Безопасность, управление доступом и привилегии".
Обычно оператор SQL завершается точкой с запятой, а пробелы, табуляции и символ "возврат каретки" SQL-процессором игнорируются. Следующие два оператора являются эквивалентными, даже несмотря на то, что первый занимает только одну строку, а второй растянут на несколько строк.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Основы SQL
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Изменение пароля пользователя root MySQL | Все о MySQL. Краткий курс MySQL и SQL |