> For the complete documentation index, see [llms.txt](https://evgenii-afanasev.gitbook.io/ruby-course/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://evgenii-afanasev.gitbook.io/ruby-course/12_database/1_install_sql_db.md).

# Установка SQL сервера

## Установка

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

### Linux

В Oracle Linux установка SQLite выглядит следующим образом:

```bash
sudo dnf install sqlite
```

### Windows

Так как в разработке мы используем WSL, то и установка SQLite будет в WSL. Для этого вам необходимо пройти инструкцию для Linux из под WSL окружения

### MacOS

Ничего устанавливать не нужно. SQLite поставляется в MacOS из коробки.

## Создание базы данных

Если расшифровать СУБД, то в названии мы увидим слово "система". Это значит, что один наш продукт может создавать и поддерживать множество баз данных. Сама база данных это объект, занимающийся хранением данных для конкректного проекта. Если наш проект - интернет-магазаин, то 1 база данных будет содержать данные о заказах, товаре, пользователях и тд. Для того, чтобы создать такую базу данных необходимо ввести команду в терминал:

```bash
sqlite3 shop
```

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

После того как вызовите эту команду, то у вас в консоли откроется пространство для ввода SQL команд.

Если вы вышли из интерактивного режима ввода команд, то для того, чтобы снова зайти в него для вашей базы данных, необходимо снова ввести эту команду из места, где лежит ваша БД.

## GUI клиент

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

Как в случае и с REST клиентом, пользоваться мы будем расширением в Visual Studio Code. Для этого во вкладке с расширениями найдите расширение `SQLTools` от издателя Matheus Teixeira и установите его.

### NodeJS

Для того, чтобы наше расширение могло работать, ему необходим NodeJS. NodeJS это Runtime для исполнения javascript не в браузере, а на сервере. Он там также понадобится в дальнейшем при работе с Rails, поэтому лишним не будет усатновить его прямо сейчас.

Инструкция одинаковая для всех платформ (для Windows выполняем внутри нашего WSL оуружения).

* Установим `NVM`, менеджер версий NodeJS, с помощью команды

```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
```

* Установим NodeJS с помощью NVM:

```bash
nvm install 20.0.0
```

установка NodeJS завершена.

### Дополнение для SQLTools

Чтобы SQLTools умел работать с SQLite, необходимо установить для него дополнительное расширение `SQLTools SQLite` от того же издателя.

### Подключения

После установки у вас слева появится кнопка `SQLTools`. Вам необходимо открыть вкладку и нажать на кнопку `Add New Connection` и в появившемся окне выбрать `SQLite (Node)`.

Далее перед вами появится форма для заполнения подключения к базе данных.

* В `Connection name` необходимо указать как ваша база будет визуально называться в списке добавленных БД (я назвал `university`).
* В `Connection group` вы можете указать название каталога, который будет служить для группировки добавленных БД (я назвал `course`).
* В `Database file` необходимо указать путь до вашего файла с БД (если вы создали базу БД внутри каталога курса, то щелкнув по нему левой кнопкой мыши в File Explorer редактора кода можно получить полный путь до этого файла выбрав `Copy path`).
* Нажимаем `TEST CONNECTION` для проверки, что все заполнено верно. В первый раз у вас в правом углу редактора появится уведомление, что следует усатновить зависисимость для SQlite. Нажимайте `Install now`. После успешной установки попробуйте установить тестовое соединение еще раз. Если у вас будет показано, что соединение успешно установлено, то можете сохранить ваше соединение с помощью кнопки `SAVE CONNECTION`

После сохранения соединения в окне SQLTools у вас появится новое соединение с вашей новой БД.

Для того, чтобы выполнять SQL команды в этой БД вам необходимо установить с ней активное соединение, после чего нажать на кнопку `New SQL file`. После чего откроется новый файл, в котором вы можете вводить необходимые SQL команды и выполнять их с помощью кнопки `Run on active connection`.

## Задание university

**Внимание ! Данное задание следует расположить в каталоге модуля 12\_database/1\_install\_sql\_db/university**

* Создайте БД `university` с помощью SQLite в каталоге с домашним заданием
* настройте подключение до данной БД в SQLTools
