#вопрос56
Предположим, есть две таблицы Emp (ID, name, DeptId), Dept(ID, name). В таблице Emp 10 записей, а в Dept – 5. Сколько строк будет отображаться в результате следующего SQL-запроса:
Решение будет вечером.
#вопросы #собеседование
Предположим, есть две таблицы Emp (ID, name, DeptId), Dept(ID, name). В таблице Emp 10 записей, а в Dept – 5. Сколько строк будет отображаться в результате следующего SQL-запроса:
Select * From Emp, Dept Решение будет вечером.
#вопросы #собеседование
Ответ на #вопрос56
Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.
#вопросы #собеседование
Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.
#вопросы #собеседование
👍1
Решение сегодняшней задачи на логику и мышление.
Сперва наполните пятилитровое ведро. Далее перелейте из него воду в трехлитровое так, чтобы в пятилитровом осталось 2 л воды (полностью заполнив трехлитровое). Вылейте из меньшего ведра всю воду и перелейте в него оставшиеся в большем 2 л. Снова наполните пятилитровое и перелейте один литр в трехлитровое (оно как раз заполнится): так в большем ведре останется 4 л воды.
#логика
Сперва наполните пятилитровое ведро. Далее перелейте из него воду в трехлитровое так, чтобы в пятилитровом осталось 2 л воды (полностью заполнив трехлитровое). Вылейте из меньшего ведра всю воду и перелейте в него оставшиеся в большем 2 л. Снова наполните пятилитровое и перелейте один литр в трехлитровое (оно как раз заполнится): так в большем ведре останется 4 л воды.
#логика
👍7
Трюк дня. Что такое миграции и как создать миграции бд postgresql?
Миграции - инструмент для перевода базы из одного состояния в другое. Своего рода git для бд.
Обычно когда просят написать миграцию, то имеют ввиду SQL-файл, выполнение которого переведёт схему базы в новое состояние. То есть файл с инструкциями типа create table, alter table и тд. Часто необходим и второй файл - файл отката, который вернёт всё к исходному состоянию.
Так как последовательность применения таких файлов очень важана (например, в первой миграции создали таблицу, а во второй модифицируем её), то имена файлов содержат возрастающий идентификатор миграции. Часто этот идентификатор - просто дата и время миграции:
#tips
Миграции - инструмент для перевода базы из одного состояния в другое. Своего рода git для бд.
Обычно когда просят написать миграцию, то имеют ввиду SQL-файл, выполнение которого переведёт схему базы в новое состояние. То есть файл с инструкциями типа create table, alter table и тд. Часто необходим и второй файл - файл отката, который вернёт всё к исходному состоянию.
Так как последовательность применения таких файлов очень важана (например, в первой миграции создали таблицу, а во второй модифицируем её), то имена файлов содержат возрастающий идентификатор миграции. Часто этот идентификатор - просто дата и время миграции:
migrations/Инструмент миграции применяет SQL-файл и помечает (обычно в той же базе данных, в своей служебной табличке), что миграция с этим идентификатором уже применена. При повторном запуске применённые миграции будут пропущены. Соответственно применённую миграцию можно откатить, найдя down-файл с нужным идентификатором.
- 20220728102400_create-foo-table_up.sql
- 20220728102400_create-foo-table_down.sql
#tips
👍9🔥2🤔1🥱1
Каков порядок выполнения операторов AND и OR?
Anonymous Quiz
54%
Сначала выполняется AND, затем OR
9%
Сначала выполняется OR, затем AND
28%
Это зависит от того, какой из операторов стоит первым
8%
Операторы AND и OR выполняются одновременно
#вопрос57
Напишите SQL-запрос, с применением UNION ALL (не UNION), использующий WHERE для устранения дубликатов.
Решение будет вечером.
#вопросы #собеседование
Напишите SQL-запрос, с применением UNION ALL (не UNION), использующий WHERE для устранения дубликатов.
Решение будет вечером.
#вопросы #собеседование
Ответ на #вопрос57
#вопросы #собеседование
SELECT * FROM mytable WHERE a=X UNION ALL SELECT * FROM mytable WHERE b=Y AND a!=XКлючевое место – AND a!=X. Это дает вам все плюшки UNION DISTINCT, избегая при этом просадки производительности.
#вопросы #собеседование
❤2
Решение сегодняшней задачи на логику и мышление.
Каждый номер страницы имеет цифру на месте единицы, так что есть N цифр, расположенных на месте единицы. А вот после 9 начинаются двухзначные числа, и нам нужно добавить N-9 цифр. То же самое с трехзначными, которые начинаются после 99: добавляем N-99 цифр. Продолжать нет смысла, так как сумма не предполагает более 999 страниц. Получаем следующую формулу:
N + (N-9) + (N-99) = 1095
Далее просто решаем:
3N - 108 = 1095
3N = 1203
N = 401
Итого 401 страница.
#логика
Каждый номер страницы имеет цифру на месте единицы, так что есть N цифр, расположенных на месте единицы. А вот после 9 начинаются двухзначные числа, и нам нужно добавить N-9 цифр. То же самое с трехзначными, которые начинаются после 99: добавляем N-99 цифр. Продолжать нет смысла, так как сумма не предполагает более 999 страниц. Получаем следующую формулу:
N + (N-9) + (N-99) = 1095
Далее просто решаем:
3N - 108 = 1095
3N = 1203
N = 401
Итого 401 страница.
#логика
👍4❤2🤯2
JOIN (соединение таблиц) невозможно осуществить в запросе без:
Anonymous Quiz
33%
ключевого слова JOIN
5%
слова INNER перед JOIN
58%
перечисления соединяемых таблиц
5%
псевдонимов соединяемых таблиц
Что значат цифры в описании типа данных колонки DECIMAL(5,2)
Anonymous Quiz
1%
Всего 7 числовых знаков, из них 0 на дробную часть
3%
Всего 7 числовых знаков, из них 5 на дробную часть
39%
Всего 7 числовых знаков, из них 2 на дробную часть
57%
Всего 5 числовых знаков, из них 2 на дробную часть
😐2
Ответ на #вопрос58
NVARCHAR способен хранить значения в формате Unicode – каждый символ занимает 2 байта, а кодировка занимает 65 536 символов.
VARCHAR хранит значения в формате ASCII – каждый символ занимает байт, а кодировка занимает 256 символов.
#вопросы #собеседование
NVARCHAR способен хранить значения в формате Unicode – каждый символ занимает 2 байта, а кодировка занимает 65 536 символов.
VARCHAR хранит значения в формате ASCII – каждый символ занимает байт, а кодировка занимает 256 символов.
#вопросы #собеседование
👍1🤔1
Трюк дня. Как быстро заполнить таблицу 1 000 000 ТЕСТОВЫХ записей?
Создадим таблицу samples с точно такой же структурой, что и таблица tests. Заполним ее 10 тестовыми записями.
10 x 10 x 10 x 10 x 10 x 10 = 1 000 000 записей
Если в таблице samples будет 100 записей, для получения 1 000 000 записей будет достаточно соединений трех таких таблиц, если в samples будет 1000 записей, будет достаточно объединить таблицу саму с собой один раз.
Вставить результат в целевую таблицу tests можно при помощи оператора INSERT ... SELECT ...
Создадим таблицу samples с точно такой же структурой, что и таблица tests. Заполним ее 10 тестовыми записями.
CREATE TABLE samples (
title varchar(256) NOT NULL
);
INSERT INTO
samples (title)
VALUES
('8iRDgsEIq4GmOs32FnHM3b3cH60n3mm8070'),
('UAmsXyrKgApfHMyV2kUrYqLphN99Q7TJSoe'),
('OX1qiFeTigcOTO5JVvgFk7MRDgjgatkTqwL'),
('CT9Kfbplp4QC87G32UIKlkGd31jdjt4qH4f'),
('WsAhjBL5tAgihYZBtX97FNUmEpXavhb4CRw'),
('LwaitJ5dieXyixEmjJXhhqDY8Zg9Tu5ecoV'),
('KpHsnqrcMCpkRxkGNMjEJV0jFaeucPtbLWe'),
('t2GSIDOvW14eMlroAWrRR6xU5DoeNUXY0lD'),
('rSvrEPxR8rcw7QYjXfeNdyf3LpqYNHu3W7a'),
('6liUHPkjnygSatoUB4juZ5TaJZjaxHpR4BL');
Для того, чтобы превратить 10 записей из таблицы samples в 1 000 000 записей произведем самообъединение таблицы samples шесть разSELECT
fst.title
FROM
samples AS fst,
samples AS snd,
samples AS thd,
samples AS fth,
samples AS fif,
samples AS sth;
Оператор JOIN, который в SQL может быть заменен обычной запятой, осуществляет декартово соединение таблиц, когда каждой записи одной таблицы сопоставляется каждая запись другой таблицы. Таким образом, если в одной таблице 10 записей и в другой таблице 10 записей, результирующая таблица, полученная их соединением через JOIN будет содержать 100 записей. Как нетрудно увидеть10 x 10 x 10 x 10 x 10 x 10 = 1 000 000 записей
Если в таблице samples будет 100 записей, для получения 1 000 000 записей будет достаточно соединений трех таких таблиц, если в samples будет 1000 записей, будет достаточно объединить таблицу саму с собой один раз.
Вставить результат в целевую таблицу tests можно при помощи оператора INSERT ... SELECT ...
INSERT INTO
tests
SELECT
fst.title
FROM
samples AS fst,
samples AS snd,
samples AS thd,
samples AS fth,
samples AS fif,
samples AS sth;
#tips🤡8👍3
Как выбрать все записи из таблицы Persons, где значение поля LastName в алфавитном порядке находится между значениями "Hansen" и "Pettersen"?
Anonymous Quiz
55%
SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen'
15%
SELECT * FROM Persons WHERE LastName>'Hansen' AND LastName<'Pettersen'
11%
SELECT * FROM Persons WHERE LastName>='Hansen' AND LastName<='Pettersen'
12%
SELECT * FROM Persons WHERE LastName ASC 'Hansen' AND 'Pettersen'
7%
Посмотреть ответ
💩2