Какой из следующих SQL запросов позволит получить среднее значение из колонки "sales", сгрупированной по годам из колонки "date", при этом выведет только те года, в которые среднее значение продаж больше $100.000?
Anonymous Quiz
19%
SELECT YEAR(date), AVG(sales) FROM table_name WHERE AVG(sales) > 100000 GROUP BY YEAR(date);
59%
SELECT YEAR(date), AVG(sales) FROM table_name GROUP BY YEAR(date) HAVING AVG(sales) > 100000;
14%
SELECT YEAR(date), AVG(sales) FROM table_name HAVING AVG(sales) > 100000 GROUP BY YEAR(date);
8%
SELECT YEAR(date), AVG(sales) FROM table_name GROUP BY YEAR(date) WHERE AVG(sales) > 100000;
👍17🔥6❤3
При проектировании запросов на изменение данных в SQL необходимо следовать нескольким рекомендациям:
Сделайте резервную копию данных перед выполнением запроса на изменение данных. Это поможет избежать потери данных в случае ошибки.
Определите, какие таблицы и столбцы вы собираетесь изменять, и какие условия будут определять строки, которые вы хотите изменить. Используйте ключевое слово UPDATE для обновления данных в таблице.
Используйте оператор SET для задания новых значений столбцов в таблице.
Например:
UPDATE orders
SET order_status = 'Completed'
WHERE order_id = 12345;
Здесь мы обновляем столбец order_status таблицы orders, устанавливая значение Completed для заказа с order_id равным 12345.
Обратите внимание на условие WHERE, которое определяет, какие строки будут изменены. Если условие не указано, запрос обновит все строки в таблице.
Если вы хотите изменить несколько столбцов в таблице, используйте оператор SET для каждого столбца, например:
UPDATE orders
SET order_status = 'Completed',
order_total = 100.00
WHERE order_id = 12345;
Здесь мы обновляем значения столбцов order_status и order_total таблицы orders для заказа с order_id равным 12345.
После выполнения запроса на изменение данных убедитесь, что данные были изменены корректно, проверив их с помощью запроса на выборку данных SELECT.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤2
Задачу часто спрашивают на собеседованиях в формулировке “как удалить дубли / копии строк”, и решить ее можно несколькими способами. Я привык мыслить в терминах историзации данных в Хранилище, и удаление мне ни к чему, поэтому для решения задачи я воспользуюсь ранжирующей функцией ROWNUMBER().
SQL Fiddle (Oracle 11g R2): http://sqlfiddle.com/#!4/ad305/1
with decoded as (
select
"transaction_id"
,"is_successful"
,"ts"
,decode("is_successful", 'true', 0, 'false', 1, 2) as "order_is_successful"
from transactions
),
ordered as (
select
"transaction_id"
,"is_successful"
,"ts"
,row_number() over(partition by "transaction_id" order by "order_is_successful" asc, "ts" desc) as rn
from decoded
)
select
"transaction_id"
,"is_successful"
,"ts"
from ordered
where rn = 1
;
Результат
Пишите свое решение в комментариях👇
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2🥰1
Большой сборник теоретического материала по работе с базами данных.
▪основы: http://phpclub.ru/mysql/doc/tutorial.html
▪отношения между таблицами в БД: http://jtest.ru/bazyi-dannyix/sql-dlya-nachinayushhix-chast-3.html
▪внешние ключи: http://denis.in.ua/foreign-keys-in-mysql.htm
▪большой учебник по SQL: http://www.pyramidin.narod.ru/rusql/index.htm
▪сборник запросов на все случаи жизни (англ): http://www.artfulsoftware.com/infotree/queries.php
▪таблицы отличий в диалектах SQL в разных СУБД (англ): http://en.wikibooks.org/wiki/SQL_dialects_reference
▪манга-учебник про SQL в картинках: http://www.nostarch.com/mg_databases.htm
👉 делитесь с коллегами полезным материалом
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤3
Подстановочный знак (wildcard) в SQL используется с оператором LIKE для замены одного или набора символов в строке. Например:
SELECT *
FROM Customers
WHERE last_name LIKE 'R%';
Здесь % (означает ноль или более символов) является подстановочным знаком (wildcard). Мы выбираем клиентов, чья фамилия (last_name) начинается с буквы R, за которой следует ноль или более символов.
▪Читать дальше
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5❤2
Речь пойдет о так называемых analytic functions, которые оперируют над партициями данных (окна, windows), возвращая результат для каждой строки. В отличие от aggregate functions, “схлопывающих” строки, оконные функции оставляют все строки выборки.
Окно определяется спецификацией (выражение OVER) и основывается на трех основных концепциях:
▪Разбиение строк на группы (выражение PARTITION BY)
▪Порядок сортировки строк в каждой группе (выражение ORDER BY)
▪Рамки, которые определяют ограничения по количеству строк относительно каждой строки (выражение ROWS)
Таких функций существует немало, от аналитических: всем известные SUM, AVG, COUNT, менее известные LAG, LEAD, CUMEDIST, и до ранжирующих: RANK, ROWNUMBER, NTILE. Я же приведу несколько простых примеров часто встречающихся запросов:
▪Ко всем транзакциям пользователя вывести дату первой покупки
▪К каждой транзакции добавить дату предыдущей транзакции пользователя
▪Показать сумму покупок пользователя нарастающим итогом
▪Присвоить всем транзакциям пользователя / продавца / отделения порядковый номер
SQL Fiddle: http://sqlfiddle.com/#!17/ee00f/13
Решения:
select
salesid
,dateid
,sellerid
,buyerid
,qty
,first_value(dateid) over (partition by buyerid order by dateid) as first_purchase_dt
,lag(dateid) over (partition by buyerid order by dateid) as previous_purchase_dt
,sum(qty) over (partition by buyerid order by dateid rows between unbounded preceding and current row) as moving_qty
,row_number() over (partition by buyerid order by dateid) as order_number
from winsales
;
Пишите свое решение в комментариях👇
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4❤2🤔1
Команда SELECT TOP используется для выбора фиксированного количества строк из базы данных. Например:
SELECT TOP 2 *
FROM Customers;
Здесь мы выбираем первые 2 строки из таблицы Customers (картинка1).
Еще один пример:
SELECT TOP 2 first_name, last_name
FROM Customers;
Здесь мы выбираем поля first_name и last_name из первых 2 строк таблицы Customers.
Примечание: Ключевое слово TOP поддерживается не во всех системах управления базами данных (СУБД). Различные СУБД используют разные ключевые слова для выбора фиксированного количества строк. Например:
LIMIT в SQL
Ключевое слово LIMIT используется для выбора фиксированного количества строк в MySQL, PostgreSQL и SQLite.
Например:
SELECT first_name, age
FROM Customers
LIMIT 2;
Здесь мы выбираем первые 2 строки из таблицы Customers.
LIMIT с OFFSET в SQL
Ключевое слово OFFSET используется для указания места, откуда следует выбирать строки.
Например:
SELECT first_name, last_name
FROM Customers
LIMIT 2 OFFSET 3;
Здесь мы выбираем две строки, начиная с четвертой строки. OFFSET 3 означает, что первые 3 строки исключены (картинка 2).
FETCH FIRST в SQL
Предложение FETCH FIRST <количество_строк> ROWS ONLY используется в СУБД Oracle для выбора фиксированного количества строк. Например:
SELECT *
FROM Customers
FETCH FIRST 2 ROWS ONLY;
Здесь мы выбираем первые 2 строки из таблицы Customers.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤8🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4❤2
Ограничение DEFAULT используется для установки значений по умолчанию при попытке вставить пустое (NULL) значение в столбец. Например:
CREATE TABLE Colleges (
college_id INT PRIMARY KEY,
college_code VARCHAR(20),
college_country VARCHAR(20) DEFAULT 'Japan'
);
Здесь значением по умолчанию для столбца college_country является Japan.
Если мы попытаемся сохранить значение NULL в столбце college_country, то значением станет Japan. Например:
-- Вставляем значение 'Japan' в столбец college_country
INSERT INTO Colleges (college_id, college_code)
VALUES (1, 'ARP76');
-- Вставляем значение 'UAE' в столбец college_country
INSERT INTO Colleges (college_id, college_code, college_country)
VALUES (2, 'JWS89', 'UAE');
Ограничение DEFAULT с ALTER TABLE
Мы также можем добавить ограничение DEFAULT к существующему столбцу с помощью оператора ALTER TABLE. Например:
SQL Server
ALTER TABLE Colleges
ADD CONSTRAINT country_default
DEFAULT 'Japan' FOR college_country;
PostgreSQL
ALTER TABLE Colleges
ALTER COLUMN college_code SET DEFAULT 'Japan';
MySQL
ALTER TABLE Colleges
ALTER college_country SET DEFAULT 'Japan';
Oracle
ALTER TABLE Colleges
MODIFY college_country DEFAULT 'Japan';
Здесь значением по умолчанию для столбца college_country является Japan, если кто-то попытается вставить NULL.
Удалить ограничение DEFAULT
Мы можем удалить ограничение DEFAULT, используя оператор DROP. Например:
SQL Server, PostgreSQL, Oracle
ALTER TABLE Colleges
ALTER COLUMN college_country DROP DEFAULT;
MySQL
ALTER TABLE Colleges
ALTER college_country DROP DEFAULT;
Здесь мы удаляем ограничение DEFAULT из столбца college_country.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥1
🔥 Полезные бесплатные инструменты для работы с базами данных
Инструменты ориентированы на разработку под Microsoft SQL Server.
SQLCheck - мониторинг производительности сервера в реальном времени.
SQL Server Maintenance Solution - набор хранимых процедур от MVP Ola Hallengren для обслуживания как пользовательских, так и служебных баз данных на стороне SQL Server.
SQL Scripts Manager - бесплатный набор из 28 must–have скриптов от экспертов компании Redgate, который поможет автоматизировать общие задачи устранения неполадок, диагностики и обслуживания бд.
Набор хранимых процедур от Brent Ozar Unlimited
sp_Blitz — хранимые процедуры, для мониторинга состояния SQL Server–а и проблем производительности.
sp_BlitzCache — хранимыя процедура, с кучей опций, которая показывает малоэффективные запросы, и многое другое.
sp_BlitzIndex — это инструмент, который поможет вам проанализировать индексы: узнать есть ли у вас повторяющиеся индексы, или индексы, которые не используются, и многое другое.
sp_BlitzRS – процедура для поиска потенциальных проблем и анализа производительности и запросов SQL Server Reporting Services.
sp_BlitzTrace – хранимая процедура, которая позволит вам легко и быстро использовать SQL Server Extended Events.
SqlBak - онлайн сервис от разработчиков популярного решения для бэкапа SQLBackupAndFTP. Инструмент позволяет создавать резервные копии MS SQL вручную или по расписанию (поддерживается полный и дифференциальный бэкап и сохранение журнала транзакций.)
SQLFuse - это файловая система пользовательского режима, основанная на FUSE, которая отображает объекты сервера SQL на файловую систему: схемы, таблицы, представления, хранимые процедуры, функции, колонки, триггеры и др.
tSQLt - бесплатный фреймворк с открытым исходным кодом для проведения T-SQL unit тестов. О том, как работать с данным инструментом очень подробно изложено в следующей статье: tSqlt — модульное тестирование в Sql Server
BIDS Helper - плагин для Visual Studio c открытым исходным кодом.
SQL Server Partition Management - данный инструмент позволяет работать с секционированными (партиционированными) таблицами.
@sqlhub
Инструменты ориентированы на разработку под Microsoft SQL Server.
SQLCheck - мониторинг производительности сервера в реальном времени.
SQL Server Maintenance Solution - набор хранимых процедур от MVP Ola Hallengren для обслуживания как пользовательских, так и служебных баз данных на стороне SQL Server.
SQL Scripts Manager - бесплатный набор из 28 must–have скриптов от экспертов компании Redgate, который поможет автоматизировать общие задачи устранения неполадок, диагностики и обслуживания бд.
Набор хранимых процедур от Brent Ozar Unlimited
sp_Blitz — хранимые процедуры, для мониторинга состояния SQL Server–а и проблем производительности.
sp_BlitzCache — хранимыя процедура, с кучей опций, которая показывает малоэффективные запросы, и многое другое.
sp_BlitzIndex — это инструмент, который поможет вам проанализировать индексы: узнать есть ли у вас повторяющиеся индексы, или индексы, которые не используются, и многое другое.
sp_BlitzRS – процедура для поиска потенциальных проблем и анализа производительности и запросов SQL Server Reporting Services.
sp_BlitzTrace – хранимая процедура, которая позволит вам легко и быстро использовать SQL Server Extended Events.
SqlBak - онлайн сервис от разработчиков популярного решения для бэкапа SQLBackupAndFTP. Инструмент позволяет создавать резервные копии MS SQL вручную или по расписанию (поддерживается полный и дифференциальный бэкап и сохранение журнала транзакций.)
SQLFuse - это файловая система пользовательского режима, основанная на FUSE, которая отображает объекты сервера SQL на файловую систему: схемы, таблицы, представления, хранимые процедуры, функции, колонки, триггеры и др.
tSQLt - бесплатный фреймворк с открытым исходным кодом для проведения T-SQL unit тестов. О том, как работать с данным инструментом очень подробно изложено в следующей статье: tSqlt — модульное тестирование в Sql Server
BIDS Helper - плагин для Visual Studio c открытым исходным кодом.
SQL Server Partition Management - данный инструмент позволяет работать с секционированными (партиционированными) таблицами.
@sqlhub
👍20❤2🔥2
NocoDB — альтернатива AirTable с открытым исходным кодом
Создавайте и управляйте базами данных с помощью простого, но мощного интерфейса
С помощью инструмента вы сможете гибко определять схему данных, устанавливать связи между таблицами, выполнять сложные запросы и настраивать права доступа
NocoDB подходит для различных типов данных, будь то реляционные, документоориентированные или графовые. Интеграция с различными типами баз данных обеспечивает максимальную гибкость и удобство.
Стоимость: #бесплатно
#базы_данных #web
Создавайте и управляйте базами данных с помощью простого, но мощного интерфейса
С помощью инструмента вы сможете гибко определять схему данных, устанавливать связи между таблицами, выполнять сложные запросы и настраивать права доступа
NocoDB подходит для различных типов данных, будь то реляционные, документоориентированные или графовые. Интеграция с различными типами баз данных обеспечивает максимальную гибкость и удобство.
Стоимость: #бесплатно
#базы_данных #web
👍7🔥3❤2
🔥 6 бесплатных ресурсов для практики в SQL
SQLZoo - рекомендуем тем, кто начинает изучать язык. На сайте 9 разделов с задачами по sql. Их решение займет 18–20 часов. Среди тем — вложенные запросы или обработка значений null. Также доступны разборы решений. В SQLZoo есть справочник терминов.
SQLTest - здесь можно изменять или замещать значения и масштабировать их. Это позволяет имитировать взаимодействие с БД произвольного количества пользователей или запросов. Сервис генерирует запросы к базе данных SQL Server и поддерживает MySQL и Oracle.
SQLTest доступен в десктопной и облачной версии.
Pgexercises - Сайт состоит из 80 упражнений для работы с объектно-реляционной системой PostgreeSQL. Доступен один набор данных, который состоит из 3 таблиц: members, booking и facilities. Упражнения начинаются с предложений select и where, затем рассматриваются оконные функции и рекурсивные запросы. Курс разделен на блоки:
▪Простые запросы SQL;
▪Присоединение и подзапросы;
▪Изменения данных;
▪Агрегация;
▪Работа с метками времени;
▪Операции с рядами;
▪Рекурсивные запросы.
SQL Fiddle — сервис с открытым исходным кодом. Сайт позволяет делиться информацией с другими пользователями.
Он поддерживает БД Oracle, SQLite, MySQL. Также есть возможность экспортировать данные в разных форматах: иерархические файлы (например, XML-документы), текстовые и таблицы.
Oracle LiveSQL — это облачная платформа для тестирования и обмена сценариями SQL и PL/SQL. Среди функций — инструмент меню Quick SQL, который позволяет создавать операторы с помощью сокращенного синтаксиса.
Система сохраняет информацию о предыдущих сеансах, наборах операторов, которые можно перезапустить или сохранить как сценарии. Также сценарии можно воспроизвести повторно или загрузить созданные на сторонних ресурсах.
В последней версии СУБД Oracle Database 19c разработчики добавили функцию Automatic Indexing, которая автоматически создает индексы к БД.
HackerRank - социальная платформа для соревновательного программирования предлагает упражнения для разных языков. Среди них — сложные практические задачи по SQL. К некоторым задачам нет опубликованных ответов, а за лучшие решения пользователь получает больше баллов в рейтинге сообщества.
@sqlhub
SQLZoo - рекомендуем тем, кто начинает изучать язык. На сайте 9 разделов с задачами по sql. Их решение займет 18–20 часов. Среди тем — вложенные запросы или обработка значений null. Также доступны разборы решений. В SQLZoo есть справочник терминов.
SQLTest - здесь можно изменять или замещать значения и масштабировать их. Это позволяет имитировать взаимодействие с БД произвольного количества пользователей или запросов. Сервис генерирует запросы к базе данных SQL Server и поддерживает MySQL и Oracle.
SQLTest доступен в десктопной и облачной версии.
Pgexercises - Сайт состоит из 80 упражнений для работы с объектно-реляционной системой PostgreeSQL. Доступен один набор данных, который состоит из 3 таблиц: members, booking и facilities. Упражнения начинаются с предложений select и where, затем рассматриваются оконные функции и рекурсивные запросы. Курс разделен на блоки:
▪Простые запросы SQL;
▪Присоединение и подзапросы;
▪Изменения данных;
▪Агрегация;
▪Работа с метками времени;
▪Операции с рядами;
▪Рекурсивные запросы.
SQL Fiddle — сервис с открытым исходным кодом. Сайт позволяет делиться информацией с другими пользователями.
Он поддерживает БД Oracle, SQLite, MySQL. Также есть возможность экспортировать данные в разных форматах: иерархические файлы (например, XML-документы), текстовые и таблицы.
Oracle LiveSQL — это облачная платформа для тестирования и обмена сценариями SQL и PL/SQL. Среди функций — инструмент меню Quick SQL, который позволяет создавать операторы с помощью сокращенного синтаксиса.
Система сохраняет информацию о предыдущих сеансах, наборах операторов, которые можно перезапустить или сохранить как сценарии. Также сценарии можно воспроизвести повторно или загрузить созданные на сторонних ресурсах.
В последней версии СУБД Oracle Database 19c разработчики добавили функцию Automatic Indexing, которая автоматически создает индексы к БД.
HackerRank - социальная платформа для соревновательного программирования предлагает упражнения для разных языков. Среди них — сложные практические задачи по SQL. К некоторым задачам нет опубликованных ответов, а за лучшие решения пользователь получает больше баллов в рейтинге сообщества.
@sqlhub
❤14👍11🔥4
Полезные инструменты разработки и администрирования для Microsoft SQL Server
1. Common-Info
Cкрипты общего назначения для просмотра состояния и настроек инстанса и др
2. Data-Model-Info
Просмотр модели данных и других связанных объектов
3. Databases-Info
Информация о базах данных
4. Statistics
Информация о статистиках, вопросах производительности и их анализе
5. Indexes
Информация об индексах, вопросах производительности и их анализе
6. File-Groups
Информация о файловых группах
7. Partitioned-Tables-and-Indexes
Секционирование таблиц и индексов
8. Perfomance
Производительность и оптимизация запросов, настроек сервера и поиск узких мест
9. Backup
Резервное копирование и восстановление данных
10. Maintenance
Обслуживание баз данных и сервера
11. 1С-Extended-Settings
Инструмент для поддержки произвольных индексов, изменение существующих объектов, сжатия таблиц и индексов, файловых групп и прочего для баз 1С:Предприятия
12. BCP
Работа с утилитой Bulk Insert Programm (BCP)
13. Bulk-Operations
Раздел с полезной информацией об операциях массовой модицикации данных
14. AlwaysOn
О работе с группами высокой доступности AlwaysOn, настройке WSFC и др.
15. Diagnostics
Диагностика работы SQL Server
16. FullText-Search
Полнотекстовый поиск и все что с ним связано
17. TempDB
Все что связано с TempDB и временными таблицами
18. Monitoring
Мониторинг стабильности и производительности
19. Internals
Информация о внутренностях работы СУБД
20. SSAS
Подраздел об SQL Server Analysis Services
21. PowerShell
Работа со SQL Server из PowerShell
22. Linux
Работа со SQL Server под Linux
23. Integration
Информация о средствах интеграции SQL Server с другими системами и наоборот.
24. Jobs
Информация о заданиях и их настройке.
25. Trace-Flags
Флаги трассировки.
26. Replication-And-High-Availability
Информация о механизмах репликации данных, высокой доступности и отказоустойчивости.
27. Track-Data-Changes
Механизмы отслеживания изменения данных.
28. Security
Безопасность, управление доступом и связанные темы.
29. SQLCLR
Материалы по созданию расширений для SQL Server на базе SQLCLR
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔗 Документация & Репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥1
Как переписать и оптимизировать ваши SQL-запросы к Pandas на пяти простых примерах
Аналитики данных, инженеры и учёные одинаково знакомы с SQL. Язык запросов по-прежнему широко используется для работы с реляционными базами данных любого типа.
Однако, в настоящее время, всё больше и больше, особенно для аналитиков данных, растут технические требования, и ожидается, что люди, по крайней мере, знают основы языка программирования. При работе с данными Python и Pandas являются обычным дополнением к списку требований в описании вакансий.
Хотя Pandas может быть новым для людей, знакомых с SQL, концепции выбора, фильтрации и агрегирования данных в SQL легко переносятся в Pandas. Давайте рассмотрим в этой статье некоторые распространённые SQL-запросы и способы их написания и оптимизации в Pandas.
Читать
@sqlhub
Аналитики данных, инженеры и учёные одинаково знакомы с SQL. Язык запросов по-прежнему широко используется для работы с реляционными базами данных любого типа.
Однако, в настоящее время, всё больше и больше, особенно для аналитиков данных, растут технические требования, и ожидается, что люди, по крайней мере, знают основы языка программирования. При работе с данными Python и Pandas являются обычным дополнением к списку требований в описании вакансий.
Хотя Pandas может быть новым для людей, знакомых с SQL, концепции выбора, фильтрации и агрегирования данных в SQL легко переносятся в Pandas. Давайте рассмотрим в этой статье некоторые распространённые SQL-запросы и способы их написания и оптимизации в Pandas.
Читать
@sqlhub
👍14❤3🔥2
1.SuIP.biz
Обнаружение уязвимости для SQL-инъекций в режиме онлайн с помощью sup.biz и поддержка баз данных MySQL, Oracle, PostgreSQL, Microsoft SQL, IBM DB2, Firebird, Sybase.
SQLMap поможет протестировать сервис на все 6 методов инъекции.
2.Тест на уязвимость SQL-инъекции онлайн c Hacker Target
Еще один онлайн-инструмент Hacker Target на основе SQLMap для поиска уязвимости bind & error против GET-запроса HTTP.
3. Netsparker
Netsparker готов просканировать уровень веб-безопасности предприятий: он делает даже больше, чем просто тест на уязвимость SQL. Человек также может интегрировать приложения для автоматизации веб-безопасности.
Пользователь может проверить индекс уязвимости сайта, который прошел сканирование от Netsparker.
4. Vega
Vega – это сканер безопасности с открытым исходным кодом, который может быть установлен на Linux, OS X и Windows.
Vega написан на Java, он имеет графический интерфейс.
Не только SQLi: Vega можно использовать для тестирования на многие другие типы уязвимостей, такие как:
Инъекция XML/Shell/URL;
Directory listing;
Remote file includes;
XSS.
Vega выглядит многообещающим бесплатным сканером безопасности сети.
5. SQLMap
SQLMap – это один из популярных инструментов тестирования с открытым исходным кодом на выполнение SQL-инъекций в системе управления реляционными базами данных.
Sqlmap проводит перечисление пользователей, паролей, хэшей, баз данных и поддерживает полный дамп таблиц базы данных.
Если пользователь использует Kali Linux, то он может применить SQLMap, не устанавливая его дополнительно.
6.SQL Injection Scanner
Онлайн сканер для проведения пентестинга, который использует OWASP ZAP. Есть две версии – упрощенная (бесплатная) и полная (нужно зарегистрироваться).
7.Appspider
Appspider, разработанный Rapid7, — это динамическое решение для тестирования безопасности приложений на обход защиты и более чем 95 типов атак.
Уникальная функция Appspider под названием «vulnerability validator» позволяет разработчику воспроизвести уязвимость в режиме реального времени.
Это очень удобно, когда администратор исправил уязвимость и хочет повторно протестировать ресурс, чтобы точно убедиться, что риска для системы больше нет.
8. Acunetix
Acunetix – это готовый к работе сканер уязвимостей веб-приложений, которому доверяют более 4000 компаний по всему миру. Не только сканирование SQLi: инструмент способен найти более 6000 других уязвимостей.
Каждая находка классифицируется, и показываются потенциальные корректировки системы безопасности: поэтому пользователь всегда знает, что нужно сделать, чтобы исправить ситуацию к лучшему. Кроме того, человек может интегрироваться с системой CI/CD и SDLC, поэтому каждый риск безопасности идентифицируется и фиксируется до того, как приложение будет развернуто.
9. Wapiti
Wapiti – это сканер уязвимостей на основе Рython. Он поддерживает большое количество инструментов для обнаружения следующих атак:
Sql и XPath;
CRLS и XSS;
Shellshock;
File disclosure;
Server-side request forgery;
Command execution.
Он поддерживает конечную точку HTTP/HTTPS, несколько типов аутентификации, такие как Basic, Digest, NTLM и Kerberos. У пользователя есть возможность создавать отчеты о сканировании в формате HTML, XML, JSON и TXT.
10. Scant3r
Scant3r – это «легкий сканер», основанный на Python.
Он ищет возможность проведения атак XSS, SQLi, RCE, SSTI в заголовках и параметрах URL-адресов.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥2
🦆 DuckDb: эффективная OLAP-база данных
DuckDB набирает популярность, поскольку столбцово-векторный механизм этой базы данных позволяет выполнять аналитические типы запросов. Это аналитическая или OLAP-версия SQLite, широко распространенной встроенной СУБД.
Хотя DuckDB — это СУБД, ее установка проще по сравнению с Microsoft SQL Server и Postgres. Кроме того, для выполнения запроса не требуется никаких внешних зависимостей. Выполнить SQL-запрос можно с помощью DuckDb CLI.
Если вы предпочитаете интерфейс SQL, DuckDb может стать для вас лучшей альтернативой анализу данных непосредственно в CSV или Parquet-файлах. Продолжим с примерами кода и одновременно покажем, насколько просто работать с SQL в DuckDb.
В DuckDb есть функция read_csv_auto для вывода CSV-файла и загрузки этих данных в память. Во время выполнения было обнаружено, что нужно изменить SAMPLE_SIZE=-1, чтобы пропустить выборку, так как некоторые поля в наборе данных не были выведены правильно, а выборка по умолчанию составляет 1000 строк.
Тест фильтрации показал достижение паритета, а в остальных трех тестах производительность намного выше по сравнению с Pandas.
Чтобы не писать на Python, можно использовать DuckDb CLI с SQL-интерфейсом в командной строке или TAD.
https://duckdb.org/
@sqlhub
DuckDB набирает популярность, поскольку столбцово-векторный механизм этой базы данных позволяет выполнять аналитические типы запросов. Это аналитическая или OLAP-версия SQLite, широко распространенной встроенной СУБД.
Хотя DuckDB — это СУБД, ее установка проще по сравнению с Microsoft SQL Server и Postgres. Кроме того, для выполнения запроса не требуется никаких внешних зависимостей. Выполнить SQL-запрос можно с помощью DuckDb CLI.
Если вы предпочитаете интерфейс SQL, DuckDb может стать для вас лучшей альтернативой анализу данных непосредственно в CSV или Parquet-файлах. Продолжим с примерами кода и одновременно покажем, насколько просто работать с SQL в DuckDb.
В DuckDb есть функция read_csv_auto для вывода CSV-файла и загрузки этих данных в память. Во время выполнения было обнаружено, что нужно изменить SAMPLE_SIZE=-1, чтобы пропустить выборку, так как некоторые поля в наборе данных не были выведены правильно, а выборка по умолчанию составляет 1000 строк.
import duckdb
from repeat_helper import repeat_executor
con = duckdb.connect(database=':memory:')
con.execute("""CREATE TABLE parking_violations AS SELECT "Summons Number", "Vehicle Make", "Issue Date" FROM read_csv_auto('/Users/chengzhizhao/projects/pandas_alternatives/Parking_Violations_Issued_-_Fiscal_Year_2017.csv', delim=',', SAMPLE_SIZE=-1);""")
con.execute("""SELECT COUNT(1) FROM parking_violations""")
print(con.fetchall())
# ## Фильтрация по марке автомобиля (для BMW)
@repeat_executor(times=5)
def test_filter():
con.execute("""
SELECT * FROM parking_violations WHERE "Vehicle Make" = 'BMW'
""")
return con.fetchall()
# # ## Группировка по марке автомобиля и подсчет
@repeat_executor(times=5)
def test_groupby():
con.execute("""
SELECT COUNT("Summons Number") FROM parking_violations GROUP BY "Vehicle Make"
""")
return con.fetchall()
# # # ## SELF join
@repeat_executor(times=5)
def test_self_join():
con.execute("""
SELECT a."Summons Number"
FROM parking_violations a
INNER JOIN parking_violations b on a."Summons Number" = b."Summons Number"
""")
return con.fetchall()
# ## оконная функция
@repeat_executor(times=5)
def test_window_function():
con.execute("""
SELECT *, ROW_NUMBER() OVER (PARTITION BY "Vehicle Make" ORDER BY "Issue Date")
FROM parking_violations
""")
return con.fetchall()
test_filter()
# Время медианы - 0.410 с
test_groupby()
# # Время медианы - 0.122 с
test_self_join()
# # Время медианы - 3.364 с
test_window_function()
# # Время медианы - 6.466 с
Тест фильтрации показал достижение паритета, а в остальных трех тестах производительность намного выше по сравнению с Pandas.
Чтобы не писать на Python, можно использовать DuckDb CLI с SQL-интерфейсом в командной строке или TAD.
https://duckdb.org/
@sqlhub
👍11❤3🔥2