SQL или язык структурированных запросов — это язык, который мы используем для связи с данными, хранящимися в СУБД (система управления реляционной базой данных). Использование SQL для взаимодействия с нашей базой данных позволяет нам эффективно анализировать данные осмысленными способами. Мы можем выполнять операции CRUD для создания, чтения, обновления или уничтожения записей.
SQL возвращает нам данные в виде запросов с нашими желаемыми условными требованиями. Например, если вы хотите получить всю информацию о пользователях в таблице с именем users:
SELECT * FROM users;
Если вы хотите вернуть только имена пользователей, когда user_id равен 21:
SELECT usernames FROM users WHERE users_id = 21;
В этом случае WHERE является условным оператором, и SQL проверяет каждую часть данных и возвращает только те, которые соответствуют этому конкретному условному требованию. Есть ряд других условий, таких как CASE/WHEN/THEN/ELSE/LIKE/BETWEEN ect.
Мы также можем манипулировать данными с помощью SQL DML или языка манипулирования данными. Наиболее распространенными командами являются INSERT, UPDATE и DELETE.
Лучше всего сохранять код СУХИМ, и это часто означает разделение нашей таблицы на несколько таблиц. Например, если вы хотите проанализировать базу данных с информацией о гастролях звукозаписывающих компаний, вам может понадобиться отдельная таблица для исполнителей и мест проведения:
CREATE TABLE IF NOT EXISTS artist id SERIAL PRIMARY KEY, artist_name VARCHAR(50) NOT NULL;
В этой таблице каждому исполнителю присваивается уникальный возрастающий идентификационный номер, а имя исполнителя может состоять не более чем из 50 символов и не может быть нулевым.
CREATE TABLE IF NOT EXISTS venue id SERIAL PRIMARY KEY, venue_name VARCHAR(100) NOT NULL artist_id REFERENCES artist(id)
Одно местоположение может принадлежать многим исполнителям, поэтому мы используем внешний ключ, чтобы связать их вместе. В этом случае мы назначаем artist_id в качестве внешнего ключа для ссылки на идентификатор исполнителя. Затем мы можем ввести данные:
INSERT INTO 'artists' (id, artist_name) VALUES (DEFAULT, 'Atmosphere'); INSERT INTO 'artists' (id, artist_name) VALUES (DEFAULT, 'P.O.S.'); INSERT INTO 'venues' (id, venue_name, artist_id) VALUES (DEFAULT, 'RED ROCKS', 1); INSERT INTO 'venues' (id, venue_name, artist_id) VALUES (DEFAULT, 'RED ROCKS', 2);
Это пример одного места, принадлежащего двум исполнителям, и мы можем присоединиться к столу исполнителя и вену, чтобы возвращать информацию Red Rocks только при воспроизведении Atmosphere или при воспроизведении только P.O.S с соединениями:
SELECT venue.venue_name, venue.id FROM venue JOIN artist ON artist.id = venue.artist_id; WHERE artist.artist_name = 'Atmosphere'
Это даст нам только информацию о вене, которую играет атмосфера. Поскольку таблицы содержат больше информации, такой как дата, стоимость, количество гостей и т. д., мы можем начать комбинировать даты более осмысленными способами для анализа и выявления закономерностей и взаимосвязей.