Ознакомившись в предыдущей статье с теоретической основой мира баз данных (БД), сегодня переходим к практике.
Есть определенные команды БД, их мы рассмотрим чуть ниже. Сперва несколько необходимых слов о системах управления базами данных (СУБД), о которых упоминала ранее. Если говорить о реляционных БД, то есть разные варианты, не пугайтесь при столкновении с такими названиями:
- MySQL,
- PostgreSQL,
- SQLite
СУБД довольно много.
Система управления БД - это программа для Вашего устройства + некоторые другие элементы. В начале достаточно понять, что за страшными словами и аббревиатурой СУБД кроется программа на ПК, через которую Вы управляете данными в базе, и самой базой.
Вполне подходящий и понятный аналог: текстовый документ можно открывать и редактировать в Microsoft Office, LibreOffice или блокноте (при этом последние годы они вполне взаимозаменяемы, но у каждого есть свой "родной" формат, в мире БД с взаимозаменяемостью хуже, но принцип такой же).
Команды (запросы) SQL.
Знакомьтесь, SQL online IDE даст возможность попробовать команды онлайн, не скачивая дополнительного ПО. Тренироваться для начала мы будем на наиболее понятной и удобной (на мой взгляд) SQlite. Итак, приступим!
Прежде всего, нам нужно создать Базу Данных, если мы находимся в СУБД SQLite - DB Browser for SQLIte - там есть специальная кнопка для этого. Так же, как для создания таблиц и всего прочего, поэтому останавливаться на этом мы не будем.
Для создания БД в Online DB нужно будет просто в конце работы нажать Save DB. У каждой БД есть имя. Допустим, потренируемся на мифической "школе", поэтому название у БД может быть schoolDB.
Нюанс: при подключении к DB (data base), например, из java-кода, если она отсутствует (подключение к несуществующей), то она будет создана.
Следующий элемент БД: Таблица.
Как мы помним из предыдущей статьи, особенность реляционных БД - табличный вид. Если мы тренируемся на школе, тут уместно 2 таблицы: сотрудники и учащиеся. Поэтому в нашей базе данных schoolDB мы можем создать две таблицы: staffTable и studentsTable. Таблицы создаются совершенно одинаково. Давайте попробуем.
CREATE TABLE STUDENTSTABLE (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL);
Как мы можем понять из перевода, то это создание таблицы со столбцами: id (числовое значение), имя (текстовое/строка), возраст (числовое). При этом id и возраст не равны нулю. Кратко по id - возможно, в этой школе учатся 2 Маши Ивановых. Очень удобно, когда у каждого элемента в БД есть уникальный ключ, который позволяет быстро и безошибочно его находить. Такими ключами обычно бывают id.
При запуске нашей команды в online IDE, у нас прекрасно создалась таблица:
Давайте же заполним таблицу данными! Что для этого нужно?
ВСТАВИТЬ В нее данные в соответствующие разделы! (Как мы помним, данные в базах данных должны быть предельно точно упорядочены).
INSERT INTO STUDENTSTABLE (ID,NAME,AGE) VALUES (1, 'John', 10);
Мы видим, что после слов "вставить в *имя таблицы*" идут наши же столбцы, которые мы создали ранее, после чего мы пишем ЗНАЧЕНИЯ точно соответствующие столбцам.
Давайте посмотрим, что получится! Как?
Если Вы уже ввели команду в online IDE, то увидели, что операция благополучно выполнена, но результата нигде нет. Как раз для этого есть команда:
SELECT * FROM STUDENTSTABLE ;
Почему ВЫБЕРИТЕ? Это действительно команда выбора. При значке "*" после нее он выберет и выведет в таблице все данные.
Предлагаю Вам самостоятельно добавить еще 2-3 ученика разного возраста. И вывести таблицу снова таким же образом.
Итак, у нас добавилось еще несколько учеников. Кстати, как Вы видите, у меня они расположены с id не по числовому значению, а в порядке добавления. Добавлять людей с id хаотично можно (только зачем? уже другой вопрос), но вот добавить двух людей с одним id не получится. В некоторых БД можно сделать автоматическое присваивание id.
Так же мы можем ОБНОВИТЬ какое-либо значение:
UPDATE STUDENTSTABLE set AGE = 11 where ID=1;
Все получилось. Возраст 11 установлен элементу таблицы с ID = 1.
Таким же образом можно кого-нибудь удалить.
DELETE from STUDENTSTABLE where ID=2;
что равнозначно в данном случае
DELETE from STUDENTSTABLE where NAME='Mary';
Проверять и демонстрировать удаление бедной Мэри из нашей школы мы не будем.:) Если бы у нас было несколько учениц с именем Mary в школе, то при запуске второй команды удалились бы все. Именно поэтому удобно пользоваться id.
Предлагаю в качестве тренировки аналогично создать и заполнить таблицу staffTable :) Добавив в нее по желанию еще некоторые поля, например, пол, должность сотрудника и соц. положение.
В нашей "школе" мы разделили данные на две категории - учащиеся и сотрудники. В реальной же школе было бы, например, удобней, создавать таблицы по классам.
Как только Вы будете удовлетворены результатом практики, нажимаете в IDE: File -> Save DB, после чего наша база данных сохраняется на компьютер. После чего Вы можете открыть этот файл на компьютере в DB Browser for SQLIte и изучить, потренироваться уже там.
Поздравляю, Вы научились создавать базы данных и управлять ими!
P.S. Еще важные моменты.
- Мы использовали в примере только текстовые и целочисленные значения. Текстовые значения в SQL заключаются в одинарные кавычки, числовые значения пишутся без них. Есть еще числа с плавающей точкой (дробные), символы и еще некоторые типы данных. Я обязательно про них еще расскажу. Это общее для всего программирования, различается только оформление.
- Мы изучили основные команды. Есть еще - для более тонких манипуляций. Советую их изучить в той же Online IDE (ищите слева внизу Syntax).
- По запросу рассмотрим подробно разные СУБД. Жду отклика:) В некоторых могут начаться сложности уже на этапе установки.