Media is too big
VIEW IN TELEGRAM
NoSQL для начинающих 👨💻 На примере MongoDB
00:00 - Что такое NoSQL и где он применяется?
04:18 - Основные виды NoSQL
06:04 - Дополнительные темы
09:31 - SQL vs NoSQL
11:53 - Немного о MongoDB
14:37 - Практика. Моделирование структуры. Работа с shell и Compass
#db
👉 @database_info
00:00 - Что такое NoSQL и где он применяется?
04:18 - Основные виды NoSQL
06:04 - Дополнительные темы
09:31 - SQL vs NoSQL
11:53 - Немного о MongoDB
14:37 - Практика. Моделирование структуры. Работа с shell и Compass
#db
👉 @database_info
👍4
SQL и NoSQL. Правда ли одно лучше другого?
Базы данных (БД) существуют с первых дней программирования, а появились они ещё раньше. Это — неотъемлемые части любых приложений. Хорошо спроектированная БД — это один из важнейших компонентов, влияющих на производительность программных проектов. Из-за этого множество архитекторов программных решений исследовали массу подходов к управлению данными, пытаясь выяснить то, какие из этих подходов работоспособны в определённых сценариях, а какие — нет. Выбор подходящей архитектуры БД обычно сводится к выбору между SQL и NoSQL, между реляционными и нереляционными базами данных. А иногда в одном проекте используют и то, и другое.
Rus https://habr.com/ru/company/wunderfund/blog/691178/
Eng https://medium.com/@enjonpodrimaj/sql-vs-nosql-e3887c58664d
#db
👉 @database_info
Базы данных (БД) существуют с первых дней программирования, а появились они ещё раньше. Это — неотъемлемые части любых приложений. Хорошо спроектированная БД — это один из важнейших компонентов, влияющих на производительность программных проектов. Из-за этого множество архитекторов программных решений исследовали массу подходов к управлению данными, пытаясь выяснить то, какие из этих подходов работоспособны в определённых сценариях, а какие — нет. Выбор подходящей архитектуры БД обычно сводится к выбору между SQL и NoSQL, между реляционными и нереляционными базами данных. А иногда в одном проекте используют и то, и другое.
Rus https://habr.com/ru/company/wunderfund/blog/691178/
Eng https://medium.com/@enjonpodrimaj/sql-vs-nosql-e3887c58664d
#db
👉 @database_info
👍3
Шпаргалка по MySQL
Коннект к mysql по TCP
Создать БД
Добавить пользователя
Дать права пользователю на БД
на удаленный доступ:
на удаленный доступ на все таблицы:
сменить пароль пользователю
что бы права вступили в силу:
Посмотреть права пользователя
Если нужно залить большой дамп, то в /etc/my.cnf в секцию [mysqld] добавить:
Работа с кластером мастер-слейв
посмотреть состояние мастера:
посмотреть состояние слейва:
Посмотреть структуры таблицы в БД
или
Посмотреть состояние таблиц в БД
Сброс пароля mysql
1). В /etc/mycnf в секцию [mysqld] вставляем строку
2). Перезапустить mysqld.
После этого пароль будут сброшен и можно ввести любой другой.
#db
👉 @database_info
Коннект к mysql по TCP
mysql --user root --host localhost --port 3306 --protocol tcpСоздать БД
CREATE DATABASE $DB_NAME character set utf8;Добавить пользователя
CREATE USER $DB_USER@localhost IDENTIFIED BY '$DB_PASSWORD';Дать права пользователю на БД
GRANT ALL ON $DB_NAME.* TO $DB_USER@localhost;на удаленный доступ:
GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@'%' IDENTIFIED BY '$DB_PASSWORD';на удаленный доступ на все таблицы:
grant all privileges on *.* to DB_USER@'%';сменить пароль пользователю
SET PASSWORD FOR логин@localhost = PASSWORD('пароль'); SET PASSWORD FOR логин@"%" = PASSWORD('пароль');что бы права вступили в силу:
flush privileges;Посмотреть права пользователя
SHOW GRANTS for $DB_USER@localhost;Если нужно залить большой дамп, то в /etc/my.cnf в секцию [mysqld] добавить:
max_allowed_packet = 16MРабота с кластером мастер-слейв
посмотреть состояние мастера:
show master status;посмотреть состояние слейва:
SHOW SLAVE STATUS\GПосмотреть структуры таблицы в БД
describe <table_name>;или
SHOW CREATE TABLE <table_name>;Посмотреть состояние таблиц в БД
SHOW TABLE STATUS;Сброс пароля mysql
1). В /etc/mycnf в секцию [mysqld] вставляем строку
skip-grant-tables2). Перезапустить mysqld.
После этого пароль будут сброшен и можно ввести любой другой.
#db
👉 @database_info
👍11❤1🔥1
8 книг по PostgreSQL: от баз данных с «нуля» для самоучек до руководства про БД в облаках
В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.
Подготовили подборку полезных книг для тех, кто только начал или собирается работать с PostgreSQL. В нее вошли актуальные руководства на русском и английском языках. Если знаете еще одну-две отличных книги, смело рекомендуйте в комментариях.
https://habr.com/ru/company/selectel/blog/713714/
👉 @database_info
В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.
Подготовили подборку полезных книг для тех, кто только начал или собирается работать с PostgreSQL. В нее вошли актуальные руководства на русском и английском языках. Если знаете еще одну-две отличных книги, смело рекомендуйте в комментариях.
https://habr.com/ru/company/selectel/blog/713714/
👉 @database_info
👍8
Вопрос с собеседования Amazon
Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.
Ответ
#db
👉 @database_info
Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.
amazon_transactions
id:int
user_id:int
item:varchar
created_at:datetime
revenue:intОтвет
SELECT
DISTINCT(a.user_id)
FROM amazon_transactions a
JOIN amazon_transactions b
ON a.user_id = b.user_id
WHERE a.created_at - b.created_at BETWEEN 0 AND 7
AND a.id != b.id#db
👉 @database_info
👍16
Рекомендуем к прочтению книгу Александра Бындю "Антихрупкость в IT"
Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.
В её основе — описание работающих практик, примеры из реальных проектов, анализ ошибок и выводы. В книге собраны рекомендации для владельцев бизнеса и разработчиков. Первые приобретут систематизированные знания о том, как правильно взаимодействовать с IT, а вторые — как делать хорошо и не делать плохо.
Сайт издания
Ознакомиться с книгой
Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.
В её основе — описание работающих практик, примеры из реальных проектов, анализ ошибок и выводы. В книге собраны рекомендации для владельцев бизнеса и разработчиков. Первые приобретут систематизированные знания о том, как правильно взаимодействовать с IT, а вторые — как делать хорошо и не делать плохо.
Сайт издания
Ознакомиться с книгой
Распределенный SQL: альтернатива шардированию баз данных
https://dzone.com/articles/distributed-sql-an-alternative-to-sharding
#db
👉 @database_info
https://dzone.com/articles/distributed-sql-an-alternative-to-sharding
#db
👉 @database_info
👍3
Вопрос с собеседования Microsoft
Найдите общее количество загрузок для платных и бесплатных пользователей по дате. Включайте только те записи, в которых неоплачиваемые клиенты имеют больше загрузок, чем платные клиенты. Вывод должен быть сначала отсортирован по самой ранней дате и содержать дату в 3 столбцах, бесплатные загрузки, платные загрузки.
Ответ
👉 @database_info
Найдите общее количество загрузок для платных и бесплатных пользователей по дате. Включайте только те записи, в которых неоплачиваемые клиенты имеют больше загрузок, чем платные клиенты. Вывод должен быть сначала отсортирован по самой ранней дате и содержать дату в 3 столбцах, бесплатные загрузки, платные загрузки.
ms_user_dimension
user_id:int
acc_id:int
ms_acc_dimension
acc_id:int
paying_customer:varchar
ms_download_facts
date:datetime
user_id:int
downloads:intОтвет
with out AS(select date
, Sum (downloads) Filter(Where paying_customer = 'no') as non_paying
, Sum (downloads) Filter(Where paying_customer = 'yes') as paying
From ms_download_facts fact
Left Join ms_user_dimension a
on fact.user_id = a.user_id
Join ms_acc_dimension acc
on a.acc_id = acc.acc_id
Group by date
order by date)
Select date , non_paying , paying
From out
Where non_paying > paying👉 @database_info
👍8
Самоучитель SQL для начинающих: Изучите SQL за 7 дней
Базы данных можно найти почти во всех программных приложениях. SQL - это стандартный язык для запросов к базе данных. Этот самоучитель SQL для начинающих научит вас проектированию баз данных. Кроме того, здесь вы узнаете о базовом и продвинутом SQL.
https://www.guru99.com/sql.html
#db
👉 @database_info
Бесплатные уроки по SQL на английскомБазы данных можно найти почти во всех программных приложениях. SQL - это стандартный язык для запросов к базе данных. Этот самоучитель SQL для начинающих научит вас проектированию баз данных. Кроме того, здесь вы узнаете о базовом и продвинутом SQL.
https://www.guru99.com/sql.html
#db
👉 @database_info
👍8
Какие существуют операторы SQL?
операторы определения данных (Data Definition Language, DDL):
•
•
•
операторы манипуляции данными (Data Manipulation Language, DML):
•
• I
•
•
операторы определения доступа к данным (Data Control Language, DCL):
•
•
•
операторы управления транзакциями (Transaction Control Language, TCL):
•
•
•
#db
👉 @database_info
операторы определения данных (Data Definition Language, DDL):
•
CREATE создает объект БД (базу, таблицу, представление, пользователя и т. д.),•
ALTER изменяет объект,•
DROP удаляет объект;операторы манипуляции данными (Data Manipulation Language, DML):
•
SELECT выбирает данные, удовлетворяющие заданным условиям,• I
NSERT добавляет новые данные,•
UPDATE изменяет существующие данные,•
DELETE удаляет данные;операторы определения доступа к данным (Data Control Language, DCL):
•
GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,•
REVOKE отзывает ранее выданные разрешения,•
DENY задает запрет, имеющий приоритет над разрешением;операторы управления транзакциями (Transaction Control Language, TCL):
•
COMMIT применяет транзакцию,•
ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,•
SAVEPOINT разбивает транзакцию на более мелкие.#db
👉 @database_info
👍10
dbeaver — бесплатный универсальный инструмент для работы с базами данных и SQL-клиент.
https://github.com/dbeaver/dbeaver
#db
👉 @database_info
https://github.com/dbeaver/dbeaver
#db
👉 @database_info
👍14
Вопрос по SQL с собеседования Airbnb
Найдите среднее количество ванных комнат и спален для каждого типа собственности в городе. Выведите результат вместе с названием города и типом недвижимости.
Ответ
#db
👉 @database_info
Найдите среднее количество ванных комнат и спален для каждого типа собственности в городе. Выведите результат вместе с названием города и типом недвижимости.
airbnb_search_details
id:int
price:float
property_type:varchar
room_type:varchar
amenities:varchar
accommodates:int
bathrooms:int
bed_type:varchar
cancellation_policy:varchar
cleaning_fee:bool
city:varchar
host_identity_verified:varchar
host_response_rate:varchar
host_since:datetime
neighbourhood:varchar
number_of_reviews:int
review_scores_rating:float
zipcode:int
bedrooms:int
beds:intОтвет
SELECT city, property_type, avg(bedrooms) as n_bedrooms_avg, avg(bathrooms) as n_bathrooms_avg
FROM airbnb_search_details
GROUP BY city, property_type
ORDER BY city#db
👉 @database_info
👍7😁2
Администрирование SQL Server
Администрирование SQL Server ч.1. Базы данных.
BackUp/Restore баз данных. Администрирование SQL Server ч.2
Администрирование SQL Server ч.3 Login, User.
Администрирование SQL Server ч.4. Роли
Импорт/Экспорт данных SQL. Администрирование SQL Server ч.5
Установка SQL Server. Администрирование SQL Server ч.6.
SQL Profiler. Администрирование SQL Server ч.7
План запроса SQL. Администрирование SQL Server ч.8
Журнал транзакций ms sql
Поддержка баз данных в Microsoft SQL Server 2008 R2 day1
Все видео доступны на youtube
#db
👉 @database_info
Администрирование SQL Server ч.1. Базы данных.
BackUp/Restore баз данных. Администрирование SQL Server ч.2
Администрирование SQL Server ч.3 Login, User.
Администрирование SQL Server ч.4. Роли
Импорт/Экспорт данных SQL. Администрирование SQL Server ч.5
Установка SQL Server. Администрирование SQL Server ч.6.
SQL Profiler. Администрирование SQL Server ч.7
План запроса SQL. Администрирование SQL Server ч.8
Журнал транзакций ms sql
Поддержка баз данных в Microsoft SQL Server 2008 R2 day1
Все видео доступны на youtube
#db
👉 @database_info
👍6
Вопрос с собеседования Dropbox
Напишите запрос, вычисляющий разницу между самыми высокими зарплатами в отделах маркетинга и инженерии. Выведите только абсолютную разницу в зарплатах.
Ответ:
#db
👉 @database_info
Напишите запрос, вычисляющий разницу между самыми высокими зарплатами в отделах маркетинга и инженерии. Выведите только абсолютную разницу в зарплатах.
db_employee
id:int
first_name:varchar
last_name:varchar
salary:int
department_id:int
db_dept
id:int
department:varchar
Ответ:
select abs(max(salary) filter (where department = 'marketing') - max(salary) filter (where department = 'engineering'))
from db_employee emp
LEFT JOIN db_dept dept on emp.department_id = dept.id#db
👉 @database_info
👍4