Синтаксис SQL
Синтаксис запросов языка запросов SQL
Эта страница описывает синтаксис SQL. Каждый оператор выбора в SQL следует точным синтаксическим и структурным правилам. Следующий оператор является минимальной структурой и синтаксисом, необходимым для оператора SQL SELECT.
SELECT [DISTINCT | ALL] {* | select_list}
FROM {table_name [alias] | view_name}
Оператор SQL является допустимой комбинацией токенов, введенных ключевым словом. Токены включают ключевые слова, идентификаторы, операторы, литералы и знаки пунктуации.
Содержание:
Ключевые слова SQL
Ключевые слова (например, SELECT, GRANT, DELETE или CREATE) - это слова, зарезервированные SQL, и они имеют предопределенное значение в языке. Использование ключевого слова вне определенного контекста приводит к ошибке. На практике вы можете использовать ключевые слова прописными или строчными буквами. Следующие три утверждения равны.
SELECT * FROM EMPLOYEES;
Select * FROM EMPLOYEES;
select * FROM EMPLOYEES;
В некоторых случаях ключевые слова могут быть сокращены. Например, DESCRIBE может использоваться как DESC или DESCRIBE. Если мы выполним следующие команды, в обоих случаях будет показана структура таблиц сотрудников.
DESCRIBE EMPLOYEES;
DESC EMPLOYEES;
Идентификаторы
Идентификаторы - это имена, данные разработчиком базы данных или пользователями системы объектам базы данных, таким как таблицы, столбцы, псевдонимы, индексы, представления и другие объекты, а также самой базе данных. В последнем примере «СОТРУДНИКИ» - это идентификатор, а «ВЫБОР» - это ключевое слово. Ключевые слова и идентификаторы имеют одинаковую лексическую структуру, то есть невозможно знать, является ли токен идентификатором или ключевым словом, не зная языка. Правила создания идентификатора указаны в спецификации поставщика. Смотрите следующую таблицу.
правила | Платформа | Описание |
---|---|---|
Идентификаторы должны содержать между | SQL2003 | 128 символов |
DB2 | 128 символов, в зависимости от объекта | |
MySQL | 64 персонажа | |
оракул | 30 байтов; имена баз данных ограничены 8 байтами | |
PostgreSQL | 31 персонажа | |
Идентификатор может содержать | SQL2003 | Любое число, символ или знак подчеркивания |
DB2 | Любое число, заглавный символ, цифра или знак подчеркивания | |
MySQL | Любое число, символ или символ | |
оракул | Любые цифры, символы и символы подчеркивания (_), фунта (#) и доллара ($) | |
PostgreSQL | Любое число, символ или символ подчеркивания (_) | |
Первый символ должен быть | SQL2003 | Письмо |
DB2 | Письмо | |
MySQL | Буква или цифра (но не должны быть все цифры | |
оракул | Письмо | |
PostgreSQL | Буква или подчеркивание (_) | Идентификатор не может содержать | SQL2003 Специальные символы или пробелы | DB2 | Специальные символы или пробелы | MySQL | Точка (.), Косая черта (/) или ASCII (0) и ASCII (255). Кавычка (') и двойная кавычка (") допускаются только в кавычках. | оракул | Пробелы, двойные кавычки (") или специальные символы | PostgreSQL | Двойная кавычка (") | Обозначение в кавычках | SQL2003 | Двойная кавычка ( " ) | DB2 | Двойная кавычка (") | MySQL | Кавычка (') или двойная кавычка (") в режиме совместимости с ANSI | оракул | Двойная кавычка (") | PostgreSQL | Двойная кавычка (") | Идентификатор может быть зарезервирован | SQL2003 | Нет, если только в качестве цитируемого идентификатора | DB2 | да | MySQL | Нет, если только в качестве цитируемого идентификатора | оракул | Нет, если только в качестве цитируемого идентификатора | PostgreSQL | Нет, если только в качестве цитируемого идентификатора | Схема адресации | SQL2003 | Catalog.schema.object | DB2 | Schema.object | MySQL | Database.object | оракул | Schema.object | PostgreSQL | Database.schema.object | Идентификатор должен быть уникальным | SQL2003 | да | DB2 | да | MySQL | да | оракул | да | PostgreSQL | да | |
Соглашения об именах
Существуют различные соглашения об именах, которые действительны при создании таблиц, атрибутов, запросов и других объектов в базе данных SQL. Стандарт SQL не комментирует соглашения об именах, вы можете следовать этим основным рекомендациям:
- Выберите имя, которое будет значимым, значимым и описательным. Например, имя таблицы должно быть employee, а не emp, имя столбца имени в таблице employee должно быть first_name, а не fname, хотя и emp, и fname являются действительными идентификаторами.
- Поддерживать один и тот же случай во всем. Используйте все прописные или строчные буквы для всех объектов в базе данных SQL, так как некоторые серверы баз данных чувствительны к регистру.
SQL литералы
Термины «литерал» относятся к фиксированному значению данных. SQL оценивает четыре типа литеральных значений: числовые, символьную строку, дату или время или логическое значение, хотя база данных SQL предлагает различные литеральные значения в программе SQL. Например, 100, -120, 544.03, -458.25, 3E2, 5E-2 являются допустимыми числовыми литералами. «США», «2000», «Синтаксис SQL», «01 января 1981» - допустимые символьные строки (должны быть заключены в одинарные кавычки ('')). Логические и даты литералы выглядят как ИСТИНА и 'JAN-28-1976 21: 12: 40: 00'
операторы
Оператор манипулирует отдельными элементами данных и возвращает результат. Операторы используются в различных операциях SQL, таких как SELECT, INSERT, UPDATE или DELETE, или в создании различных объектов базы данных, таких как функции, представления, триггеры и хранимые процедуры. SQL поддерживает различные типы операторов, хотя все базы данных не поддерживают все операторы. Смотрите следующие таблицы:
операторы | Работает в |
---|---|
Арифметические операторы | Все базы данных |
Операторы присваивания | Все базы данных |
Битовые операторы | Microsoft SQL Server |
Операторы сравнения | Все базы данных |
Логические операторы | DB2, Oracle, SQL Server и PostgreSQL |
Унарные операторы | DB2, Oracle и SQL Server |
На следующем занятии мы подробно обсудили все операторы с примерами.
Приоритет оператора
Приоритет - это порядок, в котором база данных оценивает различные операторы в одном и том же выражении. При оценке выражения, содержащего несколько операторов (например, +, -, /), приоритет оператора оценивает операторы с более высоким приоритетом, прежде чем оценивать операторы с более низким приоритетом. Приоритет оператора оценивает операторы с одинаковым приоритетом слева направо в выражении. Если в выражении есть круглые скобки, то оно вычисляется первым, а остальная часть, находящаяся вне скобок, вычисляется следующим. В следующей таблице перечислены уровни приоритета операторов SQL от высокого до низкого.
Порядок приоритета |
---|
() (выражения в скобках) |
+, -, ~ (унарные операторы) |
*, /,% (математические операторы) |
+, - (арифметические операторы) |
=,>, <,> =, <=, <>,! =,!>,! <(операторы сравнения) |
I ^ (Побитовое исключающее ИЛИ) & & (Побитовое И), | (Побитовое ИЛИ) |
НЕ |
А ТАКЖЕ |
ВСЕ, ЛЮБОЕ, МЕЖДУ, В, КАК ИЛИ НЕКОТОРЫМ |
= (назначение переменной) |
Следующее выражение в запросе MySQL возвращает разные результаты:
SELECT 12 * 2 + 24;
Выход:
12 * 2 + 24 |
---|
48 |
Приоритет оператора
ВЫБЕРИТЕ 12 * (2 + 24)
Выход:
12 * (2 + 24) |
---|
312 |
Приоритет оператора
SQL Комментарии Пробельные символы
Комментарий - это необязательный текст, который описывает, что программа делает и как, или почему код был изменен. Компилятор всегда игнорирует комментарии. Комментарий вводится двойными черточками, за которыми следует пробел, например:
- это комментарий SQL
В качестве альтернативы можно использовать комментарии в стиле C:
/ * Это комментарий в первой строке
Это вторая строка комментария * /.
Пробелы
Пробелы, как правило, игнорируются в инструкциях SQL, что упрощает форматирование кода SQL для удобства чтения.
На следующей диаграмме показаны некоторые элементы языка SQL, которые составляют один оператор:
Список ключевых слов SQL:
АБСОЛЮТНЫЙ | ДЕЙСТВИЯ | ДОБАВЛЯТЬ | ADMIN |
ПОСЛЕ | ОБЩИЙ | ALIAS | ВСЕ |
ВЫДЕЛИТЬ | ALTER | А ТАКЖЕ | ЛЮБОЙ |
ЯВЛЯЮТСЯ | ARRAY | КАК | ASC |
УТВЕРЖДЕНИЕ | УТВЕРЖДЕНИЕ | В | ATOMIC |
РАЗРЕШЕНИЕ | ДО | НАЧАТЬ | BIGINT |
BINARY | НЕМНОГО | большой двоичный объект | БУЛЕВЫ |
И ТО И ДРУГОЕ | ШИРИНА | ОТ | ВЫЗОВ |
CASCADE | каскадируемой | ДЕЛО | БРОСАТЬ |
КАТАЛОГ | CHAR | ПЕРСОНАЖ | ПРОВЕРЯТЬ |
УЧЕБНЫЙ КЛАСС | CLOB | БЛИЗКО | СОРТИРОВКА |
COLLATION | СБОР | КОЛОНКА | COMMIT |
ЗАВЕРШЕНИЕ | СОСТОЯНИЕ | CONNECT | ПОДКЛЮЧЕНИЕ |
CONSTRAINT | ТРУДНОСТИ | КОНСТРУКТОР | СОДЕРЖИТ |
ПРОДОЛЖИТЬ | КОРРЕСПОНДЕНТ | СОЗДАЙТЕ | ПЕРЕСЕКАТЬ |
CUBE | ТОК | ТЕКУЩАЯ ДАТА | current_path |
ТЕКУЩАЯ РОЛЬ | ТЕКУЩЕЕ ВРЕМЯ | CURRENT_TIMESTAMP | ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ |
КУРСОР | ЦИКЛ | ДАННЫЕ | КАНАЛ ПЕРЕДАЧИ ДАННЫХ |
ДАТА | ДЕНЬ | DEALLOCATE | декабрь |
ДЕСЯТИЧНЫЙ | DECLARE | ДЕФОЛТ | откладываемые |
УДАЛЯТЬ | ГЛУБИНА | DEREF | DESC |
DESCRIPTOR | DESTRUCTOR | ДИАГНОСТИКИ | ТОЛКОВЫЙ СЛОВАРЬ |
ОТКЛЮЧИТЬ | ДЕЛАТЬ | ДОМЕН | DOUBLE |
DROP | ЭЛЕМЕНТ | END-EXEC | Равных |
ПОБЕГ | КРОМЕ | ИСКЛЮЧЕНИЕ | ВЫПОЛНИТЬ |
ВЫХОД | Увеличить | РАСШИРЕНИЕ | ЛОЖНЫЙ |
ПЕРВЫЙ | FLOAT | ЗА | ИНОСТРАННЫЕ |
СВОБОДНО | ОТ | ФУНКЦИЯ | FUSION |
ГЕНЕРАЛЬНЫЙ | ПОЛУЧИТЬ | ГЛОБАЛЬНЫЙ | ИДТИ К |
GROUP | GROUPING | HANDLER | HASH |
ЧАС | ИДЕНТИЧНОСТЬ | ЕСЛИ | ИГНОРИРУЙТЕ |
СРОЧНАЯ | В | ИНДИКАТОР | ИНИЦИАЛИЗИРОВАТЬ |
ПЕРВОНАЧАЛЬНО | ВНУТРЕННИЙ | INOUT | ВХОД |
ВСТАВИТЬ | INT | INTEGER | ПЕРЕСЕЧЕНИЕ |
INTERSECTION | ИНТЕРВАЛ | В | ЯВЛЯЕТСЯ |
ИЗОЛЯЦИЯ | ITERATE | ПРИСОЕДИНИТЬСЯ | KEY |
ЯЗЫК | БОЛЬШОЙ | ПРОШЛОЙ | LATERAL |
ВЕДУЩИЙ | ПОКИДАТЬ | ОСТАВИЛ | МЕНЬШЕ |
УРОВЕНЬ | ЛАЙК | ПРЕДЕЛ | МЕСТНЫЙ |
МЕСТНОЕ ВРЕМЯ | LOCALTIMESTAMP | ЛОКАТОР | LOOP |
МАТЧ | ЧЛЕН | СООТВЕТСТВУЕТ | MERGE |
МИНУТЫ | модифицирует | ИЗМЕНИТЬ | МОДУЛЬ |
МЕСЯЦ | MULTISET | ИМЕНА | НАЦИОНАЛЬНАЯ |
ПРИРОДНЫЙ | NCHAR | NCLOB | NEW |
СЛЕДУЮЩИЙ | НЕТ | НИКТО | NORMALIZE |
НЕ | НОЛЬ | NUMERIC | ОБЪЕКТ |
О | OFF | OLD | НА |
ТОЛЬКО | ОТКРЫТЬ | РАБОТА | ВАРИАНТ |
ИЛИ ЖЕ | ПОРЯДОК | ORDINALITY | ИЗ |
ВНЕШНИЙ | ВЫХОД | PAD | ПАРАМЕТР |
ПАРАМЕТРЫ | ЧАСТИЧНОЕ | ДОРОЖКА | СРОК |
постфикс | Precedes | ТОЧНОСТЬ | ПРЕФИКС |
ПРЕДВАРИТЕЛЬНЫЙ ЗАКАЗ | ПОДГОТОВИТЬ | СОХРАНИТЬ | ПЕРВИЧНЫЙ |
ПРИОР | ЛЬГОТЫ | ПРОЦЕДУРА | ОБЩЕСТВЕННОЕ |
ЧИТАТЬ | ЧИТАЕТ | РЕАЛЬНЫЙ | RECURSIVE |
REDO | REF | РЕКОМЕНДАЦИИ | СПРАВКА |
РОДСТВЕННИК | ПОВТОРЕНИЕ | RESIGNAL | RESTRICT |
РЕЗУЛЬТАТ | ВЕРНУТЬ | ВОЗВРАТ | КЕУОКЕ |
ПРАВО | РОЛЬ | ROLLBACK | СВЕРНУТЬ |
РЕГЛАМЕНТНОЕ | СТРОКА | РЯДЫ | SAVEPOINT |
SCHEMA | SCROLL | ПОИСК | ВТОРОЙ |
РАЗДЕЛ | ВЫБРАТЬ | ПОСЛЕДОВАТЕЛЬНОСТЬ | СЕССИЯ |
SESSION_USER | ЗАДАВАТЬ | НАБОРЫ | СИГНАЛ |
РАЗМЕР | SMALLINT | КОНКРЕТНЫЙ | SPECIFICTYPE |
SQL | SqlException | SQLSTATE | SQLWARNING |
НАЧНИТЕ | ГОСУДАРСТВО | STATIC | СОСТАВ |
SUBMULTISET | преуспевает | SUM | SYSTEM_USER |
ТАБЛИЦА | TABLESAMPLE | ВРЕМЕННОЕ | ПРЕКРАТИТЬ |
ЧЕМ | ЗАТЕМ | ВРЕМЯ | TIMESTAMP |
TIMEZONE_HOUR | TIMEZONE_MINUTE | К | TRAILING |
СДЕЛКА | ПЕРЕВОД | ЛЕЧИТЬ | СПУСКОВОЙ КРЮЧОК |
ПРАВДА | UESCAPE | ПОД | UNDO |
UNION | УНИКАЛЬНАЯ | НЕИЗВЕСТНЫЙ | ДО ТЕХ ПОР |
ОБНОВИТЬ | ИСПОЛЬЗОВАНИЕ | USER | С ПОМОЩЬЮ |
ЗНАЧЕНИЕ | ЦЕННОСТИ | VARCHAR | ПЕРЕМЕННЫЕ |
VARYING | ПОСМОТРЕТЬ | КОГДА | ВСЯКИЙ РАЗ, КОГДА |
ГДЕ | В ТО ВРЕМЯ КАК | С | ЗАПИСЫВАТЬ |
ГОД | ZONE |
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: Типы данных SQL
Далее: 12-правило определения реляционной базы данных Кодда
Новый контент: Composer: менеджер зависимостей для PHP , R программирования