Часть 5: SQL запросы: ключевые слова, команды, предложения и синтаксис языка SQL

Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Эта запись поможет разобраться нам с тем, как СУБД обрабатывает SQL запросы. Так же из нее вы узнаете, какие SQL запросы существуют и из чего они состоят. Мы рассмотрим здесь в общих чертах синтаксис SQL запросов, а так же по какому принципу делятся SQL запросы. В общем, данная запись целиком и полностью будет посвящена запросам SQL.

Часть 5: SQL запросы: ключевые слова, команды, предложения и синтаксис языка SQL

Часть 5: SQL запросы: ключевые слова, команды, предложения и синтаксис языка SQL


Давайте теперь разберемся с основами языка SQL и посмотрим, какие возможности нам даст это язык.

Примерно так СУБД обрабатывает SQL запрос

Примерно так СУБД обрабатывает SQL запрос

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

Давайте теперь рассмотрим SQL команды, которые, как ни странно, многие называют SQL операторами, с формальной точки зрения это неправильно. Команды в SQL структурированы и поделены на четыре вида.

Команды определения данных (если хотите, то операторы определения данных или DDL):

  • CREATE – данная SQL команда позволяет создавать объекты в базе данных (базу данных, таблицу, представление, триггер, временную таблицу);
  • ALTER – SQL команда ALTER позволяет изменять объект базы данных (в основном это касается таблиц);
  • DROP – SQL команда, позволяющая удалять объекты из базы данных.

SQL команды группы DDL используются на уровне объектов базы данных: они дают нам возможность взаимодействовать с объектами. Не стоит путать SQL запрос с командами SQL.

Команды манипуляции данными (операторы манипуляции данными или DML):

  • SELECT – SQL команда SELECT, пожалуй, основная команда языка SQL, выбирает и возвращает данные по критериям, установленным пользователями;
  • INSERT – SQL команда INSERT служит для добавления данных;
  • UPDATE – SQL команда UPDATE позволяет изменять или модифицировать данные;
  • DELETE – SQL команда DELETE удаляет данные.

Команды языка SQL, относящиеся к группе DML действуют внутри объектов базы данных. SQL запросы, которые содержат команды группы DML, позволяют работать непосредственно с данными.

Команды определения доступа к данным (операторы определения доступа к данным или DCL):

  • GRANT – SQL команда, позволяющая выдать права доступа пользователю на определенные операции с объектами базы данных;
  • REVOKE – SQL команда, которая позволяет отозвать у пользователя ранее выданные разрешения;
  • DENY – SQL команда, устанавливающая приоритетный запрет.

SQL запросы, которые содержат команды группы DCL, работают на уровне пользователей и позволяют ими управлять.

Команды управления транзакциями (Операторы управления транзакциями TCL):

  • COMMIT – SQL команда COMMIT применяет транзакцию;
  • ROLLBACK – SQL команда ROLLBACK откатывает транзакцию;
  • SAVEPOINT – данная SQL команда делит транзакцию на более мелкие части.

Транзакции в SQL – это отдельная тема, которая будет рассмотрена нами в дальнейшем.

Перейдем к краткому обзору синтаксиса языка SQL (если вам нужно полное описание – читайте стандарт):

  • все ключевые слова в языке SQL пишутся заглавными буквами (SELECT, EXISTS, ROLLBACK, ANY, WHERE);
  • все пользовательские имена пишутся с маленькой буквы;
  • язык SQL не чувствителен к пробельным символом;
  • правильно говорить не запрос SQL, а предложение;
  • предложение должно начинаться с SQL команды (мы их рассмотрели выше);
  • SQL предложение (SQL запрос) всегда заканчивается точкой с запятой;
  • для обозначения строк используйте одинарные кавычки;
  • если в вашей строке содержится одинарная кавычка, экранируйте ее еще одной одинарной кавычкой.

Это простые правила, которые помогут вам использовать язык SQL и писать свои SQL запросы. Хочу обратить ваше внимание на то, что регистр букв в SQL (и, наверное, во всех СУБД) не имеет значение, большинство СУБД не чувствительны к регистру, а для обозначения строк можно использовать и двойные кавычки.

Текст комментария: