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