sqlhub | Unsorted

Telegram-канал sqlhub - Data Science. SQL hub

36043

По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo

Subscribe to a channel

Data Science. SQL hub

Часто на Hadoop-кластерах не хватает ресурсов. Когда некоторые аналитики просят огромное количество ядер и памяти для своих Jupyter-ноутбуков, другие участники вообще не могут получить ресурсы. Это очень тормозит рабочие процессы. Узнали, согласны?

Александр Ледовский, тимлид команды аналитики и DS в Авито, делится опытом использования Apache Spark для работы с поисковыми логами.

Всё, что нужно знать аналитикам, дата-инженерам, специалистам по обработке больших данных и тимлидам команд, чтобы задавать параметры Spark-сессии и получать ресурсы.

Переходите и читайте по ссылке.

Реклама. ООО «Авито Тех». LdtCKLoXJ

Читать полностью…

Data Science. SQL hub

🖥 Задача: Выбрать самую актуальную запись с учетом статуса (успешная / отмененная транзакция) и временной метки

Задачу часто спрашивают на собеседованиях в формулировке “как удалить дубли / копии строк”, и решить ее можно несколькими способами. Я привык мыслить в терминах историзации данных в Хранилище, и удаление мне ни к чему, поэтому для решения задачи я воспользуюсь ранжирующей функцией 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

Читать полностью…

Data Science. SQL hub

🖥 Большая шпарглака по psql

Полезные советы с примерами.

Шпаргалка

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как полностью очистить таблицу sql

Полностью очистить таблицу, не удаляя её можно с помощью запроса 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

Читать полностью…

Data Science. SQL hub

🖥 Полезные тренажеры SQL

Тренажеры, которые могут пригодится для "оттачивания" навыков и подготовки к собеседованиям. Конечно, нет ничего лучше реальных задач, но иногда реальных нет. Когда у меня была такая ситуация, я прорешала задачи на Hakerrank и это помогло мне в дальнейшем пройти собеседование. Там же, например на Hakerrank, можно получить сертификаты для подтверждения своего уровня.

Hakerrank
Strata scratch
SQLBolt
W3schools
Курс по основам SQL, состоящий из 19 небольших уроков с лёгкой подачей

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 CREATE INDEX в SQL

Если столбец имеет ограничение CREATE INDEX, то данные извлекаются быстрее, если мы используем именно этот столбец для извлечения данных.

Индекс — это объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Словно закладка в книге, индекс помогает быстро получить доступ к требуемым данным в таблице, согласно SQL-запросу. Таким образом, использование индексов позволяет ускорить получение данных.

Например:

-- Создаем таблицу
CREATE TABLE Colleges (
college_id INT PRIMARY KEY,
college_code VARCHAR(20) NOT NULL,
college_name VARCHAR(50)
);

-- Создаем индекс
CREATE INDEX college_index
ON Colleges(college_code);

Здесь мы создаем индекс с именем college_index в таблице Colleges, используя столбец college_code.

Примечание:
Увидеть разницу в скорости при малом количестве данных в таблице проблематично. Однако при большом количестве данных можно легко заметить разницу в скорости между использованием индексов и без них.

CREATE UNIQUE INDEX для уникальных значений
Если нужно создать индексы для уникальных значений в столбце, следует использовать ограничение CREATE UNIQUE INDEX.

Например:

-- Создаем уникальный индекс
CREATE UNIQUE INDEX college_index
ON Colleges(college_code);


Здесь мы создаем уникальный индекс с именем college_index в таблице Colleges, используя столбец college_code.

Удалить индекс из таблиц

Для удаления индекса из таблицы используется оператор DROP INDEX.

Например:

SQL Server

DROP INDEX Colleges.college_index;
PostgreSQL, Oracle

DROP INDEX college_index;
MySQL

ALTER TABLE Colleges
DROP INDEX college_index;

Здесь мы удаляем ограничение college_index из таблицы Colleges.

Примечание: Удаление индекса означает, что удаляется только индекс. Данные в исходной таблице остаются неизменными.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Ограничение CHECK в SQL

Ограничение CHECK используется для указания условия, которое должно быть выполнено для вставки значения в таблицу.

Например:

CREATE TABLE Orders (
order_id INT PRIMARY KEY,
amount INT CHECK (amount > 0)
);


Здесь столбец amount принимает значения только больше 0, это является условием для проверки. Теперь давайте попробуем вставить данные в таблицу Orders.

Пример №1

-- Вставляем значение 100.
-- Данные добавлены
INSERT INTO Orders(amount) VALUES(100);


Пример №2

-- Вставляем значение -5.
-- Ошибка при добавлении данных
INSERT INTO Orders(amount) VALUES(-5);

Примечание: Ограничение CHECK используется для проверки данных только при вставке. Чтобы проверить, существует ли строка, следует использовать оператор EXISTS.

❗️Создать именованное ограничение CHECK

Популярной практикой является создание именованных ограничений, чтобы их было легче изменять и удалять.

Например:

-- Создаем именнованое ограничение amountCK для столбца amount.
-- Ограничение проверяет, чтобы значение для вставки было больше 0
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
amount INT,
CONSTRAINT amountCK CHECK (amount > 0)
);

❗️Ограничение CHECK в существующей таблице

Мы можем добавить ограничение CHECK к существующей таблице, используя оператор ALTER TABLE.

Например:

-- Добавляем неименованное ограничение CHECK
ALTER TABLE Orders
ADD CHECK (amount > 0);


Также можно добавить и именованное ограничение CHECK:

-- Добавляем именованное ограничение CHECK - amountCK
ALTER TABLE Orders
ADD CONSTRAINT amountCK CHECK (amount > 0);


Примечание: Если мы попытаемся добавить ограничение amount > 0 к столбцу, значение которого уже меньше 0, мы получим ошибку.

❗️Удалить ограничение CHECK

Мы можем удалить ограничение CHECK, используя оператор DROP.

Например:

SQL Server, PostgreSQL, Oracle

-- Удаляем ограничение CHECK - amountCK
ALTER TABLE Orders
DROP CONSTRAINT amountCK;


MySQL

-- Удаляем ограничение CHECK - amountCK
ALTER TABLE Orders
DROP CHECK amountCK;

Читать полностью…

Data Science. SQL hub

🖥 Оператор FULL OUTER JOIN в SQL

Оператор FULL OUTER JOIN объединяет две таблицы на основе общего столбца и выбирает не только записи с совпадающими значениями в этих столбцах, но и все оставшиеся строки из обеих таблиц. Например:

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;


На картинке видно как отработает данный код.

Здесь мы выбираем столбцы customer_id и first_name (из таблицы Customers) и столбец amount (из таблицы Orders). В результате получаем те строки, в которых есть совпадение между customer_id (таблицы Customers) и customer (таблицы Orders) вместе со всеми остальными строками из обеих таблиц.

Синтаксис оператора FULL OUTER JOIN
Синтаксис оператора FULL OUTER JOIN следующий:

SELECT столбцы
FROM таблица1
FULL OUTER JOIN таблица2
ON таблица1.имя_столбца = таблица2.имя_столбца;
Оператор FULL OUTER JOIN с оператором WHERE


Вот пример использования оператора FULL OUTER JOIN с оператором WHERE:

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer
WHERE Orders.amount >= 500;


Здесь мы объединяем две таблицы и выбираем строки, в которых сумма (amount) больше или равна 500.

Оператор FULL OUTER JOIN с псевдонимами AS
Мы можем использовать псевдонимы AS с оператором FULL OUTER JOIN, чтобы сделать наш код короче и чище. Например:

SELECT C.cat_name, P.prod_title
FROM Categories AS C
FULL OUTER JOIN Products AS P
ON C.cat_id = P.cat_id;

Здесь мы выбираем общие строки между таблицами Categories и Products.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как работает CASE SQL

Оператор CASE в SQL используется для создания условий, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.

Оператор CASE может быть использован в двух форматах:

CASE без ELSE:
SELECT column1,
CASE
WHEN column2 = 'value1' THEN 'result1'
WHEN column2 = 'value2' THEN 'result2'
END AS column3
FROM table;


В этой форме оператора CASE используется блок WHEN для проверки значения столбца column2. Если значение равно value1, то будет возвращено значение result1. Если значение равно value2, то будет возвращено значение result2. Если значение не соответствует ни одному из условий, то для столбца column3 будет возвращено значение NULL.

CASE с ELSE:
SELECT column1,
CASE column2
WHEN 'value1' THEN 'result1'
WHEN 'value2' THEN 'result2'
ELSE 'result3'
END AS column3
FROM table;


В этой форме оператора CASE используется значение столбца column2 в блоке CASE. Если значение равно value1, то будет возвращено значение result1. Если значение равно value2, то будет возвращено значение result2. Если значение не соответствует ни одному из условий, то будет возвращено значение result3.

Оба формата оператора CASE могут использоваться в запросах на выборку данных в SQL. Они позволяют создавать условия, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как создать временную таблицу в sql запросе

Для создания временной таблицы используется ключевое слово TEMPORARY в команде CREATE TABLE:

CREATE TEMPORARY TABLE название_таблицы

Удобно создавать временную таблицу на выборке из другой таблицы:

CREATE TEMPORARY TABLE customer_temp SELECT * FROM customer;

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Создание базы данных для маркетплейса с помощью SQL

В этой статье мы разработаем БД для практики. В этом проекте перед вами стоит задача создать реляционную базу данных для веб-сайта, предлагающего продажу подержанных автомобилей.

Общее описание этого проекта заключается в том, что любой желающий может предлагать свои товары (подержанные автомобили) в виде рекламы, а потенциальные покупатели могут осуществлять поиск по нескольким категориям.

Читать дальше

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как правильно вводить дату в SQL

В SQL даты обычно вводятся в формате "ГГГГ-ММ-ДД", где "ГГГГ" - год, "ММ" - месяц (от 01 до 12) и "ДД" - день (от 01 до 31).

Например, чтобы вставить запись в таблицу "orders" с датой заказа 22 марта 2023 года, можно использовать следующий запрос:

INSERT INTO orders (order_date, customer_name)
VALUES ('2023-03-22', 'Иванов Иван');


Если же дата вводится с помощью функции, то можно использовать стандартную функцию преобразования даты, например, функцию TO_DATE() в Oracle:

INSERT INTO orders (order_date, customer_name)
VALUES (TO_DATE('22-03-2023', 'DD-MM-YYYY'), 'Иванов Иван');

В этом примере мы используем функцию TO_DATE() для преобразования строки "22-03-2023" в дату формата "ГГГГ-ММ-ДД". Второй аргумент функции ("DD-MM-YYYY") указывает формат входной строки.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как заменить null на 0 в SQL

Чтобы заменить значение NULL на 0 в SQL, можно использовать функцию COALESCE. Эта функция принимает несколько аргументов и возвращает первый не NULL аргумент.

Если все аргументы NULL, функция вернет NULL. Вот пример использования COALESCE для замены значений NULL на 0:

SELECT COALESCE(column_name, 0) FROM table_name;

В этом запросе column_name - имя столбца, значения которого нужно заменить, а table_name - имя таблицы, в которой находится столбец. Функция COALESCE заменит все значения NULL в столбце на 0. Если значение столбца не NULL, то функция вернет его без изменений.

Также можно использовать оператор IS NULL для проверки на NULL и замены его на 0. Вот пример:

SELECT CASE WHEN column_name IS NULL THEN 0 ELSE column_name END FROM table_name;

Этот запрос также заменит значения NULL на 0. Если значение столбца не NULL, то запрос вернет его без изменений.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как распарсить строку в SQL


Для того чтобы распарсить строку в SQL, можно использовать различные функции и операторы, в зависимости от конкретных требований и формата строки.

Допустим, если строка содержит разделители, такие как запятые или пробелы, то можно использовать функцию SUBSTRING_INDEX() для извлечения определенного фрагмента строки.
Например, следующий запрос извлекает первое слово из строки Привет, мир:

SELECT SUBSTRING_INDEX('Привет, мир', ' ', 1);

Результатом запроса будет строка Привет.

Если же требуется извлечь определенный набор символов из строки, то можно использовать функцию SUBSTRING().
Например, следующий запрос извлекает первые три символа из строки Привет:

SELECT SUBSTRING('Привет', 1, 3);

Результатом запроса будет строка При.

Также можно использовать функцию REGEXP_SUBSTR() для извлечения определенного фрагмента строки, используя регулярные выражения.
Например, следующий запрос извлекает первое слово из строки Привет, мир:

SELECT REGEXP_SUBSTR('Привет, мир', '^[^ ]+');

Результатом запроса будет строка Привет.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как транспонировать в SQL?

Для транспонирования таблицы в SQL необходимо использовать оператор PIVOT или функцию MAX или CASE в сочетании с оператором GROUP BY.

Оператор PIVOT позволяет преобразовать строки в столбцы, а столбцы - в строки, используя значения одного столбца в качестве заголовков новых столбцов.

Синтаксис оператора PIVOT выглядит следующим образом:

SELECT *
FROM table_name
PIVOT
(
aggregate_function(column_to_aggregate)
FOR column_to_pivot IN (list_of_pivot_values)
) AS alias_name;


Здесь table_name - это имя таблицы, которую нужно транспонировать aggregate_function - это агрегатная функция, которую нужно применить к столбцу, column_to_aggregate - это имя столбца, который нужно агрегировать, column_to_pivot - это имя столбца, который нужно использовать для создания новых столбцов, list_of_pivot_values - это список значений столбца column_to_pivot, для которых нужно создать новые столбцы, alias_name - это имя для результирующей таблицы

Пример использования оператора PIVOT:

SELECT *
FROM (
SELECT product_id, year, sales
FROM sales_table
) AS source_table
PIVOT
(
SUM(sales)
FOR year IN (2023, 2022, 2021)
) AS pivot_table;


В этом примере мы выбираем данные из таблицы sales_table и используем оператор PIVOT, чтобы преобразовать строки в столбцы, используя годы продаж как заголовки новых столбцов.

Если оператор PIVOT недоступен в вашей версии SQL, вы можете использовать функцию MAX или CASE в сочетании с оператором GROUP BY.

Синтаксис функции MAX для транспонирования таблицы выглядит следующим образом:

SELECT column_to_group_by,
MAX(CASE column_to_pivot WHEN pivot_value_1 THEN value_to_show ELSE NULL END) AS pivot_value_1,
MAX(CASE column_to_pivot WHEN pivot_value_2 THEN value_to_show ELSE NULL END) AS pivot_value_2,
...
FROM table_name
GROUP BY column_to_group_by;


Здесь column_to_group_by - это имя столбца, по которому нужно группировать данные, column_to_pivot - это имя столбца, который нужно использовать для создания новых столбцов, pivot_value_1, pivot_value_2 - это значения столбца column_to_pivot, для которых нужно создать новые столбцы, value_to_show - это значение, которое нужно показать в новом столбце

Задача:

Дана таблица T:

id value
2 a
3 a
4 b
5 c


Необходимо сформировать запрос, который бы вернул следующий набор:

a b c
2 1 1


Пишите свое решение в комментариях👇

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Изучаем базы данных

Большой сборник теоретического материала по работе с базами данных.

основы: 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

Читать полностью…

Data Science. SQL hub

Бесплатный вебинар: “Разделяй и монетизируй: как построить отказоустойчивую архитектуру микросервисов с помощью Tarantool”

24 мая в 11:00 (МСК) не пропустите совместный вебинар VK Tech и компании “Иннодата”, на котором эксперты расскажут про особенности и возможности Tarantool для конкретных ИТ-проектов, а также поделятся конкретными кейсами успешного применения софта.

Вы узнаете:
● про архитектуру Tarantool для высокопроизводительных приложений;
● как правильно создать микросервисные, высокодоступные распределенные системы на базе Tarantool;
● как безболезненно интегрировать софт в ваш ИТ-проект;
● какие могут быть подводные камни при выборе Tarantool и как их избежать.

Вебинар будет полезен разработчикам, DevOps-инженерам, архитекторам, аналитикам и администраторам.

📌 Участие бесплатное - вам осталось только зарегистрироваться!

Читать полностью…

Data Science. SQL hub

🖥 Как проектировать запросы на изменение данных sql

При проектировании запросов на изменение данных в 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

Читать полностью…

Data Science. SQL hub

🖥 Большой справочник по SQL на русском

📌Скачать

Еще мы собрали для вас подборку свежих и актуальных книг, по всем языкам программирования.

👇 Папка с книгами:
/channel/addlist/BkskQciUW_FhNjEy

Сохраняем себе, чтобы не потерять

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Advanced SQL Injection Cheatsheet

Этот репозиторий содержит расширенную методологию всех типов SQL иньекций.

🖥 Github

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Подборка бесплатных курсов по SQL

Собрали для вас список бесплатных курсов по SQL от базовых до продвинутых.

1. SQL for Data Analysis
2. Интерактивный тренажер по SQL
3. Kaggle: Intro to SQL
4. Advanced SQL
5. Introduction to Structured Query Language (SQL)
6. Advanced Databases and SQL Querying
7. Databases and SQL for Data Science with Python
8. Oracle SQL – A Complete Introduction
9. Intro to SQL
10. Advanced SQL
11. Oracle SQL Basics
12. Beginners Guide to SQL
13. SQL for Data Science
14. Introduction to Databases and SQL Querying
15. Intro to Relational Databases

#SQL #курсы #бд

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 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.

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как в sql посчитать количество повторяющихся значений

Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY.

Предположим, у нас есть таблица "orders" с колонками "customer_name" и "order_date", и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:

SELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name


Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.

@sqlhub

Читать полностью…

Data Science. SQL hub

Прокачать скилл с нуля и устроиться работать аналитиком данных можно всего за 2 месяца. Учебная программа одобрена экспертным советом Томского государственного университета.

Почему мы?
📚  Официальный образовательный партнер Томского государственного университета
🏅  Преподаватели-практики с высокой экспертизой
🎓  Удостоверение о повышении квалификации установленного образца
🙍‍♀️  Поддержка тьютора в зачислении и обучении
🙌  Увлеченное коммьюнити и новые полезные контакты
👥  Сотни довольных выпускников прошлых лет

Приглашаем принять участие:
— Студентов старшего курса и выпускников
— Женщин в декрете и неработающих мам детей до 7 лет
— Безработных и лиц под риском увольнения
— Лиц 50 лет и старше, предпенсионеров
Подробные условия участия на сайте проекта.

У нас есть и другие программы!
👨‍💻 Тестировщик ПО
🖌 Графический дизайн
🎲 Системный аналитик
📊 Аналитик маркетплейсов

Подайте заявку и начните учиться уже через 2 недели!
https://clck.ru/34GSDU

Читать полностью…

Data Science. SQL hub

Try Redis — тренажёр для освоения Redis БД

Redis — это удобное и быстрое хранилище данных класса NoSQL, которое хранит и работает с данными типа «ключ — значение». Redis известен своей высокой производительностью, простотой и универсальностью.

А потренироваться в использовании вам поможет тренажёр Try Redis, который может генерировать запросы:

https://try.redis.io/

#redis

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как работает like в SQL

Думаю можно ответить так - оператор LIKE используется для сравнения значений в столбцах с шаблоном, который вы задаете. Он позволяет искать строки, которые содержат определенные символы или фразы.

Шаблон запроса:

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

Пример:

SELECT * FROM customers WHERE last_name LIKE 'Sm%';

Этот запрос вернет все строки из таблицы customers, в которых last_name начинается с букв "Sm".

Оператор LIKE чувствителен к регистру символов, то есть "A" и "a" будут восприниматься как разные символы. Однако, для того чтобы выполнить поиск, игнорируя регистр символов, можно использовать функцию UPPER или LOWER, например:

SELECT * FROM employees WHERE UPPER(first_name) LIKE '%JOHN%';

@sqlhub

Читать полностью…

Data Science. SQL hub

Как ЮMoney работает с данными в DWH на Microsoft SQL Server — ежегодный митап High SQL

Встречаемся 27 апреля в 18:00 по Москве.

Эксперты ЮMoney и Monopoly.Оnline расскажут, как строят и развивают базы данных в финтехе, поделятся опытом и разберут актуальные кейсы:

- валидация T-SQL-кода
- автотесты для OLAP-кубов
- миграция с MS SQL в PostgreSQL

Можно будет пообщаться с коллегами в чате и задать вопросы спикерам.

Регистрируйтесь, и мы пришлём вам ссылку на трансляцию и запись видео.

Читать полностью…

Data Science. SQL hub

🖥 6 простых способов использовать передовые методы SQL

SQL является основой анализа и преобразования данных, но в некоторых случаях требуется более сложный подход. Вот тут-то и пригодятся передовые методы SQL.

Читать

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Как написать SQL скрипт

SQL-скрипт - это файл с расширением .sql, содержащий набор инструкций SQL, которые могут выполняться на базе данных.

Для написания SQL-скрипта необходимо выполнить следующие шаги:

Определить цель скрипта - что он должен делать и какие данные необходимо извлечь или изменить.

Открыть текстовый редактор, такой как блокнот или специализированный редактор SQL-скриптов.

Написать инструкции SQL, используя правильный синтаксис и ключевые слова. Например, для создания таблицы в базе данных можно использовать следующий код:

CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
hire_date DATE
);


Сохранить файл с расширением .sql. В некоторых редакторах можно также выполнить скрипт непосредственно из редактора.

Запустить скрипт на базе данных. Это можно сделать с помощью интерфейса базы данных или с помощью командной строки, используя утилиты командной строки, такие как sqlcmd или mysql.

Убедиться, что скрипт выполнен успешно и не было ошибок.

Пример SQL-скрипта, который добавляет новую запись в таблицу employees:

INSERT INTO employees (id, first_name, last_name, email, hire_date)
VALUES (1, 'John', 'Doe', 'johndoe@email.com', '2022-01-01');

Этот скрипт добавляет нового сотрудника в таблицу employees с идентификатором 1, именем John, фамилией Doe, электронной почтой johndoe@email.com и датой найма 1 января 2022 года.

Задание:

Написать SQL скрипт, который создаст базу данных с иерархией таблиц (нормализированную) для такой сущности:
Человек: имя, фамилия, дата рождения, номера телефонов, домашний адрес, адрес работы, название фирмы, в которой работает.
Скрипт должен быть написан так, чтоб его можно было выполнить несколько раз без ошибок и дублирования (идемпотентность).

Пишите свое решение в комментариях👇

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Разбор ошибок. SQL запрос кросс-джойн двух таблиц без явного указания оператора JOIN

SELECT *
FROM orders, customers
WHERE orders.customer_id = customers.customer_id
AND customers.first_name = 'John'


Этот запрос выполняет кросс-джойн двух таблиц без явного указания оператора JOIN, что может привести к неожиданным результатам.

Кроме того, он не использует оператор WHERE для фильтрации строк, что означает, что он возвращает все строки, удовлетворяющие условию соединения. Это может привести к запросу к большому объему данных, из-за которых запрос будет выполняться медленно.

Наконец, условие фильтрации для идентификации клиента по имени не учитывает возможность наличия нескольких клиентов с одинаковыми именами в таблице customers.

@sqlhub

Читать полностью…
Subscribe to a channel