Database Flashcards
- Какие СУБД вы знаете?
MySQL, PostgreSQL, SQLite, Mariadb
- В чем различия SQL и NoSQL?
Стуруктуры данных и их типы - реляционные БД используют строгие схемы данных, NoSQL БД допускают любой тип данных
Запросы - вне зависимости от типа лицензии, реляционные базы данных в той или иной мере соответствуют стандартам SQL, поэтому данные из них можно получать при помощи языка SQL. NoSQL БД используют специфические способы запросов к данным.
Масштабируемость - оба эти типа СУБД довольно легко поддаются вертикальному масштабированию (т.е. увеличение системных ресурсов). Тем не менее, так как NoSQL это более современный продукт, именно такие СУБД предлагают более простые способы горизонтального масштабирования (т.е. создание кластера из нескольких машин).
Надежность - когда дело доходит до сохранности данных и гарантии выполнения транзакций SQL БД по прежнему занимают лидирующие позиции.
- LEFT и INNER JOIN.
Простой JOIN - тоже самое что INNER JOIN и означает показывать только общие записи обоих таблиц. Каким образом записи считаются общими определяется полями в join-выражении. Например следующая запись
FROM t1 JOIN t2 on t1.id = t2.id
означает что будут показаны записи с одинаковыми id, существующие в обоих таблицах.
LEFT JOIN (или LEFT OUTER JOIN) означает показывать все записи из левой таблицы (той, которая идет первой в join-выражении) независимо от наличия соответствующих записей в правой таблице.
t1 k1 d1 1 1 2 2 3 3 4 4
t2 k1 d1 1 10 2 20 5 50 6 60
select d1, d2
from t1 inner join t2
on t1.k1 = t2.k2
d1 d2
1 10
2 20
select d1, d2
from t1 left join t2
on t1.k1 = t2.k2
1 10
2 20
3 null
4 null