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 за последние годы.