Новичок
5 уроков
(1 час 30 минут)
Курс
Основы SQL для начинающих
На курсе по основам SQL для начинающих вы научитесь работать с такими популярными СУБД, как SQLite, MySQL и PostgreSQL.

#3 – Редактирование SQL таблицы, расширенные возможности SELECT, функции

Вот мы с вами уже дошли до третьего видеоурока курса по основам SQL для начинающих! Очень здорово, что у вас хватает силы воли не бросать начатое дело, что ваше стремление к получению новых знаний не остывает. На этом занятии мы рассмотрим редактирование SQL таблицЫ, расширение возможностей SELECT и часто используемые функции.

SQL запросы для редактирования таблицы

При проектировании баз данных тяжело учесть все моменты, поэтому со временем приходится изменять и расширять структуру базы. Для этого используются SQL запросы на редактирование. Стоит сказать, что запросы в каждой СУБД будут сильно различаться. Главное — понять смысл операции, а не запомнить каждую строчку. Первое, что стоит усвоить, — это то, что все SQL запросы редактирования начинаются со строчки ALTER TABLE.

  • 1. ALTER TABLE table_name ADD COLUMN new_field BOOLEAN NOT NULL DEFAULT TRUE
    (добавить поле new_field типа BOOLEAN в SQL таблицу table_name);
  • 2. ALTER TABLE table_name DROP COLUMN new_field
    (удалить поле из SQL таблицы (MySQL, PostgreSQL));
  • 3. ALTER TABLE table_name CHANGE COLUMN old_field new_field BOOLEAN NOT NULL DEFAULT TRUE (переименовать поле old_field и сменить тип (MySQL));
  • 4. ALTER TABLE table_name RENAME old_field TO new_field
    (переименовать поле old_field (PostgreSQL));
  • 5. ALTER TABLE table_name MODIFY new_field VARCHAR(255) NOT NULL DEFAULT ‘value’
    (сменить тип поля (MySQL));
  • 6. ALTER TABLE table_name ALTER COLUMN new_field SET DATA TYPE VARCHAR(255)
    (сменить тип поля (PostgreSQL));
  • 7. ALTER TABLE table_name ALTER COLUMN new_field SET default ‘value’
    (изменить значение по умолчанию (PostgreSQL));
  • 8. ALTER TABLE table_name ALTER COLUMN new_field SET|DROP NOT NULL
    (добавить/удалить constraint NOT NULL (PostgreSQL));
  • 9. ALTER TABLE table_name RENAME TO new_table_name)
    (переименовать SQL таблицу)

На видеоуроке вы можете рассмотреть подробные примеры с использованием приведенных SQL запросов.

В SQLite нет запросов на редактирование SQL таблицы, поэтому вы можете использовать следующую стратегию: переименовываете таблицу, данные которой хотите скопировать, и создаете новую таблицу с новыми полями. Затем копируете данные из старой SQL таблицы в новую: INSERT INTO table_2 SELECT id, name FROM table_1. Последним шагом останется просто удалить старую таблицу.

Сравнение строк SQL таблицы

В этой части нашего урока будут рассматриваться более сложные SQL запросы, связанные с операторами LIKE, AND, OR, DISTINCT, GROUP BY.

1. Оператор LIKE:
SELECT * FROM table_name WHERE field_1 LIKE ‘value’;
(вернет записи SQL таблицы table_name, где поле field_1 таблицы table_name равно value)
SELECT * FROM table_name WHERE field_1 LIKE ‘val%’;
(вернет записи SQL таблицы table_name, где поле field_1 начинается с val)
SELECT * FROM table_name WHERE field_1 LIKE ‘%lue’;
(вернет записи SQL таблицы table_name, где поле field_1 заканчивается на lue);

2. Поиск по множеству критериев. Операторы AND и OR:
SELECT * FROM table_name WHERE field_1 = 1 AND field_2 > 3;
(вернет записи SQL таблицы table_name, где field_1 равен 1 и field_2 больше 3)
SELECT * FROM table_name WHERE field_1 = 1 OR field_2 > 3;
(вернет записи SQL таблицы table_name, где field_1 равен 1 или field_2 больше 3);

3. Исключение повторяющихся данных:
SELECT DISTINCT field_1 FROM table_name;
(вернет уникальные записи поля field_1 таблицы table_name);

4. Группировка записей:
SELECT field_1, COUNT(field_1) FROM table_name GROUP BY field_1;
(сгруппирует записи SQL таблицы table_name по полю field_1, и выведет уникальные значения field_1 и количество их дубликатов)
SELECT field_1, COUNT(field_1) FROM table_name GROUP BY field_1 HAVING COUNT(field_1) > 3;
(выведет сгруппированные записи SQL таблицы table_name, количество дубликатов которых больше 3)

На видеоуроке представлены примеры использования изученных операторов на примере базы данных городов России.

Часто используемые функции для SQL таблицы

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

  • 1. COUNT(X) – возвращает количество величин аргумента Х, со значением не равным NULL.
  • 2. SUM(X) – возвращает сумму величин в аргументе Х.
  • 3. MIN(X) – возвращает минимальную величину аргумента Х.
  • 4. MAX(X) – возвращает максимальную величину аргумента Х.
  • 5. ROUND(X) – возвращает аргумент Х, округленный до ближайшего целого числа.
  • 6. RAND() [MySQL], RANDOM() [SQLite, PostgreSQL] – возвращает случайную величину с плавающей точкой в диапазоне от 0 до 1,0.
  • 7. LENGTH(X) – возвращает длину строки Х.
  • 8. TRIM(X) – удаляет пробелы в начале и конце строки Х.
  • 9. LOWER(X) – приводит строку Х к нижнему регистру.
  • 10. UPPER(X) – приводит строку Х к верхнему регистру.
  • 11. SUBSTR(X, N) – возвращает подстроку Х с указанной позиции N.
  • 12. REPLACE(X, Y, Z) – возвращает строку Х, в которой все вхождения Y заменены на Z.
  • 13. REVERS(X) [MySQL, PostgreSQL] – возвращает строку Х с обратным порядком символов.
  • 14. MD5(X) [MySQL, PostgreSQL] – возвращает MD5 хеш строки Х.
  • 15. SHA2(X, N) [MySQL] – возвращает SHA2 хеш строки Х, разрядностью N.
  • 16. NOW()[MySQL, PostgreSQL] – возвращает текущую дату и время как величину в формате YYYY-MM-DD HH:MM:SS.
  • 17. UNIX_TIMESTAMP() [MySQL] – возвращает временную метку unix timestamp.

Подробные примеры работы приведенных функций демонстрируются в видео.

Надеемся, наш видеоурок вам понравится. До встречи на следующем уроке!

Приятного всем просмотра! Учитесь с удовольствием! Всегда ваш LoftBlog

Материалы к уроку:
Делись:

Оставь комментарий!

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

Рекомендуемые курсы