AT extra 👨‍💻 devcode
4 subscribers
601 photos
145 videos
1 file
574 links
Главное не ставить деплой в пятницу 🤣

#трюкдня #мемдня

Мемы тут: @atextra_entertrends
Download Telegram
Forwarded from Senior SQL Developer
Сравнение результатов двух SQL запросов выборки: EXCEPT, INTERSECT и SELECT

Оператор EXCEPT используется для вычитания результатов одного запроса из другого запроса. Другими словами, он возвращает только те строки, которые присутствуют в первом запросе, но отсутствуют во втором запросе.

Оператор INTERSECT используется для получения только тех строк, которые присутствуют в обоих запросах.

Оператор SELECT используется для выборки данных из таблицы.

Оператор EXCEPT вычитает результаты одного запроса из другого, а оператор INTERSECT находит только те строки, что присутствуют в обоих запросах. SELECT используется для выборки данных из таблицы. При использовании SQLite для работы с базами данных важно учитывать особенности каждого из этих операторов.
​​⚙️ Сохраняем историю запросов psql в файл.

Такое может пригодиться для дальнейшего анализа запросов, расследования инцидентов, связанных с безопасностью базы данных, или просто чтобы разобраться кто накосячил и снёс пол базы 😅 А может у вас родился какой-то гениальный запрос, который вы не можете больше повторить, а тут он в файле сохранится 😉

Для установки файла для записи воспользуемся следующей командой psql:

\set HISTFILE ~/.psql_history- :DBNAME

HISTFILE - это переменная, которая определяет файл для истории запросов.

Если эта переменная не определена, то значение берется из переменной окружения PSQL_HISTORY. Если и эта переменная не определена, то значением по умолчанию будет ~/.psql_history - для Linux систем и APPDATA%\postgresql\psql_history - для Windows.

В нашем примере psql будет вести отдельный файл с историей команд для каждой базы данных в кластере. Мы можем вместо DBNAME указать конкретное имя базы, и тогда история будет вестись только для нее.

Также мы можем поместить данную команду в файл .psqlrc и тогда нам не придется прописывать эту команду каждый раз при запуске psql.

#psql
Forwarded from Senior SQL Developer
Создание поля, объединяющего имя и зарплату в выборке из таблицы пользователей

Для создания поля, которое будет включать в себя и имена, и зарплату, можно использовать функцию CONCAT(). Она объединяет две или более строковые величины в одну строку.

Пример SQL-запроса для создания поля new_field на фото.

В примере мы выбираем таблицу users и создаем новое поле с помощью функции CONCAT(). Внутри функции указываем два поля, которые хотим объединить - name и salary. Также задаем новое имя для созданного поля - new_field, используя AS.

Теперь в результате выполнения запроса в выборке будет присутствовать новое поле new_field, которое будет содержать имя пользователя и его зарплату.
Forwarded from loldev();
Проблемы своего времени
Forwarded from Senior SQL Developer
#вопросы_с_собеседований

Что такое нормализация и денормализация?

Нормализация отношений в SQL призвана организовать информацию в базе данных таким образом, чтобы она не занимала много места и с ней было удобно работать. Это удаление избыточных данных, устранение дублей, идентификация наборов связанных данных через PRIMARY KEY, etc.

Соответственно, денормализация является обратным процессом, который вносит в нормализованную таблицу избыточные данные.
​​👨🏻‍🎓 Управление параметрами транзакции в PostgreSQL.

Мы уже с вами знаем как открывать транзакцию, фиксировать ее и откатывать изменения, а также как ставить точки сохранения внутри транзакции.

Теперь давайте разберемся какими параметрами транзакции мы можем управлять. Одни из таких параметров - это READ WRITE и READ ONLY.

READ WRITE - это транзакция для записи и чтения данных.

READ ONLY - транзакция только для чтения.

Пример:

BEGIN READ ONLY; - открываем транзакцию только для чтения

CREATE TABLE test (id int); - пытаемся создать таблицу test

ERROR: cannot execute CREATE TABLE in a read-only transaction - получаем ошибку

#queries
Forwarded from Senior SQL Developer
🖥 Как в sql посчитать количество повторяющихся значений

Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY.

Предположим, у нас есть таблица "orders" с колонками "customer_name" и "order_date", и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:

SELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name

Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.
Please open Telegram to view this post
VIEW IN TELEGRAM
set.update

Метод update() обновляет текущее множество, добавляя элементы из другого множества (или любого другого итерируемого). Если предмет присутствует в обоих множествах, в обновленном множестве будет присутствовать только один экземпляр этого предмета.

#практика
​​📟 Полезные функции PostgreSQL (функция AVG ()).

Продолжаем знакомиться с агрегатными функциями PostgreSQL. Сегодня у нас на очереди функция AVG().

Эта функция позволяет измерить среднюю температуру по больнице посчитать среднее значение параметров в колонке.

Возьмем для примера нашу таблицу с данными по зарплатам сотрудников people:

Id| name |age|address | zp
-+-----––+--–+---------+–––––
1| Maxim |32|California|20000
2| Nastia|25| Texas |15000
3| Ilya |23| Norway |20000
4| Dima |25| Rich-Mond|65000
5| Sasha |27| Texas |85000

Посчитаем среднюю зарплату всех сотрудников. Для этого используем следующий запрос:

SELECT AVG(zp) FROM people;

Получим следующий результат:

avg
--------------------
41000
(1 row)

В нашем случае у нас получилось ровное число. Но в других ситуациях у вас может получиться число с точкой и большим кол-вом знаков после нее. Чтобы привести число в более читаемый вид и сократить кол-во знаков после точки, можно использовать оператор numeric. Например так:

SELECT AVG(zp)::numeric(10,2) FROM people;

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

#pgfunc
Forwarded from Senior SQL Developer
Различие команд UNION и UNION ALL

В SQL команда UNION и UNION ALL используются для объединения результатов двух или более запросов.

1. Команда UNION объединяет результаты двух запросов и возвращает уникальные записи. Если два запроса возвращают одинаковые записи, то в результате будет только одна.

2. Команда UNION ALL также объединяет результаты двух запросов, но в отличие от UNION, возвращает все записи, включая повторяющиеся.

Использование UNION и UNION ALL зависит от конкретной ситуации. Если необходимо получить только уникальные записи, то следует использовать UNION. Если необходимо получить все записи, включая повторяющиеся, то следует использовать UNION ALL.
Forwarded from в IT и выйти
Студент пишет презентацию о рисках нейросетей при помощи ChatGPT.

Как говорится, работаем с первоисточниками.

@encryptedch
Forwarded from IT Юмор
​Когда доступность на сайте является багом:
Forwarded from IT Юмор
Кто-то же должен это делать
​​📟 Функции задержки выполнения в PostgreSQL.

В случае необходимости задержки выполнения процесса в PostgreSQL есть несколько функций.

Практической пользы от этих функций я не придумал 🤔 Но для целей тестирования кода, например, или эмуляции каких-то блокировок или зависших процессов они вполне могут сгодиться.

Одной из таких функций является pg_sleep (). В качестве параметра ей передается кол-во секунд, на которое нужна задержка. Значение может быть и дробным числом.

Пример выполнения:

SELECT pg_sleep(5);

или

SELECT pg_sleep(1.2);

Для удобства использования в PostgreSQL предусмотрены производные функции от pg_sleep(). Это pg_sleep_for() - принимает в качестве значения интервал, на который нужно "заснуть". Здесь уже можно указывать значения и в минутах, например так:

SELECT pg_sleep_for('3 minutes');

Еще есть функция pg_sleep_until(), которая позволяет задать определенное время выхода из сна, например вот так:

SELECT pg_sleep_until('tomorrow 05:00');

Время выхода из сна может быть и дольше, в зависимости от загрузки сервера СУБД.

⚠️ Баловаться с этими функциями на рабочем сервере СУБД нужно с осторожностью! Если вы например используете одну из этих функций в сеансе, который уже держит какие-то ресурсы блокировками, то рискуете подвесить и другие пользовательские сеансы, которым нужны теже самые ресурсы.

#pgfunc
Forwarded from Хабр
​Mojo может стать крупнейшим достижением в области разработки языков программирования за последние десятилетия

Mojo — это новый язык программирования, основанный на Python, который устраняет имеющиеся у него проблемы производительности и развёртывания.
Forwarded from loldev();
Прогресс
Forwarded from Хабр Новости
Исследователь и реверс-инженер Николас Старке обнаружил в коде прошивки для контроллера твердотельного накопителя Kingston KC2000 (M.2 NVMe SSD) текст баллады The Scientist («Учёный») британской рок-группы Coldplay.

#разработка #НеожиданныйКроссовер