Разберём команды SQL, которые помогут вам создать базу данных, создать в ней таблицу. Во-вторых научимся работать с этой таблицей.

Создание базы данных

Чтобы создать базу данных используется команда CREATE DATABASE <имя базы данных>. Например:

# CREATE DATABASE it_outsourcing;

Все остальные примеры будем выполнять в ней, поэтому сразу переключимся на эту базу:

# \c it_outsourcing

Создание таблицы

Основной элемент из которого состоит реляционная база данных — это таблицы. Для создания таблицы используется команда CREATE TABLE <имя таблицы> (<имя колонки> <тип колонки>, <имя колонки> <тип колонки>, …). Например создадим таблицу users для хранения списка пользователей, которых мы обслуживаем. В эту таблицу будем заносить ФИО пользователя, название его компании, его номер телефона и электронную почту:

# CREATE TABLE users
(fio text,
company text,
phone varchar(11),
email text
);

Типы данных, которые можно применять, рассмотрю позже.

Наполнение таблицы строками

Строки вставляются в таблицу с помощью команды SQL INSERT INTO <имя таблицы> (перечисляем поля)
VALUES (перечисляем значения)
. При этом можно вставлять по одной строке или по несколько. Вставим три строки в нашу таблицу users:

# INSERT INTO users (fio, company, phone, email)
VALUES ('Иванов Иван Алексеевич', 'ООО "Ромашка"', '89057362761', 'ivanov@mail.ru'),
('Донченко Иван Андреевич', 'ООО "Ромашка"', '89038276494', 'dota@yandex.ru'),
('Девин Алексей Владимирович', 'ООО "Начало"', '89069384782', 'test@yandex.ru');

Как видно из примера выше, мы вначале определяем порядок колонок (fio, company, phone, email), а затем в этом порядке вставляем значения.

При вставке строковых значений, строка всегда берётся в одинарные кавычки.

Просмотр таблицы

Посмотреть на созданную таблицу можно с помощью команды SELECT * FROM <название таблицы>. Например:

# SELECT * FROM users;
            fio             |    company    |    phone    |     email
----------------------------+---------------+-------------+----------------
 Иванов Иван Алексеевич     | ООО "Ромашка" | 89057362761 | ivanov@mail.ru
 Донченко Иван Андреевич    | ООО "Ромашка" | 89038276494 | dota@yandex.ru
 Девин Алексей Владимирович | ООО "Начало"  | 89069384782 | test@yandex.ru
(3 rows)

Можно вывести определённые колонки указав их вместо звездочки:

# SELECT fio, phone FROM users;
            fio             |    phone
----------------------------+-------------
 Иванов Иван Алексеевич     | 89057362761
 Донченко Иван Андреевич    | 89038276494
 Девин Алексей Владимирович | 89069384782
(3 rows)

Можно вывести определённые строки с помощью WHERE <условие>:

# SELECT * FROM users WHERE company = 'ООО "Ромашка"';
           fio           |    company    |    phone    |     email
-------------------------+---------------+-------------+----------------
 Иванов Иван Алексеевич  | ООО "Ромашка" | 89057362761 | ivanov@mail.ru
 Донченко Иван Андреевич | ООО "Ромашка" | 89038276494 | dota@yandex.ru
(2 rows)

В качестве условия можем указать, что значение в определённой колонке должно:

  • чему-то равняется;
  • быть больше или меньше определённого значения;
  • содержать что-то;
  • и другое.

Можем комбинировать эти методы, например:

# SELECT fio, phone FROM users WHERE company = 'ООО "Ромашка"';
           fio           |    phone
-------------------------+-------------
 Иванов Иван Алексеевич  | 89057362761
 Донченко Иван Андреевич | 89038276494
(2 rows)

А ещё можем отсортировать таблицу по какой-нибудь строке:

# SELECT fio, phone FROM users ORDER BY fio;
            fio             |    phone
----------------------------+-------------
 Девин Алексей Владимирович | 89069384782
 Донченко Иван Андреевич    | 89038276494
 Иванов Иван Алексеевич     | 89057362761

Условий может быть несколько, например ФИО должно содержать Иван, а телефон должен заканчиваться на 94:

# SELECT * FROM users WHERE fio ~ 'Иван' AND phone ~ '.*94$';
           fio           |    company    |    phone    |     email
-------------------------+---------------+-------------+----------------
 Донченко Иван Андреевич | ООО "Ромашка" | 89038276494 | dota@yandex.ru

Знак «~» — означает что значение должно содержать, а не равняться.

Также в примере выше я показал, что в условии можно использовать регулярные выражения.

Комбинировать условия можно с помощью AND и OR.

Изменение строк

Строки в SQL таблице можно обновить, или другими словами изменить. Изменяют строки с помощью команды UPDATE <имя таблицы> SET <колонка = значение> WHERE <условие>. Например изменим номер телефона Иванову Ивану Алексеевичу:

# UPDATE users SET phone = '89057362744' WHERE fio = 'Иванов Иван Алексеевич';
UPDATE 1
it_outsourcing=# SELECT fio, phone FROM users WHERE fio = 'Иванов Иван Алексеевич';
          fio           |    phone
------------------------+-------------
 Иванов Иван Алексеевич | 89057362744
(1 row)

Если не указать условие, то обновятся все строки:

# UPDATE users SET phone = '89057362744';
UPDATE 3

it_outsourcing=# select fio, phone FROM users;
            fio             |    phone
----------------------------+-------------
 Донченко Иван Андреевич    | 89057362744
 Девин Алексей Владимирович | 89057362744
 Иванов Иван Алексеевич     | 89057362744
(3 rows)

Удаление строк

Для удаления строк используют команду DELETE FROM <имя таблицы> WHERE <условие>. Например:

# DELETE FROM users WHERE fio = 'Донченко Иван Андреевич';
DELETE 1

# select fio, phone FROM users;
            fio             |    phone
----------------------------+-------------
 Девин Алексей Владимирович | 89057362744
 Иванов Иван Алексеевич     | 89057362744
(2 rows)

Если не указать блок WHERE, то удалятся все строки! Но очищать таблицу лучше другой командой.

Очистка таблицы

Очистка таблицы осуществляется с помощью команды TRUNCATE <имя таблицы>. Например:

# TRUNCATE users;

# SELECT * FROM users;
 fio | company | phone | email
-----+---------+-------+-------
(0 rows)

Удаление таблицы

Для удаления используем команду DROP TABLE <имя таблицы>. Например:

# DROP TABLE users;

Удаление базы данных

А чтобы удалить базу данных выполняем DROP DATABASE <имя базы данных>. Но предварительно нужно отключиться от удаляемой базы:

# \c postgres
# DROP DATABASE it_outsourcing;

Повторим изученные команды

  • CREATE DATABASE <имя базы данных>;
  • CREATE TABLE <имя таблицы> (<имя колонки> <тип колонки>, <имя колонки> <тип колонки>, …);
  • SELECT <колонки> FROM <имя таблицы> WHERE <условие> ORDER BY <колонка для сортировки>;
  • UPDATE <имя таблицы> SET <колонка = значение> WHERE <условие>
  • DELETE FROM <имя таблицы> WHERE <условие>;
  • TRUNCATE <имя таблицы>;
  • DROP TABLE <имя таблицы>;
  • DROP DATABASE <имя базы данных>.

Сводка
Базовые команды SQL
Имя статьи
Базовые команды SQL
Описание
Разберём команды SQL, которые помогут вам создать базу данных, создать в ней таблицу. Во-вторых научимся работать с этой таблицей

2 Replies to “Базовые команды SQL”

  1. Отличная статья! Всё просто и понятно.
    Но вот не рассказали, как, открыв для просмотра таблицу, после этого просмотра снова вернуться в консоль?

    1. Спасибо! Скорее всего нужно нажать клавишу «q». Когда писал статью, наверное это на автомате делал и не придал значение 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *