|
@@ -0,0 +1,36 @@
|
|
|
|
|
+# Что такое SQL
|
|
|
|
|
+**SQL** (Structured Query Language, или язык структурированных запросов) — это декларативный язык программирования (язык запросов), который используют для создания, обработки и хранения данных в реляционных БД.
|
|
|
|
|
+
|
|
|
|
|
+На чистом SQL нельзя написать программу — он предназначен только для взаимодействия с базами данных: получения, добавления, изменения и удаления информации в них, управления доступом и так далее.
|
|
|
|
|
+
|
|
|
|
|
+## В каких базах данных используют SQL
|
|
|
|
|
+
|
|
|
|
|
+Все БД можно поделить на два вида: *реляционные* и *нереляционные*. SQL работает с реляционными БД. Про реляционные БД часто говорят, что это набор двумерных таблиц. Прямо как в Excel: со столбцами, строками и ячейками. Это понятная визуализация, хотя и не совсем точная.
|
|
|
|
|
+
|
|
|
|
|
+Представим, что мы создаём базу данных для небольшой строительной фирмы. Она проектирует загородные дома и передаёт проекты подрядчикам, которые занимаются самим строительством:
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+### Чем же база данных отличается от таблицы? Тем, что в базе:
|
|
|
|
|
+
|
|
|
|
|
+- У столбцов и строк нет определённого положения. Нельзя сказать, что столбец status находится до или после столбца num_floors, а имя Анастасии Романиной — до или после имени Дмитрия Пожарова.
|
|
|
|
|
+- Каждый столбец диктует свой домен, то есть тип данных, к которому могут относиться его значения. Например, в столбцах cost и num_floors могут храниться только числа, а в столбце client — только строки.
|
|
|
|
|
+- Каждая строка должна быть уникальной и не может повторять какую-то другую строку.
|
|
|
|
|
+
|
|
|
|
|
+Из-за этих отличий применительно к базам данных используют другую терминологию. Столбец называется атрибутом, строка — записью или кортежем, а сама БД — их отношением друг к другу.
|
|
|
|
|
+
|
|
|
|
|
+## Где применяют SQL
|
|
|
|
|
+
|
|
|
|
|
+Без баз данных не будет ни сайтов, ни сетевых приложений, ни крупных информационных систем — нужно же где-то хранить всю информацию. При этом реляционных БД — большинство, а чтобы управлять ими, нужен SQL. Поэтому мало какая вакансия бэкенд-разработчика обходится без требования владеть SQL. По крайней мере, мы такой не нашли.
|
|
|
|
|
+
|
|
|
|
|
+Но умение работать с базами данных пригодится не только программисту.
|
|
|
|
|
+
|
|
|
|
|
+**Аналитики данных** напрямую работают с «сырой» информацией. Чем лучше и свободнее они общаются с БД, тем проще им добывать и обрабатывать нужные данные в нужном виде.
|
|
|
|
|
+
|
|
|
|
|
+**Маркетологам** SQL тоже будет полезен для решения аналитических задач.
|
|
|
|
|
+
|
|
|
|
|
+**Тестировщикам** понадобится обращаться к БД, потому что это важный компонент любого информационного продукта.
|
|
|
|
|
+
|
|
|
|
|
+**Руководители, менеджеры и бизнес-консультанты** благодаря информации из БД смогут лучше понимать, как функционирует их бизнес, и принимать более взвешенные решения.
|
|
|
|
|
+
|
|
|
|
|
+
|