Forwarded from Senior SQL Developer
Функции ISDATE() - SQL Server
Функция ISDATE() используется для проверки, является ли выражение допустимой датой или нет. Функция возвращает 1, если выражение является допустимой датой, и 0, если не является.
Синтаксис функции ISDATE(): ISDATE ( expression )
- expression: выражение, которое необходимо проверить. Может быть любым типом данных, который может быть преобразован в тип данных дата/время.
Однако при использовании функции ISDATE() нужно учитывать, что она не является полностью надежной и может допускать ошибки при проверке даты. Например, функция не сможет обнаружить ошибку в дате "@", так как такая дата не существует.
Функция ISDATE() используется для проверки, является ли выражение допустимой датой или нет. Функция возвращает 1, если выражение является допустимой датой, и 0, если не является.
Синтаксис функции ISDATE(): ISDATE ( expression )
- expression: выражение, которое необходимо проверить. Может быть любым типом данных, который может быть преобразован в тип данных дата/время.
Однако при использовании функции ISDATE() нужно учитывать, что она не является полностью надежной и может допускать ошибки при проверке даты. Например, функция не сможет обнаружить ошибку в дате "@", так как такая дата не существует.
Forwarded from в IT и выйти
Восстание машин отменяется:
ИИ-система распознавания лиц нашла тигра в черте города. Оказалось, что это всего лишь собакен с тенью от забора.
@encryptedch
ИИ-система распознавания лиц нашла тигра в черте города. Оказалось, что это всего лишь собакен с тенью от забора.
@encryptedch
Forwarded from Postgres Guru | Базы данных 💐
🤬 Что делать, если в кластере PostgreSQL нет суперпользователя?
Предположим, что у нас случилась ситуация при которой в кластере PostgreSQL не осталось ни одной роли с правами суперпользователя. Такая ситуация возможна если, например, предыдущий админ СУБД решил похулиганить и передал нам PostgreSQL в таком виде 😏 Или мы сами накосячили с правами.
А ведь загнать себя в такую ловушку не так уж и сложно. Мы, как суперпользователь, можем у роли postgres снять атрибут SUPERUSER. Делается это с помощью команды ALTER ROLE, например вот так:
Теперь, если мы попробуем вернуть все обратно:
то получим вот такую ошибку:
И если у нас нет какой-то второй роли с правами суперпользователя, то мы оставили кластер PostgreSQL без админских прав. И все бы ничего, все будет работать как и раньше, до тех пор пока нам не понадобиться что-то поменять и это что-то потребует права суперпользователя.
Но удалять кластер, ставить его занового и восстанавливать базы данных из копий не надо! Выйти из данной ситуации можно и другим способом. Тут нам на помощь приходит возможность запуска PostgreSQL в однопользовательском режиме. В таком режиме нет проверки на права, а есть один пользователь с правами суперпользователя. Чтобы это сделать, нам нужно сначала остановить службу PostgreSQL:
А потом запустить PostgreSQL в однопользовательском режиме:
#
Теперт мы можем вернуть права нашему пользователю postgres:
В однопользовательском режиме не нужно ставить знак ; в конце команды, а достаточно нажать Enter. После этого запускаем службу PostgreSQL в нормальном режиме:
В Windows это можно сделать через оснастку Службы.
Мы можем проверить, что все получилось, подключившись через psql и ввелы команду \du. Вывод будет примерно следующим:
#pgerrors
Предположим, что у нас случилась ситуация при которой в кластере PostgreSQL не осталось ни одной роли с правами суперпользователя. Такая ситуация возможна если, например, предыдущий админ СУБД решил похулиганить и передал нам PostgreSQL в таком виде 😏 Или мы сами накосячили с правами.
А ведь загнать себя в такую ловушку не так уж и сложно. Мы, как суперпользователь, можем у роли postgres снять атрибут SUPERUSER. Делается это с помощью команды ALTER ROLE, например вот так:
ALTER ROLE postgres NOSUPERUSER;Теперь, если мы попробуем вернуть все обратно:
ALTER ROLE postgres SUPERUSER;то получим вот такую ошибку:
ERROR: must be superuser to alter superuser 😅И если у нас нет какой-то второй роли с правами суперпользователя, то мы оставили кластер PostgreSQL без админских прав. И все бы ничего, все будет работать как и раньше, до тех пор пока нам не понадобиться что-то поменять и это что-то потребует права суперпользователя.
Но удалять кластер, ставить его занового и восстанавливать базы данных из копий не надо! Выйти из данной ситуации можно и другим способом. Тут нам на помощь приходит возможность запуска PostgreSQL в однопользовательском режиме. В таком режиме нет проверки на права, а есть один пользователь с правами суперпользователя. Чтобы это сделать, нам нужно сначала остановить службу PostgreSQL:
# pg_ctl -D путь к каталогу кластера stopА потом запустить PostgreSQL в однопользовательском режиме:
#
postgres --single -D путь_к_каталогу_с_бд другие параметры подключения имя_бдТеперт мы можем вернуть права нашему пользователю postgres:
ALTER ROLE postgres SUPERUSERВ однопользовательском режиме не нужно ставить знак ; в конце команды, а достаточно нажать Enter. После этого запускаем службу PostgreSQL в нормальном режиме:
# sudo systemctl start postgresql.serviceВ Windows это можно сделать через оснастку Службы.
Мы можем проверить, что все получилось, подключившись через psql и ввелы команду \du. Вывод будет примерно следующим:
List of roles Role name |Attributes | Member of-----------+-----------+----------postgres | Superuser, Create role, Create DB | {}#pgerrors
Forwarded from Breaking Trends
This media is not supported in your browser
VIEW IN TELEGRAM
Телепорт от Apple и апельсин от Apple. Энтузиасты с помощью нейросетей и фотошопа представили, что ещё может выпустить компания из Купертино и сколько это будет стоить.
Без дополнительного кабеля к скутеру и подушечки к креслу за $399 — нереалистично.
❤️ Breaking Trends
Без дополнительного кабеля к скутеру и подушечки к креслу за $399 — нереалистично.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Senior SQL Developer
JSON_MODIFY в Microsoft SQL Server
JSON_MODIFY - это функция в Microsoft SQL Server, которая позволяет изменять свойства в объекте JSON и возвращать измененный объект JSON.
Синтаксис использования функции JSON_MODIFY выглядит следующим образом: JSON_MODIFY ( expression , path , newValue )
- expression: Это объект JSON, который вы хотите изменить.
- path: Это путь к свойству, которое вы хотите изменить. Он должен быть в формате “$.ключ”, где “ключ” - это имя свойства, которое вы хотите изменить.
- newValue: Это новое значение, которое вы хотите присвоить свойству.
Функция также может использоваться в сочетании с другими функциями JSON в SQL Server, такими как JSON_VALUE и JSON_QUERY, для манипулирования JSON-данными.
JSON_MODIFY - это функция в Microsoft SQL Server, которая позволяет изменять свойства в объекте JSON и возвращать измененный объект JSON.
Синтаксис использования функции JSON_MODIFY выглядит следующим образом: JSON_MODIFY ( expression , path , newValue )
- expression: Это объект JSON, который вы хотите изменить.
- path: Это путь к свойству, которое вы хотите изменить. Он должен быть в формате “$.ключ”, где “ключ” - это имя свойства, которое вы хотите изменить.
- newValue: Это новое значение, которое вы хотите присвоить свойству.
Функция также может использоваться в сочетании с другими функциями JSON в SQL Server, такими как JSON_VALUE и JSON_QUERY, для манипулирования JSON-данными.
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Базы данных & SQL
Forwarded from Senior SQL Developer
Table Hints в T-SQL
Табличные хинты относятся только к таблицам и представлениям, для которых они указаны. Такие хинты предназначены для определения способа блокировки, указания конкретного индекса, способа обработки данных в таблицах, например, сканирование или поиск.
Некоторые хинты для таблиц:
- INDEX – оптимизатор запросов будет использовать указанный индекс при обработке запроса;
- FORCESEEK – оптимизатор запросов будет использовать только операцию поиска в индексе в качестве пути доступа к данным;
- FORCESCAN – оптимизатор запросов будет использовать только операцию сканирования в индексе в качестве пути доступа к данным;
- ROWLOCK – блокировки строк применяются вместо блокировки страниц или таблиц;
- HOLDLOCK – накладывает дополнительные ограничения на совмещаемую блокировку, удерживая ее до завершения транзакции. Хинт HOLDLOCK равнозначен хинту SERIALIZABLE;
- NOLOCK – разрешает «грязное чтение». Хинт NOLOCK равнозначен хинту READUNCOMMITTED;
- NOEXPAND – указывает, что индексированное представление не расширяется для доступа к базовым таблицам. Такое представление обрабатывается так же, как и таблица с кластеризованным индексом.
Хинты для таблиц указываются в предложении FROM с помощью ключевого слова WITH после названия таблицы или представления.
Табличные хинты относятся только к таблицам и представлениям, для которых они указаны. Такие хинты предназначены для определения способа блокировки, указания конкретного индекса, способа обработки данных в таблицах, например, сканирование или поиск.
Некоторые хинты для таблиц:
- INDEX – оптимизатор запросов будет использовать указанный индекс при обработке запроса;
- FORCESEEK – оптимизатор запросов будет использовать только операцию поиска в индексе в качестве пути доступа к данным;
- FORCESCAN – оптимизатор запросов будет использовать только операцию сканирования в индексе в качестве пути доступа к данным;
- ROWLOCK – блокировки строк применяются вместо блокировки страниц или таблиц;
- HOLDLOCK – накладывает дополнительные ограничения на совмещаемую блокировку, удерживая ее до завершения транзакции. Хинт HOLDLOCK равнозначен хинту SERIALIZABLE;
- NOLOCK – разрешает «грязное чтение». Хинт NOLOCK равнозначен хинту READUNCOMMITTED;
- NOEXPAND – указывает, что индексированное представление не расширяется для доступа к базовым таблицам. Такое представление обрабатывается так же, как и таблица с кластеризованным индексом.
Хинты для таблиц указываются в предложении FROM с помощью ключевого слова WITH после названия таблицы или представления.
Forwarded from nerds
This media is not supported in your browser
VIEW IN TELEGRAM
📎 «Скрепыша» из Microsoft Office на самом деле создали на компьютере Mac
В этом признался автор персонажа Кеван Аттеберри. Ещё дизайнер рассказал, что сделал для Microsoft около 20 вариантов — в какой-то момент рассматривались степлер, карандаш и даже кружка.
В этом признался автор персонажа Кеван Аттеберри. Ещё дизайнер рассказал, что сделал для Microsoft около 20 вариантов — в какой-то момент рассматривались степлер, карандаш и даже кружка.
Forwarded from Senior SQL Developer
Общие табличные выражения (ОТВ)
Этот тип выражения позволяет определять временный именованный набор результатов, доступный в памяти в области выполнения инструкций, таких как SELECT, INSERT, UPDATE, DELETE и MERGE.
Данное выражение также применяется в инструкции CREATE VIEW как часть определяющей ее инструкции SELECT.
Главным образом ОТВ позволяют замещать подзапросы и табличные переменные.
В случае подзапросов ОТВ не обеспечивают преимущества в производительности, но зато способствует написанию более организованного и чистого кода, что улучшает его читаемость.
В случае табличных переменных ОТВ повышают производительность запроса, поэтому всегда будут предпочтительным вариантом.
Этот тип выражения позволяет определять временный именованный набор результатов, доступный в памяти в области выполнения инструкций, таких как SELECT, INSERT, UPDATE, DELETE и MERGE.
Данное выражение также применяется в инструкции CREATE VIEW как часть определяющей ее инструкции SELECT.
Главным образом ОТВ позволяют замещать подзапросы и табличные переменные.
В случае подзапросов ОТВ не обеспечивают преимущества в производительности, но зато способствует написанию более организованного и чистого кода, что улучшает его читаемость.
В случае табличных переменных ОТВ повышают производительность запроса, поэтому всегда будут предпочтительным вариантом.
Forwarded from SQL задачи
SELECT fname, lname, state FROM authors WHERE state NOT IN ('NY', 'NJ', 'CA')
Какой запрос из списка эквивалентен запросу из задачи?
Какой запрос из списка эквивалентен запросу из задачи?
Anonymous Quiz
60%
SELECT fname, lname, state FROM authors WHERE state <> 'NY' AND state <> 'NJ' AND state <> 'CA'
29%
SELECT fname, lname, state FROM authors WHERE state <> 'NY' OR state <> 'NJ' OR state <> 'CA'
2%
SELECT fname, lname, state FROM authors WHERE state <> 'NY' AND state <> 'NJ' OR state <> 'CA'
3%
SELECT fname, lname, state FROM authors WHERE state <> 'NY' OR state <> 'NJ' AND state <> 'CA'
6%
Посмотреть ответ
Forwarded from Senior SQL Developer
SHRINK в MSSQL
SHRINK - это операция сжатия базы данных в Microsoft SQL Server. Она используется для освобождения места на жестком диске.
Существует два вида операции SHRINK:
- SHRINK DATABASE - сжатие всей базы данных
- SHRINK FILE - сжатие отдельных файлов базы данных
Для выполнения операции SHRINK с помощью SQL Server Management Studio (SSMS), нужно выполнить следующие шаги:
1. Подключиться к экземпляру SQL Server в SSMS
2. Выбрать нужную базу данных
3. Нажать правой кнопкой мыши на базе данных и выбрать "Tasks" -> "Shrink" -> "Database" (или "File", если нужно сжать только отдельный файл)
4. В появившемся диалоговом окне выбрать опции сжатия и нажать "OK"
Опции сжатия, доступные в диалоговом окне:
- Release unused space - освободить неиспользуемое пространство (рекомендуется)
- Reorganize pages before releasing unused space - переорганизовать страницы перед освобождением неиспользуемого пространства (улучшает производительность индексов)
- Shrink file to - сжать файл до указанного размера (в МБ)
Также, операцию SHRINK можно выполнить с помощью T-SQL команды:
- SHRINKDATABASE - для сжатия всей базы данных
- SHRINKFILE - для сжатия отдельного файла
SHRINK - это операция сжатия базы данных в Microsoft SQL Server. Она используется для освобождения места на жестком диске.
Существует два вида операции SHRINK:
- SHRINK DATABASE - сжатие всей базы данных
- SHRINK FILE - сжатие отдельных файлов базы данных
Для выполнения операции SHRINK с помощью SQL Server Management Studio (SSMS), нужно выполнить следующие шаги:
1. Подключиться к экземпляру SQL Server в SSMS
2. Выбрать нужную базу данных
3. Нажать правой кнопкой мыши на базе данных и выбрать "Tasks" -> "Shrink" -> "Database" (или "File", если нужно сжать только отдельный файл)
4. В появившемся диалоговом окне выбрать опции сжатия и нажать "OK"
Опции сжатия, доступные в диалоговом окне:
- Release unused space - освободить неиспользуемое пространство (рекомендуется)
- Reorganize pages before releasing unused space - переорганизовать страницы перед освобождением неиспользуемого пространства (улучшает производительность индексов)
- Shrink file to - сжать файл до указанного размера (в МБ)
Также, операцию SHRINK можно выполнить с помощью T-SQL команды:
- SHRINKDATABASE - для сжатия всей базы данных
- SHRINKFILE - для сжатия отдельного файла
Forwarded from Senior SQL Developer
Функция DEGREES - SQL Server
Функция DEGREES используется для преобразования значения в радианах в значение в градусах. Эта функция принимает один аргумент, который должен быть числом в радианах, и возвращает это значение в градусах.
Синтаксис:
- DEGREES ( numeric_expression )
Параметры:
- numeric_expression - значение в радианах, которое нужно преобразовать в градусы. Это значение должно быть числом.
Функция DEGREES используется для преобразования значения в радианах в значение в градусах. Эта функция принимает один аргумент, который должен быть числом в радианах, и возвращает это значение в градусах.
Синтаксис:
- DEGREES ( numeric_expression )
Параметры:
- numeric_expression - значение в радианах, которое нужно преобразовать в градусы. Это значение должно быть числом.
https://vc.ru/design/747355-kak-my-proektirovali-i-dizaynili-prilozhenie-kotoroe-ustanovleno-u-kazhdogo-pyatogo-pyaterochku интересная статья правда приложение - 🥴
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
Макросы в Swift
Хороший русскоязычный разбор того, как устроены макросы, как они запускаются, и что с их помощью можно автоматизировать.
Хороший русскоязычный разбор того, как устроены макросы, как они запускаются, и что с их помощью можно автоматизировать.
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
когда включил режим отладки и наконец-то понял, почему часть пользователей твоего сервиса бесследно пропадают
@devopsina
@devopsina
Forwarded from Senior SQL Developer
Все о jsonb_to_recordset в SQL
Функция jsonb_to_recordset в SQL используется для преобразования данных, хранящихся в формате JSON, в таблицы. Она позволяет распаковывать массивы и объекты JSON и превращать их в строки и столбцы в таблице.
Кроме того, jsonb_to_recordset позволяет работать с вложенными объектами и массивами. Для этого нужно использовать функцию jsonb_each, которая распаковывает объекты и массивы JSON в отдельные строки.
Функция jsonb_to_recordset в SQL используется для преобразования данных, хранящихся в формате JSON, в таблицы. Она позволяет распаковывать массивы и объекты JSON и превращать их в строки и столбцы в таблице.
Кроме того, jsonb_to_recordset позволяет работать с вложенными объектами и массивами. Для этого нужно использовать функцию jsonb_each, которая распаковывает объекты и массивы JSON в отдельные строки.
Forwarded from DTF
Ретро-энтузиасты восстановили центр обновления старых версий Windows, которые Microsoft уже давно не поддерживает.
Сайт позволяет пользователям Windows 95, NT 4.0, 98 и XP гораздо удобнее скачивать и устанавливать апдейты.
https://dtf.ru/hard/1947559
Сайт позволяет пользователям Windows 95, NT 4.0, 98 и XP гораздо удобнее скачивать и устанавливать апдейты.
https://dtf.ru/hard/1947559