IliaHohlov

IliaHohlov

Студия Прайм
На Пикабу
Дата рождения: 30 апреля 1985
4M4DEUS
4M4DEUS оставил первый донат
поставил 2 плюса и 0 минусов
отредактировал 1 пост
проголосовал за 1 редактирование
5798 рейтинг 662 подписчика 1 подписка 69 постов 14 в горячем

Разница между VARCHAR и VARCHAR2 в ORACLE

Разница между VARCHAR и VARCHAR2 в ORACLE SQL, Oracle, Собеседование, База данных, Вопрос, Задача, Длиннопост

Здравствуйте, друзья!

Всем хорошего понедельника! Предлагаю повторить разницу между типами данных VARCHAR и VARCHAR2 в ORACLE. А заодно расскажу ещё несколько интересных фактов!

Оба типа мы можем использовать в качестве типа данных при создании столбцов в таблице.

Тип VARCHAR2 - это аналог VARCHAR (тоже служит для хранения текстовой информации в столбце) и есть только в СУБД ORACLE.

ORACLE взял за основу VARCHAR и создал у себя такой же тип данных, но немного оптимизировал его.

Итак, VARCHAR2 есть только в ORACLE, то есть это Оракловый тип данных, аналогичный стандартному VARCHAR. Преимущество VARCHAR2 в скорости: поиск по нему ведётся быстрее. Ещё одно преимущество VARCHAR2: с версии ORACLE 12с значительно увеличен максимальный размер, который можно указывать для этого типа данных.

Для VARCHAR максимальное количество символов 4.000.
Для VARCHAR2 максимальное количество байт 32.767.

При создании столбца в таблице, когда мы указываем тип данных для столбца, мы уточняем сколько максимум символов будет в нём храниться. Например:

CREATE TABLE CLIENTS (
ID  NUMBER,
NAME  VARCHAR(100),
INN  VARCHAR(12)
)

Для VARCHAR мы указываем в скобочках именно количество символов, а для VARCHAR2 - количество байт. По стандарту, для неюникодных баз данных, 1 байт - это один символ. Но для юникодных баз данных 1 символ кодируется двумя байтами, поэтому для VARCHAR2 в юникодных базах данных нужно указывать размер в два раза больший, чем размер символов, который требуется иметь возможность хранить в столбце. То есть наш пример пришлось бы переделать на:

CREATE TABLE CLIENTS (
ID  NUMBER,
NAME  VARCHAR2(200),
INN  VARCHAR2(24)
)

Итак, повторим: для VARCHAR в скобочках указывается максимальное количество символов, которое можно хранить в столбце, а для VARCHAR2- максимальное количество байт. Для русского, английского языка 1 байт = 1 символ. ORACLE позволяет с помощью NLS параметров указать другую единицу измерения максимальной длины данных. То есть можно настроить, что для VARCHAR2 тоже будет указываться количество символов, а не байт. Можно настроить как удобно!

И ещё, при объявлении столбца с типом данных VARCHAR2, можно указывать даже явно единицу измерения:

CREATE TABLE CLIENTS (
ID  NUMBER,
NAME  VARCHAR2(100 BYTE),
INN  VARCHAR2(12 CHAR)
)

И напоследок очень важная деталь: для типа данных VARCHAR2 понятие пустой строки и NULL.... это одно и тоже! То есть если в некотором столбце типа данных VARCHAR2 пустая строка, то это NULL. Всех разработчиков это когда то застигает врасплох! Ведь согласно ANSI стандарту пустая строка и NULL - это разные вещи! Но не для VARCHAR2! Дело в том, что ORACLE придумал тип данных VARCHAR2 до того, как появился стандарт ANSI, регламентирующий это. И теперь приходится с этим жить!

Ещё больше полезного и интересного в моём Телеграмм-Канале: https://t.me/sql_oracle_databases

Всем хорошего начала рабочей и учебной недели!

Показать полностью

SQL задачи на поиск ошибок

Как быстро начать разбираться в Excel

Всем доброй пятницы, дорогие друзья!

Специалистам работы с данными часто необходимы знания нескольких разных инструментов. Например, бывает нужно выгружать данные из базы данных для последующего сравнения, анализа или отчётности в Excel.

Я подготовил два бесплатных курса по MS Excel на популярной платформе Stepik. Надо сказать, что это первые два мои курса на этой платформе. Но начало положено!

Базовый курс Excel:

https://stepik.org/course/185640

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

Продвинутый Excel:

https://stepik.org/course/185674

Сводные таблицы, функции анализа данных, ВПР, ГПР, ИНДЕКС, ПОИСКПОЗ и т.д.

Оба курса сопровождаются практическими файлами и небольшими тестами знания материала.

Буду рад Вашему отзыву!

Для чего нужен UNION в SQL. И в чем разница между UNION и UNION ALL

За 1 минуту покажу как работает UNION и в чем разница между UNION и UNION ALL. UNION и UNION ALL нужны для объединения наборов данных, получаемых запросами. Разница состоит в том, что UNION в результате объединения, оставляет только уникальные строки.

Руководство Barcode to PC Scanner

Сканируйте штрихкод и QR телефоном сразу на компьютер или локальный файл Excel (.csv).

Руководство Barcode to PC Scanner Гайд, Android, Windows, IT, Сканер штрихкодов, Программа, Гифка, Длиннопост

В этой статье рассмотрим подключение телефона к компьютеру, основные понятия и возможности программы Barcode to PC Scanner. А также, в качестве примера, выполним сканирование штрихкодов смартфоном с отправкой их и дополнительной информации прямо в файл Excel на компьютере.

Чтобы подключить смартфон на базе Android или iOS к компьютеру нужно (всего три шага):

Шаг 1. Запустить на компьютере программу Barcode to PC Scanner Client. Она нужна, чтобы принимать команды со смартфона. Не требует установки. После её запуска она покажет QR Вашего рабочего места:

Руководство Barcode to PC Scanner Гайд, Android, Windows, IT, Сканер штрихкодов, Программа, Гифка, Длиннопост

Шаг 2. Установить на смартфон программу Barcode to PC Scanner и запустить её. Для Android загрузить можно с Google Play и RuStore. Для iOS (скоро будет) доступна в Apple Store.

Шаг 3. Нажать кнопку в виде QR-кода в правом верхнем углу программы Barcode to PC Scanner на смартфоне:

Руководство Barcode to PC Scanner Гайд, Android, Windows, IT, Сканер штрихкодов, Программа, Гифка, Длиннопост

Открывшимся окном сканирования нужно просканировать QR-код, показанный на компьютере (или ноутбуке) в открытой программе Barcode to PC Scanner Client. После этого в программе на смартфоне сверху Вы увидите "Подключено к ..." и имя Вашего компьютера. Можно сканировать в компьютер. Всё готово!

Руководство Barcode to PC Scanner Гайд, Android, Windows, IT, Сканер штрихкодов, Программа, Гифка, Длиннопост

Программа Barcode to PC Scanner имеет два режима работы:

1. Сканировать (и отправлять другую информацию) сразу в компьютер;

2. Сканировать (и сохранять другую информацию) в файл на устройство с последующей возможностью им поделиться.

Для отправки штрихкода и другой информации на компьютер или её сохранения на смартфон используются "Формы ввода", с помощью которых можно определить что именно, то есть какая информация, будет отправлена или сохранена и в какой последовательности.

В программе Barcode to PC Scanner есть предустановленные Формы ввода и есть возможность создавать новые собственные. Созданными Формами ввода можно делиться между смартфонами.

Если телефон должен служить только как беспроводной сканер и больше не требовать введение дополнительной информации (например, количества или ещё чего-то), то на Форме ввода может быть расположено только поле "Штрихкод".

Если нужно смартфон превратить в настоящий терминал сбора данных с введением всей необходимой информации, то можно сначала подготовить соответствующую Форму ввода и потом выбрать её из списка доступных при "Сканировании в компьютер" или "Сканировании в файл".

Рассмотрим случай когда нам нужно собрать в открытый на компьютере файл Excel штрихкоды товаров с их количеством в соседнем столбце.

1. Открываем Barcode to PC Scanner и убеждаемся, что он подключён к нашему компьютеру. Сверху в программе на смартфоне мы должны увидеть "Подключён к .." и имя нашего компьютера. Если это не так, то смотрим как подключить смартфон к компьютеру (или ноутбуку) выше.

2. Нажимаем "Сканировать в компьютер". Открылась форма ввода данных (последняя, которой мы пользовались) для последующей отправки информации с неё на компьютер. Если открылась форма не со штрихкодом и числом, то нажимаем сверху слева на кнопку "Меню" в виде горизонтальных полос (её ещё называют "кнопка-бургер") и видим список доступных форм ввода (стандартных и созданных нами). Нажимаем "Штрихкод, число").

Теперь выбрана нужная нам форма ввода.

3. Убеждаемся, что открыт файл Excel на компьютере и выбрана ячейка. Ведь смартфон будет посылать вводимую информацию со смартфона на компьютер именно в активное окно.

4. Начинаем сканировать смартфоном в компьютер. Нажимаем кнопку "Скан" и сканируем штрихкод или код QR товара. Затем указываем Количество и нажимаем "Отправить". Далее программа автоматически предлагает сканировать следующий штрихкод или код QR и потом опять ввести число. Сканируем, вводим число и нажимаем отправить. В любой момент можно остановить процесс, нажав на крестик сверху слева.

5. В окне Excel на компьютере прямо в той ячейке, на которой стоял курсор, будет видно как будет автоматически печататься отправленный со смартфона штрихкод. Затем будет переход на ячейку правее и введено количество. После этого курсор перейдёт на следующую строку в предыдущий столбец прямо под введённый ранее штрихкод и начнёт печататься следующий штрихкод. И так далее.

Видео руководство программы Barcode to PC Scanner можно найти здесь.

Будем рады вопросам и комментариям!

Показать полностью 3

Программирование в PL/SQL (ORACLE). Массивы, Циклы

Уроки программирования в PL/SQL (ORACLE). Разбираем задачу с массивами, циклами. Оптимизация решения, поиск ошибок.

Приоритеты операторов в SQL запросах

Приоритеты операторов в SQL запросах Программирование, IT, Собеседование, SQL, Приоритеты

Всем привет, друзья!
Как вы думаете, какие строки будут отобраны в результате следующего запроса:

SELECT *
FROM VOUCHERS
WHERE CLIENT_ID = 1
AND DOC_TYPE = 2
OR FILIAL_ID = 3

те, где CLIENT_ID = 1 и ещё такие строки, где либо DOC_TYPE = 2 либо FILIAL_ID = 3

ИЛИ, ВСЁ ЖЕ,

те, где CLIENT_ID = 1 и одновременно в столбце DOC_TYPE = 2 и ещё такие строки, где FILIAL_ID = 3 и не важно какой CLIENT_ID и DOC_TYPE?

Здесь в силу вступает правило приоритета операторов. OR разделяет условия во WHERE на два: будут отобраны строки у которых CLIENT_ID = 1 и одновременно с этим в столбце DOC_TYPE = 2 и не важно какой FILIAL_ID. И потом к полученным данным ещё будут отобраны строки у которых FILIAL_ID = 3 вне зависимости от значений в других столбцах.

Если нужно отобрать строки с CLIENT_ID = 1 и в дополнении у них должен быть либо DOC_TYPE = 2 либо FILIAL_ID = 3, то мы можем воспользоваться скобками:

SELECT *
FROM VOUCHERS
WHERE CLIENT_ID = 1
AND (DOC_TYPE = 2 OR FILIAL_ID = 3)

Для наглядности, всё что после AND, я вынес на отдельную строку. Благодаря скобкам, всё что в них, будет выполняться как единое целое. Итак: будут отобраны строки со значением CLIENT_ID = 1, и из всех полученных строк, удовлетворяющих этому условию, останутся те, у которых либо DOC_TYPE = 2, либо FILIAL_ID = 3.

Буду рад если понравилась статья! Не забудьте поставить лайк и подписаться на мой канал, если Вы еще не подписаны. Так Вы поддерживаете нашу работу.

Показать полностью

Задача по SQL про удаление записей из таблицы

Здравствуйте, друзья! Недавно в своём Telegram-канале выложил очередную задачу по SQL (см. изображение). Получился очень интересный разброс голосов за правильный ответ.

Задача по SQL про удаление записей из таблицы Программирование, IT, Программист, SQL, Задача, Собеседование, База данных

Более половины подписчиков ответили правильно! 💪 Из перечисленных в опросе команд SQL только последней удастся очистить таблицу Persons от всех строк в ней (см. задачу на изображении). Команда TRUNCATE TABLE Persons разом опустошит таблицу, она останется совсем без записей.

Команда DELETE написана так, что согласно условию WHERE не найдётся ни одной подходящей записи для удаления. Ни для одной строки не выполнится условие, указанное во WHERE. Результат сравнения с NULL всегда будет отрицательным. Для проверки на NULL можно использовать только IS и IS NOT.

Команда UPDATE не удаляет строки из таблицы. В нашем примере она заменяет существующее значение в столбце NAME на NULL для всех строк (WHERE-то нет).

А команда DROP вообще удаляет саму таблицу из базы данных😌 вместе с данными конечно. И селектить больше будет неоткуда. Таблицы больше не будет в базе данных🙈

Если у тебя есть Телеграмм, буду рад твоей подписке: https://t.me/sql_oracle_databases

Показать полностью
Отличная работа, все прочитано!