Язык запросов SQL (Structured Query Language)


Рано или поздно мы сталкиваемся с необходимостью «залезть» в базу данных. Для этих целей полезно уметь писать хотя бы простые запросы при помощи SQL – языка для работы с данными в реляционных базах данных.

Некоторые команды для работы с данными можно выполнить при помощи графических инструментов, предоставляемых системами управления базами данных (СУБД). Но записей в таблицах может быть слишком много для ручного перебора, и тут уже не обойтись без языка запросов SQL.

create-table-pgadmin

Создание таблицы при помощи графического интерфейса инструмента pgAdmin для работы с СУБД PostgreSQL


SQL команды

Существует 5 типов SQL команд для работы с реляционными базами данных.

Тип Команда Описание
1. Определение данных DDL
(Data Definition Language)
CREATE
ALTER
DROP
Создать таблицу
Изменить таблицу
Удалить таблицу
2. Манипулирование данными DML
(Data Manipulation Language)
INSERT
UPDATE
DELETE
Вставить данные в таблицу
Обновить данные в таблице
Удалить данные из таблицы
3. Запрос данных DQL
(Data Query Language)
SELECT Выбрать данные из таблицы
4. Управление доступом к данным DCL
(Data Control Language)
GRANT
REVOKE
Предоставить пользователю доступ к таблице
Отозвать у пользователя доступ к таблице
5. Управление транзакциями TCL
(Transaction Control Language)
COMMIT
ROLLBACK
Зафиксировать изменения
Откатить изменения

Правила написания SQL запросов

  • SQL команды НЕ регистрочувствительны, можно писать как SELECT, так и select
  • Рекомендуется использовать точку с запятой в конце каждого запроса, для некоторых баз данных это критично
  • При написании запросов необходимо соблюдать порядок ключевых слов
  • Не используйте зарезервированные слова в качестве имен таблиц, столбцов и т.п.
  • Учитывайте диалект базы данных, с которой работаете, синтаксис может незначительно отличаться
  • Двойное тире -- позволяет оставлять комментарии к запросам

    CREATE TABLE cat (            -- создание таблицы «cat»
        id SERIAL PRIMARY KEY,    -- создание столбца «id» с автоматической генерацией числового идентификатора (SERIAL)
        name VARCHAR(64),         -- создание столбца «name» с типом VARCHAR (строка) и максимальной длиной 64 символа
        age INTEGER               -- создание столбца «age» с числовым типом INTEGER
    );

Пример запроса на создание таблицы «cat». Зарезервированные слова выделены жирным


Задача

Найдите все ошибки, которые содержит запрос


    create TABLE table (          # создание таблицы
        id SERIAL PRIMARY KEY,    # создание столбца «id» с автоматической генерацией числового идентификатора (serial)
        name VARCHAR(64),         # создание столбца «name» с типом VARCHAR (строка) и максимальной длиной 64 символа
        taste VARCHAR(128)        # создание столбца «taste» с типом VARCHAR (строка) и максимальной длиной 128 символа
    );