Как технический рекрутер, я встречал много должностей, где SQL был критически важным навыком. Быть бизнес-аналитиком, специалистом по данным, серверным разработчиком, специалистом по маркетингу или исследователем UX-дизайна, понимание SQL-запросов может иметь фундаментальное значение для вашей работы.

Позвольте мне сделать резервную копию. Что такое SQL? SQL - это язык запросов для взаимодействия со структурированными базами данных. Практически все базы данных, в которых есть таблицы и строки, будут принимать запросы на основе SQL. SQL имеет много разновидностей, но основы остаются прежними. Как профессионалы, так и любители используют SQL для поиска, создания, обновления и удаления информации из своих источников записи. Его можно использовать с множеством различных баз данных, таких как MySQL, Postgres, SQL Server и Oracle. Он поддерживает логику популярных серверных фреймворков, таких как Ruby On Rails и Laravel. Если вы хотите найти информацию, связанную с определенной учетной записью, или узнать, какие кнопки пользователи нажимают в вашем приложении, есть большая вероятность, что SQL может вам помочь!

SQL: произносится «S-Q-L» или «Sequel» - выбираете вы.

Альтернативы SQL

Прежде чем мы сядем на поезд SQL в Город баз данных, я хотел бы отметить некоторые альтернативы. Вы можете использовать ORM для запросов к базам данных. ORM расшифровывается как Object Relational Mapper, что является причудливым способом сказать, что вы можете писать код на языке программирования, таком как PHP или Node.js, который переводится в запросы SQL. Популярными ORM являются Active Record для Ruby On Rails, Eloquent для Laravel и Sequelize для Node.js. Все эти службы позволяют писать код, который переводится на SQL под капотом. SQL важен для создания приложений с использованием этих технологий.

Есть много баз данных, которые не используют SQL, например MongoDB и GraphQL. Это новые технологии, которые не так широко распространены, как реляционные базы данных. Реляционные базы данных существуют очень давно и обеспечивают большую часть хранилищ данных в Интернете. Чтобы полностью оценить технологии NoSQL и причины, по которым они появились, полезно знать, как работают реляционные базы данных и SQL.

Ресурсы для изучения SQL

Прежде чем поделиться некоторыми примерами кода и деталями самого языка программирования SQL, я хотел бы обратиться к ресурсам Khan Academy и Laracasts. . Оба этих ресурса - отличные ресурсы для изучения SQL и начала вашего приключения!





Примеры кода

Все образцы кода для этого поста доступны в папке SQL созданного мной репозитория собеседований по кодированию.



Настройте свою среду

Для работы SQL вам понадобится база данных определенного типа. В курсе Khan Academy (см. Выше) есть REPL в браузере, который оценивает запросы к базе данных SQLite. SQLite - это легкая популярная база данных, обычно используемая для хранения и разработки мобильных приложений. Вы можете использовать такие инструменты, как Sequel Pro, установить MySQL или запустить приложение Laravel, чтобы создать среду базы данных для выполнения запросов.

Создать таблицу

Первое, что нужно знать, это то, что реляционные базы данных (например, MySQL, SQLite или PostgreSQL) состоят из таблиц. Одна база данных может содержать множество таблиц, и каждая таблица состоит из определенной категории записей. Например, на сайте электронной коммерции у нас могут быть таблицы для заказов, пользователей, транзакций и продуктов. Во многих веб-приложениях вы будете создавать таблицы с помощью миграций, но все же полезно иметь возможность читать и писать операторы создания SQL.

create table exercise_logs ( 
  id integer primary key autoincrement,  
  type text, 
  minutes integer,  
  calories integer,  
  heart_rate integer
);

Вышеупомянутый оператор SQL создает таблицу с именем training_logs с пятью столбцами (идентификатор, тип, минуты, калории и частота сердечных сокращений). Каждый столбец имеет определенный тип данных, например, целое число или текст.

Во второй строке нашего оператора create мы указываем, что каждая новая запись будет иметь уникальный идентификатор, известный как первичный ключ таблицы.

Структура и определение таблиц базы данных известны как схема базы данных.

Вставить данные в таблицу

Чтобы добавить журнал упражнений в нашу таблицу, мы можем написать инструкцию вставки SQL.

insert into exercise_logs(type, minutes, calories, heart_rate) values ('biking', 30, 100, 110);

В этом примере мы указываем имя таблицы, упражнения_logs и столбцы, для которых мы хотим вставить данные. После ключевого слова values ​​мы включаем данные для вставки в базу данных.

Выбрать заявления

Для многих профессий запрос данных с помощью операторов выбора SQL является их основным хлебом с маслом.

Чтобы выбрать все записи из базы данных:

select * from exercise_logs;

Чтобы найти все действия, которыми занимался пользователь, и общее количество калорий, которые они сожгли, выполняя это действие, вы можете написать:

select type, sum(calories) as total_calories 
from exercise_logs 
group by type;

Все эти упражнения - прямые примеры из курса Академии Хана. Я очень рекомендую его, если вы хотите изучать SQL!

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

Вы можете сгруппировать каждое упражнение по зонам частоты пульса.

/* Group the count of exercises by each heart rate zone */
select count(*),    
  case         
    when heart_rate > 220 - 30 then 'above max'        
    when heart_rate > round(.9 * (220 - 30)) then 'above target'
    when heart_rate > round(.5 * (220 - 30)) then 'within target'
    else 'below target'    
end as 'heart_rate_zone'
from exercise_logs
group by heart_rate_zone;

SQL очень полезен для отчетов. Его можно использовать для фильтрации результатов маркетинга, поиска информации о клиентах, поиска в журналах сервера или создания информационных панелей для отчетов.

Подзапросы и лайки

Иногда вам нужно динамически получать данные с помощью запроса и использовать их в другом запросе. На этот случай у нас есть подзапросы. Например, у нас может быть таблица с названием drs_favorites, в которой хранятся рекомендованные врачом действия:

/* This is a comment */
create table drs_favorites ( 
  id integer primary key,    /* Unique identifier */
  type text,                 /* Type of activity */
  reason text                /* Why the doctor recommends it */
);
insert into drs_favorites
  (type, reason) 
  values ('running', 'improves cardiovascular health.');

Для нашего основного запроса мы хотели бы найти в таблице activity_log все действия, которые врачи рекомендовали для улучшения здоровья сердечно-сосудистой системы.

SELECT * FROM exercise_logs WHERE type IN (SELECT type FROM drs_favorites WHERE reason LIKE "%cardiovascular%");

Между круглыми скобками у нас есть подзапрос, который выбирает все записи, в которых слово сердечно-сосудистые включено в причину, по которой его рекомендует врач. Подробнее об операторе LIKE. Обратите внимание, что в SQL можно использовать заглавные или строчные буквы.

Заключение

Это верхушка айсберга! Код упражнения, включая соединения и операторы SQL для взаимодействия с несколькими базами данных, доступен в этом репозитории Github.

Если вы хотите поиграть с тестовой базой данных и написать несколько запросов, у W3schools есть редактор SQL, доступный здесь:



Удачного кодирования!