SELECT fname, lname, state FROM authors WHERE state NOT IN ('NY', 'NJ', 'CA')
Какой запрос из списка эквивалентен запросу из задачи?
Какой запрос из списка эквивалентен запросу из задачи?
Anonymous Quiz
64%
SELECT fname, lname, state FROM authors WHERE state <> 'NY' AND state <> 'NJ' AND state <> 'CA'
24%
SELECT fname, lname, state FROM authors WHERE state <> 'NY' OR state <> 'NJ' OR state <> 'CA'
4%
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'
5%
Посмотреть ответ
❤3👍2
CREATE OR REPLACE FUNCTION 'имя_процедуры(параметры)' RETURNS 'тип_результата' AS $$
DECLARE
-- переменные_локальные тип_переменной
BEGIN
-- Тело процедуры
-- Может содержать SQL запросы, управляющие конструкции и другие операторы
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION hello_world()
RETURNS VOID AS $$
BEGIN
RAISE NOTICE 'Hello, World!';
END;
$$ LANGUAGE plpgsql;
SELECT hello_world();
Таким образом, вы можете создавать и вызывать процедуры в PostgreSQL с помощью PL/pgSQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Важно регулярно создавать резервные копии базы данных, чтобы данные не были потеряны в случае повреждения базы данных (БД). В SQL мы можем создавать резервные копии БД с помощью оператора
BACKUP DATABASE. Например:
BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak';Здесь мы создаем файл резервной копии базы данных orders на диске C с именем orders_backup.bak.
Примечание: Распространено использование расширения .bak для файлов резервных копий БД, однако это не является обязательным.
Резервное копирование только новых изменений в SQL
В SQL мы также можем сделать резервную копию только новых изменений по сравнению с предыдущей резервной копией, используя команду
WITH DIFFERENTIAL. Например:BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak'
WITH DIFFERENTIAL;Здесь мы добавляем только новые изменения в предыдущий файл резервной копии. Следовательно, эта команда работает быстрее, нежели создание резервной копии БД с нуля.
Восстановление базы данных из резервной копии
Для восстановления файла резервной копии в системе управления базой данных (СУБД) используется оператор RESTORE DATABASE. Например:
RESTORE DATABASE orders
FROM DISK = 'C:\orders_backup.bak';Здесь мы восстанавливаем файл резервной копии orders_backup.bak в базе данных orders.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Чем различаются запросы с UNION и UNION ALL?
Anonymous Quiz
6%
Различия только в написании операции. Union - это сокращенный вариант написания UNION ALL
76%
UNION объединяет наборы строк, исключая дубли, UNION ALL объединяет наборы с сохранением всех строк
9%
UNION соединяет таблицы через внутреннее соенидение, а UNION ALL соединяет строки слева и справа
3%
Все варианты неверные
6%
Узнать ответ
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
SQLMC — официальный инструмент Kali Linux для проверки всех URL-адресов домена на наличие SQL-инъекций.
👍2🎄2
Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра
Читать статью
Читать статью
Хабр
Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра
Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это...
👍1
✔️ Особенности сравнения record и NULL
Testing a ROW expression with IS NULL only reports TRUE if every single column is NULL. Нужно об этом знать, чтобы на напороться на ошибки в своём коде.
Testing a ROW expression with IS NULL only reports TRUE if every single column is NULL. Нужно об этом знать, чтобы на напороться на ошибки в своём коде.
SELECT
(NULL, NULL) IS NULL as "(NULL, NULL) IS NULL", --true
(NULL, NULL) IS NOT NULL as "(NULL, NULL) IS NOT NULL", --false
NOT (NULL, NULL) IS NULL as "NOT (NULL, NULL) IS NULL", --false
(1, NULL) IS NULL as "(1, NULL) IS NULL", --false
(1, NULL) IS NOT NULL as "(1, NULL) IS NOT NULL", --false --!!!
NOT (1, NULL) IS NULL as "NOT (1, NULL) IS NULL" --true --!!!👍1🔥1🎄1
—
npm install knex --save—
npm install pg --saveKnex.js спроектирован как гибкий и портативный инструмент.
В нем есть как традиционные колбеки, так и интерфейс промисов для более чистого управления потоком
async, потоковый интерфейс, полнофункциональные конструкторы запросов и схем, поддержка транзакций (с точками сохранения), пул соединений и стандартизированные ответы между различными клиентами.Knex можно использовать в качестве конструктора SQL-запросов как в Node.JS, так и в браузере, ограничиваясь возможностями WebSQL (например, невозможностью дропать таблицы или читать схемы). Составлять SQL-запросы в браузере для выполнения на сервере крайне не рекомендуется, так как это может стать причиной серьезных уязвимостей в безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🎄1
SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
Она объединяет часто используемые пакеты ML, такие как
• Github
Она объединяет часто используемые пакеты ML, такие как
Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.pip install speedml
• Github
👍3
Gephi — один из наиболее функциональных и доступных инструментов для всех, кто изучает социальные сети и графы.
Пользователи могут видеть все параметры сети, использовать фильтры, настраивать визуализацию графа, сохранять и экспортировать файлы.
gephi.org/gephi-lite
Gephi Lite — это его облегчённая веб-версия. Пользователи могут видеть все параметры сети, использовать фильтры, настраивать визуализацию графа, сохранять и экспортировать файлы.
gephi.org/gephi-lite
👍3
#Вопросы_с_собеседования
❓Что делает оператор MERGE?
Ответ:
MERGE позволяет осуществить слияние данных одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется UPDATE, а если нет - INSERT. При этом изменять поля таблицы в секции UPDATE, по которым идет связывание двух таблиц, нельзя.
❓Что делает оператор MERGE?
Ответ:
👍8😱2
💬 Регулярные выражения
Язык SQL поддерживает работу с регулярными выражениями (regular expressions или RegEx). Это специальный язык, позволяющий достаточно точно определить шаблоны поиска в строке.
Для работы с регулярными выражениями используется оператор SIMILAR TO вместо LIKE.
Вернемся к нашей задаче — нужно выбрать пользователей, чье имя начинается на 'A' и 'B'. Чтобы решить ее, нужно применить такой шаблон:
Разберем примененный шаблон [AB]%. В квадратных скобках перечисляются допустимые символы, а далее следует знакомый нам символ %. Этот запрос вернет пользователей с именами Abigale, Andy, Brayan, и так далее.
Представим, что нам нужно найти пользователей, у которых username заканчивается любой буквой.
Это можно сделать таким шаблоном: %[abcdefghijklmnopqrstuvwxyz]. Согласитесь, такая запись неудобна для чтения и записи.
А что, если мы случайно пропустим какую-то букву? В квадратных скобках можно использовать символ - для перечисления. Если записать в квадратных скобках начальный символ, поставить "-" и указать конечный символ, то такой шаблон вернет любой символ из диапазона от начального до конечного.
Напишем запрос, который вернет всех пользователей у которых username заканчивается любой буквой, будет выглядеть так:
Точно так же можно работать и с русскими буквами: '%[а-я]%'. Такой запрос поможет найти пользователей, у которых в поле username есть русские буквы:
Такой запрос вернет всех пользователей, чей username заканчивается на любую цифру.
Комбинируя правила, мы можем создавать достаточно сложные шаблоны. Например, проверим, что в поле email введены корректные адреса электронной почты.
Корректная почта должна содержать адрес, который состоит из:
*️⃣ Имени с любым количеством любых символов — например, my_email
*️⃣ Символа @
*️⃣ Домена с любым количеством любых символов — например, gmail
*️⃣ Точки
*️⃣ Указания национальной зоны — например, com
Запрос на поиск корректных адресов будет таким:
Такой запрос выведет имена пользователей с корректными адресами электронной почты, однако нам интереснее найти ошибки. В этом случае частица NOT позволит найти строки, которые не соответствуют шаблону:
Теперь выберем все адреса электронной почты, у которых национальная зона состоит ровно из двух символов — например, ru, su, io и так далее. При этом исключим зоны, состоящие из трех и более символов — например, com.
Это можно сделать так: %.[a-z][a-z]. Но удобнее воспользоваться еще одним спецсимволом — подчеркиванием _.
Символ подчеркивания обозначает ровно один любой символ, необязательно букву. Наш запрос будет выглядеть так:
Чтобы вывести пользователей с адресами электронной почты оканчивающимися на 3 символа, нужно добавить еще одно подчерктивание в наш шаблон:
Мы рассмотрели наиболее полезные и часто используемые возможности регулярных выражений в SQL, но они ими не ограничиваются.
Язык SQL поддерживает работу с регулярными выражениями (regular expressions или RegEx). Это специальный язык, позволяющий достаточно точно определить шаблоны поиска в строке.
Для работы с регулярными выражениями используется оператор SIMILAR TO вместо LIKE.
Вернемся к нашей задаче — нужно выбрать пользователей, чье имя начинается на 'A' и 'B'. Чтобы решить ее, нужно применить такой шаблон:
SELECT * FROM users WHERE first_name SIMILAR TO '[AB]%';
Разберем примененный шаблон [AB]%. В квадратных скобках перечисляются допустимые символы, а далее следует знакомый нам символ %. Этот запрос вернет пользователей с именами Abigale, Andy, Brayan, и так далее.
Представим, что нам нужно найти пользователей, у которых username заканчивается любой буквой.
Это можно сделать таким шаблоном: %[abcdefghijklmnopqrstuvwxyz]. Согласитесь, такая запись неудобна для чтения и записи.
А что, если мы случайно пропустим какую-то букву? В квадратных скобках можно использовать символ - для перечисления. Если записать в квадратных скобках начальный символ, поставить "-" и указать конечный символ, то такой шаблон вернет любой символ из диапазона от начального до конечного.
Напишем запрос, который вернет всех пользователей у которых username заканчивается любой буквой, будет выглядеть так:
SELECT * FROM users WHERE username SIMILAR TO '%[a-z]';
Точно так же можно работать и с русскими буквами: '%[а-я]%'. Такой запрос поможет найти пользователей, у которых в поле username есть русские буквы:
SELECT * FROM users WHERE username SIMILAR TO '%[а-я]%';
Чтобы выбрать все цифры, используем шаблон [0-9]:
SELECT * FROM users WHERE username SIMILAR TO '%[0-9]';Такой запрос вернет всех пользователей, чей username заканчивается на любую цифру.
Комбинируя правила, мы можем создавать достаточно сложные шаблоны. Например, проверим, что в поле email введены корректные адреса электронной почты.
Корректная почта должна содержать адрес, который состоит из:
Запрос на поиск корректных адресов будет таким:
SELECT username, email FROM users WHERE email SIMILAR TO '%@%.%';Такой запрос выведет имена пользователей с корректными адресами электронной почты, однако нам интереснее найти ошибки. В этом случае частица NOT позволит найти строки, которые не соответствуют шаблону:
SELECT username, email FROM users WHERE email NOT SIMILAR TO '%@%.%';Теперь выберем все адреса электронной почты, у которых национальная зона состоит ровно из двух символов — например, ru, su, io и так далее. При этом исключим зоны, состоящие из трех и более символов — например, com.
Это можно сделать так: %.[a-z][a-z]. Но удобнее воспользоваться еще одним спецсимволом — подчеркиванием _.
Символ подчеркивания обозначает ровно один любой символ, необязательно букву. Наш запрос будет выглядеть так:
SELECT username, email FROM users WHERE email SIMILAR TO '%.__';Чтобы вывести пользователей с адресами электронной почты оканчивающимися на 3 символа, нужно добавить еще одно подчерктивание в наш шаблон:
SELECT
username,
email
FROM users WHERE email SIMILAR TO '%.___';Мы рассмотрели наиболее полезные и часто используемые возможности регулярных выражений в SQL, но они ими не ограничиваются.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Поэтому, если вы готовитесь к собеседованию по SQL, решите эти 11 РЕАЛЬНЫХ вопросов для собеседования Google по SQL.
https://datalemur.com/blog/google-sql-interview-questions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6