Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rusldv
7 лет назад

Изучаем SQL на примере golos.cloud. Введение, настройка и первый запрос

Изучаем SQL на примере golos.cloud. Введение.


Кто читает мой курс по разработке соцсети на PHP стал замечать, что начали появляться сложные запросы к базе данных.
Краткий рассказ о базах данных я сделал в этом уроке.
Однако для работы с базами данных требуется знание не только устройства самих систем, но и языка с помощью которого к этим базам (точнее их серверам) посылаются запросы.

Для того, чтобы изучение проходило более наглядно, будем использовать базу данных предоставленную @arcange (подробнее [GolosSQL] - База данных SQL со всеми данными блокчейн).
Поскольку большинство пользователей, которые еще не изучили SQL пользуются операционной системой Windows, то я выбрал программу-клиент именно для нее.
Программа клиент будет HeidiSQL (ссылка на сайт программы).
Хотя вы можете использовать любую программу, которая умеет работать с МS-SQL, сам то SQL одинаковый.

Проза о SQL


Причина его появления сводится к двум деталям.

  1. Так как СУБД основана на клиент-серверной архитектуре, то клиент должен отправлять серверу данные на знакомом ему языке (протокол). Например обычный браузер с HTTP сервером обменивается данными по протоколу HTTP. Он пишет типо "Дай мне такой то файл" (GET /index.php HTTP1.1) может также передать данные (POST), а сервер решит что с ними делать. Есть у HTTP и другие методы, правда в реализации конкретных серверов (apache, nginx) они не используются в том плане, в котором описаны в протоколе (кроме метода HEAD), а вот например couchDB - это такая база NoSQL данных, вполне их предназначение освоила.
    Таким образом SQL представляет некоторого рода протокол уровня приложения, на котором обмениваются данными клиент и сервер системы БД.
  2. С помощью SQL мы работаем с реляционными данными (см. ниже).

Базы данных бывают реаляционные и нереляционные (короче говоря SQL и NoSQL).
NoSQL (например mongoDB и упомянутая выше couchDB) хранят данные в неструктуризированной форме.
Это означает что NoSQL не декларирует свою структуру - то есть в ней также внутри одной базы данных можно хранить много таблиц (или их иногда по-другому называют), однако в эти таблицы можно добавлять строки с разным количеством столбцов, разных типов, и с разными названиями.
Например, если бы наш блокчейн, имел базу данных типо couchDB то можно было бы туда записать транзакцию типа {"chuvak":"vasya", "type":"go", "to":"bar", "from":"home"}.
Тут NoSQL база данных подвоха не заметила бы, и сохранила к себе эту запись (хотя конечно ноды ее в блок бы не добавили) они то как раз структуру строго проверяют).
Поэтому NoSQL часто применяют для работы с так называемыми большими данными (big data). Там хранятся данные смешанного типа, затем с помощью специальных алгоритмов (обычно их пишут на языках Python, R и Julli) их анализируют, выбирая средние значения. Эти данные нужны для анализа потребительской аудитории в коммерции, изучения желаний избирателей на выборах и т.д.
Добавление данных в NoSQL происходит так же как добавление объекта JSON в неструктурированный массив.
Однако мы работаем с транзакциями в блокчейне, значит нам больше подходит SQL.
SQL это язык для работы с реляционными БД (реляция означает таблицу), то есть подобные MS-EXEL прямоугольные таблички, между которыми можно задавать различные связи.
Так вот если не углубляться в реляционную алгебру (в которой таблицы рассматриваются как матрицы (двумерные массивы)), то SQL запрос, может управлять структурой таблиц (создавать, удалять изменять структуру), добавлять, изменять и удалять сами данные (записи таблицы), находить нужные записи (строки) в таблице, а также определять связи между таблицами для более сложных запросов.

В общем говоря, все это дело более понятно будет изучить на практике.

Настройка HeidiSQL


С установкой там достаточно просто. Поэтому сразу перейдем к настройке. Запускаем HtidiSQL и выполняем следующие шаги:

  1. Снизу слева нажимаем кнопку "Создать" и переходим на вкладку с настройками.

  2. Выбираем тип сети - Microsoft SQL Server(TCP/IP)

  3. Имя хоста - sql.golos.cloud

  4. Пользователь: golos

  5. Пароль: golos

Остальные настройки оставляем по умолчанию (порт должен быть 1433).

Затем нажимаем кнопку открыть, и у нас устанавливается сеанс работы с БД голоса.

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

Мы можем также кликнуть по таблице и снизу увидим какой запрос клиент послал базе данных.
Однако мы хотим сами научиться делать такие запросы. Поэтому переходим на вкладку Запрос и вводим:

SELECT * FROM dbo.Blocks WHERE block_num = 10;

Нажимаем на стрелочку сверху (RUN) и получаем данные о блоке с номером 10

Надеюсь у всех получилось. Если нет - пишите в комменты или мне в рокетчат.


Ну а в следующих постах по этой теме мы перейдем к более сложным запросам
2
119.649 GOLOS
На Golos с November 2016
Комментарии (1)
Сортировать по:
Сначала старые