Databases. Part IX

Databases. Part IX

Переходим к основе всего – языку. В данном случае к языку НЕ программирования – SQL. В отличие от языков программирования, на языке запросов SQL пишется не то, как мы хотим получить результат, а то, что бы мы хотели получить в результате. Отсюда довольно жесткие рамки синтаксиса, которые придется запоминать…

«Искусство выбирать»

Начнем с самого простого – инструкции выбора SELECT... и еще, хочу сказать – несмотря на то, что SQL я обозвал языком НЕ программирования, программировать мы на нем будем, и еще как :yes:

Итак, инструкция SELECT выглядит очень просто :whistle:

Поскольку цель данной темы всех напугать научить разбираться в синтаксисе инструкций, дальше писать не имеет смысла, потому что и так все понятно будем разбираться подробно, медленно и с примерами.

Для начала обратите внимание на наличие множества знаков препинания, типа всяких скобочек, разделителей, точек – это метаязык, позволяющий окончательно запутать формализовать написание синтаксиса инструкции. Для справки, придумали его товарищи Бекус и Наур, и назвали, как ни странно, формулой Бекуса-Наура. А вот и описание символов, которые в неё входят:

Треугольные скобочки <> – объект, который либо будет описан, либо предлагается подставить в инструкцию. Например, вместо <table_source> предлагается ввести таблицы, из которых будем выбирать.

Двоеточие двоеточие равно ::= означает, что дальше будет следовать определение инструкции или куска инструкции. Например, <query_specification> имеет приведенный чуть ниже синтаксис.

Круглые скобочки () означают, что в этом месте их очень нужно поставить. Явного примера пока не нашел, как только так сразу…

Квадратные скобочки [] – то, что в них – вообще не обязательно. Пример – обязательным оказывается только слово SELECT и список выбора <select_list>

Фигурные скобочки {} предлагают выбрать что-нибудь из того, что в них. Так, из функций { AVG | COUNT | MAX | MIN | SUM } в приведенной инструкции, нужно выбрать какую-нибудь одну.

Вертикальная черта | соответствует логическому «ИЛИ». Предыдущий пример вполне подойдет.

Непонятная конструкция [,…n] говорит о том, что можно, при желании, повторить. Например, фраза { <table_source> } [ ,...n ], означает что таблиц, из которых будет производиться выбор, может быть перечислено сколько угодно через запятую.

Выводы-размышления:

1. Запоминать инструкцию в таком виде, в котором она находится в help’е, не нужно.

2. Разбирать инструкцию можно по блокам, а большие блоки для удобства расшифровываются отдельно.

3. Все эту огромную запись можно сократить до Select <select_list> :)

Приведу в этой теме пару простеньких примеров с минимальным синтаксисом:

SELECT значение1, значение2, …, значение N

- позволяет вывести на экран список значений. Абсолютно бесполезная затея :rolleys:

SELECT 1, 2, 3, 4, 5

- выведет на экран:

То же самое можно провернуть с переменными:

DECLARE @A int, @B int;

SET @A = 5; SET @B = 4;

SELECT @B, @A


Карта сайта


Информационный сайт Webavtocat.ru