PostgreSQL SELECT: Запрос данных
PostgreSQL SELECT: Запрос данных
Оператор SELECT
— это основа для извлечения данных в PostgreSQL. Он позволяет получать данные из одной или нескольких таблиц в вашей базе данных. В этом учебном пособии мы сосредоточимся исключительно на операторе SELECT
, закладывая основу для более сложных запросов в будущих уроках.
Базовый синтаксис SELECT
Простейшая форма оператора SELECT
извлекает данные из указанных столбцов таблицы:
SELECT column1, column2, ...
FROM table_name;
SELECT
: Указывает столбцы, которые требуется извлечь.FROM
: Указывает таблицу, из которой нужно получить данные.
Выбор всех столбцов
(Не забудьте запустить пример схемы, если хотите протестировать эти запросы в своей оболочке)
Чтобы выбрать все столбцы из таблицы, используйте символ подстановки (*
):
SELECT * FROM books;
Этот запрос извлекает все столбцы и все строки из таблицы books
.
Выбор определенных столбцов
Если вам нужны только определенные столбцы, укажите их явно:
SELECT title, author FROM books;
Этот запрос извлекает столбцы title
и author
из таблицы books
.
Псевдонимы столбцов
Псевдонимы столбцов временно переименовывают столбец в результате запроса, улучшая читаемость:
SELECT title AS book_title, author AS writer FROM books;
AS
: Присваивает псевдоним столбцу.- В результате столбцы будут отмечены как
book_title
иwriter
.
Выполнение вычислений
Вы можете выполнять арифметические операции прямо в операторе SELECT
:
SELECT title, price, price * 0.9 AS discounted_price FROM books;
Этот запрос рассчитывает скидку 10% на цену каждой книги.
Конкатенация строк
Объединяйте несколько столбцов или добавляйте текст с помощью оператора объединения (||
):
SELECT 'Title: ' || title || ', Author: ' || author AS book_info FROM books;
Этот запрос создает объединенную строку с названиями книг и авторами.
Использование встроенных функций
PostgreSQL предоставляет различные функции, которые можно использовать в операторе SELECT
:
- Строковые функции: Работа с текстовыми данными.
- Функции работы с датой и временем: Работа со значениями даты и времени.
- Математические функции: Выполнение математических вычислений.
Пример:
SELECT UPPER(title) AS uppercase_title FROM books;
Этот запрос преобразует все названия книг в верхний регистр.
Выбор литеральных значений
Вы можете выбрать литеральные значения без указания таблицы:
SELECT 'Hello, PostgreSQL!';
Этот запрос вернет одну строку с текстом Hello, PostgreSQL!
.
Выбор выражений
В операторе SELECT
можно оценивать выражения:
SELECT 7 * 3 AS result;
Этот запрос вернет одну строку с результатом вычисления 21
.
Упорядочение столбцов результата
Порядок столбцов в операторе SELECT
определяет их порядок в результирующем наборе:
SELECT author, title FROM books;
В результате будет сначала отображен столбец author
, затем — title
.
Выбор из нескольких таблиц (Декартово произведение)
Хотя здесь мы не углубляемся в объединения (JOIN), вы можете выбрать данные из нескольких таблиц, чтобы получить Декартово произведение:
SELECT * FROM books, authors;
Примечание: Это объединит каждую строку таблицы books
с каждой строкой таблицы authors
, что может привести к большому количеству строк.
Ограничение результатов с помощью FETCH FIRST
Даже без условия WHERE
, вы можете ограничить количество возвращаемых строк:
SELECT * FROM books
FETCH FIRST 5 ROWS ONLY;
Этот запрос извлекает первые пять строк из таблицы books
.
Резюме
Оператор SELECT
— это основной инструмент для запросов данных в PostgreSQL. Овладев его базовым использованием, вы подготовите основу для создания более сложных запросов.
Ключевые моменты:
- Используйте
SELECT *
, чтобы извлечь все столбцы из таблицы. - Указывайте конкретные столбцы, чтобы получить только нужные данные.
- Используйте псевдонимы столбцов для улучшения читаемости результатов.
- Выполняйте вычисления и используйте функции в операторе
SELECT
. - Объединяйте строки и включайте литеральные значения в ваши запросы.
В следующих уроках мы рассмотрим дополнительные конструкции, такие как WHERE
, JOIN
и ORDER BY
, чтобы далее фильтровать и манипулировать данными.
Продолжайте практиковаться с оператором SELECT
, чтобы стать опытным специалистом по запросам данных в PostgreSQL.
Example Schema Code
-- Create the books table
CREATE TABLE books (
title VARCHAR(255),
author VARCHAR(255),
price NUMERIC(10, 2),
pages INTEGER
);
-- Insert sample data into the books table
INSERT INTO books (title, author, price, pages) VALUES
('The Great Gatsby', 'F. Scott Fitzgerald', 10.99, 180),
('To Kill a Mockingbird', 'Harper Lee', 7.99, 281),
('1984', 'George Orwell', 8.99, 328),
('Pride and Prejudice', 'Jane Austen', 6.99, 279),
('The Catcher in the Rye', 'J.D. Salinger', 9.99, 214),
('Moby-Dick', 'Herman Melville', 11.99, 635),
('War and Peace', 'Leo Tolstoy', 12.99, 1225);
-- Create the authors table
CREATE TABLE authors (
name VARCHAR(255)
);
-- Insert sample data into the authors table
INSERT INTO authors (name) VALUES
('F. Scott Fitzgerald'),
('Harper Lee'),
('George Orwell'),
('Jane Austen'),
('J.D. Salinger'),
('Herman Melville'),
('Leo Tolstoy');
-- Create the movies table
CREATE TABLE movies (
title VARCHAR(255)
);
-- Insert sample data into the movies table
INSERT INTO movies (title) VALUES
('The Shawshank Redemption'),
('The Godfather'),
('The Dark Knight'),
('Pulp Fiction'),
('The Lord of the Rings');
-- Optional: Verify the data insertion
SELECT * FROM books;
SELECT * FROM authors;
SELECT * FROM movies;