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


Изучаем 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

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


Ну а в следующих постах по этой теме мы перейдем к более сложным запросам

-----

Оригинал поста создан 05-06-2017 15:29:21 UTC

-----

6614741 [Испанское небо [16]](/@vadbars/ispanskoe-nebo-16)
6614768 Токсичность , Опасные сочетания лекарств, Синергия и МАО
6614820 Почему без посредников тяжело прожить
6614889 ⚜ ⚘ Ботаник-любитель.Ферма счастья ᛟᚠᛃ 🐬
6614931 Речка, камни, песок и... другие животные!
6614962 Дружба между людьми. М + Ж/ М + М/ Ж + Ж
6615167 Понедельничное этно. Что бы жизнь шла веселей!
6615223 незабываемый отдых
6615453 Встреча с "Территорией закона"
6615463 Макроквест #13. Приз этого выпуска 10 GBG!
6615540 Рифмомараф. Возвращение. "Кулинарный" этап.
6615795 Краткие истории о Донбассе
6615902 Химики создали углеродный нанопояс
6615995 Ночное приключение Тупки и Глупки
6616212 Изучаем SQL на примере golos.cloud. Введение, настройка и первый запрос

Прежде чем писать комментарий прочитайте О ПРОЕКТЕ
Поддержите проект донатом!


Comments 0