Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Эта запись поможет разобраться нам с тем, как СУБД обрабатывает SQL запросы. Так же из нее вы узнаете, какие SQL запросы существуют и из чего они состоят. Мы рассмотрим здесь в общих чертах синтаксис SQL запросов, а так же по какому принципу делятся SQL запросы. В общем, данная запись целиком и полностью будет посвящена запросам SQL.
Часть 5: 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 (и, наверное, во всех СУБД) не имеет значение, большинство СУБД не чувствительны к регистру, а для обозначения строк можно использовать и двойные кавычки.
Что значит «Не стоит путать SQL запрос с командами SQL.»??
что такое SQL запрос?