fa
Feedback
Пишем на SQL

Пишем на SQL

رفتن به کانال در Telegram

Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql Мой курс по SQL и базам данных: https://prime-soft.biz/courses/sql Связь со мной @iliahohlov

نمایش بیشتر
1 900
مشترکین
-124 ساعت
+17 روز
-130 روز
آرشیو پست ها
В таблице DOCUMENTS четыре строки. В поле DOC_TYPE в первых двух строках число 1, в двух других строках число 2. Запрос SELECT DISTINCT COUNT(DOC_TYPE) FROM DOCUMENTS вернёт число:
Anonymous voting

Обучение на ошибках (особенно на своих 😀) - один из самых эффективных методов обучения! Здесь нужно было заметить неправильное использование EXISTS. Оператор EXISTS используют для проверки того, возвращается ли что-то подзапросом, указанным в скобках. Как правило, в скобках для оператора EXISTS/NOT EXISTS пишут: SELECT * или: SELECT 1 В задаче выше нарочно допущена ошибка (в EXISTS нарочно написал SELECT COUNT). SELECT COUNT всегда будет возвращать данные. Написанный в скобочках подзапрос всегда будет возвращать количество, хоть и иногда 0. Но данные-то есть. Ноль - это тоже данные. Поэтому EXISTS будет давать TRUE для каждой из трех строчек основного запроса. И еще немного по теме COUNT напомню: COUNT всегда возвращает значение. Никогда не возвращает NULL. Если по условиям WHERE подзапроса не будет подходящих данных, то COUNT вернёт 0, не NULL.

Какое количество строк вернёт запрос SELECT * FROM CLIENTS WHERE EXISTS (SELECT COUNT(*) FROM INVOICES WHERE ID_CLIENT = CLIENTS.ID)
Anonymous voting

В таблице CLIENTS три строки: ID NAME 1 АО "Проблемы и решения" 2 АО "Решения без проблем" 3 ИП "Иванов Иван Иванович" В таблице INVOICES две строки: ID ID_CLIENT DATE_INV 1 1 03.09.2024 2 1 03.09.2024

В таблице INVOICES две строки. В первой строке в столбце QTY число 25, во второй строке в этом же столбце лежит NULL. Каким будет результат запроса: SELECT MIN(QTY) FROM INVOICES
Anonymous voting

Всем доброго понедельника! Надеюсь, неделя началась отлично, или, по крайней мере, не плохо☺️ Предлашаю небольшую задачу по SQL, похожую на одну из тех, что мы с Вами уже решали.

Друзья, всем отличной пятницы! На следующей неделе начинаем интенсив SQL, PostgreSQL! У нас будет: 10 насыщенных онлайн занятий (с записью эфира); Много совместной работы в режиме онлайн! Будет много практики! Готовимся работать, не просто слушать:) Закрытая группа Телеграм с записями наших встреч и кратким конспектом! Здесь же я буду отвечать и на все вопросы по самостоятельным задачам (они тоже будут, работа один-на-один с базой данных обязательна). Сертификат по окончанию он-лайн курса! И помощь в составлении резюме если потребуется! Подробнее: https://prime-soft.biz/courses/postgresql

Сколько строк вернёт следующий запрос: SELECT * FROM CODES JOIN CODES2 ON CODES.CODE = CODES2.CODE
Anonymous voting

Сколько строк вернёт следующий запрос:
Anonymous voting

Друзья, всем добрый день! Очередная задача по SQL!  В базе данных есть две таблицы CODES и CODES2, в каждой из которых есть столбец CODE. В таблицах CODES и CODES2 всего по три строки. В первой строке обеих таблиц в столбце CODE - значение: 1, во второй строке значение тоже 1 и в третьей строке - NULL.

Друзья, до 16го сентября предлагаем пакет курсов: "SQL. Базы данных. ORACLE" и "Программирование в PL/SQL (ORACLE)" по специальной цене: 14.990 ₽ за оба курса! Записаться и оплатить можно картой российского банка на нашем сайте: https://prime-soft.biz/pay/210 Если у Вас нет карты российского банка, но напишите, пожалуйста, нам на info@prime-soft.biz и мы предложим другие способы оплаты из-за границы!

Всем хорошей пятницы! Действительно ли, что: Oracle запрос SQL, использующий условие EXISTS очень неэффективен, так как подзапрос перезапускается для каждой строки в таблице внешнего запроса. Есть более эффективные способы написания большинства запросов, которые бы не использовали условие EXISTS. Ответ: Для решения каждой задачи есть свои эффективные методы. Если EXISTS применяется в основном запросе выборки из небольшой таблицы для проверки данных в большой таблице, и если выборка из большой таблицы будет вестись по индексам, то его использование будет очень эффективно. Вот пример: В таблице клиентов не более 1000 строк. В таблице PAYMENTS миллион строк и таблица проиндексована по столбцу CLIENT_ID. Нужно выбрать клиентов, по которым была хотя бы одна оплата. SELECT *    FROM CLIENTS WHERE EXISTS (SELECT 1 FROM PAYMENTS WHERE PAYMENTS.CLIENT_ID = CLIENTS.CLIENT_ID) По таблице CLIENTS мы видим полный перебор строк (TABLE ACCESS FULL), но с проверкой есть ли платеж по клиенту. Запрос, отбирая клиентов, проверит есть ли в таблице PAYMENTS хотя бы одна строчка с таким CLIENT_ID. Хотя бы одна. И, так как на таблицу PAYMENTS есть индекс для выборки по столбцу CLIENT_ID, то таблица PAYMENTS вообще не будет читаться! Согласно приведённому запросу нам от неё не нужны данные. Нужно просто проверить есть ли строчка, где бы в столбце CLIENT_ID было бы конкретное значение. СУБД посмотрит в индекс и сразу поймёт есть ли строчка с таким то значением CLIENT_ID. Самого чтения миллионной таблицы не будет. Многие СУБД, при правильной их настройке, хранят индексы постоянно используемых таблиц в оперативной памяти. Стоит, всё же, заметить, что при использовании EXISTS или других подзапросов в транзакциях в некоторых СУБД могут быть проблемы. Расскажу об этом дополнительно!

Какой запрос покажет 10 городов клиентов без повторов, расположенных по алфавиту?
Anonymous voting

Всем отличного понедельника! Новая задача с собеседования. Базовый уровень. В базе данных есть таблица адресов клиентов CLIENT_ADDR. Таблица CLIENT_ADDR, среди прочих, имеет столбец CITY_NAME (город). Какой из запросов ниже покажет 10 городов клиентов (10 значений из столбца CITY_NAME)? Один и тот же город не должен быть показан в результирующей таблице более одного раза. Полученный список городов клиентов должен быть упорядочен по алфавиту.

Какая ошибка допущена в указанной SQL команде?
Anonymous voting

Какая ошибка допущена в следующей SQL команде? CREATE VIEW CLIENTS_INFO AS SELECT INN, NAME, PHONE FROM CLIENTS, CLIENT_CONTACTS WHERE CLIENTS.CLIENT_ID = CLIENT_CONTACTS.CLIENT_ID

Как насчёт ещё одной задачи по SQL? Задача-тест с собеседования. Необходимо создать представление (VIEW) с названием CLIENTS_
Как насчёт ещё одной задачи по SQL? Задача-тест с собеседования. Необходимо создать представление (VIEW) с названием CLIENTS_INFO, содержащее следующую информацию о клиентах: INN, NAME, PHONE.

10-ти дневный он-лайн интенсив по SQL и PostgreSql. Начинаем 24.09.2024. У нас уже три участника! Не пропусти! Узнать больше
10-ти дневный он-лайн интенсив по SQL и PostgreSql. Начинаем 24.09.2024. У нас уже три участника! Не пропусти! Узнать больше и записаться можно тут: https://prime-soft.biz/courses/postgresql

Первичный ключ является суррогатным, если он состоит из столбца, который не содержит бизнес-данных и был создан исключительно
Первичный ключ является суррогатным, если он состоит из столбца, который не содержит бизнес-данных и был создан исключительно для возможности идентификации записей.