Microsoft sql server 2018 руководство для начинающих: Руководство по установке SQL Server — SQL Server
Содержание
Руководства по SQL Server — SQL Server
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
-
Применимо к:SQL Server
SQL Server предоставляет руководства, которые помогут вам изучить новые технологии и возможности. Руководства по более ранним версиям обычно подходят и к более поздним. При упоминании новой функции в руководстве также указывается минимальная необходимая версия.
Если в руководстве используется одна из баз данных Adventure Works, необходимо загрузить и использовать последнюю версию из CodePlex. Дополнительные сведения см. в статье Примеры баз данных и сценариев AdventureWorks для SQL Server 2016 CTP3.
Чтобы скачать книгу Power Pivot и отчеты Power View для учебников Power View , перейдите на страницу Образцы Power View для SQL Server 2012.
Примечание
Поддержка Power View больше не доступна после выхода SQL Server 2017.
Ознакомьтесь с новым образцом Wide World Importers , доступным в репозитории GitHub sql-server-samples .
Действующие учебники
Технология | Описание |
---|---|
Учебники по службам Analysis Services (SSAS) | Сведения о разработке и развертывании табличных и многомерных моделей служб Службы Analysis Services . Также рассказывается об использовании таких средств, как PowerPivot для анализа данных в моделях. |
Учебники по компоненту ядра СУБД | Узнайте, как подключаться к экземпляру ядра СУБД, а затем создавать и выполнять инструкции Transact-SQL. |
Учебники по информационному менеджменту предприятия | Сведения о том, как осуществляется управление данными на предприятии с использованием технологии Microsoft EIM. |
Учебники по службам Integration Services | Узнайте, как создавать и развертывать пакеты Integration Services . |
Руководства по репликации | Сведения об установке и запуске топологий репликации с помощью SQL Server Management Studio. |
Учебники по службам Reporting Services (SSRS) | Научитесь создавать основные отчеты и подписки. |
Учебники по машинному обучению SQL Server | Узнайте, как работать с данными SQL Server с помощью R или Python. Выполняйте сценарии R или Python из Transact-SQL. |
Ранее опубликованные учебники
Учебные материалы по SQL Server 2014
Учебные материалы по SQL Server 2012
Учебные материалы по SQL Server 2008 R2
Получение справки
- Идеи об SQL. Есть рекомендации по улучшению SQL Server?
- Вопросы и ответы по продуктам Майкрософт (SQL Server)
- DBA Stack Exchange (тег sql-server): вопросы по SQL Server
- Stack Overflow (тег sql-server): ответы на вопросы по разработке приложений SQL
- Reddit: общее обсуждение по SQL Server
- Условия лицензии и информация о Microsoft SQL Server
- Варианты поддержки для бизнес-пользователей
- Обратиться в Майкрософт
- Дополнительная справка и отзывы по SQL Server
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.
Дополнительные сведения см. в разделе Участие в работе над документацией по SQL Server.
Техническая документация по SQL Server — SQL Server
Изменить
Twitter
LinkedIn
Facebook
Адрес электронной почты
SQL в Azure
Общие сведения
- Azure SQL
- База данных SQL Azure
- Управляемый экземпляр SQL Azure
- Подключение к Azure SQL
- SQL Server на виртуальных машинах Windows в Azure
- SQL Server на виртуальных машинах Linux в Azure
- Azure Synapse Analytics
- Azure Database Migration Service
Миграция
Общие сведения
- Материалы по миграции
- Руководство по миграции данных
- Сертификация на совместимость базы данных
- Помощник по миграции данных (DMA)
- Помощник по миграции SQL Server (SSMA)
SQL Server
Новое
- SQL Server 2022
- SQL Server 2019
- Azure Data Studio
- SQL Server в Linux
- SQL Server с поддержкой Azure Arc
Краткое руководство
- Подключение и отправка запроса (SSMS)
- Подключение и отправка запроса (Azure Data Studio)
Скачать
- SQL Server
- SQL Server Management Studio
- Azure Data Studio
Ссылка
- Transact-SQL (T-SQL)
- Документация по SQL Server 2014
- Обучающие ресурсы по SQL
- Примеры баз данных
- Руководство по внутренним компонентам и архитектуре
- Предыдущие версии (2005–2012)
Непрерывность бизнес-процессов
Общие сведения
- Резервное копирование и восстановление
- Группы доступности AlwaysOn
- Экземпляр отказоустойчивого кластера AlwaysOn
- Зеркальное отображение базы данных
- доставка журналов;
- Репликация
Безопасность
Общие сведения
- Оценка уязвимостей SQL
- Управление доступом
- Always Encrypted
- Аудит
- Анклавы
- Динамическое маскирование данных
- Прозрачное шифрование данных (TDE)
- Безопасность на уровне строк
Структура базы данных
Общие сведения
- Параметры сортировки
- Базы данных
- График
- Индексы
- Представления
- Определяемые пользователем функции
- Таблицы
- Хранимые процедуры
Управление и мониторинг
Общие сведения
- Управление журналом транзакций
- Планы обслуживания
- Агент SQL Server
- Отслеживание изменений
- Сжатие данных
- Расширенные события
Настройка
Общие сведения
- Центр производительности
- Интеллектуальная обработка запросов
- Автоматическая настройка
- Помощник по настройке базы данных
- Выполняющаяся в памяти OLTP
Концепция
- Оценка кратности
- Статистика
- Индексы
Данные запросов
Общие сведения
- Transact-SQL (T-SQL)
- SQL PowerShell
- Написание сценариев
- Соединения
- Полнотекстовый поиск
- Синонимы
Большие данные и машинное обучение
Общие сведения
- Система платформы аналитики
- Машинное обучение SQL Server (R и Python)
- Виртуализация данных через PolyBase
Бизнес-аналитика
Общие сведения
- Службы SQL Server Reporting Services (SSRS)
- Службы SQL Server Analysis Services (SSAS)
- Службы SQL Server Integration Services (SSIS)
- Фабрика данных Azure
Учебное пособие по MS SQL Server
для начинающих: обучение за 7 дней
Ричард Петерсон
Часы
Обновлено
Краткое изложение руководства по MS SQL Server
SQL Server — это ведущая система управления реляционными базами данных от Microsoft. Этот учебник по MS SQL Server научит вас основам и продвинутым уровням концепций SQL Server. В этом учебном пособии Microsoft SQL Server Management Studio мы изучим все основы MS SQL Server и расширенные концепции SQL Server.
Что я должен знать?
Этот интерактивный учебник по администрированию SQL-сервера предназначен для начинающих с небольшим опытом работы с SQL Server или вообще без него. Но знание SQL до изучения этого учебника по MS SQL является плюсом. Приведенные ниже учебные пособия по MSSQL помогут вам изучить все основы работы с сервером MS SQL. Кроме того, это руководство по SQL Server для начинающих также содержит вопросы для собеседования по SQL Server.
Программа курса MS SQL Server
Введение
👉 Урок 1 | Что такое SQL Server? — Введение, история версий |
👉 Урок 2 | Как загрузить и установить SQL Server — Пошаговое руководство по установке |
👉 Урок 3 | Объяснение архитектуры SQL Server — именованные каналы, оптимизатор, диспетчер буферов |
👉 Урок 4 | SQL Server Management Studio — Загрузка и установка MS SSMS |
Дополнительные материалы
👉 Урок 1 | База данных SQL Server — создание, изменение, удаление, восстановление |
👉 Урок 2 | Типы данных SQL Server с примерами — Varchar, Numeric, DateTime в SQL |
👉 Урок 3 | Переменная SQL Server — Объявить, Установить, Выбрать, Глобальную, Локальную [Примеры TSQL] |
👉 Урок 4 | Таблица SQL Server — CREATE, ALTER, DROP [Примеры T-SQL] |
👉 Урок 5 | SQL PRIMARY KEY — Как создать и добавить в существующую таблицу |
👉 Урок 6 | SQL FOREIGN KEY — Как создать в SQL Server с примером |
👉 Урок 7 | SQL Server IF…ELSE Оператор условия — Обучение с помощью T-SQL Select Query |
👉 Урок 8 | Оператор CASE и вложенный прецедент в SQL Server — Изучение примера T-SQL |
👉 Урок 9 | Substring() в SQL Server — Как использовать функцию на примере |
👉 Урок 10 | SQL SERVER JOINS Tutorial — INNER, LEFT, RIGHT, OUTER |
👉 Урок 11 | Создать учетную запись пользователя в SQL Server — Создать логин, пользователя, назначить разрешение |
👉 Урок 12 | Oracle против. SQL Server — ключевые отличия |
👉 Урок 13 | Учебное пособие по службам SSIS для начинающих — что такое, архитектура, пакеты |
Должен знать!
👉 Урок 1 | Вопросы на собеседовании в SSIS — 40 основных вопросов и ответов на собеседовании в SSIS |
👉 Урок 2 | Службы отчетов SQL Server — Учебное пособие по службам SSRS для начинающих |
👉 Урок 3 | Вопросы для интервью SSRS — 20 лучших вопросов и ответов для интервью SSRS |
👉 Урок 4 | Учебное пособие по SSAS . Что такое, архитектура, куб SSAS и типы |
👉 Урок 5 | Вопросы из интервью по SQL Server — 50 лучших вопросов из интервью по SQL Server |
👉 Урок 6 | Руководство по SQL Server в формате PDF — Загрузить руководство по SQL Server в формате PDF для начинающих |
Руководство для начинающих по использованию FOR JSON в SQL Server
Базы данных
Microsoft Azure
SQL-сервер
Transact-SQL (T-SQL)
Когда дело доходит до формальной, структурированной и масштабируемой обработки больших наборов данных, ничто не сравнится с SQL Server. Проработав с продуктом почти шесть лет, я всегда с нетерпением жду возможности составить несколько SQL-запросов или создать новую базу данных. Я думаю об этом как о приятном маленьком удовольствии, награде среди других, иногда утомительных задач, с которыми мне приходится сталкиваться еженедельно. Я оцениваю знание SQL Server довольно высоко, если вы стремитесь стать серьезным специалистом по Dynamics CRM/365 for Customer Engagement, и я считаю, что мой опыт работы с SQL стал одним из факторов, который помог упростить мой переход к Dynamics.
Однако может случиться так, что другие не так заинтересованы в перспективе работы с базами данных SQL, особенно когда они не могут приспособить некоторые из альтернативных механизмов хранения данных, которые являются обычными для разработчиков приложений. Хорошим примером этого является JSON ( J ava S cript O bject N otation), формат, который сегодня широко используется в качестве переносимого и «легкого для чтения» механизма передачи данных. Для тех, кто больше привык работать с SQL, знакомство с JSON поначалу может быть проблемой, и — традиционно — это не то, что Microsoft учитывала при разработке SQL Server. Многое изменилось с Microsoft — в том смысле, что такие службы, как Microsoft Flow и Azure, теперь широко используют JSON — и с SQL Server, поскольку в SQL Server 2014 был добавлен целый ряд связанных функций, чтобы обеспечить прямое преобразование в JSON. FOR JSON PATH является основным входом в этот мир и представляет собой функцию, которую я медленно, но верно начал осваивать. Что я хотел сделать в сообщении блога на этой неделе, так это предоставить «ускоренный курс» о том, как использовать эту изящную функциональность, надеюсь, с целью дать вам все необходимое, чтобы начать использовать ее в вашей среде (средах).
Прежде чем мы начнем…
Чтобы лучше всего проиллюстрировать, как это предложение работает на практике, необходимо создать соответствующий набор взаимосвязанных таблиц в SQL Server, который будет использоваться во всех следующих примерах. Вот один, который я (довольно без воображения) сделал ранее:
Фрагменты кода для их создания можно найти ниже:
СОЗДАТЬ ТАБЛИЦУ dbo.[ParentTable] ( ParentTableID INT IDENTITY(1,1) ПЕРВИЧНЫЙ КЛЮЧ НЕ NULL, Поле 1 БИТ НЕ НУЛЕВОЕ, Поле2 CHAR(10) NULL, Поле3 VARCHAR(MAX) NULL ) ИДТИ СОЗДАТЬ ТАБЛИЦУ dbo.[ChildTable1] ( ChildTable1ID INT IDENTITY(1,1) ПЕРВИЧНЫЙ КЛЮЧ НЕ NULL, ParentTableID INT FOREIGN KEY REFERENCES dbo.[ParentTable](ParentTableID) NULL, Поле 1 БИТ НЕ НУЛЕВОЕ, Поле2 CHAR(10) NULL, Поле3 VARCHAR(MAX) NULL ) СОЗДАТЬ ТАБЛИЦУ dbo.[ChildTable2] ( ChildTable2ID INT IDENTITY(1,1) ПЕРВИЧНЫЙ КЛЮЧ НЕ NULL, ParentTableID INT FOREIGN KEY REFERENCES dbo.[ParentTable](ParentTableID) NULL, Поле 1 БИТ НЕ НУЛЕВОЕ, Поле2 CHAR(10) NULL, Поле3 VARCHAR(MAX) NULL ) ИДТИ СОЗДАТЬ ТАБЛИЦУ dbo. [GrandchildTable] ( GrandchildTableID INT IDENTITY(1,1) ПЕРВИЧНЫЙ КЛЮЧ НЕ NULL, ChildTable2ID INT FOREIGN KEY REFERENCES dbo.[ChildTable2](ChildTable2ID) NULL, Поле 1 БИТ НЕ НУЛЕВОЕ, Поле2 CHAR(10) NULL, Поле3 VARCHAR(MAX) NULL ) ИДТИ
Структуры таблиц невероятно просты, но обратите внимание, в частности, на связи FOREIGN KEY от 2 дочерних таблиц к родительской, а также на дополнительные отношения родитель/потомок между GrandchildTable и ChildTable2 . Вам также нужно будет посмотреть, как вставить некоторые тестовые данные в таблицы, чтобы правильно следовать остальной части этого поста.
Подготовив нашу среду, давайте рассмотрим различные способы преобразования нашего набора данных в формат JSON с минимальными усилиями.
Пример 1: ДЛЯ JSON AUTO
Если бы мы посмотрели на выполнение простого запроса SELECT * для всех наших таблиц, наш запрос и ожидаемый результат могли бы выглядеть примерно так:
ВЫБЕРИТЕ * ИЗ dbo. ParentTable КАК PT ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.ChildTable1 AS CT1 ON PT.ParentTableID = CT1.ParentTableID ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.ChildTable2 КАК CT2 ON PT.ParentTableID = CT2.ParentTableID ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.GrandchildTable AS GT НА CT2.ChildTable2ID = GT.ChildTable2ID
Наша основная проблема с этим запросом заключается в том, что из-за того, как работает T-SQL, 2 записи ParentTable возвращаются для каждой дочерней и внучатой записи. Для клиентского приложения это может быть несколько обременительно. FOR JSON AUTO можно прямо добавить в конец вышеуказанного запроса для соответствующего преобразования вывода запроса:
ВЫБЕРИТЕ * ИЗ dbo.ParentTable КАК PT ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.ChildTable1 AS CT1 ON PT.ParentTableID = CT1.ParentTableID ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.ChildTable2 КАК CT2 ON PT.ParentTableID = CT2.ParentTableID ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.GrandchildTable AS GT НА CT2.ChildTable2ID = GT. ChildTable2ID ДЛЯ JSON АВТО
//Пример вывода первых 25 строк ниже: [{ "ParentTableID": 1, "Поле1": правда, "Поле2": "Тест", "Field3": "Это тестовая запись", "CT1": [{ «ДетскийТаблица1ID»: 1, "ParentTableID": 1, "Поле1": правда, "Поле2": "Тест", "Field3": "Это тестовая запись", "КТ2": [{ «ДетскийТаблица2ID»: 1, "ParentTableID": 1, "Поле1": ложь, "Поле2": "Тест", "Field3": "Это тестовая запись", "ГТ": [{ «ID внука»: 1, «ДетскийТаблица2ID»: 1, "Поле1": ложь, "Поле2": "Тест", "Field3": "Это тестовая запись" }] ...
Этот вывод обеспечивает гораздо более разумную структуру, без дублирования записей и правильной вложенности дочерних записей.
Пример 2: ДЛЯ JSON PATH, ROOT
С некоторыми изменениями в приведенном выше запросе также можно указать имена для каждого корневого элемента. Это может быть адаптировано в зависимости от ваших конкретных требований. Например, предположим, что нам нужно было предоставить следующие имена корневых элементов для каждой из примеров таблиц:
.
- dbo.ParentTable -> Родительский
- dbo.ChildTable1 -> FirstChildTable
- dbo.ChildTable2 -> SecondChildTable
Следующий запрос удовлетворит этим требованиям, в дополнение к добавлению имени основного корневого элемента MyTestSQLJSONObject :
ВЫБЕРИТЕ PT.ParentTableID КАК [Parent.ParentTableID], PT.Field1 КАК [Parent.Field1], PT.Field2 КАК [Parent.Field2], PT.Field3 КАК [Parent.Field3], ChildTable1ID AS [FirstChildTable.ChildTable1ID], CT1.Field1 AS [FirstChildTable.Field1], CT1.Field2 AS [FirstChildTable.Field2], CT1.Field3 AS [FirstChildTable.Field3], CT2.ChildTable2ID AS [SecondChildTable.ChildTable1ID], CT2.Field1 AS [SecondChildTable.Field1], CT2.Field2 AS [SecondChildTable.Field2], CT2.Field3 AS [SecondChildTable. Field3], GT.GrandchildTableID AS [GrandchildTable.GrandchildTableID], GT.Field1 AS [GrandchildTable.Field1], CT2.Field2 AS [GrandchildTable.Field2], CT2.Field3 AS [GrandchildTable.Field3] ИЗ dbo.ParentTable КАК PT ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.ChildTable1 AS CT1 ON PT.ParentTableID = CT1.ParentTableID ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.ChildTable2 КАК CT2 ON PT.ParentTableID = CT2.ParentTableID ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.GrandchildTable AS GT НА CT2.ChildTable2ID = GT.ChildTable2ID ДЛЯ JSON PATH, ROOT('MyTestSQLJSONObject')
//Пример первых 25 строк ниже: { "Мойтестсклджсонобжект": [{ "Родитель": { "ParentTableID": 1, "Поле1": правда, "Поле2": "Тест", "Field3": "Это тестовая запись" }, «Первая дочерняя таблица»: { «ДетскийТаблица1ID»: 1, "Поле1": правда, "Поле2": "Тест", "Field3": "Это тестовая запись" }, «Вторая дочерняя таблица»: { «ДетскийТаблица1ID»: 1, "Поле1": ложь, "Поле2": "Тест", "Field3": "Это тестовая запись" }, «Внучатая таблица»: { «ID внука»: 1, "Поле1": ложь, "Поле2": "Тест", "Field3": "Это тестовая запись" . ..
Пример 3: Значения полей NULL
При работе с предложением FOR JSON следует помнить о том, как ведут себя значения поля NULL. Взгляните на следующий пример вывода запроса из dbo.ParentTable:
.
При попытке запросить эту единственную запись с помощью предложения FOR JSON AUTO мы получаем следующий вывод:
//Пример вывода ниже. Обратите внимание, что имя/значение поля для поля Field2 теперь не возвращается. [{ "ParentTableID": 1, "Поле1": правда, "Field3": "Это тестовая запись" }]
Если у вас есть требование всегда возвращать значение для каждого поля NULL, то вы можете использовать параметр INCLUDE_NULL_VALUES , чтобы обойти это:
ВЫБЕРИТЕ * ИЗ dbo.ParentTable КАК PT ГДЕ PT.ParentTableID = 1 ДЛЯ JSON АВТО, INCLUDE_NULL_VALUES
//Обратите внимание, что Field2 возвращает ожидаемое значение [{ "ParentTableID": 1, "Поле1": правда, "Поле2": ноль, "Field3": "Это тестовая запись" }]
Даже если указан этот параметр, могут возникнуть проблемы с выводом этого поля со значением ноль . В этих сценариях на стороне T-SQL обычно используется функция ISNULL для замены значений NULL пустой строкой. Кроме того, поскольку тип поля в этом примере представляет собой тип данных CHAR(10) , из выходной строки необходимо удалить десять символов пробела. Следующий запрос устранит обе эти проблемы:
ВЫБРАТЬ ParentTableID, Field1, LTRIM(ISNULL(Field2, '')) AS Field2, Field3 ИЗ dbo.ParentTable КАК PT ГДЕ PT.ParentTableID = 1 ДЛЯ JSON АВТО
Пример 4. Использование подзапросов для возврата дочерних записей в виде объектов JSON
В большинстве случаев с родительскими и дочерними записями возврат всех данных в формате JSON может не потребоваться. Вместо этого может потребоваться вернуть поля только из родительской записи и всех дочерних записей как одно поле объекта JSON в родительской записи. Используя подзапросы, мы можем реализовать этот сценарий следующим образом:
ВЫБЕРИТЕ PT. ParentTableID, PT.Field1, PT.Field2, PT.Field3, ( ВЫБИРАТЬ * ИЗ dbo.ChildTable1 КАК CT1 ГДЕ CT1.ParentTableID = PT.ParentTableID ДЛЯ JSON АВТО ) КАК дочерняя таблица1, ( ВЫБИРАТЬ * ИЗ dbo.ChildTable2 КАК CT2 ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.GrandchildTable AS GT НА CT2.ChildTable2ID = GT.ChildTable2ID ГДЕ CT2.ParentTableID = PT.ParentTableID ДЛЯ JSON АВТО ) КАК дочерняя таблица2 ИЗ dbo.ParentTable КАК PT
Пример 5. Сохранение вывода запроса FOR JSON в параметрах
В большинстве сценариев вы, как правило, предоставляете функции или хранимые процедуры разработчикам для взаимодействия при подключении к базе данных. Именно в этой ситуации возможность сохранять выходные данные любого запроса, включая те, которые используют предложение FOR JSON , в параметре, становится очень полезной. Следующий фрагмент будет хранить выходные данные запроса FOR JSON в параметре с именем 9.0026 @JSON, , который затем можно получить в любое время с помощью запроса SELECT :
DECLARE @JSON NVARCHAR(MAX) = (SELECT * FROM dbo. ChildTable2 AS CT2 INNER JOIN dbo.GrandchildTable AS GT ON CT2.ChildTable2ID = GT.ChildTable2ID FOR JSON AUTO) ВЫБЕРИТЕ @JSON
Подведение итогов: несколько вещей, о которых следует помнить
- Предложение FOR JSON несовместимо с общими табличными выражениями (CTE).
- При сохранении вывода ДЛЯ запроса JSON в параметре у вас нет встроенной возможности запрашивать внутреннее содержимое объекта JSON с помощью запроса SELECT… WHERE .
- Поскольку невозможно указать имя отдельного столбца, который возвращается как часть запроса FOR JSON , вы не можете создать представление, использующее это предложение.
Я надеюсь, что этот пост предоставил вам всю информацию и рекомендации, необходимые для начала работы с предложениями FOR JSON в ваших запросах. Возможность прямого преобразования табличных данных SQL в формат, о котором охотно кричали бы большинство разработчиков, является удобной функцией, которая находится в нашем распоряжении и свидетельствует о том, насколько далеко продвинулся продукт SQL Server за последние годы.