После большого количества изменений в таблицы БД чаще всего быстрее выполнится команда
Anonymous Quiz
71%
COMMIT
29%
ROLLBACK
❤2😁2🔥1
Всем привет!
Приглашаю на трёхдневный SQL тренинг-практику по анализу данных!
1. Научимся проводить анализ возможных результатов при соединении таблиц разными типами джоинов (решение классических задач собеседования, поиск минимального и максимального количества строк).
2. Прорешаем задачи на новой базе с больше чем с одним соединением один-ко-многим. Уделим внимание способам решения в зависимости от требований.
3. Прорешаем задачи на группировку данных, использование HAVING.
4. Повторим использование подзапросов в блоках WHERE, SELECT, FROM и JOIN, чтобы мы могли легко их использовать при решении ежедневных задач.
5. Повторим EXISTS/NOT EXISTS и IN/NOT IN, вспомним что когда эффективнее использовать.
6. Повторим использование CTE.
7. Изучим/вспомним операторы ANY и ALL для работы с подзапросами. Посмотрим какие задачи ими легко решать.
8. Разберем использование оператора CASE в разных блоках SQL команд.
9. Научимся пользоваться оператором PIVOT.
10. Повторим использование аналитических (оконных) функций для решения разных задач: ранжирования и поиска top n строк, анализа данных разных временных интервалов и работа с пропусками данных, расчета скользящего среднего и многое другое.
Заниматься будем через Zoom. Всего три он-лайн встречи по часу.
График обучения: сб, вс (10:30 - 11:30) + сб.
Начинаем: 20 декабря!
Стоимость: 1.900 ₽
Записаться и оплатить тут.
Приглашаю на трёхдневный SQL тренинг-практику по анализу данных!
1. Научимся проводить анализ возможных результатов при соединении таблиц разными типами джоинов (решение классических задач собеседования, поиск минимального и максимального количества строк).
2. Прорешаем задачи на новой базе с больше чем с одним соединением один-ко-многим. Уделим внимание способам решения в зависимости от требований.
3. Прорешаем задачи на группировку данных, использование HAVING.
4. Повторим использование подзапросов в блоках WHERE, SELECT, FROM и JOIN, чтобы мы могли легко их использовать при решении ежедневных задач.
5. Повторим EXISTS/NOT EXISTS и IN/NOT IN, вспомним что когда эффективнее использовать.
6. Повторим использование CTE.
7. Изучим/вспомним операторы ANY и ALL для работы с подзапросами. Посмотрим какие задачи ими легко решать.
8. Разберем использование оператора CASE в разных блоках SQL команд.
9. Научимся пользоваться оператором PIVOT.
10. Повторим использование аналитических (оконных) функций для решения разных задач: ранжирования и поиска top n строк, анализа данных разных временных интервалов и работа с пропусками данных, расчета скользящего среднего и многое другое.
Заниматься будем через Zoom. Всего три он-лайн встречи по часу.
График обучения: сб, вс (10:30 - 11:30) + сб.
Начинаем: 20 декабря!
Стоимость: 1.900 ₽
Записаться и оплатить тут.
❤1
Таблица CLIENTS имеет структуру:
CREATE TABLE CLIENTS (
ID INT AUTO_INCREMENT PRIMARY KEY,
DATE_CREATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
NAME VARCHAR(100),
PHONE VARCHAR(20),
NOTE VARCHAR(500));
CREATE TABLE CLIENTS (
ID INT AUTO_INCREMENT PRIMARY KEY,
DATE_CREATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
NAME VARCHAR(100),
PHONE VARCHAR(20),
NOTE VARCHAR(500));
При выполнении команды:
INSERT INTO CLIENTS
(NAME, PHONE, DATE_CREATE) VALUES ('АО Открытка', '8(495)774-34-21')
INSERT INTO CLIENTS
(NAME, PHONE, DATE_CREATE) VALUES ('АО Открытка', '8(495)774-34-21')
Anonymous Quiz
9%
вставится запись в таблицу CLIENTS со значением NULL в поле DATE_CREATE
38%
вставится запись в таблицу CLIENTS со значением текущей даты и времени в поле DATE_CREATE
53%
запись в таблицу CLIENTS не вставится, будет SQL ошибка
❤3
В таблице docs четыре строки:
id doc_info
1 p-file
2 pt-file
3 pc-file
4 t-file
id doc_info
1 p-file
2 pt-file
3 pc-file
4 t-file
Что будет в результате выполнения запроса?
select count(1) from docs where doc_info like 'p%' and doc_info not like 'pt%'
select count(1) from docs where doc_info like 'p%' and doc_info not like 'pt%'
Anonymous Quiz
5%
0
15%
1
63%
2
8%
3
2%
4
8%
SQL-ошибка
Ilia Khokhlov 👨💻
Всем привет! Приглашаю на трёхдневный SQL тренинг-практику по анализу данных! 1. Научимся проводить анализ возможных результатов при соединении таблиц разными типами джоинов (решение классических задач собеседования, поиск минимального и максимального количества…
Всем привет!
Интенсив по SQL аналитике переносится на следующий год! Начнём 24 января. Занятия будут через Zoom по тому же графику (сб, вс 10:30 - 11:30)!
Интенсив по SQL аналитике переносится на следующий год! Начнём 24 января. Занятия будут через Zoom по тому же графику (сб, вс 10:30 - 11:30)!
👍4
Всем привет!
Нашёл интересную задачу по SQL в интернете.
Схема БД интернет-магазина содержит таблицы:
Company – производители телефонов
Phone – возможные для приобретения телефоны. Необходимо составить запрос поиска производителя телефона с наибольшей средней стоимостью телефона этого производителя.
Нашёл интересную задачу по SQL в интернете.
Схема БД интернет-магазина содержит таблицы:
Company – производители телефонов
Phone – возможные для приобретения телефоны. Необходимо составить запрос поиска производителя телефона с наибольшей средней стоимостью телефона этого производителя.
👍1
Как мы работаем в праздники:
С 5 января мы онлайн! Будем полностью поддерживать Вас в обучении: проверять решения самостоятельных работ и отвечать на любые вопросы!
С 5 января мы онлайн! Будем полностью поддерживать Вас в обучении: проверять решения самостоятельных работ и отвечать на любые вопросы!
👍5
Поздравляем всех с новым этапом в личной и профессиональной жизни!
С Новым годом и Рождеством! 🎉
Спасибо всем, кто обучается, обучался или начинает обучаться с нами! Постоянных, систематических успехов в освоении новых знаний и умений! 💪
Будем рады Вашим обращениям и после обучения! Обращайтесь за советами и вопросами 🤗
С Новым годом и Рождеством! 🎉
Спасибо всем, кто обучается, обучался или начинает обучаться с нами! Постоянных, систематических успехов в освоении новых знаний и умений! 💪
Будем рады Вашим обращениям и после обучения! Обращайтесь за советами и вопросами 🤗
🎄17
Всем привет! 👋
Поздравляем с началом нового рабочего (и учебного) года! Успехов и достижений! 💻
Знаете, что в базах данных, наряду с остальными типами объектов, могут быть ещё и синонимы (synonym)?
Синонимы — это альтернативные имена (псевдонимы) для объектов баз данных (таблиц, представлений, хранимок, пакетов, и т.д.). Это указатели на реальные объекты.
Например, можно создать короткое или удобное имя для объекта, который находится в другой схеме или даже в другой базе данных и обращаться к нему, как будто он лежит прямо в нашей схеме.
Самый главный плюс использования синонимов - это абстракция и независимость от изменений. Если реальная таблица переезжает в другую схему, нам нужно будет не переписывать все запросы, а всего лишь создать синоним с именем таблицы и в нем указать реальное расположение таблицы! 👌
Все SQL-запросы и команды к этой таблице продолжат работать без изменений. Здорово, правда? И это лишь одно из назначений синонимов! 💪
Поздравляем с началом нового рабочего (и учебного) года! Успехов и достижений! 💻
Знаете, что в базах данных, наряду с остальными типами объектов, могут быть ещё и синонимы (synonym)?
Синонимы — это альтернативные имена (псевдонимы) для объектов баз данных (таблиц, представлений, хранимок, пакетов, и т.д.). Это указатели на реальные объекты.
Например, можно создать короткое или удобное имя для объекта, который находится в другой схеме или даже в другой базе данных и обращаться к нему, как будто он лежит прямо в нашей схеме.
Самый главный плюс использования синонимов - это абстракция и независимость от изменений. Если реальная таблица переезжает в другую схему, нам нужно будет не переписывать все запросы, а всего лишь создать синоним с именем таблицы и в нем указать реальное расположение таблицы! 👌
Все SQL-запросы и команды к этой таблице продолжат работать без изменений. Здорово, правда? И это лишь одно из назначений синонимов! 💪
👍9
Сколько строк вернет запрос: SELECT * FROM DOCS WHERE '%' LIKE DOCNUM
Anonymous Quiz
57%
0
6%
1
35%
2
3%
3
🔥2🤔2
Всем привет!
Есть запрос, выводящий операции по некоторому счету за период:
Есть запрос, выводящий операции по некоторому счету за период:
SELECT t.DOCDATE, t.DOCNUM, t.AMOUNT
FROM V_SVERKA_2601 t
WHERE t.ACCDBT LIKE '51%'
ORDER BY t.DOCDATE ASC
UNION ALL
SELECT t.DOCDATE, t.DOCNUM, t.AMOUNT
FROM V_SVERKA_2601 t
WHERE t.ACCCRD LIKE '51%'
ORDER BY t.DOCDATE DESC
Запрос, указанный выше:
Anonymous Quiz
20%
выведет операции по t.DOCDATE в прямом порядке
20%
выведет операции по t.DOCDATE в обратном порядке
60%
вызовет SQL ошибку
Всем привет!
Встречались с блокировками во время прогрузки и установки пакетов? Когда пытаешься прогрузить новую версию пакета, а он постоянно кем то используется и заблокирован: то кто-то вызывает функцию пакета, то он залочен джобом (который тоже вызывает какую-то его процедуру).
Чтобы суметь таки прогрузить пакет на разработческой базе или тестовой (не на проде) можно запустить его компиляцию, далее с помощью сессий, узнать свой sid (например, это можно сделать в PL/SQL Developer-е в окне Tools -> Sessions), подставить его в этот скрипт в переменную v_mister_president_session и запустить его. Скрипт будет находить всех, кто блокирует Вашу сессию и будет убивать (kill) их. А ещё некоторое время будет проверять, не появился ли кто-то еще, кто хочет Вас заблокировать. Как только в течение некоторого времени больше не будет появляться сессий, которых необходимо отстреливать, скрипт сообщит о завершении работы! Разумеется, у пользователя, запускающего скрипт, должны быть права на снятие сессий.
#oracle #plsql #kill_sessions
Встречались с блокировками во время прогрузки и установки пакетов? Когда пытаешься прогрузить новую версию пакета, а он постоянно кем то используется и заблокирован: то кто-то вызывает функцию пакета, то он залочен джобом (который тоже вызывает какую-то его процедуру).
Чтобы суметь таки прогрузить пакет на разработческой базе или тестовой (не на проде) можно запустить его компиляцию, далее с помощью сессий, узнать свой sid (например, это можно сделать в PL/SQL Developer-е в окне Tools -> Sessions), подставить его в этот скрипт в переменную v_mister_president_session и запустить его. Скрипт будет находить всех, кто блокирует Вашу сессию и будет убивать (kill) их. А ещё некоторое время будет проверять, не появился ли кто-то еще, кто хочет Вас заблокировать. Как только в течение некоторого времени больше не будет появляться сессий, которых необходимо отстреливать, скрипт сообщит о завершении работы! Разумеется, у пользователя, запускающего скрипт, должны быть права на снятие сессий.
#oracle #plsql #kill_sessions
👍4❤2
Таблица CLIENTS имеет структуру:
CREATE TABLE CLIENTS (
ID INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(100) NOT NULL,
INN VARCHAR(12),
KPP VARCHAR(9),
DESCRIPTION VARCHAR(100)
);
Таблица INVOICES имеет структуру:
CREATE TABLE INVOICES (
ID INT PRIMARY KEY AUTO_INCREMENT,
DATE_INV DATE NOT NULL,
NOM_INV VARCHAR(20) NOT NULL,
AMOUNT DECIMAL(17, 2),
ID_CLIENT INT NOT NULL,
DESCRIPTION VARCHAR(100),
FOREIGN KEY (ID_CLIENT) REFERENCES CLIENTS(ID)
);
Есть два запроса:
a)
SELECT c.*
FROM CLIENTS c
LEFT JOIN INVOICES i
ON c.ID = i.ID_CLIENT
WHERE i.ID IS NULL
b)
SELECT *
FROM CLIENTS c
WHERE NOT EXISTS (SELECT *
FROM INVOICES i
WHERE i.ID_CLIENT = c.ID)
CREATE TABLE CLIENTS (
ID INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(100) NOT NULL,
INN VARCHAR(12),
KPP VARCHAR(9),
DESCRIPTION VARCHAR(100)
);
Таблица INVOICES имеет структуру:
CREATE TABLE INVOICES (
ID INT PRIMARY KEY AUTO_INCREMENT,
DATE_INV DATE NOT NULL,
NOM_INV VARCHAR(20) NOT NULL,
AMOUNT DECIMAL(17, 2),
ID_CLIENT INT NOT NULL,
DESCRIPTION VARCHAR(100),
FOREIGN KEY (ID_CLIENT) REFERENCES CLIENTS(ID)
);
Есть два запроса:
a)
SELECT c.*
FROM CLIENTS c
LEFT JOIN INVOICES i
ON c.ID = i.ID_CLIENT
WHERE i.ID IS NULL
b)
SELECT *
FROM CLIENTS c
WHERE NOT EXISTS (SELECT *
FROM INVOICES i
WHERE i.ID_CLIENT = c.ID)
❤2🤔1