Иллюстрированный самоучитель по PostgreSQL

Специальные символы

Специальные символы имеют особое синтаксическое значение в PostgreSQL. По этой причине они обычно не могут использоваться в идентификаторах, хотя, как упоминалось выше в пункте "Защищенные идентификаторы" подраздела "Ключевые слова и идентификаторы", данное ограничение обычно удается обойти при помощи кавычек.

Синтаксические символы

Некоторые специальные символы выполняют в командах SQL примерно те же функции, что и знаки препинания в английском языке. В табл. 3.5 перечислены основные синтаксические символы PostgreSQL.

Таблица 3.5. Синтаксические символы.

Символ Определение
* (звездочка) Выборка всех полей таблицы в команде SELECT, а также подсчет всех записей в агрегатной функции count ()
() (круглые скобки) Группировка выражений, изменение приоритета операторов и вызов функций. Смысл круглых скобок в значительной степени зависит от контекста
[ ] (квадратные скобки) Выборка конкретного элемента массива или объявление типа массива (например, в команде CREATE TABLE)
; (точка с запятой) Признак завершения команды SQL. Внутри команд может использоваться только в строковых константах и защищенных идентификаторах
, (запятая) Разделитель элементов в списке
. (точка) Десятичный разделитель в вещественных константах (например, 3.1415), а также квалификатор имен полей (например, table name .column name)
: (двоеточие) Определение срезов (slices) в массивах
$ (знак доллара) Обозначение позиционного параметра в определении функции

Операторы

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

Вернемся к таблице books и ее числовому полю author_id. Вспомните, что в этом поле хранится целочисленный код, определяющий автора книги. Теперь представьте, что вследствие модификации системы все коды авторов должны быть увеличены на 1500. Задача решается командой UPDATE и выполнением операции с полем author_id. При этом используется оператор сложения (+). Пример приведен в листинге 3.10.

Листинг 3.10. Операторы в командах SQL.

booktown=# SELECT * FROM books;
id | title author_id | subject_id
7808 | The Shining |4156 | 9
156 | The Tell-Tale Heart| 15| 9
4513 | Dune |1866 |15
4267 | 2001: A Space Odyssey| 2001| 15
1608 | The Cat in the Hat |1809| 2
1590 | Bartholomew and the Oobleck |1809| 2
(6 rows)
booktown=# UPDATE books SET author_id = author _id + 1500;
UPDATE 6
booktown=# SELECT * FROM books;
id title | author_id | subject_id
7808 | The Shining | 5656 | 9
156 | The Tell-Tale Heart 1515| 9
4513| Dune 3366 | 15
4267 | 2001; A Space Odyssey 3501 | 15
1608 | The Cat in the Hat | 3309 |2
1590 | Bartholomew and the Oobleck | 3309 | 2

Как видно из листинга 3.10, выполнение операции сложения с предыдущим значением поля author_id приводит к модификации этого поля во всех записях таблицы.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.