Здравствуйте, друзья!
Приглашаем обучиться на наших курсах "SQL. Базы данных. ORACLE. MS SQL Server, MySQL" и "Программирование в PL/SQL (ORACLE)" со скидкой 40%! Выбрать курс и записаться можно на нашем сайте: https://prime-soft.biz/courses
Будем Вас ждать!
Приглашаем обучиться на наших курсах "SQL. Базы данных. ORACLE. MS SQL Server, MySQL" и "Программирование в PL/SQL (ORACLE)" со скидкой 40%! Выбрать курс и записаться можно на нашем сайте: https://prime-soft.biz/courses
Будем Вас ждать!
prime-soft.biz
Prime | Консалтинг и обучение
Бесплатные уроки и курсы SQL, ORACLE, MS SQL Server, MySQL, Базы данных, MS Excel, Программирование с практическими файлами и материалом. Уроки видеомонтажа. Adobe Premiere. Илья Хохлов. Курсы Прайм
👍6
Здравствуйте, дорогие друзья!
Предлагаю очередной небольшой тест по SQL на этот раз на знание синтаксиса команды INSERT в ORACLE и ее вариантов написания.
Выполнение какой из этих команд в ORACLE приведёт к ошибке?
Предлагаю очередной небольшой тест по SQL на этот раз на знание синтаксиса команды INSERT в ORACLE и ее вариантов написания.
Выполнение какой из этих команд в ORACLE приведёт к ошибке?
Anonymous Quiz
15%
INSERT INTO MANAGERS (NAME, ID_FILIAL) VALUES ('Иванов Иван Иванович', 1)
26%
INSERT INTO MANAGERS (NAME, ID_FILIAL) SELECT 'Иванов Иван Иванович', 1 FROM DUAL
60%
INSERT INTO MANAGERS (NAME, ID_FILIAL) VALUES SELECT 'Иванов Иван Иванович', 1
👍5
Здравствуйте, дорогие друзья! Очередной небольшой тест для подкованных :) Вопрос с англоязычного ресурса из цикла "найди лишнее":
Anonymous Quiz
13%
UNION
15%
INTERSECT
32%
MINUS
40%
EXTRACT
🤔9👍2
Всем доброго утра и отличного начала рабочей (учебной) недели!
Если у Вас сегодня собеседование, то помогу перед ним немного размяться 😉 В отличии от первичного ключа таблицы, уникальный ключ (найдите верное утверждение):
Если у Вас сегодня собеседование, то помогу перед ним немного размяться 😉 В отличии от первичного ключа таблицы, уникальный ключ (найдите верное утверждение):
Anonymous Quiz
25%
может содержать пустые значения (NULL).
35%
может быть только один в таблице.
40%
не может содержать пустые значения (NULL).
👍10😐4
Здравствуйте, дорогие друзья!
Предлагаю начать неделю с небольшого теста по SQL. В одно время этот вопрос использовался в одной из Московских софтверных компаний, где я работал. Вопрос, думаю, будет для Вас совсем простым и, скорее всего, именно он станет лидером по количеству правильных ответов!
Предлагаю начать неделю с небольшого теста по SQL. В одно время этот вопрос использовался в одной из Московских софтверных компаний, где я работал. Вопрос, думаю, будет для Вас совсем простым и, скорее всего, именно он станет лидером по количеству правильных ответов!
👍4❤1
Каким будет результат следующей арифметической операции:
1 + NULL + 1
1 + NULL + 1
Anonymous Quiz
2%
0
2%
1
23%
2
1%
3
72%
NULL
👍6😁1
Всем доброе утро! И отличной рабочей (учебной) недели! И вот мини-вопрос на этот понедельник: Может ли в таблице не быть первичного ключа?
Anonymous Quiz
77%
Да, первичного ключа на таблице может не быть.
23%
Нет. Первичный ключ в таблице должен быть обязательно. Таблицу без первичного ключа не создать.
🙈2
Всем хорошего понедельника!
Давайте немного повторим типы данных столбцов таблиц.
В чем разница между CHAR и VARCHAR. Оба типа предназначены для хранения алфавитно-цифровой информации. Основное отличие состоит в том, что тип данных CHAR имеет фиксированную длину для хранящихся в нём значений, в то время как VARCHAR поддерживает переменную длину. Если значение, сохраняемое в CHAR, имеет меньшую длину, то к нему справа будут добавлены пробелы. К значению, сохраняемому в тип VARCHAR, если оно меньше максимально установленного, пробелы справа добавлены не будут.
Давайте немного повторим типы данных столбцов таблиц.
В чем разница между CHAR и VARCHAR. Оба типа предназначены для хранения алфавитно-цифровой информации. Основное отличие состоит в том, что тип данных CHAR имеет фиксированную длину для хранящихся в нём значений, в то время как VARCHAR поддерживает переменную длину. Если значение, сохраняемое в CHAR, имеет меньшую длину, то к нему справа будут добавлены пробелы. К значению, сохраняемому в тип VARCHAR, если оно меньше максимально установленного, пробелы справа добавлены не будут.
👍24
КАК НАЙТИ В СЕБЕ СИЛЫ И УВЕРЕННО ОВЛАДЕТЬ SQL
"У каждого взрослого человека всегда много дел" Дмитрий Петров, лингвист, полиглот
Aller Anfang ist schwer (любое начинание сложно), немецкая поговорка
Всегда трудно начинать что-то новое. Переживания из-за невладения навыком работы с базами данных и незнания языка SQL могут усугубляться страхом его изучения. Как это всё выучить? И не просто выучить, а ещё и начать хорошо разбираться в этом? А вдруг я не смогу найти работу, ведь везде требуются сотрудники уже с опытом работы? Эти и другие страхи возникают постоянно. Но бояться не надо! Язык SQL не сложный!
- "Конечно, тебе легко говорить". - Скажешь ты. - "Ведь ты его знаешь".
- "Да, знаю. И так же как и ты, когда то впервые его увидел". А ещё я практически сразу понял насколько он прост и лёгок в понимании! Итак, языку SQL и существенным навыкам работы с базами данных можно обучиться за довольно короткое время! А качественное обучение (или самообучение) с обязательной практикой может дать хороший результат! А чтобы начать совсем хорошо в нём разбираться, нужно прорешать множество типичных и каверзных задач. Здесь, конечно, нужен или опыт или нужны хорошие курсы. В своём курсе по SQL и базам данных на простых примерах я проведу тебя через многие практические сложности! Мы научимся решать любые задачи на языке SQL. Научимся видеть потенциальные ошибки в существующем коде и оптимизировать его. Можно реально примерно за месяц (если учиться не торопясь, уделяя час в день) "прокачать" знания языка SQL и навыки работы с базами данных с нуля до уровня специалиста с трёхлетним стажем! Вот так!
Я совсем не уговариваю тебя придти ко мне на курс, но был бы тебе очень рад! Мне уже повезло, что ты читаешь этот пост и я могу ещё кое что тебе рассказать!
Итак, язык SQL очень прост. Ты можешь ему научиться. Это аксиома (не требует доказательств).
- Я знаю. Ты можешь! Ицхак Пинтосевич. Автор множества книг по развитию личности.
Итак, SQL тебе под силу! Теперь осталось разобраться как найти на него время и силы. У тебя, возможно, есть семья, дети. Есть работа, которая отнимает основное продуктивное время, есть друзья, которым хоть пол часа в день времени, но уделить нужно (вотсап, вконтакте, одноклассники,..). Вобщем - день занят. И так каждый день! А в выходные надо отдохнуть, ведь всю неделю ты работал как мог!
- "У меня есть максимум час в неделю!" - скажешь ты.
- "Отлично! С этого и давай начинать!" Час в неделю это лучше, чем ничего.
"Большого слона можно съесть по кусочкам", народная мудрость
Итак, если у нас есть час в день, то считай, что SQL мы выучим! Да, да! Тратя по-немногу времени на нужный навык, ты, в конце концов, его освоишь! И даже это не растянется на очень долго! Изучай и практикуй! Начни хоть с часу в неделю, ты заметишь, что ты начнёшь в этом разбираться, а через некоторое время тебе это понравится и ты сможешь находить на это больше времени! Незаметно для себя ты овладеешь SQL и обучишься навыкам работы с базами данных!
Буду рад, если поделишься своей историей как ты смог найти время и силы на язык SQL!
"У каждого взрослого человека всегда много дел" Дмитрий Петров, лингвист, полиглот
Aller Anfang ist schwer (любое начинание сложно), немецкая поговорка
Всегда трудно начинать что-то новое. Переживания из-за невладения навыком работы с базами данных и незнания языка SQL могут усугубляться страхом его изучения. Как это всё выучить? И не просто выучить, а ещё и начать хорошо разбираться в этом? А вдруг я не смогу найти работу, ведь везде требуются сотрудники уже с опытом работы? Эти и другие страхи возникают постоянно. Но бояться не надо! Язык SQL не сложный!
- "Конечно, тебе легко говорить". - Скажешь ты. - "Ведь ты его знаешь".
- "Да, знаю. И так же как и ты, когда то впервые его увидел". А ещё я практически сразу понял насколько он прост и лёгок в понимании! Итак, языку SQL и существенным навыкам работы с базами данных можно обучиться за довольно короткое время! А качественное обучение (или самообучение) с обязательной практикой может дать хороший результат! А чтобы начать совсем хорошо в нём разбираться, нужно прорешать множество типичных и каверзных задач. Здесь, конечно, нужен или опыт или нужны хорошие курсы. В своём курсе по SQL и базам данных на простых примерах я проведу тебя через многие практические сложности! Мы научимся решать любые задачи на языке SQL. Научимся видеть потенциальные ошибки в существующем коде и оптимизировать его. Можно реально примерно за месяц (если учиться не торопясь, уделяя час в день) "прокачать" знания языка SQL и навыки работы с базами данных с нуля до уровня специалиста с трёхлетним стажем! Вот так!
Я совсем не уговариваю тебя придти ко мне на курс, но был бы тебе очень рад! Мне уже повезло, что ты читаешь этот пост и я могу ещё кое что тебе рассказать!
Итак, язык SQL очень прост. Ты можешь ему научиться. Это аксиома (не требует доказательств).
- Я знаю. Ты можешь! Ицхак Пинтосевич. Автор множества книг по развитию личности.
Итак, SQL тебе под силу! Теперь осталось разобраться как найти на него время и силы. У тебя, возможно, есть семья, дети. Есть работа, которая отнимает основное продуктивное время, есть друзья, которым хоть пол часа в день времени, но уделить нужно (вотсап, вконтакте, одноклассники,..). Вобщем - день занят. И так каждый день! А в выходные надо отдохнуть, ведь всю неделю ты работал как мог!
- "У меня есть максимум час в неделю!" - скажешь ты.
- "Отлично! С этого и давай начинать!" Час в неделю это лучше, чем ничего.
"Большого слона можно съесть по кусочкам", народная мудрость
Итак, если у нас есть час в день, то считай, что SQL мы выучим! Да, да! Тратя по-немногу времени на нужный навык, ты, в конце концов, его освоишь! И даже это не растянется на очень долго! Изучай и практикуй! Начни хоть с часу в неделю, ты заметишь, что ты начнёшь в этом разбираться, а через некоторое время тебе это понравится и ты сможешь находить на это больше времени! Незаметно для себя ты овладеешь SQL и обучишься навыкам работы с базами данных!
Буду рад, если поделишься своей историей как ты смог найти время и силы на язык SQL!
🔥16
Пишем на SQL
https://dzen.ru/a/ZMLsoH2mSzdWWsqh?share_to=link
Доброй пятницы!
Спасибо всем, кто принял участие в разгадывании филворда по SQL.
Я дополнил свой пост, опубликовал решение.
Спасибо всем, кто принял участие в разгадывании филворда по SQL.
Я дополнил свой пост, опубликовал решение.
👍1
Доброго понедельника, друзья!
Всем хорошего начала рабочей и учебной недели!
Сегодня с меня сразу две задачи по SQL: одна будет простая (для начинающих) и одна посложнее (для гуру)!
Всем хорошего начала рабочей и учебной недели!
Сегодня с меня сразу две задачи по SQL: одна будет простая (для начинающих) и одна посложнее (для гуру)!
👍7
В таблице CLIENTS для одного из контрагентов нужно удалить DATE_CLOSE (дату завершения работы с контрагентом). Компания хочет снова вести работу с контрагентом. Какую команду необходимо выполнить?
Anonymous Quiz
8%
INSERT
69%
UPDATE
15%
DELETE
5%
TRUNCATE
3%
DROP
Как насчёт новой задачки по SQL посложнее? Готовы? Тогда задание следующее: в базе данных есть таблица ORDER_BOXES в которой определено по какому заказу сколько коробок оформлено в доставку, а также указано сколько в каждой коробке штук товара и прочая не относящаяся к задаче информация. Таблица имеет следующие интересующие нас поля:
ORDER_NUM (номер заказа)
BOX_NO (номер коробки заказа).
Напомню, что другие столбцы нам сейчас не нужны.
Итак, в таблице лежат данные вида:
ORDER_NUM BOX_NO
1 1
1 2
2 1
3 1
Данные выше означают, что по заказу с номером 1 есть коробка с номером 1 и есть коробка с номером 2, то есть всего две коробки. Заказы с номерами 2 и 3 имеют по одной коробки.
Чтобы проще понять суть и важность задачи приведу ошибочные данные этой таблицы:
ORDER_NUM BOX_NO
4 1
4 3
В примере выше в заказе под номером 4 есть номера коробок 1 и 3, но нет 2. То есть если есть коробка с номером 3, то точно должны быть предыдущие номера коробок этого заказа, начиная с одного. Если заказ под номером 4 должен быть доставлен двумя коробками (а не тремя), то правильным было бы в столбце BOX_NO иметь значения 1 и 2.
Ниже ещё один пример ошибочных данных:
ORDER_NUM BOX_NO
5 1
5 1
5 1
Заказ под номером 5 разбит на три коробки 📦. Правильно было бы иметь в столбце BOX_NO значения 1, 2 и 3.
И теперь, наконец, озвучку требования к задаче. На языке SQL требуется написать запрос, показывающий номера заказов с проблемной нумерацией коробок (с отсутствующими номерами коробок или с номерами дублями).
Описание решения выложу тут немного позже! С нетерпением буду ждать сначала Ваши предложения решения!
ORDER_NUM (номер заказа)
BOX_NO (номер коробки заказа).
Напомню, что другие столбцы нам сейчас не нужны.
Итак, в таблице лежат данные вида:
ORDER_NUM BOX_NO
1 1
1 2
2 1
3 1
Данные выше означают, что по заказу с номером 1 есть коробка с номером 1 и есть коробка с номером 2, то есть всего две коробки. Заказы с номерами 2 и 3 имеют по одной коробки.
Чтобы проще понять суть и важность задачи приведу ошибочные данные этой таблицы:
ORDER_NUM BOX_NO
4 1
4 3
В примере выше в заказе под номером 4 есть номера коробок 1 и 3, но нет 2. То есть если есть коробка с номером 3, то точно должны быть предыдущие номера коробок этого заказа, начиная с одного. Если заказ под номером 4 должен быть доставлен двумя коробками (а не тремя), то правильным было бы в столбце BOX_NO иметь значения 1 и 2.
Ниже ещё один пример ошибочных данных:
ORDER_NUM BOX_NO
5 1
5 1
5 1
Заказ под номером 5 разбит на три коробки 📦. Правильно было бы иметь в столбце BOX_NO значения 1, 2 и 3.
И теперь, наконец, озвучку требования к задаче. На языке SQL требуется написать запрос, показывающий номера заказов с проблемной нумерацией коробок (с отсутствующими номерами коробок или с номерами дублями).
Описание решения выложу тут немного позже! С нетерпением буду ждать сначала Ваши предложения решения!
Здравствуйте, друзья!
Очень приятно Ваше активное участие в решении присланной задачи! Все Ваши работы проверил и отметил лайком 👍 те, которые счёл правильными. Из 11 присланных работ 9 будут правильно выдавать номера заказов с некорректной нумерацией коробок и 2 работы было бы здорово немного доработать.
Ещё раз спасибо за активное участие и хороших выходных!🙂💪
Очень приятно Ваше активное участие в решении присланной задачи! Все Ваши работы проверил и отметил лайком 👍 те, которые счёл правильными. Из 11 присланных работ 9 будут правильно выдавать номера заказов с некорректной нумерацией коробок и 2 работы было бы здорово немного доработать.
Ещё раз спасибо за активное участие и хороших выходных!🙂💪
🤝3👍1
Добрый день, друзья!
Все знаем, что с опытом не только начинаешь меньше делать ошибок при написании SQL-запросов, но и приобретаешь навык быстро находить ошибки в чужом SQL-коде. Следующих несколько задач предлагаю посвятить поиску ошибок в запросах, написанных другими специалистами.
Задача первая:
В базе данных есть таблица FILIALS, имеющая столбцы FILIAL_ID и FILIAL_NAME, и имеющая три записи.
Также есть таблица менеджеров MANAGERS, в которой есть внешний ключ - столбец FILIAL_ID, ссылающийся на таблицу филиалов.
Известно, что в таблице филиалов точно есть один филиал, для которого нет ни одного менеджера в таблице MANAGERS. Филиал новый и туда не успели ещё найти сотрудников, но запись в таблице уже есть.
Написанный запрос ниже должен показывать список филиалов, в которых есть хотя бы один сотрудник. Почему запрос показывает все три филиала, хотя должен показывать два?
Все знаем, что с опытом не только начинаешь меньше делать ошибок при написании SQL-запросов, но и приобретаешь навык быстро находить ошибки в чужом SQL-коде. Следующих несколько задач предлагаю посвятить поиску ошибок в запросах, написанных другими специалистами.
Задача первая:
В базе данных есть таблица FILIALS, имеющая столбцы FILIAL_ID и FILIAL_NAME, и имеющая три записи.
Также есть таблица менеджеров MANAGERS, в которой есть внешний ключ - столбец FILIAL_ID, ссылающийся на таблицу филиалов.
Известно, что в таблице филиалов точно есть один филиал, для которого нет ни одного менеджера в таблице MANAGERS. Филиал новый и туда не успели ещё найти сотрудников, но запись в таблице уже есть.
Написанный запрос ниже должен показывать список филиалов, в которых есть хотя бы один сотрудник. Почему запрос показывает все три филиала, хотя должен показывать два?
SELECT *
FROM FILIALS F
WHERE EXISTS (SELECT * FROM MANAGERS M WHERE M.FILIAL_ID = FILIAL_ID)
FROM FILIALS F
WHERE EXISTS (SELECT * FROM MANAGERS M WHERE M.FILIAL_ID = FILIAL_ID)
Anonymous Quiz
12%
Потому, что заместо EXISTS нужно поставить NOT EXISTS
5%
Потому, что в основном запросе после слова SELECT указан символ звёздочка
13%
Потому что в подзапросе указан символ звёздочка
56%
Потому, что в подзапросе в блоке WHERE допущена ошибка
15%
Потому, что EXISTS нужно заменить на IN
Всем доброй пятницы и хороших выходных!
Давайте разбирать какой из ответов в предыдущей задаче был правильный!
Вначале, конечно, должен сообщить, что для решения задачи требовалось знание подзапросов. Если Вы ещё не знакомы с этой темой, то лучше вначале изучить её и затем снова вернуться к этой задаче.
Итак, нам нужно было вывести филиалы, в которых есть хотя бы один менеджер. Поэтому для каждого филиала подзапоосом и проверяется наличие (существование) менеджера с его FILIAL_ID. Проблема в том, что подзапрос не связан с внешним запросом. Была допущена ошибка, которую часто совершают начинающие SQL-специалисты. Тут я подробнее об этом написал: https://dzen.ru/a/YrdWwBahoEyqTK_S
Когда Вы разберёте эту ошибку, то с большей вероятностью не допустите её при написании SQL кода! Учимся на чужих ошибках!
Будьте как SQL-антивирус:) Находите баги и в чужих SQL-запросах.
Давайте разбирать какой из ответов в предыдущей задаче был правильный!
Вначале, конечно, должен сообщить, что для решения задачи требовалось знание подзапросов. Если Вы ещё не знакомы с этой темой, то лучше вначале изучить её и затем снова вернуться к этой задаче.
Итак, нам нужно было вывести филиалы, в которых есть хотя бы один менеджер. Поэтому для каждого филиала подзапоосом и проверяется наличие (существование) менеджера с его FILIAL_ID. Проблема в том, что подзапрос не связан с внешним запросом. Была допущена ошибка, которую часто совершают начинающие SQL-специалисты. Тут я подробнее об этом написал: https://dzen.ru/a/YrdWwBahoEyqTK_S
Когда Вы разберёте эту ошибку, то с большей вероятностью не допустите её при написании SQL кода! Учимся на чужих ошибках!
Будьте как SQL-антивирус:) Находите баги и в чужих SQL-запросах.
👍6