MySQL. REGEXP: поиск на основе регулярных выражений

Описание: в этой статье вы узнаете, как использовать оператор REGEXP в MySQL для выполнения сложного поиска на основе регулярных выражений.

 

Введение в регулярные выражения

Регулярное выражение — это специальная строка, которая описывает шаблон поиска. Это мощный инструмент, который дает вам краткий и гибкий способ определения строк текста, например символов и слов, на основе шаблонов.

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

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

Преимущество использования регулярного выражения заключается в том, что вы не ограничены поиском строки на основе фиксированного шаблона со знаком процента (%) и подчеркиванием (_) в операторе LIKE. Регулярные выражения имеют больше метасимволов для создания гибких шаблонов.

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

Сокращением регулярных выражений является regex или regexp

 

Оператор REGEXP в MySQL

MySQL адаптирует регулярное выражение, реализованное Генри Спенсером. MySQL позволяет сопоставить шаблон прямо в операторах SQL с помощью оператора REGEXP.

Следующее иллюстрирует синтаксис оператора REGEXP в предложении  WHERE:

SELECT

column_list

FROM

table_name

WHERE

string_column REGEXP pattern;

 

Этот оператор выполняет сопоставление string_column с шаблоном pattern.

Если значение в string_column совпадает с pattern, выражение в предложении WHERE возвращает true, в противном случае возвращает false.

Если либо string_column либо pattern равен NULL, результат NULL.

Помимо оператора REGEXP вы можете использовать оператор RLIKE, который является синонимом оператора REGEXP.

Форма отрицания оператора REGEXP есть NOT REGEXP.

 

MySQL. Примеры REGEXP

Предположим, вы хотите найти все товары, Названия которых начинаются с символов A, B или C. Вы можете использовать регулярное выражение в следующем выражении SELECT:

SELECT

productname

FROM

products

WHERE

productname REGEXP '^(A|B|C)'

ORDER BY productname;

 

 

 

MySQL. REGEXP. Поиск на основе регулярных выражений_1

 

Шаблон позволяет найти продукт, название которого начинается с A, B или C.

  • Символ ^ означает совпадение с начала строки.
  • символ | означает поиск альтернатив, если один не соответствует.

 

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














МетасимволПоведение
^соответствует позиции в начале искомой строки
$соответствует позиции в конце искомой строки
,соответствует любому отдельному символу
[…]соответствует любому символу, указанному в квадратных скобках
[^ …]соответствует любому символу, не указанному в квадратных скобках
p1 | p2соответствует любому из паттернов p1 или p2
*соответствует предыдущему символу ноль или более раз
+соответствует предыдущему символу один или несколько раз
{n}соответствует n количествам экземпляров предыдущего символа
{m,n}соответствует от m до n количеству экземпляров предыдущего символа

 

Чтобы найти продукты, названия которых начинаются с символа a, используйте метасимвол  ‘^’ для соответствия в начале имени:

SELECT

productname

FROM

products

WHERE

productname REGEXP '^a';

 

 

MySQL. REGEXP. Поиск на основе регулярных выражений_1

 

Если вы хотите, чтобы оператор REGEXP сравнивал строки с учетом регистра, вы можете использовать оператор BINARY для приведения строки в двоичную строку.

Потому что MySQL сравнивает двоичные строки побайтно, а не посимвольно. Это позволяет при сравнении строк учитывать регистр символов.

Например, следующий оператор соответствует только заглавным буквам «C» в начале названия продукта.

SELECT

productname

FROM

products

WHERE

productname REGEXP BINARY '^C';

 

 

MySQL. REGEXP. Поиск на основе регулярных выражений_1

 

Чтобы найти продукт, имя которого заканчивается на f, вы используете ‘f$’, чтобы соответствовать концу строки.

SELECT

productname

FROM

products

WHERE

productname REGEXP 'f$'

 

MySQL. REGEXP. Поиск на основе регулярных выражений_1

 

Чтобы найти продукт, название которого содержит слово «ford», вы используете следующий запрос:

SELECT

productname

FROM

products

WHERE

productname REGEXP 'ford';

 

 

 

MySQL. REGEXP. Поиск на основе регулярных выражений_1

 

Чтобы найти продукт, имя которого содержит ровно 10 символов, вы используете « ^’и», $ чтобы соответствовать началу и концу названия продукта, а также повторять {10} любой символ » .’ » между ними, как показано в следующем запросе:

SELECT

productname

FROM

products

WHERE

productname REGEXP '^.{10}$';

 

 

 

MySQL. REGEXP. Поиск на основе регулярных выражений_1

Из этой статьи вы узнали, как запрашивать данные с помощью оператора REGEXP в MySQL с регулярными выражениями.



2020-01-11T21:54:29
База данных MySQL

R Vs Python — самая актуальная дискуссия для начинающих ученых данных

Теперь пришло время битвы двух самых требовательных языков программирования — R против Python. Мы углубимся в понимание различий между двумя языками. И, мы вас уверяем, у вас не останется никакой путаницы после завершения этой статьи, то есть R vs Python — самой популярной дискуссии начинающих ученых-данных.

 

R против Python

Чтобы изучить все о R против Python, сначала вы должны знать, что такое R и Python. Ниже приводится краткое введение в оба языка.

 

Что такое R?

R — это язык программирования, предназначенный специально для статистических и графических вычислений. Проект R — это расширение языка S, разработанное в Bell Laboratories Джоном Чемберсом и его коллегами. Это язык и среда для статистических вычислений и графики.

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

Существуют различные статистические и графические методы, которые предоставляет R, такие как линейное и нелинейное моделирование, статистическое тестирование, анализ временных рядов, классификация, регрессия, кластеризация и многие другие.

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

 

Окружающая среда R

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

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

 

Что такое Python?

Python — это основанный на интерпретаторе высокоуровневый и объектно-ориентированный язык программирования, состоящий из динамической семантики. Python — это встроенные высокоуровневые структуры данных, которые мы можем комбинировать с динамической типизацией и динамическим связыванием, чтобы сделать его очень привлекательным для быстрой разработки приложений. Мы также можем использовать его для написания скриптов или связующего языка для объединения нескольких компонентов в одну структуру.

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

Программисты, которые плохо знакомы с программированием, часто влюбляются в Python из-за его обширной функциональности и простоты обучения. Поскольку в Python нет этапа компиляции, предоставление цикла edit-test-debug значительно ускоряется. В Python процесс отладки программ невероятно прост. В отличие от других языков, таких как C и C ++, неправильный ввод никогда не приведет к ошибке сегментации. Когда интерпретатор обнаруживает ошибку, он вызывает исключение для пользователя сразу после ввода ввода. Однако, если программа перехватывает исключение, интерпретатор предоставляет трассировку стека. Все эти функции, добавленные в массивные библиотеки для различных целей, делают Python эффективным языком программирования. Используя отладчик на уровне исходного кода, можно легко проверять как локальные, так и глобальные переменные.

 

Разница между R и Python

Ниже мы обсудим R против Python на основе определения, обязанностей, карьерных возможностей, преимуществ и недостатков:

 

R против Python — Определение

R

  • В частности, он был направлен на рассмотрение статистических методов.
  • R имеет несколько графических библиотек, таких как ggplot2 и plotly, которые делают его очень популярным благодаря качественным отчетам и изображениям, которые мы можем генерировать.
  • Мы можем использовать R для нескольких статистических функций, таких как регрессия, кластеризация, классификация, статистическое тестирование и т. д. Следовательно, R имеет множество поддерживаемых операций для машинного обучения и статистических задач.
  • В то время как R страдает от крутой кривой обучения, он оказывается идеальным языком для выражения статистических методологий, позволяя ученым по обработке данных в соответствии с их требованиями.
  • R — это язык программирования с открытым исходным кодом, означающий, что пользователи могут активно участвовать в развитии растущего языка, а также пользоваться многими преимуществами без какой-либо лицензии.
  • Будучи основанным на интерпретаторе языком, R может немедленно запустить скрипт и предоставить вывод пользователю. Это позволяет легко отладить код.

 

Python

  • Это многоцелевой язык программирования, который мы можем использовать для самых разных задач.
  • В Python есть библиотека для каждой задачи. Начиная с разработки веб-приложений и заканчивая тестированием на проникновение и изучением данных, Python предлагает решение для всего.
  • Он предоставляет достаточное количество библиотек, которые мы можем использовать для различных операций машинного обучения, а также передовых методологий глубокого обучения.
  • Python обеспечивает плавную кривую обучения, что делает его очень популярным среди новичков, а также опытных программистов, которые хотят перейти к разработке, используя Python в качестве основного языка. Благодаря обширным библиотекам поддержки, он становится выбором для многих операций, так как пользователи Python считают, что язык является единственным решением многих проблем.
  • Python также является языком программирования с открытым исходным кодом, в котором есть много проектов с открытым исходным кодом, в которые пользователи могут активно участвовать.
  • Мы можем проанализировать скрипты Python, а также сразу запустить их. Кроме того, мы можем сохранить Python как скомпилированные программы, на которые могут ссылаться другие программы.

 

R Vs Python — Обязанности

Обязанности разработчика на R следующие:

  • R профессионал несет ответственность за обеспечение моделирования, проводить анализ данных, визуализацию с использованием различных пакетов R.
  • Разработчик R оказывает помощь в проектировании и разработке базовой архитектуры, которая будет использоваться в статистической модели.
  • Разработчик также координирует работу с конечным пользователем для проектирования и разработки решения аналитических задач, связанных с проектными предложениями.
  • Другая ключевая обязанность — обеспечить доступ к данным, манипулировать информацией и сообщать о функциях.
  • Создание ключевых процедур для интеграции R-программирования с источниками данных и системами доставки, которые экспортируют файл данных в несколько форматов.
  • Разработчик R отвечает за оказание помощи разработчикам в выполнении их планов с учетом требований клиента.
  • Программисты R должны создать код, который состоит из качественной переменной, а также задач манипуляции с несколькими статистическими процедурами.

 

Обязанности программиста на Python следующие:

  • Разработчик Python должен иметь возможность реализовывать серверную логику для выполнения серверных вычислений.
  • Разработка программного обеспечения для управления активами является еще одной ключевой обязанностью программиста Python.
  • Чтобы интегрировать различные программные системы, разработчик Python должен иметь возможность разрабатывать масштабируемый клейкий код.
  • Написание многоразового и тестируемого кода для лучшего качества работы — одна из основных функций разработчика Python.
  • Защита данных и защита программного обеспечения также является одним из требований программного решения. Таким образом, разработчик Python должен быть в состоянии решить эту проблему.
  • Программист Python должен уметь реализовывать программирование на основе событий.
  • Другая важная рабочая задача — провести эффективное модульное тестирование и отладку.

 

R Vs Python — карьерные возможности

Некоторые отрасли, которые нанимают разработчиков R:

  • Академии
  • Финансы
  • Банковское дело
  • Здравоохранение
  • Производство
  • Электронная коммерция

Некоторые компании, нанимающие разработчиков R — это IBM, Airbnb, Uber, Twitter, а также несколько государственных статистических институтов.

Некоторые отрасли, которые нанимают разработчиков Python:

  • Разработка программного обеспечения
  • Производство
  • Робототехника
  • Встроенные системы
  • Автоматизация и тестирование
  • Этический взлом

Некоторые из компаний, нанимающих разработчиков Python — это Google, Amazon, Dropbox, Quora, Reddit, Pinterest и многие другие.

 

R Vs Python — Преимущества и недостатки

Преимущества R

  • Основным преимуществом R является его природа с открытым исходным кодом. Поэтому вы можете работать с R без какой-либо лицензии или оплаты сборов. Будучи открытым исходным кодом, вы также можете внести свой вклад в настройку пакетов R, более новую разработку, а также в решение проблем.
  • R обеспечивает образцовую поддержку для обработки данных. Пакеты, такие как dplyr, readr, способны преобразовывать грязные данные в структурированную форму.
  • Имея более 10 000 пакетов в своем репозитории CRAN, R поддерживает библиотеки, которые разнообразны, и каждое поле, которое использует данные, может использовать их.
  • R имеет некоторые существенные особенности для построения графиков и эстетического улучшения графиков. Существуют популярные библиотеки, такие как ggplot2 и plotly, которые предлагают пользователям широкий спектр возможностей настройки графиков.
  • Это независимый от платформы язык, который может выполнять программы в Windows, Linux и Mac.
  • R — это особый язык, который используется для статистического моделирования. Это основной инструмент для создания статистических инструментов для науки о данных. Это дает R существенное преимущество перед другими языками программирования, такими как Python.
  • R постоянно развивается. Он предоставляет различные современные функции, которые продолжают обновлять его всякий раз, когда выпускается новый алгоритм.
  • У этого есть активное и привлекательное сообщество. В R существуют различные онлайн-форумы, которые предоставляют помощь и поддержку программистам R. Кроме того, существуют различные буткемпы и онлайн-семинары, которые предоставляют активное обучение начинающим программистам.

 

Недостатки R

  • Язык программирования R имеет свои корни в гораздо более древнем языке программирования, называемом S. Из-за этого в R отсутствуют большинство функций современного языка программирования, таких как поддержка динамической или трехмерной графики.
  • R требует, чтобы его объекты были сохранены в физической памяти. По сравнению с другими статистическими инструментами R требует больше памяти для своих программ. Поскольку R требует, чтобы все данные были загружены в его память, это не очень хороший вариант при работе с большими данными .
  • Поскольку R вытекает из гораздо более старой технологии, базовые возможности, такие как безопасность, не были родными для R. Это ограничивает R, поскольку веб-приложения не могут его встроить или использовать в качестве языка внутренних вычислений, такого как Java, Python или Node.js.
  • R представляет собой крутой кривой обучения. Людям, имеющим опыт работы в области статистики, было бы идеально использовать R. Поэтому для людей, начинающих заново в науке о данных, R может оказаться сложным языком для адаптации.
  • Пакеты в R, как правило, медленнее, чем другие конкурирующие языки, такие как Python и MATLAB.
  • Большинство алгоритмов R реализованы в разных пакетах. Такая децентрализация пакетов затрудняет применение алгоритмов к задачам без предварительного знания требуемого пакета.

 

Преимущества Python

  • Как и R, Python с открытым исходным кодом. Вы можете использовать Python бесплатно. Кроме того, вы можете изменить, настроить и внести свой вклад в библиотеки Python.
  • Python — это язык программирования общего назначения, который облегчает его использование в различных задачах. Области разработки программного обеспечения, робототехники, встроенных систем, автоматизации и т. д. Интенсивно используют Python.
  • Python включает в себя современные API-интерфейсы, такие как TensorFlow, pytorch, keras, numpy, которые чрезвычайно полезны при создании искусственных нейронных сетей .
  • Это удобный язык программирования. Это одна из основных причин того, почему Python является стандартным языком программирования в университетах.
  • Python безопасен. Серверные вычисления включают в себя Python, поскольку он предоставляет различные платформы для разработки веб-приложений.
  • Python способен обрабатывать большие наборы данных. Он может загружать файлы данных намного быстрее, а также может работать с экосистемами больших данных.

 

Недостатки Python

  • Будучи основанным на интерпретаторе языком, Python медленнее, чем другие языки, такие как C, C ++ и Java.
  • Python отстает от R, когда дело доходит до статистического анализа. Хотя Python, возможно, значительно улучшился, но ему все еще не хватает определенных статистических пакетов по сравнению с R.
  • Динамически типизированная природа Python делает его уязвимым для ошибок во время выполнения.
  • Python, по сравнению с JDBC, имеет недостаточно развитый уровень доступа к базе данных.
  • Задачи, которые требуют большой памяти, страдают от Python. Гибкие типы данных в Python способствуют его высокому потреблению памяти.

 

Резюме

Здесь приходит заключение R против Python. Мы обсудили все основные моменты для понимания различия между R и Python. Надеюсь, теперь вы можете выбрать лучший способ стать специалистом по данным.



2020-01-11T21:49:30
Python

📜 Как сохранить конфигурацию в shell скрипте

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

Shell скрипт

Я буду использовать следующий скрипт оболочки, чтобы проиллюстрировать идею.

Ничего особенного, он отобразит доступное дисковое пространство на конкретном сервере и разделе.

#!/usr/bin/env bash

# Display available disk space on specific server and partition



# default parameters

default_bastion=""

default_busername=""

default_server="localhost"

default_username="milosz"

default_partition="/srv"



# nextcloud server

nextcloud_server="nextcloud.local"

nextcloud_partition="/data"



# dokuwiki server

dokuwiki_bastion="bastion.example.org"

dokuwiki_busername="bouncer"

dokuwiki_server="192.0.2.10"

dokuwiki_username="dokuwiki"

dokuwiki_partition="/wiki"



# kolab server

kolab_bastion="bastion.example.org"

kolab_busername="bouncer"

kolab_server="192.0.2.20"

kolab_username="monitoring"

kolab_partition="/"



# get defined servers/applications

applications="$((set -o posix; set) | awk -F '='  '/_server/ {split($1,array,"_"); print array[1]}' | grep -v default)"



# get defined attributes

attributes="$((set -o posix; set) | awk -F '=' '/default_/ {split($1,array,"_"); print array[2]}')"



for application in $applications; do

  # define attributes for server/application

  for attribute in $attributes; do

    application_attribute="${application}_${attribute}"

    default_attribute="default_${attribute}"

    if [ -n "${!application_attribute}" ]; then

      eval "${attribute}"="${!application_attribute}"

    else

      eval "${attribute}"="${!default_attribute}"

    fi

  done



  # perform an action

  if [ -n "$bastion" ]; then

    bastion_param="-J ${busername}@${bastion}"

  else

    bastion_param=""

  fi

	echo -n "$server: "

  ssh $bastion_param $server -l $username "bash -c 'df -h --output=avail $partition | sed 1d'"

done

Использование

Выполните вышеупомянутый скрипт оболочки, чтобы увидеть доступное дисковое пространство на указанных серверах.

nextcloud.local:   87G

192.0.2.10:   98G

192.0.2.20:  5,5G

Как это работает

Атрибуты

Определите значения по умолчанию, не забудьте включить пустые.

# default parameters

default_bastion=""

default_busername=""

default_server="localhost"

default_username="milosz"

default_partition="/srv"

Эти переменные будут использоваться для извлечения имен атрибутов.

# get defined attributes

attributes="$((set -o posix; set) | awk -F '=' '/default_/ {split($1,array,"_"); print array[2]}')"

Извлеченные имена атрибутов.

attributes="bastion busername server username partition"

Приложения

Определите атрибуты для каждого приложения.

# nextcloud server

nextcloud_server="nextcloud.local"

nextcloud_partition="/data"

[...]

Эти переменные будут использоваться для извлечения имен приложений.

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

# get defined servers/applications

applications="$((set -o posix; set) | awk -F '='  '/_server/ {split($1,array,"_"); print array[1]}' | grep -v default)"

Названия извлеченных приложений.

applications="nextcloud dokuwiki kolab"

Разбор атрибутов для каждого приложения

Я буду перебирать список приложений.

for application in $applications; do

Присвойте атрибуты (например, server, username …), используя переменную application_attribute (значения, такие как nextcloud_server, nextcloud_username, … в зависимости от имени приложения), чтобы определить имя целевой переменной и значение для чтения, используя конструкцию $ {! Application_attribute}. Используйте значение по умолчанию, если оно пустое.

  # define attributes for server/application

  for attribute in $attributes; do

    application_attribute="${application}_${attribute}"

    default_attribute="default_${attribute}"

    if [ -n "${!application_attribute}" ]; then

      eval "${attribute}"="${!application_attribute}"

    else

      eval "${attribute}"="${!default_attribute}"

    fi

  done

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

  # perform an action

  if [ -n "$bastion" ]; then

    bastion_param="-J ${busername}@${bastion}"

  else

    bastion_param=""

  fi

	echo -n "$server: "

  ssh $bastion_param $server -l $username "bash -c 'df -h --output=avail $partition | sed 1d'"

Конец цикла приложения не требует пояснений.

done

Дополнительные замечания

Используйте source дополнительные функции, чтобы отделить эти части от основного скрипта оболочки.



2020-01-10T15:19:03
Скрипты

Ошибка при открытии редактора локальной групповой политики в Windows 10

В сегодняшнем посте мы попытаемся обратиться к сообщению об ошибке «Resource $(string id=”Win7Only)’ referenced in attribute displayName could not be found», с которым вы можете столкнуться при попытке открыть gpedit.msc в Windows 10.

При попытке открыть редактор локальной групповой политики (gpedit.msc) может появиться следующее сообщение об ошибке:

Resource $(string id=”Win7Only)’ referenced in attribute displayName could not be found

По словам Microsoft , это известная проблема. В предыдущей версии SearchOCR.ADML для Windows 10 имеются текстовые обновления. Однако, когда были внесены изменения, строка ниже была вырезана из нового ADML:

<string id=”Win7Only”>Microsoft Windows 7 or later</string>

1] Чтобы решить эту проблему, рекомендуется обновить до последней версии Windows 10 через Центр обновления Windows или обновить с помощью Windows 10 ISO.

2] Кроме того, вы можете загрузить обновленный пакет ADMX для вашей версии Windows 10, а затем использовать обновленные файлы SearchOCR.ADMX и SearchOCR.ADM L из него.

3] Чтобы обойти эту проблему, вы можете вручную настроить файл SearchOCR.adml

Вот как:

Перейдите к расположению файла ниже:

C:WindowsPolicyDefinitionsEN-US

Найдите и создайте резервную копию файла SearchOCR.adml на случай, если вы допустили ошибку при редактировании файла.

Откройте файл в текстовом редакторе — желательно Notepad++.

Найдите строку 26.

Нажмите, чтобы навести курсор на строку 26.

Теперь нажмите комбинацию клавиш CTRL + ALT + Enter, чтобы добавить пустую строку. Строка 26 теперь должна быть пустой.

В пустой строке 26 скопируйте и вставьте текст ниже:

<string id="Win7Only">Microsoft Windows 7 or later</string>

Нажмите сочетание клавиш CTRL + S, чтобы сохранить файл.

Выход из Notepad++.

Вышеуказанная процедура предназначена для английской версии США. Другие языки будут иметь аналогичные инструкции для смягчения этой ошибки gpedit.msc .

Мы надеемся, что этот пост поможет вам решить проблему.



2020-01-10T11:26:39
Вопросы читателей

MikroTik WiFi Frequency Band and Channel Width Explanation

MikroTik WiFi frequency, band and channel width tuning is an important task in any wireless network. If we fail to setup WiFi frequency and channel width parameter properly, we will notice a poor performance of wireless network. WiFi is aimed at use within unlicensed spectrum and the unlicensed spectrum that is usually used for WiFi is 2.4 GHz and 5 GHz band.  2.4 GHz and 5 GHz bands have multiple channels and these channels must be setup properly to get high wireless performance. In my previous article I discussed how to setup MikroTik Wireless Router as a WiFi AP and in this article I will discuss how to setup frequency, band and channel width to get high wireless performance.




IEEE 802.11 Standards and Frequency Band




IEEE 802.11 specifies protocols for implementing Wireless Local Area Network (WLAN) WiFi computer communication in various frequencies including 2.4 GHz and 5 GHz band. IEEE 802.11 has several different variants those use different frequency band. The following table is a summarization of bands used by 802.11 systems.




IEEE 802.11 VARIANTFREQUENCY BANDS USED
  
802.11a5GHz
802.11b2.4GHz
802.11g2.4GHz
802.11n2.4 & 5 GHz
802.11acBelow 6GHz
802.11adUp to 60 GHz
802.11afTV white space (below 1 GHz)
802.11ah700 MHz, 860MHz, 902 MHz, etc.




2.4 GHz Frequency Band




The lower and upper frequency of 2.4 GHz band is 2400 MHz and the upper frequency is 2500 MHz. There are fourteen channels in this frequency spectrum. The 802.11 Wi-Fi standards specify a bandwidth of 22 MHz for each channel but often nominal figures of 20 MHz is given for the Wi-Fi channels and channels are on a 5 MHz incremental. The 20 / 22 MHz bandwidth and channel separation of 5 MHz means that adjacent channels overlap and signals on adjacent channels will interfere with each other.

The following table is summarizing the channel number of 2.4 GHz band and the lower, middle and upper frequency of each channel number.


CHANNEL NUMBERLOWER FREQUENCY
MHZ
CENTER FREQUENCY
MHZ
UPPER FREQUENCY
MHZ
    
1240124122423
2240624172428
3241124222433
4241624272438
5242124322443
6242624372448
7243124422453
8243624472458
9244124522463
10244624572468
11245124622473
12245624672478
13246124722483
14247324842495




Although fourteen channels are available of 2.4 GHz band, all channels are not usable all countries. The following table provides a broad indication of the availability of the different WiFi channels in different parts of the world.




CHANNEL NUMBEREUROPE
(ETSI)
NORTH AMERICA
(FCC)
JAPAN  
    
1
2
3
4
5
6
7
8
9
10
11
12No
13No
14NoNo802.11b only




This chart is only provides a general view, and there may be variations between different countries. So, it is always better to check the available channels in your country before implementing 2.4 GHz frequency band.




Non Overlapping Channels in 2.4 GHz Band   




Channel overlapping between two adjacent WiFi AP devices cause frequency interference. So, performance of wireless network will be so poor in overlapping channel. As one WiFi client device can communicate to a WiFi AP at a time using a channel width, the overlapped WiFi AP must wait until the channel being clear. As a result the WiFi performance gets slow.




The channels used for 2.4 GHz band are separated by 5 MHz but each channel has 22 MHz bandwidth. So, channels are usually overlapped. If we look in the above frequency chart, it can be seen that maximum three non-overlapping channel can be found in 2.4 GHz band. There can be five non overlapping channel combinations those are shown in the following diagram.




Non Overlapping Channel Combination
Non Overlapping Channel Combination




From the diagram, it can be seen that Wi-Fi channels 1, 6, 11, or 2, 7, 12, or 3, 8, 13 or 4, 9, 14 (if allowed) or 5, 10 (and possibly 14 if allowed) can be used together as sets. Often WiFi routers are set to channel 6 as the default, and therefore the set of channels 1, 6 and 11 is possibly the most widely used.

The 802.11n standard has the possibility of using signal bandwidth either 20 MHz or 40 MHz. When 40 MHz bandwidth is used to gain the higher data throughput, this obviously reduces the number of channels that can be used.


Non Overlapping Channel 40 MHz Bandwidth
Non Overlapping Channel 40 MHz Bandwidth




The above diagram shows the 802.11n 40 MHz signals. These signals are designated with their equivalent center channel numbers.




In a multi WiFi AP network, the coverage of WiFi AP must be overlap for smooth connection but channel overlapping must be avoided. So, we have to plan properly for designing a multi WiFi AP network. A possible multi WiFi AP network where there will be no channel overlapping can be as the following image.




Non Overlapping Channel Design with Coverage Overlap
Non Overlapping Channel Design with Coverage Overlap




If you use a home wireless router, there may be channel overlapping with your neighbor home wireless router. So, it will be better to discuss with your neighbor for choosing channel according to the above planning.




2.4 GHz WiFi Range




WiFi range absolutely depends on the type of network. A home network serves only a few family members. On the other hand a business network can serve large office buildings or even in a city. The cost to build and maintain business networks increases significantly as the range increases, of course.




A general rule of thumb in home networking says that Wi-Fi routers operating on the 2.4 GHz band can reach up to 150 feet indoors and 300 feet outdoors. Older 802.11a routers that ran on 5 GHz bands reached approximately one-third of these distances. Newer 802.11n and 802.11ac routers that operate on both 2.4 GHz and 5 GHz bands reach greater distances.

Controlling transmit power, the WiFi range can be increased or decreased. For example, if you want to limit the WiFi range only in a room, decrease transmitting power to get less WiFi coverage.


The factors that can influence WiFi range are the access point or router itself, the structure or building (brick walls and metal frames can reduce the WiFi range by 25% or more) you are in and the wireless standard (The 802.11g protocol has an indoor range of 125 feet, while 802.11n has a range of 235 feet) that you are using.




5GHz Frequency Band




The 2.4 GHz band is now becoming more crowded. So, many users are now choosing 5 GHz band because it has more throughput and less interference.




5GHz band was first introduced in 802.11a but the radios were expensive and the band didn’t gain popularity. 802.11n was defined for both 2.4GHz and 5GHz bands, which finally launched 5GHz use. The latest 802.11ac is only defined for 5GHz but all devices still support 802.11n and most also on 2.4GHz.




5GHz band has 23 non-overlapping channels but all channels are not usable for all countries because there are some forbidden channels and some channels have special restrictions. The following table is a summarization of 5GHz channels with 20MHz channel width and region availability.




Channel NumberFrequency MHzEurope
(ETSI)
North America
(FCC)
Japan
     
365180Indoors
405200Indoors
445220Indoors
485240Indoors
525260Indoors / DFS / TPCDFSDFS / TPC
565280Indoors / DFS / TPCDFSDFS / TPC
605300Indoors / DFS / TPCDFSDFS / TPC
645320Indoors / DFS / TPCDFSDFS / TPC
1005500DFS / TPCDFSDFS / TPC
1045520DFS / TPCDFSDFS / TPC
1085540DFS / TPCDFSDFS / TPC
1125560DFS / TPCDFSDFS / TPC
1165580DFS / TPCDFSDFS / TPC
1205600DFS / TPCNo AccessDFS / TPC
1245620DFS / TPCNo AccessDFS / TPC
1285640DFS / TPCNo AccessDFS / TPC
1325660DFS / TPCDFSDFS / TPC
1365680DFS / TPCDFSDFS / TPC
1405700DFS / TPCDFSDFS / TPC
1495745SRDNo Access
1535765SRDNo Access
1575785SRDNo Access
1615805SRDNo Access
1655825SRDNo Access




Note: DFS = Dynamic Frequency Selection; TPC = Transmit Power Control; SRD = Short Range Devices 25 mW max power.




The 802.11n gave us the ability to use 40MHz channels. From there, 802.11ac now allows for 80MHz and even 160MHz wide channels!  These wide channels are created by bonding 20MHz channels together. For example, channels 36 and 40 (each 20MHz) are bound together to make 40MHz channel 38. The following diagram is summarization of 5GHz channel allocation with various channel width and center frequency.




5 GHz Channel Allocations
5 GHz Channel Allocations




The above diagram shows that 5 GHz channels are divided into three units: UNII-1, UNII-2 and UNII-3. UNII-1 channels are almost usable all countries but other channels have limitation in different country.




Assigning Band, Frequency and Channel Width in MikroTik Wireless Router




Band, frequency and channel width can be tuned at the time of wireless AP configuration or CAPsMAN configuration. The following steps will show how to tune band, frequency and channel width in MikroTik Wireless Router that is working as a WiFi AP.




  • From Winbox, click on Wireless button. Wireless Tables window will appear.
  • Double click on WLAN interface where you want to tune wireless frequency and channel parameters. Interface property window will appear.
  • Click on Wireless tab and choose desired frequency band and wireless standard from Band dropdown menu.
  • Choose desired channel width from Channel Width dropdown menu.
  • Choose middle frequency of the channel width from Frequency dropdown menu.
  • Click Apply and OK button.




Band Frequency and Channel Width Tuning in MikroTik Wireless Router
Band, Frequency and Channel Width Tuning in MikroTik Wireless Router




How to plan for WiFi band, frequency and channel width and how to apply in MikroTik Wireless Router have been discussed in this article. I hope you will now be able to plan and tune your wireless network properly. However, if you face any confusion, feel free to discuss in comment or contact me from Contact page. I will try my best to stay with you.



2020-01-10T09:53:15
MikroTik Router Tutorials & Guides

Как изменить пароль учетной записи с помощью командной строки в Windows 10

Когда вам нужно изменить пароль локальной учетной записи, вы также можете использовать командную строку, и в этом руководстве вы узнаете, как это сделать в Windows 10.

В Windows 10, если вы подозреваете, что ваш пароль был взломан, ранее выбрали слабый пароль или если вы использовали один и тот же пароль в течение нескольких месяцев, рекомендуется заменить пароль учетной записи Windows 10 на другой и сложный. угадать.

Если вы используете локальную учетную запись без учетной записи Microsoft, у вас есть несколько способов изменить пароль, но одним из быстрых способов является использование командной строки.

В этом руководстве вы узнаете, как изменить пароль локальной учетной записи в Windows 10.

Чтобы изменить пароль локальной учетной записи с помощью командной строки, выполните следующие действия.

  1. Откройте Пуск.
  2. Найдите командную строку, щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».
  3. Введите следующую команду, чтобы получить список всех доступных учетных записей, и нажмите Enter:

    net user
  4. Введите следующую команду, чтобы изменить пароль учетной записи и нажмите Enter:

    net user USERNAME *

    В команде обязательно измените USERNAME на имя учетной записи, которую вы хотите изменить.

  5. Введите новый пароль для пользователя и нажмите Enter.
  6. Введите новый пароль еще раз для подтверждения и нажмите Enter.

После выполнения этих действий выйдите из своей учетной записи Windows 10 и снова войдите в систему, чтобы начать использовать новый пароль.

Если вы используете учетную запись, связанную с вашей учетной записью Microsoft, описанные выше действия не применяются. В этом случае вам необходимо выполнить следующие действия, чтобы изменить пароль учетной записи.

Хотя данное руководство посвящено Windows 10, эти шаги также должны работать в Windows 8.1 и Windows 7.



2020-01-09T10:30:02
Вопросы читателей