SELECT, столбцы и псевдонимы
Осваиваем главный инструмент чтения данных — оператор SELECT.
SELECT — это оператор, который читает данные из таблиц: он определяет, какие столбцы и выражения попадут в результат.
Все столбцы или только нужные
Запрос SELECT * FROM таблица возвращает все столбцы. Это удобно при беглом просмотре, но в реальных запросах лучше перечислять нужные столбцы явно: меньше лишних данных и понятнее намерение.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price INTEGER,
qty INTEGER
);
INSERT INTO products (name, price, qty) VALUES
('Клавиатура', 2500, 10),
('Мышь', 1200, 25),
('Монитор', 18000, 4);
SELECT name, price FROM products;
Вывод:
Клавиатура|2500 Мышь|1200 Монитор|18000
Вычисляемые столбцы
В SELECT можно не только брать столбцы как есть, но и считать прямо в запросе: складывать, умножать, конкатенировать строки. База посчитает выражение для каждой строки.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price INTEGER,
qty INTEGER
);
INSERT INTO products (name, price, qty) VALUES
('Клавиатура', 2500, 10),
('Мышь', 1200, 25),
('Монитор', 18000, 4);
SELECT name, price * qty FROM products;
Вывод:
Клавиатура|25000 Мышь|30000 Монитор|72000
Второй столбец — это произведение цены на количество, то есть стоимость всего запаса товара. Но у него некрасивое имя price * qty. Исправим это.
Псевдонимы через AS
Ключевое слово AS задаёт псевдоним — удобное имя столбца в результате. Это особенно важно для вычисляемых выражений и при выводе в отчёты.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price INTEGER,
qty INTEGER
);
INSERT INTO products (name, price, qty) VALUES
('Клавиатура', 2500, 10),
('Мышь', 1200, 25),
('Монитор', 18000, 4);
SELECT name AS товар, price * qty AS стоимость
FROM products;
Вывод:
Клавиатура|25000 Мышь|30000 Монитор|72000
Сами значения те же, но столбцы теперь называются товар и стоимость. Слово AS можно даже опустить (price * qty стоимость) — результат тот же, но с AS читается понятнее. Если в псевдониме есть пробелы, возьмите его в двойные кавычки: AS "полная стоимость".
Соединение строк
Оператор || склеивает строки. Удобно собирать читаемые подписи прямо в запросе:
CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price INTEGER);
INSERT INTO products (name, price) VALUES ('Клавиатура', 2500), ('Мышь', 1200);
SELECT name || ': ' || price || ' руб.' AS label FROM products;
Вывод:
Клавиатура: 2500 руб. Мышь: 1200 руб.
Итог
SELECT столбцы FROM таблицачитает данные;*берёт все столбцы.- В списке выбора можно вычислять выражения:
price * qty, склейку строк через||. ASдаёт столбцу понятное имя в результате; для имён с пробелами — двойные кавычки.