Программисты должны перед началом активной работы узнать множество полезной информации о создании программных кодов. В противном случае даже элементарные задачи вызовут некоторые трудности. И первое, с чем сталкивается разработчик – выбор языка программирования.
Google и другие поисковые системы указывают на то, что сегодня существует огромное множество способов «общения» с ПК и софтом. Популярностью пользуется Си-семейство. Особенно C#. Опытным программерам дополнительно может потребоваться работа с БД. Для соответствующей цели используются SQL запросы. Со всем этим и не только предстоит познакомиться в данной статье.
C# – определение
Си Шарп – новый язык программирования, который относится к Си-семейству. Google уверяет, что данная «лексика» относится к высокоуровневой. В отличие от предшественников выделяется:
- удобным представлением;
- наличием возможностей ООП;
- понятным синтаксисом;
- возможностью подключения дополнительных «утилит»;
- работой с Net Framework.
Пользователи, которые уже имели дело с JavaScript и другими «способами» написания программ, заметят некое сходство оных с C#. Используется в основном для веб-приложений и Windows-разработок.
SQL – определение
Иногда даже простые задачи требуют от программиста определенных навыков, умений и знаний. Для написания сложных утилит часто требуется работать с базами данных. И выполнять так называемые SQL запросы.
SQL (согласно Google) – язык программирования структурированных запросов. Задействуется для того, чтобы хранить информацию, искать ее полностью (или частично), извлекать из БД, корректировать и удалять.
Выступает в качестве основного инструмента оптимизации и обслуживания баз данных. Активно используется в IT, а также на крупных предприятиях.
Сферы использования – кто изучает
Google указывает на то, что SQL-запросы начали активно использоваться с 1974 года, сразу после появления систем управления базами данных. Его легко освоить и применять в программном обеспечении.
На сегодняшний день задействован:
- разработчиками БД;
- тестировщиками (в автоматической форме в том числе);
- системными администраторами.
Обычные программеры в целях обучения и совершенствования навыков тоже часто пользуются соответствующим языком. Он достаточно прост в освоении, способствует работе с Big Data. Даже новичок в программировании сможет справиться с поставленными задачами.
Виды и типы запросов языка БД
Стоит обратить внимание на то, что рассматриваемая «лексика» баз данных – это выполнение так называемых SQL задач. Или запросов. Так, согласно Google, называют комплексы команд, которые используются для работы с реляционными БД.
Все запросы выполняются согласно определенным алгоритмам. Но перед рассмотрением этого вопроса необходимо уточнить некоторые нюансы обрабатываемых задач. Их условно можно разделить на:
- предназначенные для работы со структурами информации;
- используемые для непосредственной обработки самих БД;
- дающие или блокирующие доступ к частям «хранилища электронных материалов»).
Каждый SQL-запрос делится на типы:
- команды «контактирования» со структурой (Create, Alter, Drop);
- работающие с данными (Insert, Update, Delete, Merge, Select);
- предоставляющие права доступа (Grant, Revoke, Deny).
Также Google указывает на то, что существуют определенные правила составления SQL-запросов. Их нарушение приводит к невозможности обработки тех или иных заданий.
Структура
Последовательность составления будет следующей:
- перечисление всех таблиц, из которых считывать сведения;
- поля, значения которых возвращаются к исходным после корректировок;
- связи между табличками;
- условия выборки;
- дополнительные критерии отбора (методы представления сведений, тип сортировки, имеющиеся ограничения).
Рассматриваемая «лексика» является довольно гибкой. Она легко модифицируется для тех или иных заданий даже новичками.
О выполнении
Google и любые другие поисковики укажут на то, что для нормальной работы с языками программирования и «командами» БД важно понимать последовательность их выполнения. Это помогает упростить формирование новых задач. Далее будут рассмотрены все части SQL-запросов в соответствие с порядком обработки.
From/Join
Здесь нет никакого Select. Таблички с From и Join обрабатываются в первую очередь. В ходе этого осуществляется определение всего рабочего набора, имеющего то или иное отношение к сформированной задачке. Происходит следующее:
- База данных ищет все таблицы с Joins on.
- Извлекает необходимые электронные материалы.
- Создает при необходимости временные таблички хранения информации, возвращаемой из подзапросов.
Часто система выбирает для начала оценку Where, для просмотра наличия пропусков рабочих наборов.
Классы Where
В поисковой системе Google можно отыскать массу полезной информации. Популярный поисковик гласит – Where обрабатывается после From. Используется для фильтрации.
Ссылки на информацию и таблички из FROM могут быть включены в соответствующую «команду», но псевдонимы и некоторые Select не поддерживаются. Связано это с тем, что изначально оные могут не существовать вовсе.
Внимание: для фильтрации условий к агрегированным материалам в электронном виде, согласно советам из Google, требуется использовать Having, а не Where.
Group by
После применения «где» (без Select или с ним – по ситуации) можно через команду группировки объединять столбцы. Происходит это следующим образом:
- Пользователь выбирает сведения, которые хочет «совместить».
- Задает параметры.
- Происходит разбитие материалов на сегменты, каждый из которых обладает ключом и списком строк.
После использования Group by можно задействовать опции агрегации (Select сюда не входит):
- Min;
- Max;
- Sum;
- Count и так далее.
Крайне полезный вариант, особенно при контактировании с крупными БД.
Having
Изучая порядок обработки команд, стоит обратить внимание на Having. Используется операция для фильтрации некоторых сегментов. Условия предусматривают обращение к функциям агрегирования. Обрабатываются после Group By.
После реализации поставленной задачи вернуться к исходным строчкам не получится. Соответственно, доступными для работы становятся только условия «сортировки» целых сегментов, а не конкретных строк в оных.
Внимание: здесь могут быть не доступны некоторые Select предложения и псевдонимы.
Функция Window
Window работает словно механизм группировки. Их использование предусматривает сохранение идентичности. Группировка схожих строк не осуществляется.
Основные операции используются только с Order By или Select. При желании можно задействовать агрегированные операции внутри оконных.
Предложения с Select
С данной «возможностью» пользователи сталкиваются весьма часто. После отбрасывания ненужных сведений и группировки нужных стоит выбрать то, что выводится на стороне клиента. Для этого используются:
- имена столбцов;
- агрегаты;
- подзапросы.
Все это пишется внутри предложения Select. При использовании ссылок на функции агрегации последняя осуществляется не будет в предложении Select.
Ключевик Distinct
Ключевое слово здесь стоит перед названиями столбцов в предложении Select, что вызывает некие недопонимания. Обрабатывается Distinct после Select. БД отбросит строчки с одинаковыми значениями, которые остаются после фильтровки и агрегирования.
Union
Объединяет два набора полученных значений в единое целое. Часто выбор делается между:
- отсеиванием одинаковых строчек;
- полным объединением без проверки на наличие дубликатов.
Здесь возможна сортировка и ограничение. Происходит это точно так же, как и в случае со всеми остальными «обычными» запросами.
Order by
Обрабатывается после Select, а также иных перечисленных ранее вариантов. Полученные результаты через столбцы, псевдонимы, агрегирование сортирует результирующие наборы. Перечисленные элементы могут не входить в выбранные данные.
Сортировка возникает по убыванию или возрастанию. Заказы бывают уникальными для каждой из частей.
Limit/Offset
Limit обрабатывается после того, как произошла сортировка. Можно выбрать, с какой строчки производить извлечение информации, что и сколько исключать. Для этого используются слова-ключевики Offset и Limit.
Пример: выбор 50 строк в итоговом отчете, начиная с 100 «штуки» — Limit 50 Offset 100.
Подключение SQL к C#
C#, как и SQL-запросы внедрялись в программирование корпорацией Microsoft. Поэтому провести их интеграцию не составит никакого труда. После этого удастся писать универсальные приложения, которые будут работать на языке запросов информационных баз.
Для реализации поставленной задачи в основном используются специальные команды, а также дополнительный контент – ADO.Net или SQL Server. Создавать «хранилище сведений» требуется через второй «элемент». Отыскать приложение предварительно предлагается на сайте Microsoft.
После того, как произошло создание таблицы, требуется определить строчку подключения, которая предоставляет материалы о БД и сервере:
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
string sqlExpression = "SELECT * FROM Users";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(sqlExpression, connection);
Далее пользователю предстоит для выполнения команды задействовать методы SQLCommand:
- ExecuteNonQuery. Обычное выполнение выражения, а затем возврат измененных записей. Подойдет для Insert, Delete, Update (Select сюда не включен).
- ExecuteReader. Отвечает за выполнение выражения и возврат строчки из таблички. Годится для Select.
- ExecuteScalar. Осуществляется обработка выражения с последующим возвратом одного скаляра. Пример – числа. Используется с Select в паре со встроенными функциями-SQL (Min. Max, Count, Sum).
На самом деле все не так трудно, как кажется. В видео по данной ссылке хорошо показано, каков порядок выполнения SQL запросов. Этот вариант актуален только для C#. В Google полно подобных туториалов. Если одно видео не понятно новичку, он всегда сможет отыскать что-то более ясное для себя.
Где используется SQL
Google уверяет – рассмотренные элементы активно применяются. Особенно базы. Они задействованы в:
- DDL – как язык определения данных (так говорит Google), давая независимое создание информационных хранилищ;
- DML – управление, помогающее вести поддержку существующих табличек;
- DCL – контроль, используемый для защиты от неправильного использования и повреждений;
- SSO – клиент-сервер, давая возможность проверки подлинности пользователя в нескольких веб-утилитах в рамках одного сеанса.
Также согласно сведениям, полученным из Google, рассматриваемые «команды» обеспечивают трехуровневую архитектуру. За счет соответствующего приема гарантируется защита информационных составляющих от несанкционированного использования и «пиратского» копирования.
Внимание: SQL-данные используются практически всеми реляционными базами.
В Google и других поисковиках можно отыскать не только туториалы и полезную литературу по работе с рассмотренным языком и запросами. Здесь также предлагаются курсы для обучения программированию и БД. В Google удастся обнаружить не только очные курсы, но и дистанционные. Они помогают быстрее освоиться в выбранной области не только продвинутым программерам, но и новичкам. По выпуску выдают специальные сертификаты.
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>C# и SQL-запросы: что нужно знать программисту OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Программисты должны перед началом активной работы узнать множество полезной информации о создании программных кодов. В противном случае даже элементарные задачи вызовут некоторые трудности. И первое, с чем сталкивается разработчик – выбор языка программирования. Google и другие поисковые системы указывают на то, что сегодня существует огромное множество способов «общения» с ПК и софтом. Популярностью пользуется Си-семейство." />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#article","name":"C# \u0438 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b: \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 OTUS","headline":"C# \u0438 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b: \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/09\/oj-1080x720-4.png","width":1080,"height":720},"datePublished":"2021-09-03T16:39:03+00:00","dateModified":"2023-03-31T17:15:50+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, C#, SQL"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#listItem","position":2,"name":"C# \u0438 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b: \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#webpage","url":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/","name":"C# \u0438 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b: \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 OTUS","description":"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0430\u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u044b\u0437\u043e\u0432\u0443\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438. \u0418 \u043f\u0435\u0440\u0432\u043e\u0435, \u0441 \u0447\u0435\u043c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u2013 \u0432\u044b\u0431\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. Google \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u00ab\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u00bb \u0441 \u041f\u041a \u0438 \u0441\u043e\u0444\u0442\u043e\u043c. \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0421\u0438-\u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e.","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/09\/oj-1080x720-4.png","@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/#mainImage"},"datePublished":"2021-09-03T16:39:03+00:00","dateModified":"2023-03-31T17:15:50+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/1951" /><link rel='shortlink' href='https://otus.ru/journal/?p=1951' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fc-i-sql-zaprosy-chto-nuzhno-znat-programmistu%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fc-i-sql-zaprosy-chto-nuzhno-znat-programmistu%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-1951 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-1951" class="the-post post-1951 post type-post status-publish format-standard has-post-thumbnail category-polza tag-c-2 tag-sql">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
C# и SQL-запросы: что нужно знать программисту
</h1>
<a href="https://otus.ru/journal/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu/" class="date-link" data-wpel-link="internal"><time class="post-date">3 сентября, 2021</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="C# и SQL-запросы: что нужно знать программисту" title="C# и SQL-запросы: что нужно знать программисту" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-4-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#C_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" title="C# – определение">C# – определение</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#SQL_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" title="SQL – определение">SQL – определение</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%A1%D1%84%D0%B5%D1%80%D1%8B_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%E2%80%93_%D0%BA%D1%82%D0%BE_%D0%B8%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D1%82" title="Сферы использования – кто изучает">Сферы использования – кто изучает</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%92%D0%B8%D0%B4%D1%8B_%D0%B8_%D1%82%D0%B8%D0%BF%D1%8B_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%91%D0%94" title="Виды и типы запросов языка БД">Виды и типы запросов языка БД</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0" title="Структура">Структура</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9E_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8" title="О выполнении">О выполнении</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-7" href="#FromJoin" title="From/Join">From/Join</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B_Where" title="Классы Where">Классы Where</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-9" href="#Group_by" title="Group by">Group by</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-10" href="#Having" title="Having">Having</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_Window" title="Функция Window">Функция Window</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%9F%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81_Select" title="Предложения с Select">Предложения с Select</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%9A%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D0%B8%D0%BA_Distinct" title="Ключевик Distinct">Ключевик Distinct</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-14" href="#Union" title="Union">Union</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-15" href="#Order_by" title="Order by">Order by</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-16" href="#LimitOffset" title="Limit/Offset">Limit/Offset</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-17" href="#%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_SQL_%D0%BA_C" title="Подключение SQL к C#">Подключение SQL к C#</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-18" href="#%D0%93%D0%B4%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D1%82%D1%81%D1%8F_SQL" title="Где используется SQL">Где используется SQL</a></li></ul></nav></div>
<p>Программисты должны перед началом активной работы узнать множество полезной информации о создании программных кодов. В противном случае даже элементарные задачи вызовут некоторые трудности. И первое, с чем сталкивается разработчик – выбор языка программирования.</p>
<p>Google и другие поисковые системы указывают на то, что сегодня существует огромное множество способов «общения» с ПК и софтом. Популярностью пользуется Си-семейство. Особенно C#. Опытным программерам дополнительно может потребоваться работа с БД. Для соответствующей цели используются SQL запросы. Со всем этим и не только предстоит познакомиться в данной статье.</p>
<figure class="wp-block-image size-full"><a href="https://otus.ru/lessons/csharp-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=csharp" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90.png" alt="C# и SQL-запросы: что нужно знать программисту" class="wp-image-5995" srcset="https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90.png 970w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p></p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="C_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5"></span>C# – определение<span class="ez-toc-section-end"></span></h2>
<p>Си Шарп – новый язык программирования, который относится к Си-семейству. Google уверяет, что данная «лексика» относится к высокоуровневой. В отличие от предшественников выделяется:</p>
<ul>
<li>удобным представлением;</li>
<li>наличием возможностей ООП;</li>
<li>понятным синтаксисом;</li>
<li>возможностью подключения дополнительных «утилит»;</li>
<li>работой с Net Framework.</li>
</ul>
<p>Пользователи, которые уже имели дело с JavaScript и другими «способами» написания программ, заметят некое сходство оных с C#. Используется в основном для веб-приложений и Windows-разработок.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="SQL_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5"></span>SQL – определение<span class="ez-toc-section-end"></span></h2>
<p>Иногда даже простые задачи требуют от программиста определенных навыков, умений и знаний. Для написания сложных утилит часто требуется работать с базами данных. И выполнять так называемые SQL запросы.</p>
<p>SQL (согласно Google) – язык программирования структурированных запросов. Задействуется для того, чтобы хранить информацию, искать ее полностью (или частично), извлекать из БД, корректировать и удалять.</p>
<p>Выступает в качестве основного инструмента оптимизации и обслуживания баз данных. Активно используется в IT, а также на крупных предприятиях.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%84%D0%B5%D1%80%D1%8B_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%E2%80%93_%D0%BA%D1%82%D0%BE_%D0%B8%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D1%82"></span>Сферы использования – кто изучает<span class="ez-toc-section-end"></span></h3>
<p>Google указывает на то, что SQL-запросы начали активно использоваться с 1974 года, сразу после появления систем управления базами данных. Его легко освоить и применять в программном обеспечении.</p>
<p>На сегодняшний день задействован:</p>
<ul>
<li>разработчиками БД;</li>
<li>тестировщиками (в автоматической форме в том числе);</li>
<li>системными администраторами.</li>
</ul>
<p>Обычные программеры в целях обучения и совершенствования навыков тоже часто пользуются соответствующим языком. Он достаточно прост в освоении, способствует работе с Big Data. Даже новичок в программировании сможет справиться с поставленными задачами.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D0%B8%D0%B4%D1%8B_%D0%B8_%D1%82%D0%B8%D0%BF%D1%8B_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%91%D0%94"></span>Виды и типы запросов языка БД<span class="ez-toc-section-end"></span></h3>
<p>Стоит обратить внимание на то, что рассматриваемая «лексика» баз данных – это выполнение так называемых SQL задач. Или запросов. Так, согласно Google, называют комплексы команд, которые используются для работы с реляционными БД.</p>
<p>Все запросы выполняются согласно определенным алгоритмам. Но перед рассмотрением этого вопроса необходимо уточнить некоторые нюансы обрабатываемых задач. Их условно можно разделить на:</p>
<ul>
<li>предназначенные для работы со структурами информации;</li>
<li>используемые для непосредственной обработки самих БД;</li>
<li>дающие или блокирующие доступ к частям «хранилища электронных материалов»).</li>
</ul>
<p>Каждый SQL-запрос делится на типы:</p>
<ul>
<li>команды «контактирования» со структурой (Create, Alter, Drop);</li>
<li>работающие с данными (Insert, Update, Delete, Merge, Select);</li>
<li>предоставляющие права доступа (Grant, Revoke, Deny).</li>
</ul>
<p>Также Google указывает на то, что существуют определенные правила составления SQL-запросов. Их нарушение приводит к невозможности обработки тех или иных заданий.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0"></span>Структура<span class="ez-toc-section-end"></span></h3>
<p>Последовательность составления будет следующей:</p>
<ul>
<li>перечисление всех таблиц, из которых считывать сведения;</li>
<li>поля, значения которых возвращаются к исходным после корректировок;</li>
<li>связи между табличками;</li>
<li>условия выборки;</li>
<li>дополнительные критерии отбора (методы представления сведений, тип сортировки, имеющиеся ограничения).</li>
</ul>
<p>Рассматриваемая «лексика» является довольно гибкой. Она легко модифицируется для тех или иных заданий даже новичками.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8"></span>О выполнении<span class="ez-toc-section-end"></span></h3>
<p>Google и любые другие поисковики укажут на то, что для нормальной работы с языками программирования и «командами» БД важно понимать последовательность их выполнения. Это помогает упростить формирование новых задач. Далее будут рассмотрены все части SQL-запросов в соответствие с порядком обработки.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="FromJoin"></span>From/Join<span class="ez-toc-section-end"></span></h4>
<p>Здесь нет никакого Select. Таблички с From и Join обрабатываются в первую очередь. В ходе этого осуществляется определение всего рабочего набора, имеющего то или иное отношение к сформированной задачке. Происходит следующее:</p>
<ol type="1">
<li>База данных ищет все таблицы с Joins on.</li>
<li>Извлекает необходимые электронные материалы.</li>
<li>Создает при необходимости временные таблички хранения информации, возвращаемой из подзапросов.</li>
</ol>
<p>Часто система выбирает для начала оценку Where, для просмотра наличия пропусков рабочих наборов.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B_Where"></span>Классы Where<span class="ez-toc-section-end"></span></h4>
<p>В поисковой системе Google можно отыскать массу полезной информации. Популярный поисковик гласит – Where обрабатывается после From. Используется для фильтрации.</p>
<figure class="wp-block-image size-full"><a href="https://otus.ru/lessons/csharp-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=csharp" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1.png" alt="C# и SQL-запросы: что нужно знать программисту" class="wp-image-5997" srcset="https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1.png 970w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p>Ссылки на информацию и таблички из FROM могут быть включены в соответствующую «команду», но псевдонимы и некоторые Select не поддерживаются. Связано это с тем, что изначально оные могут не существовать вовсе.</p>
<p>Внимание: для фильтрации условий к агрегированным материалам в электронном виде, согласно советам из Google, требуется использовать Having, а не Where.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="Group_by"></span>Group by<span class="ez-toc-section-end"></span></h4>
<p>После применения «где» (без Select или с ним – по ситуации) можно через команду группировки объединять столбцы. Происходит это следующим образом:</p>
<ol type="1">
<li>Пользователь выбирает сведения, которые хочет «совместить».</li>
<li>Задает параметры.</li>
<li>Происходит разбитие материалов на сегменты, каждый из которых обладает ключом и списком строк.</li>
</ol>
<p>После использования Group by можно задействовать опции агрегации (Select сюда не входит):</p>
<ul>
<li>Min;</li>
<li>Max;</li>
<li>Sum;</li>
<li>Count и так далее.</li>
</ul>
<p>Крайне полезный вариант, особенно при контактировании с крупными БД.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="Having"></span>Having<span class="ez-toc-section-end"></span></h4>
<p>Изучая порядок обработки команд, стоит обратить внимание на Having. Используется операция для фильтрации некоторых сегментов. Условия предусматривают обращение к функциям агрегирования. Обрабатываются после Group By.</p>
<p>После реализации поставленной задачи вернуться к исходным строчкам не получится. Соответственно, доступными для работы становятся только условия «сортировки» целых сегментов, а не конкретных строк в оных.</p>
<p>Внимание: здесь могут быть не доступны некоторые Select предложения и псевдонимы.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_Window"></span>Функция Window<span class="ez-toc-section-end"></span></h4>
<p>Window работает словно механизм группировки. Их использование предусматривает сохранение идентичности. Группировка схожих строк не осуществляется.</p>
<p>Основные операции используются только с Order By или Select. При желании можно задействовать агрегированные операции внутри оконных.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81_Select"></span>Предложения с Select<span class="ez-toc-section-end"></span></h4>
<p>С данной «возможностью» пользователи сталкиваются весьма часто. После отбрасывания ненужных сведений и группировки нужных стоит выбрать то, что выводится на стороне клиента. Для этого используются:</p>
<ul>
<li>имена столбцов;</li>
<li>агрегаты;</li>
<li>подзапросы.</li>
</ul>
<p>Все это пишется внутри предложения Select. При использовании ссылок на функции агрегации последняя осуществляется не будет в предложении Select.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D0%B8%D0%BA_Distinct"></span>Ключевик Distinct<span class="ez-toc-section-end"></span></h4>
<p>Ключевое слово здесь стоит перед названиями столбцов в предложении Select, что вызывает некие недопонимания. Обрабатывается Distinct после Select. БД отбросит строчки с одинаковыми значениями, которые остаются после фильтровки и агрегирования.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="Union"></span>Union<span class="ez-toc-section-end"></span></h4>
<p>Объединяет два набора полученных значений в единое целое. Часто выбор делается между:</p>
<ul>
<li>отсеиванием одинаковых строчек;</li>
<li>полным объединением без проверки на наличие дубликатов.</li>
</ul>
<p>Здесь возможна сортировка и ограничение. Происходит это точно так же, как и в случае со всеми остальными «обычными» запросами.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="Order_by"></span>Order by<span class="ez-toc-section-end"></span></h4>
<p>Обрабатывается после Select, а также иных перечисленных ранее вариантов. Полученные результаты через столбцы, псевдонимы, агрегирование сортирует результирующие наборы. Перечисленные элементы могут не входить в выбранные данные.</p>
<p>Сортировка возникает по убыванию или возрастанию. Заказы бывают уникальными для каждой из частей.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="LimitOffset"></span>Limit/Offset<span class="ez-toc-section-end"></span></h4>
<p>Limit обрабатывается после того, как произошла сортировка. Можно выбрать, с какой строчки производить извлечение информации, что и сколько исключать. Для этого используются слова-ключевики Offset и Limit.</p>
<p>Пример: выбор 50 строк в итоговом отчете, начиная с 100 «штуки» — Limit 50 Offset 100.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_SQL_%D0%BA_C"></span>Подключение SQL к C#<span class="ez-toc-section-end"></span></h2>
<p>C#, как и SQL-запросы внедрялись в программирование корпорацией Microsoft. Поэтому провести их интеграцию не составит никакого труда. После этого удастся писать универсальные приложения, которые будут работать на языке запросов информационных баз.</p>
<p>Для реализации поставленной задачи в основном используются специальные команды, а также дополнительный контент – ADO.Net или SQL Server. Создавать «хранилище сведений» требуется через второй «элемент». Отыскать приложение предварительно предлагается на сайте Microsoft.</p>
<p>После того, как произошло создание таблицы, требуется определить строчку подключения, которая предоставляет материалы о БД и сервере:</p>
<pre class="wp-block-code"><code>string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
string sqlExpression = "SELECT * FROM Users";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(sqlExpression, connection);</code></pre>
<p>Далее пользователю предстоит для выполнения команды задействовать методы SQLCommand:</p>
<ol type="1">
<li>ExecuteNonQuery. Обычное выполнение выражения, а затем возврат измененных записей. Подойдет для Insert, Delete, Update (Select сюда не включен).</li>
<li>ExecuteReader. Отвечает за выполнение выражения и возврат строчки из таблички. Годится для Select.</li>
<li>ExecuteScalar. Осуществляется обработка выражения с последующим возвратом одного скаляра. Пример – числа. Используется с Select в паре со встроенными функциями-SQL (Min. Max, Count, Sum).</li>
</ol>
<p>На самом деле все не так трудно, как кажется. В видео <a href="https://youtu.be/onCRZ7RvsAQ" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">по данной ссылке<span class="wpel-icon wpel-image wpel-icon-6"></span></a> хорошо показано, каков порядок выполнения SQL запросов. Этот вариант актуален только для C#. В Google полно подобных туториалов. Если одно видео не понятно новичку, он всегда сможет отыскать что-то более ясное для себя.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%93%D0%B4%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D1%82%D1%81%D1%8F_SQL"></span>Где используется SQL<span class="ez-toc-section-end"></span></h2>
<p>Google уверяет – рассмотренные элементы активно применяются. Особенно базы. Они задействованы в:</p>
<ul>
<li>DDL – как язык определения данных (так говорит Google), давая независимое создание информационных хранилищ;</li>
<li>DML – управление, помогающее вести поддержку существующих табличек;</li>
<li>DCL – контроль, используемый для защиты от неправильного использования и повреждений;</li>
<li>SSO – клиент-сервер, давая возможность проверки подлинности пользователя в нескольких веб-утилитах в рамках одного сеанса.</li>
</ul>
<p>Также согласно сведениям, полученным из Google, рассматриваемые «команды» обеспечивают трехуровневую архитектуру. За счет соответствующего приема гарантируется защита информационных составляющих от несанкционированного использования и «пиратского» копирования.</p>
<p>Внимание: SQL-данные используются практически всеми реляционными базами.</p>
<p>В Google и других поисковиках можно отыскать не только туториалы и полезную литературу по работе с рассмотренным языком и запросами. Здесь также предлагаются курсы для обучения программированию и БД. В Google удастся обнаружить не только очные курсы, но и дистанционные. Они помогают быстрее освоиться в выбранной области не только продвинутым программерам, но и новичкам. По выпуску выдают специальные сертификаты.</p>
<figure class="wp-block-image"><a href="https://otus.ru/lessons/csharp-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=csharp" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1.png" alt="C# и SQL-запросы: что нужно знать программисту" class="wp-image-5997" srcset="https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1.png 970w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2023/03/CPro_Welcome_970x90-1-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p></p>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/subd/?utm_source=oj&utm_medium=affilate&utm_campaign=subd" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img loading="lazy" decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2021/09/SUBD_970x90-20219-543a9a.png" alt="C# и SQL-запросы: что нужно знать программисту" class="wp-image-1954" srcset="https://otus.ru/journal/wp-content/uploads/2021/09/SUBD_970x90-20219-543a9a.png 970w, https://otus.ru/journal/wp-content/uploads/2021/09/SUBD_970x90-20219-543a9a-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/SUBD_970x90-20219-543a9a-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/SUBD_970x90-20219-543a9a-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/c-2/" rel="tag" data-wpel-link="internal">C#</a><a href="https://otus.ru/journal/tag/sql/" rel="tag" data-wpel-link="internal">SQL</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fc-i-sql-zaprosy-chto-nuzhno-znat-programmistu%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fc-i-sql-zaprosy-chto-nuzhno-znat-programmistu%2F&text=C%23%20%D0%B8%20SQL-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B%3A%20%D1%87%D1%82%D0%BE%20%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%20%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D1%83" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fc-i-sql-zaprosy-chto-nuzhno-znat-programmistu%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fc-i-sql-zaprosy-chto-nuzhno-znat-programmistu%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2021%2F09%2Foj-1080x720-4.png&description=C%23%20%D0%B8%20SQL-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B%3A%20%D1%87%D1%82%D0%BE%20%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%20%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D1%83" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/chto-nuzhno-znat-sovremennomu-programmistu-c-i-ide/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/chto-nuzhno-znat-sovremennomu-programmistu-c-i-ide/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Что нужно знать современному программисту: C# и IDE" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-3-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Что нужно знать современному программисту: C# и IDE" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/chto-nuzhno-znat-sovremennomu-programmistu-c-i-ide/" data-wpel-link="internal">Что нужно знать современному программисту: C# и IDE</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/chto-nuzhno-znat-sovremennomu-programmistu-c-i-ide/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-09-01T19:53:29+00:00">1 сентября, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">9 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/c-i-framework-pervoe-znakomstvo/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/c-i-framework-pervoe-znakomstvo/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="C# и Framework: первое знакомство" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="C# и Framework: первое знакомство" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/c-i-framework-pervoe-znakomstvo/" data-wpel-link="internal">C# и Framework: первое знакомство</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/c-i-framework-pervoe-znakomstvo/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-09-03T16:51:00+00:00">3 сентября, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">8 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/c-i-sql-zaprosy-chto-nuzhno-znat-programmistu\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 15:15:43 GMT -->