SELECT: Запрос данных

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;