Forwarded from Postgres Guru | Базы данных 💐
👨🎓 Команда UPDATE в PostgreSQL.
Команда UPDATE используется для изменения строк столбцов по указанному условию.
⚠️ Внимание!!! Если вы не укажете условие, то изменятся все строки в столбце таблицы!!! И будет как в меме, прикрепленном к этому посту 👹
Базовый синтаксис команды такой:
Когда команда выполниться, PostgreSQL вернет следующую строку:
Если вы хотите получить в выводе после исполнения команды все измененные строки, а не только из кол-во, то можно в конце запроса с командой UPDATE добавить команду RETURNING *, например вот так:
#queries
Команда UPDATE используется для изменения строк столбцов по указанному условию.
⚠️ Внимание!!! Если вы не укажете условие, то изменятся все строки в столбце таблицы!!! И будет как в меме, прикрепленном к этому посту 👹
Базовый синтаксис команды такой:
UPDATE имя_таблицыSET имя_колонки1=новое_значение1, имя_колонки2=новое_значение2, ...WHERE условие;Когда команда выполниться, PostgreSQL вернет следующую строку:
UPDATE кол-во_измененных_строкЕсли вы хотите получить в выводе после исполнения команды все измененные строки, а не только из кол-во, то можно в конце запроса с командой UPDATE добавить команду RETURNING *, например вот так:
UPDATE имя_таблицыSET имя_колонки1=новое_значение1, имя_колонки2=новое_значение2, ...WHERE условиеRETURNING *;#queries
Forwarded from Postgres Guru | Базы данных 💐
📟 Создание последовательностей в PostgreSQL.
Последовательности могут быть использованы для генерации упорядоченных уникальных идентификаторов в таблице, или для каких-то монотонно повторяющихся значений.
Для создания последовательностей в PostgreSQL используется команда CREATE SEQUENCE. Синтаксис команды такой:
В результате работы команды будет создана специальная табличка с одной строкой. После создания последовательности мы можем использовать функции nextval, currval и setval для изменения значений последовательности.
Чтобы посмотреть текущие значения последовательности, можно воспользоваться простым запросом, типа:
Чтобы начать последовательность с определенного значения, можно воспользоваться командой:
Чтобы удалить последовательнось , нужно ввести следующую команду:
Функция nextval() присваивает следующее по порядку значение последовательности.
Функция currval() возвращает последнее значение последовательности, присвоенное функцией nextval()
Функция setval() устанавливает для объекта последовательности текущее значение.
Пример использования. Предположим, что у нас есть таблица table_seq с одной колонкой num, с типом int и последовательность с именем seq. Вставим новую строку с значением последовательности в нашу таблицу:
Теперь вставим текущее значение последовательности:
И еще раз следующее значение последовательности:
Теперт , если мы запросим значения из нашей таблицы, то получим следующий результат:
#queries #pgfunc
Последовательности могут быть использованы для генерации упорядоченных уникальных идентификаторов в таблице, или для каких-то монотонно повторяющихся значений.
Для создания последовательностей в PostgreSQL используется команда CREATE SEQUENCE. Синтаксис команды такой:
CREATE SEQUENCE имя_последовательности;В результате работы команды будет создана специальная табличка с одной строкой. После создания последовательности мы можем использовать функции nextval, currval и setval для изменения значений последовательности.
Чтобы посмотреть текущие значения последовательности, можно воспользоваться простым запросом, типа:
SELECT * FROM имя_последовательности;Чтобы начать последовательность с определенного значения, можно воспользоваться командой:
CREATE SEQUENCE имя_последовательности START 105;Чтобы удалить последовательнось , нужно ввести следующую команду:
DROP SEQUENCE имя_последовательности;Функция nextval() присваивает следующее по порядку значение последовательности.
Функция currval() возвращает последнее значение последовательности, присвоенное функцией nextval()
Функция setval() устанавливает для объекта последовательности текущее значение.
Пример использования. Предположим, что у нас есть таблица table_seq с одной колонкой num, с типом int и последовательность с именем seq. Вставим новую строку с значением последовательности в нашу таблицу:
INSERT INTO table_seq VALUES (nextval('seq'));Теперь вставим текущее значение последовательности:
INSERT INTO table_seq VALUES (setval('seq'));И еще раз следующее значение последовательности:
INSERT INTO table_seq VALUES (nextval('seq'));Теперт , если мы запросим значения из нашей таблицы, то получим следующий результат:
SELECT * FROM table_seq;num--- 1 1 2(3 rows)#queries #pgfunc
Forwarded from Senior SQL Developer
Псевдостолбецы в Oracle SQL
Oracle SQL - это язык запросов, который используется для работы с базами данных Oracle. При написании запросов часто возникает необходимость возвращать информацию о структуре таблицы, а не только о её данных.
1. rownum - это специальное поле, которое автоматически генерируется при выполнении запроса и содержит порядковый номер строки. Этот столбец не является частью таблицы и не может быть изменён пользователем.
2. dual - это единственный столбец в таблице dual, которая используется для выполнения операций без обращения к реальным таблицам. При выполнении запроса к таблице dual будет возвращена единственная строка с единственным столбцом.
3. level - это поле, которое автоматически генерируется при выполнении запросов с использованием оператора CONNECT BY и содержит уровень иерархии. Этот столбец может быть использован для выполнения запросов, связанных с иерархическими структурами.
Oracle SQL - это язык запросов, который используется для работы с базами данных Oracle. При написании запросов часто возникает необходимость возвращать информацию о структуре таблицы, а не только о её данных.
1. rownum - это специальное поле, которое автоматически генерируется при выполнении запроса и содержит порядковый номер строки. Этот столбец не является частью таблицы и не может быть изменён пользователем.
2. dual - это единственный столбец в таблице dual, которая используется для выполнения операций без обращения к реальным таблицам. При выполнении запроса к таблице dual будет возвращена единственная строка с единственным столбцом.
3. level - это поле, которое автоматически генерируется при выполнении запросов с использованием оператора CONNECT BY и содержит уровень иерархии. Этот столбец может быть использован для выполнения запросов, связанных с иерархическими структурами.
Forwarded from SQL Pro
Ответ на #вопрос60
Это один из распространенных вопросов по SQL на собеседованиях.
Выбор четных записей:
Это один из распространенных вопросов по SQL на собеседованиях.
Выбор четных записей:
Select * from table where id % 2 = 0Выбор нечетных записей:
Select * from table where id % 2 != 0#вопросы #собеседование
Forwarded from Хабр
Физическая программная археология
Спонтанный эксперимент по воплощению в жизнь заклинания из древнего манускрипта. Реализация кода на АЛГОЛ-60, напечатанного в статье 1976 года, и перезапуск его на FORTRAN-90.
Спонтанный эксперимент по воплощению в жизнь заклинания из древнего манускрипта. Реализация кода на АЛГОЛ-60, напечатанного в статье 1976 года, и перезапуск его на FORTRAN-90.
Forwarded from Postgres Guru | Базы данных 💐
🔬 Учимся читать планы запросов в PostgreSQL (видео).
Планы запросов не самая простая вещь в PostgreSQL. Но научиться правильно их читать - это ключ к успеху в оптимизации запросов.
В данном видео нам как раз покажут и расскажут как читать планы запроса, какие стадии проходит запрос прежде чем выполниться и многое другое. Видео на английском языке.
Из видео вы узнаете:
✅ Как использовать команду EXPLAIN и ее параметры;
✅ Как правильно читать полученный план запроса;
✅ Как читать план запроса при параллельном выполнении;
✅ Признаки хорошего плана запроса;
✅ Как выглядят JOIN в плане запроса.
➡️ СМОТРЕТЬ ВИДЕО
#queries #pgbase
Планы запросов не самая простая вещь в PostgreSQL. Но научиться правильно их читать - это ключ к успеху в оптимизации запросов.
В данном видео нам как раз покажут и расскажут как читать планы запроса, какие стадии проходит запрос прежде чем выполниться и многое другое. Видео на английском языке.
Из видео вы узнаете:
✅ Как использовать команду EXPLAIN и ее параметры;
✅ Как правильно читать полученный план запроса;
✅ Как читать план запроса при параллельном выполнении;
✅ Признаки хорошего плана запроса;
✅ Как выглядят JOIN в плане запроса.
➡️ СМОТРЕТЬ ВИДЕО
#queries #pgbase
YouTube
PGConf NYC 2022 Understanding PostgreSQL Query Plans (aka EXPLAIN) by Stephen Frost
Learn how to read EXPLAIN, EXPLAIN ANALYZE and about how you can influence query plans.
One of the most complex parts of the PostgreSQL system is the planner and the optimizer. This talk will help you understand what happens when you ask the database to…
One of the most complex parts of the PostgreSQL system is the planner and the optimizer. This talk will help you understand what happens when you ask the database to…
Forwarded from Senior SQL Developer
Важные моменты при сравнении record и NULL:
При использовании ROW expression в SQL и сравнении с IS NULL результат будет TRUE только в том случае, если каждый столбец содержит значение NULL. Это важно знать, чтобы избежать ошибок в своем коде.
Таким образом, при сравнении ROW expression с NULL необходимо учитывать, что результат будет зависеть от того, есть ли в каждом столбце значение NULL или нет.
При использовании ROW expression в SQL и сравнении с IS NULL результат будет TRUE только в том случае, если каждый столбец содержит значение NULL. Это важно знать, чтобы избежать ошибок в своем коде.
Таким образом, при сравнении ROW expression с NULL необходимо учитывать, что результат будет зависеть от того, есть ли в каждом столбце значение NULL или нет.
Forwarded from Data Science. SQL hub
Полностью очистить таблицу, не удаляя её можно с помощью запроса DELETE. Мы указываем имя таблицы, но опускаем блок WHERE. Тогда удаляются абсолютно все записи, вне зависимости от условий.
DELETE FROM wiped_table_name;
-- Мы очистили таблицу wiped_table_nameКроме DELETE без условий можно использовать TRUNCATE. У неё есть свои особенности. Самая главная, она быстрее DELETE, так как не сканирует таблицы перед очисткой и наиболее полезна для очистки больших таблиц.
TRUNCATE cars, cups, parrots;
-- Тут можно перечислять сколько угодно таблицКрайне рекомендую глянуть документацию по TRUNCATE, она очень подробная: https://postgrespro.ru/docs/postgrespro/9.5/sql-truncate
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Senior SQL Developer
Индекс Hash в PostgreSQL
Для создания индекса Hash в PostgreSQL используется команда CREATE INDEX. Например, для создания индекса Hash на таблице users для поля id, можно использовать команду с фото.
Пример использования индекса Hash:
Для поиска пользователя с id = 12345 в таблице users с миллионами записей рекомендуется использовать индекс Hash вместо обычного поиска без индекса, который может занять много времени и ресурсов. PostgreSQL использует хеш-функцию для быстрого нахождения нужной записи.
Ограничения индекса Hash
Хеш-индекс быстр для поиска, но имеет ограничения. Он не поддерживает сравнение > или <, поэтому не подходит для сортировки. Также, если хеш-функция выбрана неправильно, могут возникнуть коллизии, когда разные id имеют одинаковый хеш.
Для создания индекса Hash в PostgreSQL используется команда CREATE INDEX. Например, для создания индекса Hash на таблице users для поля id, можно использовать команду с фото.
Пример использования индекса Hash:
Для поиска пользователя с id = 12345 в таблице users с миллионами записей рекомендуется использовать индекс Hash вместо обычного поиска без индекса, который может занять много времени и ресурсов. PostgreSQL использует хеш-функцию для быстрого нахождения нужной записи.
Ограничения индекса Hash
Хеш-индекс быстр для поиска, но имеет ограничения. Он не поддерживает сравнение > или <, поэтому не подходит для сортировки. Также, если хеш-функция выбрана неправильно, могут возникнуть коллизии, когда разные id имеют одинаковый хеш.
Forwarded from Senior SQL Developer
#вопросы_с_собеседований
Назовите 3 вида блокировок и что вы о них знаете?
Блокировка - это механизм, используемый в базах данных для управления параллельным доступом к данным. Она гарантирует, что одновременный доступ к данным не повредит целостности данных и не приведет к ошибкам.
1. Блокировка уровня страницы
Блокировка уровня страницы блокирует доступ к целой странице данных, а не только к отдельным строкам. Это может быть полезным при выполнении больших объемов операций чтения или изменения данных.
2. Блокировка уровня таблицы
Блокировка уровня таблицы блокирует доступ ко всей таблице данных для других пользователей. Это может быть полезным при выполнении операций обслуживания таблицы, таких как переименование или изменение структуры таблицы.
3. Блокировка уровня базы данных
Блокировка уровня базы данных блокирует доступ ко всей базе данных для других пользователей. Это может быть полезным при выполнении операций обслуживания базы данных, таких как создание резервной копии или восстановление.
Назовите 3 вида блокировок и что вы о них знаете?
Блокировка - это механизм, используемый в базах данных для управления параллельным доступом к данным. Она гарантирует, что одновременный доступ к данным не повредит целостности данных и не приведет к ошибкам.
1. Блокировка уровня страницы
Блокировка уровня страницы блокирует доступ к целой странице данных, а не только к отдельным строкам. Это может быть полезным при выполнении больших объемов операций чтения или изменения данных.
2. Блокировка уровня таблицы
Блокировка уровня таблицы блокирует доступ ко всей таблице данных для других пользователей. Это может быть полезным при выполнении операций обслуживания таблицы, таких как переименование или изменение структуры таблицы.
3. Блокировка уровня базы данных
Блокировка уровня базы данных блокирует доступ ко всей базе данных для других пользователей. Это может быть полезным при выполнении операций обслуживания базы данных, таких как создание резервной копии или восстановление.
Forwarded from Код Воробья для iOS разработчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Хабр
Фортран как культурное явление
В фильме «Скрытые фигуры» есть прекрасная сцена: на дворе 1961-62, афроамериканка из лабораторий НАСА едет в библиотеку для белых и тихонько без разрешения увозит оттуда книжку по Фортрану. На автобусе увозит. Сопровождая это комментарием своему сыну: «А что? Я плачу налоги».
Фортран перестал быть просто языком программирования, это давно культурный феномен. Настолько, что стал иллюстрацией в борьбе чернокожих женщин за свои права.
Масштаб явления очень легко недооценить: на современный избалованный взгляд ничего такого волшебного в Фортане нет. Зато если немного разобраться в контексте, становится понятно, что Фортран для своего времени — просто квантовый скачок, уделавший все альтернативные разработки минимум на 10 лет.
В фильме «Скрытые фигуры» есть прекрасная сцена: на дворе 1961-62, афроамериканка из лабораторий НАСА едет в библиотеку для белых и тихонько без разрешения увозит оттуда книжку по Фортрану. На автобусе увозит. Сопровождая это комментарием своему сыну: «А что? Я плачу налоги».
Фортран перестал быть просто языком программирования, это давно культурный феномен. Настолько, что стал иллюстрацией в борьбе чернокожих женщин за свои права.
Масштаб явления очень легко недооценить: на современный избалованный взгляд ничего такого волшебного в Фортане нет. Зато если немного разобраться в контексте, становится понятно, что Фортран для своего времени — просто квантовый скачок, уделавший все альтернативные разработки минимум на 10 лет.
Forwarded from Простой Python | Программирование
NumPy: Базовые математические операции над массивами
Продолжаем делиться циклом видеоматериалов про NumPy. В этот раз ты узнаешь об основных математических операциях с массивами NumPy: сложение, вычитание, умножение деление, возведение в степень, целый остаток от деления.
👀Смотреть видео
#видео #numpy
Продолжаем делиться циклом видеоматериалов про NumPy. В этот раз ты узнаешь об основных математических операциях с массивами NumPy: сложение, вычитание, умножение деление, возведение в степень, целый остаток от деления.
👀Смотреть видео
#видео #numpy
Forwarded from IT Юмор
This media is not supported in your browser
VIEW IN TELEGRAM
Случай на собеседовании
😁2