ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.03.2024
Просмотров: 173
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Предметный указатель
A
Aggregate, узел плана 301
ALL 205
ALTER MATERIALIZED VIEW 141
ALTER TABLE 117–122, 212, 220
ALTER VIEW 141
ANALYZE 312
ANY 205
ARRAY, литерал 66
array_append, функция 65
array_cat, функция 90
array_length, функция 169, 195
array_position, функция 67
array_prepend, функция 65
array_remove, функция 66
AS 152–153
AT TIME ZONE 127
avg, функция 168
B
BEGIN 259
BETWEEN 148
bigint, тип 51
bigserial, тип 54
Bitmap Scan, узел плана 300
boolean, тип 63, 87–88
C
CASCADE 116
CASE, условное выражение 152, 237
char, тип 54
character varying, тип 54
character, тип 54
CHECK 96
COALESCE, условное выражение 193
COMMENT 108
COMMIT 263
CONSTRAINT 101
COPY 217–218, 227
count, функция 46, 173, 195, 207
CREATE INDEX 243
CREATE MATERIALIZED VIEW 128
CREATE TABLE 27, 32, 107
CREATE TEMP TABLE 211
CREATE VIEW 123
CROSS JOIN 159, 237
current_date, функция 57
current_schema, функция 133
current_time, функция 59
current_timestamp, функция 62
D
date, тип 56
datestyle, параметр 79–82
date_trunc, функция 62, 85
decimal, тип 52
DEFAULT 54, 96, 133–135
default_transaction_isolation,
параметр 259
DELETE 41, 49, 224–226
USING 225
DISTINCT 150, 176, 179, 220
double precision, тип 52, 74–76
DROP INDEX 245
DROP MATERIALIZED VIEW 130
DROP TABLE 37, 115
DROP VIEW 124, 128 329
Предметный указатель
E
END 263
EXCEPT 167
EXISTS 179
EXPLAIN 296–297
ANALYZE 306
extract, функция 62, 86
F
false, значение 63
FILTER 200
first_value, функция 174
float, тип 53
FOR SHARE 286
FOR UPDATE 278
FOREIGN KEY 43, 100–104, 115, 121
FROM 38, 176, 181
FULL OUTER JOIN 162
G
GREATEST, условное выражение 193
GROUP BY 46, 168, 176
H
Hash Join, узел плана 303–304
HAVING 170, 176, 183
I
IF EXISTS 117
IN 177, 229
Index Only Scan, узел плана 300
Index Scan, узел плана 299–300
Infinity, значение 53, 75
INSERT 37–38, 213–217
ON CONFLICT 215–217, 227
integer, тип 51
INTERSECT 166
interval, тип 61, 84–85
intervalstyle, параметр 85
J
JOIN 152
json, тип 68
jsonb, тип 68
jsonb_set, функция 72, 92
L
LEAST, условное выражение 193
LEFT OUTER JOIN 160
left, функция 210
length, функция 210
LIKE 146, 192, 254
LIMIT 151, 176, 234, 246, 297
LOCK TABLE 279
lower, функция 248
M
max, функция 168
Merge Join, узел плана 304–305
min, функция 168
N
NaN, значение 53, 74, 76
Nested Loop, узел плана 302–303
NOT NULL 97
NULL, значение 18, 103, 136
отличие от пустой строки 138
при сортировке 247, 323
NULLIF, условное выражение 193
numeric, тип 52, 73–74
O
OFFSET 151, 176, 324
ON CONFLICT 215–217, 227
ON DELETE
CASCADE 102
NO ACTION 102
RESTRICT 102
SET DEFAULT 103
SET NULL 103 330
Предметный указатель
ON UPDATE
CASCADE 104
ORDER BY 39, 46, 48, 149, 176, 234, 246
OVER 173
P
pg_dump 34
PRIMARY KEY 34–44, 99, 107–115, 242
psql 26–27, 32–37
автодополнение 107
выход 29
завершение комады SQL 35
описание индекса 242, 252
описание представления 127
описание таблицы 36, 107
расширенный формат 127
редактирование буфера 35
секундомер 243
список индексов 245
список схем 131
список таблиц 27
способ ввода команд 34
справка 27, 32
терминал в Windows 26
public, схема 132
R
rank, функция 173, 225, 232
Read Committed, уровень изоляции 258, 261–265, 275,
280–283
особенности UPDATE 280–283
Read Uncommitted, уровень изоляции 258–261
real, тип 52, 74–76
REFERENCES 101
REFRESH MATERIALIZED VIEW 129
Repeatable Read, уровень изоляции 258, 265–269
RETURNING 213, 219, 224, 226
RIGHT OUTER JOIN 161
right, функция 210
ROLLBACK 261
round, функция 149
S
search_path, параметр 105, 131
SELECT 38, 145–210
Seq Scan, узел плана 296–299
serial, тип 53, 76–78
Serializable, уровень изоляции 258,
269–275, 286–291
SET 80, 132, 305
SHOW 79, 132
SIMILAR TO 193
smallint, тип 51
smallserial, тип 54
Sort, узел плана 298, 309
string_agg, функция 182
strpos, функция 208
substr, функция 208
sum, функция 206
T
text, тип 54
time, тип 58, 78
with time zone (timetz) 58
timestamp, тип 60
with time zone (timestamptz) 60
to_char, функция 57, 82
true, значение 63
TRUNCATE 226
U
UNION 166, 188
UNIQUE 98, 110–122
unnest, функция 68, 196 331
UPDATE 40, 48, 219–223
FROM 223
особенности на уровне Read
Committed 280–283
V
VALUES 164, 176
varchar, тип 54
W
WHERE 40, 145, 176
WINDOW 174
WITH 186, 201–203
WITH ORDINALITY 198
А
Аномалия сериализации 257
Атомарность, свойство транзакции 256, 277
Атрибут 16
Б
Блокировка 256, 278–279
на уровне строк 278, 285
на уровне таблицы 279
предикатная 286
Г
Группировка 46, 168
«Грязное» чтение, аномалия 257, 259
Д
Демо-база «Авиаперевозки»
описание 19–21, 125, 129, 156, 189
схема 22
установка 27
функция bookings.now 207, 229,
276
Демо-база «Успеваемость» 14, 16, 95,
104
Денормализация 138, 320–322
Долговечность, свойство транзакции 256, 277
З
Значение по умолчанию 54, 96, 103,
133–135
И
Изолированность, свойство транзакции 256, 277
Индекс 36, 241–254, 286
метод доступа 293–294
описание в psql 242, 252
по выражению 248
по нескольким столбцам 246
список в psql 245
уникальный 242, 247
ускорение запроса 244, 314
частичный 248, 253
К
Карта видимости 294
Класс оператора 254
Ключ альтернативный 17
внешний 17, 43–44, 100, 104, 115,
121
естественный 33, 42, 110
первичный 17, 34–44, 99, 107–115
потенциальный 17
составной 42, 113
суррогатный 33, 53, 109
уникальный 98, 110–122
Колонка (столбец) 15
Комментарии в SQL 106
Кортеж 16 332
Предметный указатель
М
Метод доступа 293–294
исключительно по индексу 294,
300
по битовой карте 294, 300
по индексу 293, 299–300
последовательный 293, 296–299
Многоверсионность 256
Модель данных реляционная 13
Н
Неповторяющееся чтение,
аномалия 257, 263–268
О
Общее табличное выражение 186–192, 233, 317
рекурсивное 187–189, 201–203
с командой DELETE 224
с командой INSERT 213–215
с командой UPDATE 219
Ограничение целостности 16, 96–104,
255
CHECK 33, 96, 109–111, 113, 118,
135
NOT NULL 33, 97, 118, 135
индексная поддержка 36, 98–99,
242
каскадное обновление 104, 137
каскадное удаление 43, 102
каскадное удаление объектов 116, 141
первичный ключ 17, 99, 242
ссылочное (внешний ключ) 17,
43–44, 100–104, 115, 121
уникальный ключ 98, 136, 215,
242
Операторы SQL
DDL 95–144
DML 145–239
классификация 18
Отношение 15
как результат реляционных операций 156
кардинальное число 16
степень 16
П
План выполнения запроса 155, 296
оценка стоимости 297, 317, 326
оценка числа строк 297
расхождение оценок и факта 315
фактические затраты 307
Планировщик 155, 241, 296
управление 305
Подзапрос 177–192
в предложении FROM 181–183
в предложении HAVING 183–184
в предложении SELECT 180–181
в предложении WHERE 177–180,
205
вложенный 184–185, 191, 230
коррелированный 179, 185, 230,
315, 319
некоррелированный 177
общее табличное выражение 186–192, 233, 317
рекурсивный 187–189, 201–203
скалярный 177, 188
Последовательность 54, 111
Потерянное обновление,
аномалия 257, 261–263,
283–284 333
Предметный указатель
Представление 45, 123–131, 234
вертикальное и горизонтальное 142
материализованное 128, 142, 189,
320
обновляемое 141
описание в psql 127
применение 130
Процессор языка запросов 15
Псевдоним 153, 157
Р
Регулярные выражения
POSIX 147, 254
SQL 193
С
Селективность выборки 246, 251, 293
Сериализация 257
ошибки 265, 268–275, 286
Система управления базами данных
(СУБД) 14
установка 25
Снимок данных 256
Согласованность, свойство транзакции 256, 277
Соединение 152, 294, 315, 319
без использования JOIN 155
в команде DELETE 225
в команде UPDATE 223
внешнее 159–162, 189
левое 160
полное 162
правое 161
декартово 159, 237
на основе неравенства 158
таблицы с собой 156, 158
эквисоединение 153, 295
Сортировка 39, 46, 48, 149, 241–247,
295, 298, 323
в памяти и внешняя 309
Способ соединения 294–295
вложенный цикл 295, 302–303
слиянием 295, 304–305
хешированием 295, 303–304
Статистика 297, 312
Столбец (колонка) 15
вычисляемый 148, 320
Страница 293
Строка 15
версия 256
Схема 36, 108, 131–133
public 132
путь поиска 105, 131
список в psql 131
Т
Таблица 15
виртуальная 187, 202, 236
виртуальная (VALUES) 164
временная 211, 220, 321
использование для журналирования 211
описание в psql 36, 107
связь 1:1 114, 162
список в psql 27
ссылающаяся и ссылочная 17, 43,
100, 106, 115, 121
Тестовые данные, генерация 235
Типы данных, приведение 44, 57, 83,
119, 237
Типы данных: JSON 68, 92–93, 112,
143, 210
вхождение 70
значение по ключу 71, 92
конкатенация 71, 93
проверка ключа 71
удаление ключа 93 334
Предметный указатель
Типы данных: даты и времени 56,
78–87, 191
арифметические операции 84
временные отметки 60, 110, 112,
127
время суток 58
дата 56
интервалы 61
формат ввода и вывода 79–82, 85
часовой пояс 58, 61, 110, 112, 127,
150
Типы данных: логический 63, 87–88
Типы данных: массивы 44, 64, 90–92,
169, 192, 195
вхождение 67, 196
конкатенация 65, 90
многомерные 92
пересечение 67
преобразование в таблицы 68,
196
срезы 66
Типы данных: символьные 33, 42, 54,
112, 199, 237
использование кавычек 55–56
конкатенация 237
пустые строки 138
Типы данных: числовые 33, 51
с плавающей точкой 52, 74, 108
фиксированной точности 52, 73,
112–113
целочисленные 51, 114, 118
целочисленные с автоинкрементом 53, 76–78,
109, 111
Транзакция 18, 255–291
Триггер 276
Ф
Фантомное чтение, аномалия 257,
265–268, 284–285
Функция агрегатная 46, 168–170, 182, 200,
301
оконная 170–175, 200, 232, 319 335
Моргунов Евгений Павлович
POSTGRESQL. ОСНОВЫ ЯЗЫКА SQL
Учебноое пособие
При поддержке Postgres Professional http://postgrespro.ru
Редакторы Е. В. Рогов, П. В. Лузанов
Подписано в печать 31.10.18.
Формат 70×100 1
/
16
. Печать офсетная. Усл. печ. л. 27,09.
Тираж 1000 экз. Заказ №7782.
«БХВ-Петербург», 191036, Санкт-Петербург, Гончарная ул., 20.
Отпечатано с готового оригинал-макета
ООО «Принт-М», 142300, М. О., г. Чехов, ул. Полиграфистов, д. 1