Разработка
Подкатегория
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
/*
Завершающая тема видео уроков по SQL и основам баз данных на примере SQLite.
1. Пользовательские ошибки и конфилкты в SQL и их устранение в базах данных SQLite.
2. Условные выражения CASE, WHEN, THEN, ELSE в SQL на примере базы данных SQLite.
3. Рекурсивные SQL запросы в базах данных SQLite: WITH RECURSIVE clause.
4. SQL запрос EXPLAIN в базах данных SQLite.
5. Внутренние таблицы в базе данных SQLite и SQL команда ANALYZE.
6. Как изучать SQL и работу реляционных баз данных: книги, учебники и другие материалы.
7. Спасибо за просмотр!
*/
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
-- ON CONFLICT: пользовательские ошибки и конфилкты в SQL
-- и их устранение в базах данных SQLite
/*
1. SQL предложение ON CONFLICT не является самостоятельной командой.
2. ON CONFLICT не является частью стандарта SQL.
3. У данного предложения есть два синтаксиса.
4. Синтаксис при создании таблиц.
5. Синтаксис при манипуляции данными.
6. В базах данных SQLite предложение ON CONFLICT - это такое же
ограничение, как, скажем, UNIQUE, NOT NULL, CHECK, PRIMARY KEY и
используется ON CONFLICT как инструкция к действию для СУБД при
возникновении конликтов.
7. ON CONFLICT дает нам пять способов завершения клиентского запроса,
если этот запрос нарушает внутренние правила базы данных.
*/
/*
Не забывайте, что любая SQL операция, манипулирующая данными, за
исключением команды SELECT - это небольшая транзакция. Давайте
теперь посмотрим как может завершаться SQL запрос, породивший
конфликт в базе данных:
1. ROLLBACK:в данном случае библиотека SQLite прервет SQL запрос,
породивший конфликт, а пользователь на экране увидит предупреждение:
SQLITE_CONSTRAINT и произойдет откат транзакции.
2. ABORT: также прерывает выполнение транзакции при обноружении
конфликта, аннулируются изменения, из-за которых конфликт происходит,
но, в то же время, если транзакция состоит из более чем одного предложения,
предыдущие изменения прменяются и при этом транзакция остается активной.
3. FAIL: работает аналогично ABORT, но если вы выполняете UPDATE и
SQLite выполнила успешно 99 модификаций, а на 100 произошел
конфликт, то первые 99 изменения будут применены, а 100 и последующие
изменения выпонены никогда не будут.
4. IGNORE: просто не выполняет предложение, порождающее конфликт,
а все остальные выполняются.
5. REPLACE: один из самых неодназначных способов разрешения конфликта в
базах данных SQLite. Например, если происходит нарушение ограничения
первичного ключа или столба UNIQUE, то алгоритм REPLACE удалит
уже существующие значения, которые конфликтуют с новыми и продолжит
выполнение SQL запросов. Если происходит нарушение ограничения
NOT NULL, то данный алгоритм заменит NULL значения на значение по
умолчанию, заданное при создании таблицы, если такового нет, то
используется алгоритм ABORT. Если происходит нарушение ограничения
CHECK, то REPLACE сработает как ABORT.
*/
/*
Синтаксис заданный для команд манипуляции имеет наивысший
приоритет. А по умолчанию для разрешения конфликтов SQLite
использует алгоритм ABORT
*/
http://sqlite.org/lang_insert.html
http://sqlite.org/lang_update.html
http://sqlite.org/lang_createtable.html
http://sqlite.org/lang_transaction.html
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
-- Условные выражения CASE, WHEN, THEN, ELSE, END в SQL
/*
Условные выражения, состоящие из CASE, WHEN, THEN и ELSE
полезны в тех случаях, когда нужно осуществить ряд проверок и
получить конечный результат в зависимости от исхода этих
проверок. По сути, CASE является SQL оператором, а ключевые
слова WHEN и THEN позволяют задавать несколько условия для
проверки, теоретически количество этих условий может быть
бесконечным.
Выражение с оператором CASE имеют две формы записи, но в
любом случае условное выражение в SQL завершается ключевым
словом END.
*/
-- 1 вариант
CASE
WHEN первое условие
THEN первое возвращаемое значение
WHEN второе условие
THEN второе возвращаемое значение
…
WHEN энное условие
THEN энное возвращаемое значение
[ELSE возвращаемое значение, если условие не будет выполнено]
END
-- 2 вариант
CASE первое значение, которое хотим проверить
WHEN первое значение, с которым сравниваем
THEN первое значение, которое возвращаем
WHEN второе значение, с которым сравниваем
THEN второе значение, которое возвращаем
…
WHEN энное значение, с которым сравниваем
THEN энное значение, которое возвращаем
[ELSE возвращаемое значение, если условие не будет выполнено]
END
-- Для начала рассмотрим два простых примера
CREATE TABLE booltable (a,b);
INSERT INTO booltable VALUES (1,0);
SELECT * FROM booltable;
-- 1 вариант выражения CASE в SQL
SELECT
CASE WHEN a==1 THEN 'true' ELSE 'false' END as typeColA,
CASE WHEN b THEN 'true' ELSE 'false' END as typeColB
FROM booltable;
-- 2 вариант выражения CASE в SQL
SELECT
CASE a WHEN 1 THEN 'true' ELSE 'false' END AS boolA,
CASE b WHEN 1 THEN 'true' ELSE 'false' END AS boolB
FROM booltable;
Как работает рекурсия? Иерархические / рекурсивные SQL запросы в базах данных SQLite: WITH RECURSIVE
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
-- Рекурсивные/иерархические SQL запросы в базах данных SQLite:
-- WITH RECURSIVE clause.
/*
Не все любят рекурсивные или как еще говорят иерархические
SQL запросы. Потому что не всем и не всегда просто понять
рекурсию, поэтому, обычно, рекурсивные запросы применяют
либо те, кто рекурсию понимают, либо те, кто не ленится
эксперементировать и пробовать и в конце концов тоже начинает
понимать рекурсию.
Здесь мы попробуем разобраться и с рекурсией и с
иерархическими SQL-запросами. SQLite, как и многие другие
СУБД - реляционная: база данных состоит из таблиц, таблицы
в свою очередь состоят из строк и столбцов, другими словами:
данные представлены двумерно.
В нашей жизни, так уж получается, что не все объекты удобно
описывать двумерной моделью: крупная международная компания
с холдингами и филиалами в различных странах, файловая система
компьютера, карьерная лестница в компании - эти данные намного
удобнее описывать иерархической моделью.
Конечно, например, структуру крупной компании можно описать
несколькими таблицами, например, таблицы стран: Китай, Россия,
США, Англия, Япония. Далее спуститься на уровень ниже
и создать таблицы регионов для страны: Москва, Иваново,
Новосибирск, Омск. Но такой подход не всегда удобен, поскольку
не всегда известна глубина вложенности.
В 1999 году международное сообщество решило эту проблему
путем добавления в стандарт (SQL-1999) рекурсивных SQL-запросов,
хотя компания Oracle это сделала немного раньше (и по Ораклу
рекурсивные запросы называются иерархическими).
*/
http://sqlite.org/lang_with.html
/*
Общий синтаксис рекурсивных запросов в SQLite выглядит следующим
образом:
WITH [RECURSIVE] cte-table-name AS (select-stmt);
Но это не всё, рекурсивный SQL запрос состоит из двух запросов SELECT,
если эта фраза в данном случае уместна:
WITH RECURSIVE
cte-table-name AS (initial-select UNION [ALL] recursive-select)
cte-select;
2 1 cte-table-name 1 2
initial-select (не должен в себя включать ORDER BY, LIMIT, OFFSET) -
точка, откуда начинается рекурсия.
recursive-select - рекурсивный запрос, который будет вполняться
до тех пор, пока условие не будет выполнено, два верхних запроса
позволяют создать наполнить нашу импровизированную таблицу данными
cte-select - позволяет работать с данными таблицы
1-1000
WITH RECURSIVE
table1(col1) AS (
VALUES(1)
UNION ALL
SELECT col1+1 FROM table1
WHERE col1(знак меньше)1000)
SELECT col1 FROM table1;
WITH RECURSIVE
table1(col1) AS (
SELECT 1
UNION ALL
SELECT col1+1 FROM table1
LIMIT 1000
)
SELECT col1 FROM table1;
table1
col1
2
3 2 1 table1 1 2 3
-- Создадим таблицу
CREATE TABLE org(
name TEXT PRIMARY KEY,
boss TEXT REFERENCES org
);
-- наполним ее данными
INSERT INTO org VALUES('Alice',NULL);
INSERT INTO org VALUES('Bob','Alice');
INSERT INTO org VALUES('Cindy','Alice');
INSERT INTO org VALUES('Dave','Bob');
INSERT INTO org VALUES('Emma','Bob');
INSERT INTO org VALUES('Fred','Cindy');
INSERT INTO org VALUES('Gail','Cindy');
SELECT * FROM org;
-- Для лучшего понимания работы рекурсии и поиска значений
-- рекомендую вам погуглить:
-- FIFO, поиск в глубину и поиск в ширину
0|Alice
1|Bob
1|Cindy
2|Dave
2|Emma
2|Fred
2|Gail
-- поиск в глубину
WITH RECURSIVE
under_alice(name,level) AS (
VALUES('Alice',0)
UNION ALL
SELECT org.name, under_alice.level+1
FROM org JOIN under_alice ON org.boss=under_alice.name
ORDER BY 2 DESC
)
SELECT level, name FROM under_alice;
Alice
...Bob
...Cindy
......Dave
......Emma
......Fred
......Gail
WITH RECURSIVE
under_alice(name,level) AS (
VALUES('Alice',0)
UNION ALL
SELECT org.name, under_alice.level+1
FROM org JOIN under_alice ON org.boss=under_alice.name
ORDER BY 2 DESC
)
SELECT substr('..........',1,level*3) || name FROM under_alice;
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
-- SQL запрос EXPLAIN в базах данных SQLite: оптимизация SQL запросов.
-- Эти ссылки помогут вам разобраться с оптимизацией запросов:
http://sqlite.org/lang_explain.html
http://sqlite.org/optoverview.html
http://sqlite.org/eqp.html
http://sqlite.org/queryplanner.html
http://sqlite.org/queryplanner-ng.html
http://sqlite.org/opcode.html
/*
Библиотека SQLite имеет две SQL команды, которые позволяют нам
сделать две важные вещи: посмотреть как выполняется запрос
и оценить насколько он эффективен.
Эти SQL команды стоит использовать только при отладке, но
никак не в рабочих проектах.
Команды, на самом деле очень просты: EXPLAIN и
EXPLAIN QUERY PLAN.
Информация, получаемая при помощи запросов EXPLAIN и
EXPLAIN QUERY PLAN может изменяться в зависимости от
версии SQLite.
Запрос EXPLAIN позволяет увидеть последовательность машинных
команд, которые бы совершила SQLite для выполнения того
или иного запроса.
У SQLite есть целый раздел документации, в котором
описывается особенность использования EXPLAIN QUERY PLAN,
там даже есть наглядные примеры и детальные пояснения.
*/
EXPLAIN SELECT * FROM invoices WHERE BillingCountry = "USA";
/*
addr - номер команды или инструкции, всегда начинается
с нуля
P1, P2 P3 - 32-ух битные целые числа, зачастую эти операнды
ссылаются на регистры для получения инструкций по работе
с Б-деревом.
P3 - обычно используется для хранения промежуточных
результатов.
P1 - обычно хранит в себе номер указателя текущего узла
Б-дерева или курсор.
P2 - хранит информацию, которая помогает перемещаться между
узлами дерева, обычно это узел, в который нужно перейти.
P4 - может быть как 32-ух битным целым, так и 64-ех битным
целым или 64-ех битным с плавающей точкой, BLOB или
строковым значением обычно этот операнд является указателем
на функцию сравнения данных.
P5 - значение данного операнда является флагом, который
может тем или иным образом влиять не результаты выполнения
операций (всё зависит от opcode).
opcode - это код машинной операции, которая выполняется
на том или ином шагу. Не все операции задействуют одинаковое
число операндов, а назначение некоторых операндов зависит от
выполняемой операции.
*/
-- EXPLAIN QUERY PLAN
-- для тблицы без индекса
SELECT * FROM invoices WHERE BillingCountry = "USA";
EXPLAIN QUERY PLAN SELECT * FROM invoices
WHERE BillingCountry = "USA";
-- для таблицы с индексом
SELECT * FROM invoices
WHERE BillingCountry = "USA";
EXPLAIN QUERY PLAN SELECT * FROM invoices
WHERE BillingCountry = "USA";
-- поиск по индексному столбцу
SELECT BillingCountry FROM invoices
WHERE BillingCountry = "USA";
EXPLAIN QUERY PLAN SELECT BillingCountry FROM invoices
WHERE BillingCountry = "USA";
-- поиск с группировкой
DROP INDEX i1;
SELECT max(invoicedate), BillingCountry FROM invoices
GROUP BY BillingCountry;
EXPLAIN QUERY PLAN SELECT max(invoicedate), BillingCountry
FROM invoices
GROUP BY BillingCountry;
/*
explain query plan
scan table — самый тупой поиск в базе даннных, полнотекстовый перебор значений;
search table using index — индекс в таблице существует,
но данные, которые мы ищем в него не включены;
search table using covering index — самый эффективный случай, искомые данные уже лежат в индексе;
use temp B-TREE — поиск с конструкциями типа group by,
order by, и по столбцу, в котором идет поиск, индекс не
создан, в этом случае SQLite делает примерно следующее:
выбирает все строки, которые удовлетворяют заданному
критерию, а затем строит в памяти Б-дерево, которое
использует для сортировки этих данных, всё это происходит
очень медленно. Поэтому столбцы, значения которых в часто
группируете или сортируете лучше проиндексировать.
*/
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
-- Внутренние таблицы в базе данных SQLite и
-- SQL команда ANALYZE.
/*
Команда ANALYZE собирает статистическую информацию обо всех
индексах в базах данных SQLite для последующей оптимизации
запросов.
Этой команде можно передавать имя таблицы или имя базы данных,
для которой следует собирать информацию.
Когда вы выполняете команду ANALYZE в вашей БД создается
таблица с именем sqlite_stat1, в которой хранится вся
необходимая информация. Стоит отметить, что эта таблица
не обновляется автоматические и если данные и их структура
в вашей БД существенно изменились, то стоит повторно
выполнить SQL команду ANALYZE.
Таблицу sqlite_stat1 можно изменять вручную при помощи команд
маниуляции данными.
*/
ANALYZE dbname;
ANALYZE tablename;
.open chinook.db
.headers on
.tables
SELECT * FROM sqlite_stat1;
ANALYZE;
SELECT * FROM sqlite_stat1;
DROP TABLE sqlite_stat1;
/*
Как видим у таблицы sqlite_stat1 три столбца:
tbl – имя таблицы
idx – имя индекса
stat – последовательность целых чисел:
первое – приблизительное число строк в таблице,
второе – приблизительное среднее число строк в таблице,
которые имеют одинаковое значение в первом столбце индекса,
N-ое число – приблизительное среднее число строк в таблице,
которые имеют одинаковые значения в первых (N-1) столбцах
индекса.
У поля STAT может быть ключевое слово UNORDERED,оно означает,
что планировщик SQLite не использует этот индекс для сортировки.
*/
-- таблица SQLITE_MASTER
SELECT * FROM sqlite_master;
/*
У таблицы sqlite_master пять столбцов:
type - столбец для указания типа объекта базы данных (table,
view, trigger, index)
name - хранит в себе имя объекта базы данных
tbl_name - имя таблицы или VIEW, которое связано с данным
объектом БД
rootpage - номеров корневой страницы для таблиц и индексов.
Для VIEW, виртуальных таблиц и триггеров это поле будет
либо NULL, либо 0.
sql - это sql-запрос, который описывает объект базы данных.
*/
-- посмотреть все таблицы в БД и их структуру
SELECT * FROM sqlite_master WHERE type='table';
-- получить всю информацию о конкретной таблице
SELECT * FROM sqlite_master WHERE name='playlists';
-- увидеть имена всех таблиц в БД
SELECT name FROM sqlite_master WHERE type="table";
-- таблица SQLITE_SEQUENCE
SELECT * FROM SQLITE_SEQUENCE;
/*
Эта таблица используется для поддержания работы ограничения
AUTOINCREMENT в базе данных SQLite.
Для каждого инкремента, который создал пользователь в базе
данных эта таблица хранит отедльную строку.
Эту таблицу можно редактировать, будьте аккуратны.
*/
-- таблица SQLITE_STAT2
SELECT * FROM sqlite_stat2;
/*
В современных версиях библиотеки SQLite3 этой таблицы не
существует, но раньше она использовалась для хранения
информации о распределнии ключей в БД.
*/
-- таблица SQLITE_STAT3
SELECT * FROM sqlite_stat3;
/*
Данная внтренняя таблица SQLite появляется только в том
случае, когда библиотека собрана с параметром
SQLITE_ENABLE_STAT3 или SQLITE_ENABLE_STAT4 (у нашей
тестовой БД эти параметры отключены). Эта таблица содержит
в себе информацию о распределении ключей в пределах индекса.
У внутренней таблицы sqlite_stat3 шесть столбцов:
tbl – имя таблицы;
idx – имя индекса;
nEq – приблизительное среднее число записей в таблице,
левый столбец которых равен sample;
nLt – приблизительное среднее число записей в таблице,
левый столбец которых меньше sample;
nDlt – приблизительное среднее число разных записей в
таблице, левый столбец которых меньше sample;
sample – содержит значение крайнего левого столбца индекса;
*/
SELECT * FROM sqlite_stat3;
-- таблица SQLITE_STAT4
/*
Данная внтренняя таблица SQLite появляется только в том
случае, когда библиотека собрана с параметром
SQLITE_ENABLE_STAT4. Эта таблица содержит в себе информацию
о распределении ключей в пределах индекса.
tbl – имя таблицы;
idx – имя индекса;
nEq – список чисел, где k-ое число это приблизительное
число записей в таблице, в которых k левых столбцов,
равны k левым столбцам индекса;
nLt – список чисел, где k-ое число это приблизительное число
записей в таблице, в которых k левых столбцов, в
совокупности, меньше k левых столбцов индекса;
nDLt – список чисел, где k-ое число это приблизительное
число разных записей в таблице, в которых k левых столбцов,
в совокупности, меньше k левых столбцов индекса;
sample – содержание индекса в формате записи (record format);
SQLITE_STAT4 является обощенным вариантом SQLITE_STAT3.
*/
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
Если вы хотите быть SQL-разработчиком, администратором или архитектором баз данных:
1. Здесь можно выделить четыре основных направления.
а) теория реляионных баз данных и реляционная алгебра/алгоритмы и структуры данных/дискретная математика;
б) необохдимо изучить инструмент, который будете применять в работе (стандарты читать не надо, а вот активное
юзанье документации пойдет на пользу);
в) получение практики: повторение примеров из книг и видео уроков, разбор архитектуры БД и Query-листа приложения с открытым
исходным кодом, самостоятельный выбор любого объекта (предметной области) из нашего бренного мира и его описание, это может
быть даже дом, в котором вы живете;
г) изучение предметной области, в которой вы хотите работать.
2. Если у вас нет даже базовых знаний, то начинать нужно с простых и понятных материалов, которые не отобьют у вас желание учиться
и позволят почувствовать уверенность в своих силах и понять, что базы данных и SQL - это не так уж и сложно. Для этих целей
прекрасно подойдут материалы, которые вы сможете нагуглить или видосы с Ютуба, благо этого добра навалом.
Книги по SQL и базам данных для новичка:
«Изучаем SQL», Бейли Л.;
«SQL для простых смертных», Грабер Мартин;
«SQL за 10 минут», Бен Форта;
«Изучаем SQL», Алан Бьюли;
«Язык запросов SQL. Учебный курс», Филипп Андон, Валерий Резниченко;
«SQL For Dummies», Allen G. Taylor
«SQL-запросы для простых смертных. Практическое руководство по манипулированию данными в SQL», Майкл Дж. Хернандес, Джон Л. Вьескас;
«MySQL. Сборник рецептов», Поль Дюбуа.
Документация самых популярных СУБД:
документация SQLite: http://sqlite.org/docs.html;
документация MySQL: https://dev.mysql.com/doc/
документация PostgreSQL: https://www.postgresql.org/doc....s/9.6/static/index.h
документация PostgreSQL на русском: https://postgrespro.ru/docs/postgresql/9.6/;
документация MS SQL: https://technet.microsoft.com/....ru-ru/library/ms1302
документация Oracle: http://docs.oracle.com/cd/E11882_01/index.htm;
сюда можно добавить книги по различным СУБД, ориентированные на читателя со средней и высокой подготовкой;
и, конечно же, учебник и словарик английского языка, если вы его не знаете.
Теоретические знания: уровень Будда SQL и реляционных баз данных
Книги по теории реляционных баз данных:
«Введение в системы баз данных», Кристофер Дж. Дейт
«SQL и реляционная теория. Как грамотно писать код на SQL», Кристофер Дж. Дейт
«Основы будущих систем баз данных: Третий манифест»., Кристофер Дж. Дейт
«Базы данных и UML», Роберт Дж. Мюллер
«Теория и практика построения баз данных», Крёнке Д.
«Системы баз данных: проектирование, реализация и управление.», Питер Роб, Карлос Коронел
«Системы баз данных. Полный курс.», Гектор Гарсиа-Молина, Джеффри Ульман, Дженнифер Уидом
Книги по алгоритмам и структурам данных:
«Алгоритмы. Вводный курс», Томас Х. Кормен;
«Алгоритмы», Дасгупта С., Пападимитриу Х., Вазирани У.;
«Анализ алгоритмов. Вводный курс», Дж. Макконелл;
«Алгоритмы. Теория и практическое применение», Род Стивенс;
«Автоматное программирование», Поликарпова Н. И., Шалыто А. А.;
«Алгоритмы и структуры данных. Новая версия для Оберона», Н. Вирт;
«Алгоритмы. Построение и анализ.», Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн;
Книги и учебники по дискретной математике:
«Дискретная математика для программистов», Р. Хаггарти;
«Введение в схемы, автоматы и алгоритмы», Дехтярь М. И.;
«Графы и алгоритмы», Алексеев В. Е., Таланов А. В..
Где, черт возьми, мне брать практику?
Повторяйте примеры из книг, учебников, видео.
Оглянитесь вокруг: любой предмет, который вы видите, можно описать в базе данных, например, ваш дом, жэк и его жильцы.
Ну хорошо, сделайте базу данных для КЛАДР и нормализуйте ее до улицы или сделайте базу данных всех номеров для всех провайдеров во всем мире или России (при этом учтите номера спец. служб, деление на мобильные и стационарные, да, номера еще и внутри страны делятся по регионам и есть всякие 8 800).
Мы пришли к тому, что перед проектированием БД нужно хоть чуток разбираться в предметной области, для тех кто хочет сделать КЛАДР: не забывайте, что Москва – это не только город.
Если вы хотите проектировать базы данных для Web, то скачайте самые популярные и востребованные CMS (Drupal, WordPress, Joomla, Typo3) и посмотрите на их базы данных, а также изучите запросы к базам данных, это полезная практика.
Если вас интересует другая предметная область – Гугл вам в помощь, вы сможете найти различные биллинговые системы, CRM, ARM и другие системы учета с открытым исходным кодом и документацией.
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
Это последнее видео последней темы в плейлисте основы языка SQL и реляционных баз данных, здесь я не буду ничего рассказывать, объяснять
и показывать, а лишь просто скажу. Что надеюсь на то что, я не зря потратил время
на создания этих видео уроков и они помогут вам легко и без особого труда разобраться с основными возможностями языка SQL и
фундаментальными основами теории реляционных баз данных.
В любом случае, цель, которую я ставил перед собой, записывая данный плейлист, я выполнил, а именно: рассказать на понятном и
простом языке о реляционных базах данных и дать представление и понимание того, как работает язык запросов SQL. Надеюсь, что это
у меня получилось хорошо, и вы поддержите мои видео своими отзывами, лайками и репостами, а кто-то может, даже материально,
реквизиты есть в описании к этому видео.
Итак, подведем итог сделанному:
1. За шесть месяцев было записано более 150 видео.
2. Эти видео разбиты на 19 тем.
3. В среднем тема состоит из 8 частей.
4. Каждая часть это небольшой узконаправленный видео урок, раскрывающий тему с той или иной стороны, в этом уроке есть как теория
так и примеры, средняя продолжительность видео где-то 6 минут.
5. Если прикинуть, то получается примерно 900 минут или 15 часов видео.
6. Мы двигались от простого к сложному.
7. Начинали мы с установки и настройки нашей СУБД.
8. А заканчивали мы оптимизацией производительности SQL запросов и рекурсией.
9. Между этим двумя крайностями было следующее.
10. Теория реляционных баз данных.
11. Структура языка SQL.
12. Разница между языком SQL и реляционной теорией баз данных.
13. И, конечно же, мы выделили основные и самые важные функции языка SQL и подробно с ними разобрались.
14. Если вам кто-то пообещает SQL за час, то не верьте.
Еще я хотел бы по благодорить вас, зрителей моего канала, за поддержку в виде просмотров, отзывов и лайков к видео, нашлось даже
три человека, которые донатили, жаль я не знаю их имен, так бы поблагодарил отдельно, на самом деле, ребят, я хочу сказать
огромное спасибо вам: в то время как на Ютубе есть котики, ментос и газировка, политика и другие темы, вы смотрите мой скучный
бубнеж про всякие SQL, HTML, CSS и не просто смотрите, а еще и поддерживает! Это круто!
Теперь немного о планах публикации видео на канале, этот плейлист (видео уроки по основам SQL и реляционных баз данных на
примере библиотеки SQLite) закончен и пополняться больше не будет от слова совсем. Зато начнут появляться видео по работе
с сервером баз данных MySQL и его графическим клиентом MySQL Workbench. Также на канале есть еще один плейлист, который близок
к завершению, в котором я рассказываю про HTML, поэтому основной упор будет сделан на него.
Также, отмечу, что плейлисты по JavaScript и CSS не будут обновляться до завершения HTML. В общем, как-то так я вижу ближайшую перспективу моего канала.
👍 Смотрите как прошить wi-fi роутер. Для чего нужно прошивать роутер и в каких случаях это следует делать. Где и как скачать последнюю версию прошивки для конкретной версии маршрутизатора. Как установить стандартную и стороннюю прошивку, и о том, как восстановить роутер после неудачной прошивки.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
С каждым днем интернет все более плотно закрепляется в нашей жизни. Поэтому качественный и быстрый доступ в сеть является залогом успеха. Как известно, при подключении к интернету могут возникать проблемы и различные нюансы, которые всячески мешают достигнуть поставленной цели. Одной из таких проблем может быть сбой в прошивке устройства. При такой неисправности большинство пользователей обращаются в сервисный центр, однако перепрошить роутер можно и в домашних условиях. Я покажу как это сделать на примере роутера от фирмы tp-link, так как эти устройства имеют схожие функции то эта инструкция подойдет и для других моделей, независимо от марки производителя, единственное что может отличатся это интерфейс меню настроек.
Купив роутер в магазине, не будьте уверены, что на нем стоит самое последнее программное обеспечение. Потому как неизвестно, когда он был выпущен и сколько времени пролежал на складе. Роутеры, которые работают под старой версией ПО имеют уязвимости в безопасности.
Содержание:
2:04 - Что такое прошивка?
2:30 - Зачем нужно прошивать роутер;
3:54 - Что нужно знать перед прошивкой и поиск подходящей версии ПО;
5:08 - Прошивка роутера;
7:29 - Восстановление настроек роутера;
8:19 - Сторонняя прошивка DD-Wrt;
9:14 - Для чего нужна такая прошивка;
12:29 - Восстановление роутера после неудачной прошивки;
Скачать прошивку можно тут:
D Link - http://www.dlink.ru/ru/download/;
TP Link - https://www.tp-link.com/ru-ua/support/download/;
Неофициальные прошивки - https://dd-wrt.com/;
Tftpd - http://tftpd32.jounin.net/.
А на этом все! Надеюсь вам было полезным данное видео. Ставьте лайки, подписывайтесь на наш канал. Свои вопросы задавайте в комментариях. Спасибо за просмотр. Пока.
Другие видео: #ОбновлениеПрошивкиРоутер, #TPLinkПрошивка, #DLinkПрошивка, #DWRT.
👍 Смотрите базовую настройку роутера, на примере D-Llink DIR-615. Но эта инструкция подойдет и для многих других роутеров компании D-link, настройки у всех роутеров компании очень похожи.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Ну и если в процессе настройки роутера у вас возникли какие-то вопросы, то можете задавать их в комментариях. Ставьте лайк и подписывайтесь на канал Hetman Software, если видео было полезным. Всем спасибо за просмотр. Всем пока.
Другие видео: #НастройкаРоутера, #DLinkDir615, #НастройкаWifi.
👍 Смотрите как просмотреть ролик YouTube, на компьютере поверх всех окон, как использовать горячие клавиши, создать gif анимацию, отключить рекламу. Мы рассмотрим как работает функция «Посмотреть позже», где хранится история просмотров пользователя и его поисковых запросов.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Этим сервисом для просмотра видео так или иначе пользуются все. Многие и не подозревают, что он умеет немного больше, чем просто показывать видео. Я собрал несколько очень простых и интересных опций YouTube, о которых вы могли не знать.
Содержание:
1:04 - Как просмотреть ролик YouTube, на компьютере поверх всех окон;
1:49 - Горячие клавиши YouTube;
3:14 - Как создать GIF анимацию;
3:40 - Как отключить рекламу;
4:12 - Как скрыть список каналов, на которые подписан пользователь и сохраненные плейлисты от других участников Youtube;
4:40 - Функция «Посмотреть позже»;
5:09 - История просмотров пользователя и его поисковых запросов;
5:43 - Как поделиться видео с YouTube;
6:31 - Сервисы YouTube Фильмы и YouTube Music;
7:26 - Оптимизированный под ТВ, интерфейс Youtube;
7:47 - Как выделить Youtube комментарий жирным или курсивом;
8:18 - Видео 360 градусов в YouTube;
9:06 - Значёк колокольчика на Youtube;
9:33 - YouTube мессенджер;
9:59 - Анонимный просмотр YouTube на мобильных устройствах;
Оптимизированный под ТВ интерфейс http://youtube.com/leanback
На этом всё. Ставьте под видео лайк и подписывайтесь на канал Hetman Software. Всем спасибо за просмотр. Всем пока.
Другие видео: #Youtube, #ИсторияПросмотров, #Видео360, #ЗначёкКолокольчика.
👍 Смотрите как настроить беспроводной Wi-Fi режим Интернет роутера, на примере TP-Link AC750 Archer C20. Рассмотрим, что такое WPS и настройку защищенного Wi-Fi режима, а также беспроводного режима гостевой сети.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
В другом ролике, ссылка на который будет в описании, мы уже рассмотрели базовые настройки Wi-Fi роутеров для подключения к Интернет - https://www.youtube.com/watch?v=mZhNE9QbeNs. Но как же пользоваться Интернет без Wi-Fi? Давайте рассмотрим, как его правильно настроить!
Сегодня мы будем настраивать роутер TP-LINK Archer C20. Это двухдиапазонный Wi-Fi роутер, но его настройки более или менее стандартны и по данной видео-инструкции вы сможете настроить практически любой другой роутер.
Содержание:
1:31 - Вход в панель настроек роутера;
1:51 - Выбора рабочей частоты;
4:24 - Настройка безпроводного режима;
6:14 - Канал и Ширина канала WIfi;
6:47 - Широковещание SSID;
7:40 - Включить WDS;
8:16 - WPS;
10:08 - Защита беспроводного режима и установка пароля;
12:17 - Фильтрация MAC-адресов;
14:24 - Дополнительные настройки беспроводной сети;
16:41 - Статистика беспроводного режима;
17:23 - Гостевой режим;
Подключение 2 роутеров в одной сети: усиление Wifi, общие ресурсы - https://www.youtube.com/watch?v=AAYlsGrbQXo;
Ну и если в процессе настройки беспроводной Wi-Fi сети вашего роутера у вас возникли какие-то вопросы, то можете задавать их в комментариях. Ставьте лайк и подписывайтесь на канал Hetman Software, если видео было полезным. Всем спасибо за просмотр. Всем пока.
Другие видео: #НастройкаWifi, #Роутер, #TPLink.
👍 Смотрите как настроить родительский контроль на роутере. Иногда возникает необходимость заблокировать доступ к социальным сетям или любым другим сайтам для конкретных устройств включая мобильные телефоны и планшеты. Для этого в настройках роутера есть функция родительского контроля. Эта функция позволяет ввести ограничение доступа в интернет по расписанию, и указать конкретные интернет-адреса, к которым будет открыт доступ.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Например, можно отключить выход во всемирную сеть в те часы, когда ребенку положено делать уроки или спать. Либо сотруднику выполнять свою работу, если речь идет об офисной сети. В некоторых моделях функция блокировки сайтов и временного ограничения совмещены. Я покажу, как настроить родительский контроль на примере роутера TP-Link.
Содержание:
1:31 - Настройка родительского контроля;
3:52 - Настройка родительского контроля со смартфона;
https://www.youtube.com/watch?v=qu-7L64VNZU - Приложение Tether для настройки роутера TP-LINK с телефона;
https://www.youtube.com/watch?v=2spnZ2Qx6JI - Настройка безопасности роутера: пароль на вход и WIFI, WPS, фильтрация MAC и IP, удаленный доступ;
А на этом все! Надеюсь вам было полезным данное видео. Ставьте лайки, подписывайтесь на наш канал. Свои вопросы задавайте в комментариях. Спасибо за просмотр. Пока.
Другие видео: #РодительскийКонтроль, #Роутер, #TPLink.
👍 Смотрите как подключить два и более роутеров в одну сеть, как с помощью этого усилить сигнал вашей Wi-Fi сети или создать ещё одну точку доступа внутри сети. Рассмотрим два способа – соединение роутеров кабелем или по Wi-Fi.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Часто бывает ситуация, когда одного роутера просто не хватает. В том смысле, что он не может обеспечить необходимый радиус покрытия Wi-Fi сети. В каких-то комнатах или помещениях просто нет сигнала Wi-Fi или не хватает разъёмов для подключения сетевых устройств. Думаю, это знакомо всем, кто делал Wi-Fi сеть в большом доме, квартире или многокомнатном офисе. В такой ситуации конечно же нужно устанавливать дополнительное оборудование и каким-то образом расширять сеть. Сделать это не сложно.
Есть несколько вариантов, которые мы и рассмотрим.
• Первый – это соединение двух и более роутеров с помощью кабеля. Необходимо прокладывать сетевой кабель от одного роутера к другому. Это не всегда удобно. Но, это самый надежный и стабильный способ. Если вам нужна стабильная сеть с хорошей скоростью и для большого количества устройств, то лучше всего соединить маршрутизаторы именно кабелем.
• Второй способ – это соединение маршрутизаторов без проводов, по Wi-Fi. В таком случае, используется соединение в режиме моста (WDS), клиента, или в режиме репитера. По сути, это одно и то же. Просто на роутерах разных производителей, эти настройки сделаны по-разному.
Содержание:
2:57 - Роутеры связывают именно по Wi-Fi;
8:10 - Роутеры связывают с помощью сетевого кабеля;
Если в процессе настройки подключения нескольких роутеров в одну сеть у вас возникли какие-то вопросы, то можете задавать их в комментариях. Ставьте лайк и подписывайтесь на канал Hetman Software, если видео было полезным. Всем спасибо за просмотр. Всем пока.
Другие видео: #ДваРоутера, #ПодключениеРоутеровПоWifi, #ПодключениеРоутеровПоКабелю.
👍 Смотрите расскажу о настройке безопасности Wi-Fi роутера. Как обезопасить Wi-Fi сеть от не санкционированного доступа к ней сторонних лиц. Многие пользователи пренебрегают рекомендациям настройки безопасности своей сети, мотивируя это тем что мало кому может быть интересна их сеть и что злоумышленникам в ней делать точно нечего. Но все это является ложным предубеждением, потому что настройка защиты может уберечь вас как от кражи персональных данных, так и от случайных действий пользователей сети, которые из любопытства могут что-то поменять в настройках чем нарушить ее нормальную работу и оставить вас без интернета. Поэтому мы рекомендуем вам все же проверить настройки безопасности сети.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Я покажу как настроить безопасность роутера на примере TP-LINK AC750 модель Archer C20. Почти все роутеры имеют одинаковые функции поэтому данная инструкция подойдет и для других устройств, может отличатся только меню настроек.
Содержание:
1:57 - Защита роутера паролем;
3:15 - Установка пароля Wi-Fi;
4:22 - Отключение функции WPS;
4:50 - Скрыть имя сети;
6:16 - Фильтрация по МАС-адресу;
7:21 - Обновление ПО;
8:21 - Отключение удаленного доступа к роутеру;
9:06 - Выбор времени работы роутера;
9:40 - Фильтрация по IP адресам (Привязывание по протоколу ARP, IP-MAC bidding);
11:15 - Проверка на наличие сторонних устройств в списке подключенных клиентов к роутеру;
Базовая настройка WiFi роутера TP Link AC 750 Archer C20: Интернет, WiFi, DHCP, пароль - https://www.youtube.com/watch?v=mZhNE9QbeNs;
А на этом все! Надеюсь вам понравилось данное видео. Ставьте лайки, подписывайтесь на наш канал. Свои вопросы задавайте в комментариях. Спасибо за просмотр. Пока.
Другие видео: #БезопасностьРоутера, #НастройкаTPLINK, #ФильтрацияMACIP.
👍 Смотрите как настроить Интернет Wi-Fi роутер на примере TP-Link AC750 Archer C20. Это двухдиапазонный Wi-Fi роутер, но его настройки более или менее стандартны и по данной видео-инструкции вы сможете настроить практически любой роутер. Мы рассмотрим настройку роутера с помощью компьютера. Но таким же образом это можно сделать и со смартфона или планшета.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Ну и если в процессе настройки роутера у вас возникли какие-то вопросы, то можете задавать их в комментариях. Ставьте лайк и подписывайтесь на канал Hetman Software, если видео было полезным. Всем спасибо за просмотр. Всем пока.
Другие видео: #WifiРоутер, #НастройкаTPLINK, #ПодключениеРоутера.
👍 Смотрите как можно настроить WI-FI роутеры от TP-link с помощью смартфона и специальной программы. На мобильном устройстве не очень удобно пользоваться стандартным веб-интерфейсом меню роутера, буквы там очень маленькие и приходиться постоянно увеличивать и уменьшать изображение. Компания TP-LINK позаботилась о своих пользователях и выпустила хорошее приложение для смартфонов и планшетов TP-LINK Tether, которое упрощает этот процес.
С помощью данной программы вы сможете посмотреть информацию и настройки подключения, управлять своим Wi-Fi роутером, а также вносить свои настройки. Приложение доступно для двух самых популярных платформ это iOS и Android. iOS начиная с седьмой версии и выше, Android с версии 4,0, я покажу на примере Android 8.1.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Далее в видео мы рассмотрим базовые возможности TP-LINK Tether, а еще я покажу как можно быстро изменить основные настройки роутера с помощью данной программы.
TP-LINK Tether:
https://itunes.apple.com/ru/ap....p/tp-link-tether/id5 - AppStore;
https://play.google.com/store/....apps/details?id=com. – GooglePlay;
Содержание:
2:12 - Как подключиться к роутеру;
2:59 - Главный экран;
3:14 - Клиенты;
3:56 - Инструменты;
Базовая настройка WiFi роутера на примере TP Link AC 750 Archer C20 - https://www.youtube.com/watch?v=mZhNE9QbeNs;
А на этом все! Надеюсь вам было полезным данное видео. Ставьте лайки, подписывайтесь на наш канал. Свои вопросы задавайте в комментариях. Спасибо за просмотр. Пока.
Другие видео: #НастройкаРоутера, #TPLINKTether, #ВойтиВРоутерСТелефона.
👍 Смотрите как бесплатно смотреть фильмы, сериалы и другое видео на телевизорах с функцией смарт. Как установить виджеты и настроить телевизоры Samsung, Sony и LG для такого просмотра.
Современные смарт телевизоры многофункциональны и по своим возможностям все больше приближаются к полноценным компьютерам. Все благодаря возможности их подключения к сети и Интернету, а также возможности широкого выбора доступного программного обеспечения. Но так как это в первую очередь телевизоры то их возможности все же ограничены. К примеру стандартный веб-браузер не поддерживает всех технологий, использующихся на современных веб страницах и многие элементы, остаются недоступными.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Установив дополнительные приложения и виджеты вы сможете бесплатно смотреть множество фильмов и сериалов, которые отсортированы по году, популярности и собраны в одном приложении, вам не нужно будет открывать браузер и искать их. Здесь вы найдете все новинки кино доступные в Интернете.
Содержание:
1:53 - Как установить ForkPlayer на Samsung Smart TV;
4:52 - Установка виджетов на телевизоры Samsung и LG;
10:45 - Установка виджетов на LG с WebOS;
Как настроить ForkPlayer - https://www.youtube.com/watch?v=gN7BygfzVsc;
https://www.oracle.com/technet....work/java/javase/dow - Java SE Development Kit 8;
https://developer.tizen.org/de....velopment/tizen-stud - Tizen Studio;
https://developer.samsung.com/tv - сайт Samsung;
https://smarttvnews.ru/vidzhet....yi-dlya-samsung-smar - виджеты;
https://git-scm.com/download/win - Git;
http://ru.lgappstv.com/appspc/main/main/main.lge - сайт LG;
https://getsapp.ru/prilozhenie....-getstv-dlya-lg-webo - GetsTV;
А на этом все! Надеюсь вам понравилось данное видео. Ставьте лайки, подписывайтесь на наш канал. Свои вопросы задавайте в комментариях. Спасибо за просмотр. Пока.
Другие видео: #ForkPlayer, #SmartBox, #GetsTV.
👍 Смотрите как можно увеличить время работы батареи вашего смартфона на Andriod: проверка батареи, яркость, виброзвонок, Wifi, блютус, мобильный интернет и GPS, Google Now, Гринифи, удаление ненужных приложений, низкие температуры.
Случайное удаление файлов, форматирование диска, вирусная атака, системный сбой или ошибка файловой системы — это не полный список проблем, которые решают программы компании Hetman Software: https://hetmanrecovery.com/ru/.
Содержание:
00:49 - Проверить батарею;
01:35 - Яркость экрана;
02:31 - Виброзвонок;
02:54 - Wifi, блютус, мобильный интернет и GPS;
04:17 - Передача данных;
04:43 - Отключение сервиса Google Now;
05:33 - Ненужные приложения;
05:40 - Приложение Гринифи;
07:20 - Низкие температуры;
https://play.google.com/store/....apps/details?id=net. - Wifi auto timer;
https://play.google.com/store/....apps/details?id=com. - Greenify;
А на этом все! В комментариях пишите какие еще способы вам известны. Ставьте лайки, подписывайтесь на наш канал. Свои вопросы задавайте в комментариях. Спасибо за просмотр. Пока.
Другие видео: #ВремяРаботыТелефона, #БатареяТелефона, #Android.
Мобильные телефоны Android и IOS: музыка, оптимизация, приложения, батарея: https://www.youtube.com/playli....st?list=PLOlQebdCQYq
👍 Смотрите топ 10 интересных сайтов для временного Email, обрезки MP3, получения SMS онлайн, менеджеры закладок, проверки ссылок на вирусы, генерации паролей, работы с изображениями, анимированых схем, скриншотов страниц, отслеживания полётов.
Содержание:
1:03 - https://10minutemail.com - почта на 10 минут;
1:50 - https://www.mp3cut.ru/ - обрезка трека для рингтона или др.;
2:34 - https://qealty.ru/ - получить СМС на другой номер, онлайн;
3:30 - https://atavi.com/ - стартовая страница, менеджер закладок;
4:25 - https://www.virustotal.com/#/home/upload - проверка сайта или файла на вирусы;
5:06 - https://www.lastpass.com/ru/password-generator - онлайн генератор паролей;
5:48 - https://burner.bonanza.com/ - удаление фона изображения;
6:56 - https://animagraffs.com/ - анимированные схемы;
7:39 - https://web-capture.net/ru/ - создать скриншот всей страницы целиком;
8:42 - https://ru.flightaware.com/live/ - отслеживание самолётов.
Актуальные сервисы SMS:
onlinesim.ru
5sim.net
receive-sms-online.com
receivefreesms.com
receivesmsonline.com
receive-sms.com
receive-sms-now.com
www.proovl.com
receive-sms-online.info
sms.ink
sellaite.com
tempsms.ru
smska.us
freephonenumber.online
sonetel.com
smsreceivefree.com
Getsms.org
hs3x.com
getfreesmsnumber.com
receive-smsonline.net
sms-online.co
eceivesmsonline.in
anon-sms.com
wfreeonlinephone.org
smsget.net
qealty.ru
receivesms.co
На этом всё, но только в этом видео, так как фишек Интернета неисчислимое количество. Ставьте под видео лайк, если оно было интересным и подписывайтесь на канал. Задавайте вопросы в комментариях. Спасибо за просмотр, всем пока.
Другие видео: #ИнтересныеСайты, #ПолезныеСайты, #Почта, #Музыка, #Пароли.
Мобильные телефоны Android и IOS: музыка, оптимизация, приложения, батарея: https://www.youtube.com/playli....st?list=PLOlQebdCQYq