Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра
Читать статью
One Day Offer для Центра робототехники 🤖
13 июля вы сможете пройти все этапы отбора, познакомиться с инновационной командой Сбера и получить оффер Middle/Senior Robotics или Backend Developer.
Наш Центр проводит исследования, создаёт роботов, применяя искусственный интеллект, и работает по направлениям: манипуляция, роботизация логистики и мобильные роботы.
Сейчас перед нами стоит по-настоящему амбициозная задача – разработать антропоморфного робота общего назначения.
В работе мы используем: ROS/ROS2, DDS, Python, PyTorch, JAX, Model-transformers, SOTA, C++, Isaac Sim / MuJoCo / PyBullet.
Какие задачи будут в вашем планере 👇
▪️ разработка алгоритмов и систем управления роботами (core, body, brain) и драйверов для различных устройств в виде ROS2 узлов
▪️ создание алгоритмов внутренней и внешней калибровки сенсоров (лидары, камеры, IMU), робототехнических сервисов на Behavior Trees / State Machines
▪️ работа с симуляторами на базе Isaac Sim / MuJoCo / PyBullet
▪️ проектирование архитектуры системы
Масштабные проекты и работа мечты ждут вас. Регистрируйтесь на One Day Offer 13 июля 😉
⚠️ Как создать собственный тип данных с помощью PostgreSQL?
Расскажем на открытом уроке «Пользовательские типы данных в PostgreSQL» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS
🔹На открытом уроке рассмотрим как можно создать пользовательский тип и как с ним работать.
🔹Разберем несколько примеров детально "до винтика"
🦾 PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля.
👉 Регистрация и подробности
https://otus.pw/sl5x/?erid=LjN8K1LDo
💻Как создать процедуру в PostgreSQL?
⏩Итак, для создания процедуры в PostgreSQL используется язык PL/pgSQL, который является расширением языка SQL. Вот пример создания простой хранимой процедуры в PostgreSQL:
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();
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:
1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:
1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
🔥Тесты для подготовки к собеседованию🔥
Выбери своё направление:
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
#вопросы_с_собеседований
Как распарсить строку в SQL?
Часто возникает необходимость распарсить строку в SQL запросе, чтобы получить отдельные элементы. Существует несколько способов это сделать.
1. Использование функции SUBSTRING
Для извлечения отдельных элементов из строки можно использовать функцию SUBSTRING.
2. Использование функции CHARINDEX
Для извлечения подстроки из строки можно использовать функцию CHARINDEX.
3. Использование функции PARSENAME
Для извлечения отдельных элементов из строки, разделенных определенным символом, можно использовать функцию PARSENAME.
SQLMesh - это фреймворк для преобразования данных, который позволяет командам, работающим с данными, использовать преимущества DevOps. Она позволяет ученым, аналитикам и инженерам эффективно выполнять и развертывать преобразования данных, написанные на SQL или Python.
SQLMesh обеспечивает точность и эффективность построения конвейеров данных с помощью пробвинутого решения DataOps для преобразования, тестирования и совместной работы.
Виртуальные среды данных позволяют команде разработчиков создавать динамические представления данных, гарантируя, что таблицы не будут создаваться более одного раза. Модульные тесты, аудиты и Data Diff обеспечивают проверку на протяжении всего рабочего процесса разработки, что позволяет легко работать с данными.pip install sqlmesh
▪ Github
▪ Подробнее
▪ Документация
Уроки по T-SQL
Предлагаем вашему просмотру подробные 7 уроков.
В базу уроков входят основные понятия, работа с временными таблицами, разбор выборки данных и многое другое
📘Видео урок
❓Зачем аналитику изучать Python и с чего начать?
Python — один из самых популярных языков программирования, который используется во многих сферах, в том числе для анализа данных. Ждем вас на открытом практическом уроке «Основы Python» от OTUS, где вы вместе с опытным экспертом:
- рассмотрите синтаксис Python;
- разберете его основы;
- узнаете про инструменты анализа данных, с которыми работают аналитики.
Встречаемся 20 июня в 20:00 мск в преддверии старта курса «Python для аналитики». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/mHQW/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
😎На Си можно всё!
👉Узнайте больше о возможностях языка на бесплатном вебинаре онлайн-курса «Программист С» — «Написание расширения PostgreSQL на языке С»: регистрация
На бесплатном вебинаре мы:
- познакомимся с возможностью написания функций на языке С для работы с данными
- создадим и подключим собственное расширение для СУБД PostgreSQL, написанное на языке С
- рассмотрим плюсы и минусы создания таких расширений
🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
erid: LjN8K5RoZ
SQLMC — официальный инструмент Kali Linux для проверки всех URL-адресов домена на наличие SQL-инъекций.
Читать полностью…Как обнаружить SQL-уязвимость?
Освойте методы атаки и защиты на курсе SQL Injection Master! Аналогов по объему практики в СНГ и EN-cегменте нет.
На курсе подробно разберём эксплуатацию SQL-инъекций, одну из наиболее опасных и эксплуатируемых видов атак на веб-приложения. Вы освоите базовый синтаксис языка запросов SQL, внедрение SQL-кода в уязвимые приложения, раскрутку SQL-инъекций вручную и софтом, а также способы защиты своих веб-приложений.
Старт 15 июля. Продолжительность - 3 месяца
🏆 Сертификат / удостоверение о повышении квалификации
@Codeby_Academy
84994441750
Подробнее о курсе
🖥 BACKUP DATABASE в SQL
Важно регулярно создавать резервные копии базы данных, чтобы данные не были потеряны в случае повреждения базы данных (БД). В 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.
Как модифицировать данные в нескольких таблицах и вернуть id затронутых записей в одном запросе?WITH
updated AS (
UPDATE table1
SET x = 5, y = 6 WHERE z > 7
RETURNING id
),
inserted AS (
INSERT INTO table2 (x, y, z) VALUES (5, 7, 10)
RETURNING id
)
SELECT 'table1_updated' AS action, id
FROM updated
UNION ALL
SELECT 'table2_inserted' AS action, id
FROM inserted;
Экранирование двоичных данных в SQL
В современном веб-разработке базы данных используются повсеместно. При работе с БД часто возникает необходимость хранить двоичные данные, такие как изображения или видео. Однако, есть риск того, что двоичные данные могут содержать символы, которые могут быть восприняты как специальные символы в SQL, что может привести к непреднамеренной модификации данных.
Экранирование двоичных данных
Для экранирования двоичных данных в SQL мы можем использовать функцию mysqli_real_escape_string(). Эта функция автоматически экранирует специальные символы, такие как одинарные кавычки, двойные кавычки и обратные слеши. Чтобы использовать эту функцию, мы должны сначала установить соединение с базой данных, а затем вызвать функцию, передав ей двоичные данные в качестве аргумента.
Пример экранирования двоичных данных в PDO
«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»
В PDO можно экранировать двоичные данные с помощью метода quote(). Этот метод автоматически экранирует специальные символы и возвращает заключенную в кавычки строку. Для использования этого метода мы должны сначала установить соединение с базой данных, а затем вызвать метод quote(), передав ему двоичные данные в качестве аргумента.
Задача SQL
У вас в базе данных есть две таблицы: TABLE1 и TABLE2. Нужно ответить на один простой вопрос: отработает ли данный запрос или упадет с ошибкой? И объяснить, почему.
select id,sum(value) over(partition by i order by y), * from table1
Примечание: все поля существуют в таблице и соответствуют нужному типу данных.
Ответ
Да, отработает. Классический пример аналитической функции, внутри которой сначала выполняется группировка (partition by), потом выполняется сортировка (order by) и применяется агрегирующая функция. В данном случае все написано правильно. Этот вопрос проверяет у кандидата знание оконных функций.
⚠️ Приглашаем на открытый урок «SQL и реляционные СУБД» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS
🔹 На встрече рассмотрим существующие концепции и принципы работы реляционных СУБД, их структуру и особенности PostgreSQL
🔹 Разберем основные команды для создания, изменения и удаления данных
В течении часа вы научитесь ориентироваться среди имеющихся СУБД и выбирать под свои задачи нужный инструмент
🦾 PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля.
👉 Регистрация и подробности
https://clck.ru/3BTQok
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Вакансия Senior System Analyst DWH в команде Lamoda Tech
Создаем продукты, которые делают шопинг удобным и вдохновляющим. Результат — 17 млн. довольных пользователей ежемесячно и звание крупнейшей fashion & lifestyle платформы в России по версии Data Insight.
Ищем специалиста на проект развития хранилища данных и автоматизации отчетности.
О задачах: выявлять и оценивать бизнес-требования к новым витринам и отчетности; проводить системный анализ источников данных, проектировать модели данных для новых витрин; разрабатывать техническую документацию; разрабатывать новые юниверсы и отчеты (SAP Business Objects), создавать и изменять объекты в существующих. Стек технологий: Oracle, Vertica, Hadoop, SQL, PowerBI, SAP BO
Что еще интересного: гибрид; офис в Москве и коворкинг в СПб; организуем внутренние и внешние митапы; помогаем развивать личный бренд; шопинг на Lamoda со скидками до 40%
Подробнее о вакансии.
Всем привет! Хотите написать свой первый SQL-код в прямом эфире под руководством эксперта-практика?
Залетайте на бесплатный мастер-класс с Серафимом Фролкиным, инженером данных VK и экспертом программ школы аналитики Changellenge >> Education.
Серафим расскажет:
✔️ почему SQL — это отличный старт в мир больших данных;
✔️ как он экономит время на рабочих задачах;
✔️ почему знание SQL так ценят рекрутеры.
А еще вы разберете девять базовых функций SQL в прямом эфире и решите практический кейс. Справятся даже новички.
Всего полтора часа — и в резюме новый навык!
Дата: 25 июня
Время: 19:00 Мск
Длительность: 1,5 часа
Формат: онлайн
Стоимость: бесплатно
Карьерные бонусы: всем зарегистрировавшимся и участникам!
Регистрируйтесь и получайте бонусы >>
#реклама
ООО "ВЫСШАЯ ШКОЛА АНАЛИТИКИ И СТРАТЕГИИ"
ИНН 7716917009
2VtzqxdpxqV
erid: LjN8KG7LH
Цифры без бизнеса — это математика. Бизнес без цифр — это авантюра. Цифры в основе бизнеса — это анализ данных.
Аналитик данных собирает, анализирует, структурирует данные — и благодаря этому помогает бизнесу решать проблемы и принимать важные решения. Поэтому профессия входит в топ-5 на рынке.
Стать аналитиком данных с нуля можно всего за 5 месяцев в онлайн-школе KARPOV.COURSES
Преподаватели — практикующие специалисты, которые знают, какие навыки нужны для успешной карьеры, поэтому обучение включает в себя и теорию, и отработку знаний на практических задачах.
По итогу вы соберете готовое портфолио, а школа поможет с трудоустройством. Уже 89% студентов нашли работу благодаря карьерному сопровождению.
Присоединяйтесь к курсу со скидкой 5% по промокоду SQLIBD до 30.06.2024: https://clc.to/4_VL2w
Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627.
Приемы очистки данных в SQL
1. Выявление и удаление дублирующих записей
SELECT DISTINCT column1, column2, ...
FROM table_name;
В качестве альтернативы можно использовать GROUP BY
, чтобы сгруппировать похожие записи вместе, а затем удалить количество записей в каждой группе.SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > 1;
2. Стандартизация текстовых полейUPDATE table_name
SET column_name = UPPER(column_name);
Вы также можете использовать функцию REPLACE
для замены определенных символов или строк в текстовых полях. Например:UPDATE table_name
SET column_name = REPLACE(column_name, 'OldString', 'NewString');
3. Обработка отсутствующих или нулевых значенийSELECT column1, column2, ...
FROM table_name
WHERE column_name IS NULL;
Затем вы можете удалить эти записи или заменить отсутствующие значения значением по умолчанию. Например:UPDATE table_name
SET column_name = 'DefaultValue'
WHERE column_name IS NULL;
4. Удаление кривых символовUPDATE table_name
SET column_name = REPLACE(column_name, 'InvalidChar', '');
UPDATE table_name
SET column_name = REGEXP_REPLACE(column_name, '[^a-zA-Z0–9 ]', '');
5. Обработка выбросов
Чтобы определить и удалить выбросов, мы можем использовать функции AVG
и STDDEV
для расчета среднего и стандартного отклонения столбца.SELECT AVG(column_name), STDDEV(column_name)
FROM table_name;
6. Корректировка форматов дат
Функция STR_TO_DATE может преобразовать строку в формат даты. Синтаксис функции следующий:SELECT STR_TO_DATE(date_string, format_string)
FROM table_name;
7. Очистка текстовых данных
Функция REPLACE
может заменить подстроку в строке. Функция TRIM
позволяет удалить из строки ведущие и последующие пробелы. Синтаксис выглядит следующим образом:SELECT UPPER(column_name)
FROM table_name;SELECT REPLACE(column_name, 'old_string', 'new_string')
FROM table_name;
SELECT TRIM(column_name)
FROM table_name;
8. Проверка типов данных
Важно убедиться, что ваши данные имеют правильный тип данных. Для проверки и преобразования типов данных можно использовать функции CAST
или CONVERT
. Например:SELECT CAST(column_name AS INT)
FROM table_name;
SELECT CONVERT(column_name, DATE)
FROM table_name;
💻PostgreSQL: исполнение запроса из Bash-скрипта
⏩Для выполнения запроса в PostgreSQL от имени пользователя 'postgres' используйте команду:
sudo -u postgres psql -d dbname -c "SELECT * FROM table;"
dbname
— это название вашей БД, table
– имя таблицы. sudo
для переключения пользователя на postgres
, psql
является инструментом командной строки PostgreSQL, а ключ -c
нужен для выполнения конкретного запроса.-t
, который выводит данные построчно, и -X
для того, чтобы .psqlrc
не обрабатывался командой psql
.🔎 Поиск последних изменений в таблице в Oracle Database с помощью запроса SELECT ... FROM ... VERSIONS BETWEEN TIMESTAMP <start_dt> AND <end_dt>
Возвращаются изменения в диапазоне дат.