кодесурса
«SQL

Синтаксис SQL

script1adsense2code
script1adsense3code

Синтаксис запросов языка запросов 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

Приоритет оператора

«SQL
 ВЫБЕРИТЕ 12 * (2 + 24) 

Выход:

12 * (2 + 24)
312

Приоритет оператора

«SQL

SQL Комментарии Пробельные символы

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

В качестве альтернативы можно использовать комментарии в стиле C:

/ * Это комментарий в первой строке
Это вторая строка комментария * /.

Пробелы

Пробелы, как правило, игнорируются в инструкциях SQL, что упрощает форматирование кода 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

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: Типы данных SQL
Далее: 12-правило определения реляционной базы данных Кодда

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code