Базы данных (Data Base). По всем вопросам @evgenycarter
❗Надёжные выделенные серверы от 6 804 ₽
Снижаем цены на выделенные серверы. Теперь вы можете купить надёжный сервер со скидкой до 65%!
40+ конфигураций для разных задач ждут вас.
🔹Локации по всей России: Москва, Екатеринбург, Новосибирск, Хабаровск.
🔹 Сертифицированные дата-центры Tier III.
🔹 Встроенная защита от DDoS-атак.
🔹 Полный доступ в панель управления сервером IPMI.
Скидка действует только на новые серверы. Успейте сделать покупку до 14 апреля!
➡Выбрать сервер
Шпаргалка по SQL (Eng)
#db
👉 @database_info
⚡️Подписывайтесь на канал @jetinfosystems и будьте в курсе происходящего в Enterprise IT:
▪️Новости рынка и что о них думают эксперты
▪️Технические материалы и истории о масштабных IT-проектах
▪️Посты на жизненные темы и инсайты от айтишников
▪️Качественные мероприятия, никакого маркетинга
Вопрос по SQL с собеседования Airbnb
Найдите среднее количество ванных комнат и спален для каждого типа собственности в городе. Выведите результат вместе с названием города и типом недвижимости.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
Какие существуют операторы SQL?
операторы определения данных (Data Definition Language, DDL):
• CREATE
создает объект БД (базу, таблицу, представление, пользователя и т. д.),
• ALTER
изменяет объект,
• DROP
удаляет объект;
операторы манипуляции данными (Data Manipulation Language, DML):
• SELECT
выбирает данные, удовлетворяющие заданным условиям,
• INSERT
добавляет новые данные,
• UPDATE
изменяет существующие данные,
• DELETE
удаляет данные;
операторы определения доступа к данным (Data Control Language, DCL):
• GRANT
предоставляет пользователю (группе) разрешения на определенные операции с объектом,
• REVOKE
отзывает ранее выданные разрешения,
• DENY
задает запрет, имеющий приоритет над разрешением;
операторы управления транзакциями (Transaction Control Language, TCL):
• COMMIT
применяет транзакцию,
• ROLLBACK
откатывает все изменения, сделанные в контексте текущей транзакции,
• SAVEPOINT
разбивает транзакцию на более мелкие.
#db
👉 @database_info
Порядок выполнения SQL-запросов
#db
👉 @database_info
Распределенный SQL: альтернатива шардированию баз данных
https://dzone.com/articles/distributed-sql-an-alternative-to-sharding
#db
👉 @database_info
Вопрос с собеседования Amazon
Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 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
Шпаргалка по MySQL
Коннект к mysql по TCPmysql --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-tables
2). Перезапустить mysqld.
После этого пароль будут сброшен и можно ввести любой другой.
#db
👉 @database_info
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
Top 115 SQL Interview Questions You Must Prepare
https://www.edureka.co/blog/interview-questions/sql-interview-questions
👉 @database_info
⚡️Овладей силой продвинутой разработки на С++!
Пройди тест по C++ и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь демо-ролик о занятиях на курсе в подарок и доступ к открытым урокам курса🎁 .
➡️ ПРОЙТИ ТЕСТ: https://otus.pw/zINJ/
Хочешь протестировать учебный процесс заранее? Тогда приходи на открытый урок курса!
📢📢 08 февраля в 20:00 открытый урок «C++: STL Алгоритмы». Реклама. Информация о рекламодателе на сайте otus.ru
Шпаргалка по SQL в формате PNG
👉 @database_info
Жарим TOAST в PostgreSQL
В этой статье мы разберем, как PostgreSQL хранит большие (длинные) значения колонок, рассмотрим некоторые связанные с этим особенности и проблемы СУБД и предложим способы решения этих проблем. Посчитаем байтики и залезем в потроха СУБД. Будет интересно!
#PostgreSQL
👉 @database_info
Кэширование Планов Выполнения Запросов в SQL Server
👉 @database_info
Вопрос. Уровень: Junior
Есть категория «хитрых» вопросов, которые особенно любят задавать Junior-специалистам. Хотя чего уж там, любым специалистам.
Один из таких видов — вопросы по темам, на которые в повседневной жизни не обращаешь внимания и о которых не задумываешься. Просто делаешь на автомате, а на собеседовании это стреляет. Ну или на проекте, когда код начинает работать неправильно. Но это другая история…
Вопрос: Как оператор GROUP BY обрабатывает поля с NULL?
Если Вы не знаете ответ на этот вопрос, то после прочтения ответа обязательно проверьте свои проекты — может у вас где-то закралась ошибка?
Ответ
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:name | score
------|-------
Vasya | 5
Petya | 10
Petya | 3
Vasya | 4
NULL | 3
NULL | 8
Тогда запрос select sum(score) from table group by name
даст:name | score
------|-------
Vasya | 9
Petya | 13
NULL | 11
#db
👉 @database_info
Вопрос с собеседования Dropbox
Напишите запрос, вычисляющий разницу между самыми высокими зарплатами в отделах маркетинга и инженерии. Выведите только абсолютную разницу в зарплатах.
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
Администрирование 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
dbeaver — бесплатный универсальный инструмент для работы с базами данных и SQL-клиент.
https://github.com/dbeaver/dbeaver
#db
👉 @database_info
Самоучитель SQL для начинающих: Изучите SQL за 7 днейБесплатные уроки по SQL на английском
Базы данных можно найти почти во всех программных приложениях. SQL - это стандартный язык для запросов к базе данных. Этот самоучитель SQL для начинающих научит вас проектированию баз данных. Кроме того, здесь вы узнаете о базовом и продвинутом SQL.
https://www.guru99.com/sql.html
#db
👉 @database_info
Вопрос с собеседования Microsoft
Найдите общее количество загрузок для платных и бесплатных пользователей по дате. Включайте только те записи, в которых неоплачиваемые клиенты имеют больше загрузок, чем платные клиенты. Вывод должен быть сначала отсортирован по самой ранней дате и содержать дату в 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
Рекомендуем к прочтению книгу Александра Бындю "Антихрупкость в IT"
Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.
В её основе — описание работающих практик, примеры из реальных проектов, анализ ошибок и выводы. В книге собраны рекомендации для владельцев бизнеса и разработчиков. Первые приобретут систематизированные знания о том, как правильно взаимодействовать с IT, а вторые — как делать хорошо и не делать плохо.
Сайт издания
Ознакомиться с книгой
8 книг по PostgreSQL: от баз данных с «нуля» для самоучек до руководства про БД в облаках
В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.
Подготовили подборку полезных книг для тех, кто только начал или собирается работать с PostgreSQL. В нее вошли актуальные руководства на русском и английском языках. Если знаете еще одну-две отличных книги, смело рекомендуйте в комментариях.
https://habr.com/ru/company/selectel/blog/713714/
👉 @database_info
SQL и NoSQL. Правда ли одно лучше другого?
Базы данных (БД) существуют с первых дней программирования, а появились они ещё раньше. Это — неотъемлемые части любых приложений. Хорошо спроектированная БД — это один из важнейших компонентов, влияющих на производительность программных проектов. Из-за этого множество архитекторов программных решений исследовали массу подходов к управлению данными, пытаясь выяснить то, какие из этих подходов работоспособны в определённых сценариях, а какие — нет. Выбор подходящей архитектуры БД обычно сводится к выбору между SQL и NoSQL, между реляционными и нереляционными базами данных. А иногда в одном проекте используют и то, и другое.
Rus https://habr.com/ru/company/wunderfund/blog/691178/
Eng enjonpodrimaj/sql-vs-nosql-e3887c58664d" rel="nofollow">https://medium.com/@enjonpodrimaj/sql-vs-nosql-e3887c58664d
#db
👉 @database_info
Базы данных
Введение
Введение (практика)
Моделирование БД
Моделирование БД (практика)
Реляционная модель и функциональные зависимости
Реляционная модель и функциональные зависимости (практика)
Нормализация баз данных
Нормализация баз данных (практика)
Реляционная алгебра
Реляционная алгебра (практика)
источник
#db
👉 @database_info
Руководство по стилю SQL · SQL Style Guide
Рекомендации, описанные в этом руководстве, во многом пересекаются с описанными в книге Джо Селко «Стиль программирования Джо Селко на SQL» (оригинал: SQL Programming Style). Это, в частности, найдут полезным те, кто уже знаком с этой книгой. Тем не менее автор этого руководства в некоторых аспектах более категоричен, нежели Джо Селко, а в других, напротив, более гибок. И, конечно, нельзя не отметить, что это руководство значительно короче и лаконичнее книги Селко — здесь вы не встретите ни весёлых историй из жизни, наглядно объясняющих, как и почему лучше не делать, ни длинных повествований, мотивирующих на использование той или иной рекомендации.
https://www.sqlstyle.guide/ru/
👉 @database_info
Neo4j. Вместо тысячи join-ов…
Если вы столкнулись с задачей хранения сильно связанных данных, то отличным вариантом будет использовать графовую модель данных. Мы в Текфорс сделали именно так. Почему - разберем в этой статье, где я:
приведу общую информацию о том, где применяются графовые БД;
расскажу про Neo4j как один из примеров такой БД;
покажу на примере как использовать Neo4j через Spring Data.
Статья будет полезна тем, кто:
хочет расширить кругозор в плане графовых БД;
сомневается в правильности выбора типа БД;
ищет вводный материал по работе с Spring Data Neo4J.
https://habr.com/ru/post/711646/
👉 @database_info
Новая схема SQL Join-ов
Учу SQL и понимаю, что схема Join-ов основанная на пересекающихся кругах не корректна. Результатом джойнов всегда идет увеличение таблицы в ширь. А по схеме с кругами площадь кругов почти везде не увеличивается. И также круговая схема не показывает заполнение NULL-ами при LEFT и RIGHT джойнах. Предлагаю схему на прямоугольниках, где закрашенный красный это результирующая таблица джойнов, черный это заполнение NULL-ами. Серые прямоугольники оставлены просто для наглядности и ничего не означают.
https://telegra.ph/Novaya-shema-SQL-Join-ov-01-16
👉 @database_info
SQL Tutorial - Full Database Course for Beginners
⭐️ Contents ⭐
⌨️ (0:00) Introduction
⌨️ (2:36) What is a Database?
⌨️ (23:10) Tables & Keys
⌨️ (43:31) SQL Basics
⌨️ (52:26) MySQL Windows Installation
⌨️ (1:01:59) MySQL Mac Installation
⌨️ (1:15:49) Creating Tables
⌨️ (1:31:05) Inserting Data
⌨️ (1:38:17) Constraints
⌨️ (1:48:11) Update & Delete
⌨️ (1:56:11) Basic Queries
⌨️ (2:08:37) Company Database Intro
⌨️ (2:14:05) Creating Company Database
⌨️ (2:30:27 ) More Basic Queries
⌨️ (2:26:24) Functions
⌨️ (2:45:13) Wildcards
⌨️ (2:53:53) Union
⌨️ (3:01:36) Joins
⌨️ (3:11:49) Nested Queries
⌨️ (3:21:52) On Delete
⌨️ (3:30:05) Triggers
⌨️ (3:42:12) ER Diagrams Intro
⌨️ (3:55:53) Designing an ER Diagram
⌨️ (4:08:34) Converting ER Diagrams to Schemas
https://www.youtube.com/watch?app=desktop&v=HXV3zeQKqGY
👉 @database_info
Управление базой данных PostgreSQL с помощью pgAdmin на Ubuntu
Настроить базу данных сложно, но управлять ею еще сложнее. Вот как установить pgAdmin на Ubuntu для управления базой данных PostgreSQL.
https://bookflow.ru/upravlenie-bazoj-dannyh-postgresql-s-pomoshhyu-pgadmin-na-ubuntu/
👉 @database_info