Содержание

SQL Server. Создание базы данных, таблиц и связей между ними

Основы работы с MS SQL Server Management Studio 

В этой статье мы научимся работать с основными объектами базы данных — таблицами, в которых хранится вся информация баз данных.

База данных представляет собой хранилище объектов. Основные из них:

  • Таблицы: хранят данные
  • Представления (Views): выражения языка SQL, которые возвращают набор данных в виде таблицы
  • Хранимые процедуры: выполняют код на языке SQL по отношению к данным к БД (например, получает данные или изменяет их)
  • Функции: также код SQL, который выполняет определенную задачу

Используется два типа баз данных: системные и пользовательские. Системные базы данных необходимы серверу SQL для корректной работы. А пользовательские базы данных создаются пользователями сервера и могут хранить любую произвольную информацию. Их можно изменять и удалять, создавать заново. Собственно это те базы данных, которые мы будем создавать и с которыми мы будем работать.

Системные базы данных

В MS SQL Server по умолчанию создается четыре системных баз данных:

  • master: эта главная база данных сервера, в случае ее отсутствия или повреждения сервер не сможет работать. Она хранит все используемые логины пользователей сервера, их роли, различные конфигурационные настройки, имена и информацию о базах данных, которые хранятся на сервере, а также ряд другой информации.
  • model: эта база данных представляет шаблон, на основе которого создаются другие базы данных. То есть когда мы создаем через SSMS свою бд, она создается как копия базы model.
  • msdb: хранит информацию о работе, выполняемой таким компонентом как планировщик SQL. Также она хранит информацию о бекапах баз данных.
  • tempdb: эта база данных используется как хранилище для временных объектов. Она заново пересоздается при каждом запуске сервера.

Все эти базы можно увидеть через SQL Server Management Studio в узле Databases -> System Databases:

Эти базы данных не следует изменять, за исключением бд model.

Если на этапе установки сервера был выбран и установлен компонент PolyBase, то также на сервере по умолчанию будут расположены еще три базы данных, которые используется этим компонентом: DWConfiguration, DWDiagnostics, DWQueue.

Создание базы данных в SQL Management Studio

Теперь создадим свою базу данных. Для этого мы можем использовать скрипт на языке SQL, либо все сделать с помощью графических средств в SQL Management Studio.

В данном случае мы выберем второй способ. Для этого откроем SQL Server Management Studio и нажмем правой кнопкой мыши на узел Базы данных. Затем в появившемся контекстном меню выберем пункт Создать базу данных:

После этого нам открывается окно для создания базы данных:

В поле Имя базы данных необходимо ввести название новой бд.

Следующее поле Владелец задает владельца базы данных. По умолчанию оно имеет значение <по умолчанию>, то есть владельцем будет тот, кто создает эту базу данных. Оставим все как есть.

Далее идет таблица для установки общих настроек базы данных. Она содержит две строки — первая для установки настроек для главного файла, где будут храниться данные, и вторая строка для конфигурации файла логирования. В частности, мы можем установить следующие настройки:

  • Логическое имя: логическое имя, которое присваивается файлу базы данных.
  • Тип файла: есть несколько типов файлов, но, как правило, основная работа ведется с файлами данных (ROWS Data) и файлом лога (LOG)
  • Файловая группа: означает группу файлов. Группа файлов может хранить множество файлов и может использоваться для разбиения базы данных на части для размещения в разных местах.
  • Начальный размер (MБ): устанавливает начальный размер файлов при создании (фактический размер может отличаться от этого значения).
  • Автоувеличение/Максимальный размер: при достижении базой данных начального размера SQL Server использует это значение для увеличения файла.
  • Путь: каталог, где будут храниться базы данных.
  • Имя файла: непосредственное имя физического файла. Если оно не указано, то применяется логическое имя.

После ввода названия базы данных нажмем на кнопку ОК, и бд будет создана.

После этого она появится среди баз данных сервера. Если эта бд впоследствии не потребуется, то ее можно удалить, нажав на нее правой кнопкой мыши и выбрав в контекстном меню пункт Удалить.

Создание таблиц, отношения таблиц, внешние ключи 

Ключевым объектом в базе данных являются таблицы. Таблицы состоят из строк и столбцов. Столбцы определяют тип информации, которая хранится, а строки содержат значения для этих столбцов.

Типы данных SQL SERVER

  • для строк лучше всего использовать nvarchar (ни в коем случае не используйте nchar, при этом длина строки строго зафиксирована и не зависит от содержимого — т. е. сложно потом будет сравнивать строки, т.к. они будут дополняться ненужными нам пробелами). Если поле очень большое, то лучше использовать nvarchar(MAX) или text, но при этом размер должен быть адекватным, чтобы не замедлять работу в дальнейшем
  • для чисел используйте int, float. Важный момент — не нужно всех поражать своим знанием типов и использовать long там, где можно использовать int. Это в дальнейшем немного усложнит обработку таких значений в C# (т.е. по возможности не удивляйте своих коллег такими моментами, лучше удивите их быстрыми запросами SQL)
  • булевский тип — bit
  • деньги храните либо в типе money, либо в decimal (18,2)
    , либо в банке
  • дата и время – тип datetime. Важный момент – изучите различные функции работы с датами (getdate, datediff, dateadd и др) – это будет часто встречаться
  • очень важный тип – это uniqueidentifier. Это GUID – уникальный 32-битный код. Его особенность в том, что каждое новое значение — уникально (вероятность дубля критически мала). Идентификаторы GUID в первую очередь используются для назначения идентификаторов, которые должны быть уникальными в рамках сети, содержащей много компьютеров в различных расположениях. Значение идентификатора GUID для столбца uniqueidentifier формируется с помощью функции
    newid()

В прошлой теме была создана база данных university. Теперь определим в ней первую таблицу. Опять же для создания таблицы в SQL Server Management Studio можно применить скрипт на языке SQL, либо воспользоваться графическим дизайнером. В данном случае выберем второе.

Для этого раскроем узел базы данных university в SQL Server Management Studio, нажмем на его подузел Таблицы правой кнопкой мыши и далее в контекстном меню выберем Создать -> Таблица…:

После этого нам откроется дизайнер таблицы. В центральной части в таблице необходимо ввести данные о столбцах таблицы. Дизайнер содержит три поля:

  • Имя столбца: имя столбца
  • Тип данных: тип данных столбца. Тип данных определяет, какие данные могут храниться в этом столбце. Например, если столбец представляет числовой тип, то он может хранить только числа.
  • Разрешить значения Null: может ли отсутствовать значение у столбца, то есть может ли он быть пустым

Допустим, нам надо создать таблицу с данными учащихся в учебном заведении. Для этого в дизайнере таблицы четыре столбца: Id, FirstName, LastName и Year, которые будут представлять соответственно уникальный идентификатор пользователя, его имя, фамилию и год рождения. У первого и четвертого столбца надо указать тип int (то есть целочисленный), а у столбцов FirstName и LastName — тип nvarchar(50) (строковый).

Затем в окне Properties, которая содержит свойства таблицы, в поле Name надо ввести имя таблицы — Students, а в поле Identity ввести Id, то есть тем самым указывая, что столбец Id будет идентификатором.

Имя таблицы должно быть уникальным в рамках базы данных. Как правило, название таблицы отражает название сущности, которая в ней хранится. Например, мы хотим сохранить студентов, поэтому таблица называется Students (слово студент во множественном числе на английском языке). Существуют разные мнения по поводу того, стоит использовать название сущности в единственном или множественном числе (Student или Students). В данном случае вопрос наименования таблицы всецело ложится на разработчика базы данных.

И в конце нам надо отметить, что столбец Id будет выполнять роль первичного ключа (primary key). Первичный ключ уникально идентифицирует каждую строку. В роли первичного ключа может выступать один столбец, а может и несколько.

Для установки первичного ключа нажмем на столбец Id правой кнопкой мыши и в появившемся меню выберем пункт Задать первичный ключ.

После этого напротив поля Id должен появиться золотой ключик. Этот ключик будет указывать, что столбец Id будет выполнять роль первичного ключа.

И после сохранения в базе данных university появится таблица Students:

Мы можем заметить, что название таблицы на самом деле начинается с префикса dbo. Этот префикс представляет схему. Схема определяет контейнер, который хранит объекты. То есть схема логически разграничивает базы данных. Если схема явным образом не указывается при создании объекта, то объект принадлежит схеме по умолчанию — схеме dbo.

Нажмем правой кнопкой мыши на название таблицы, и нам отобразится контекстное меню с опциями:

С помощью этих опций можно управлять таблицей. Так, опция Delete позволяет удалить таблицу. Опция Design откроет окно дизайнера таблицы, где мы можем при необходимости внести изменения в ее структуру.

Для добавления начальных данных можно выбрать опцию Изменить первые  200 строк. Она открывает в виде таблицы 200 первых строк и позволяет их изменить. Но в нашей таблице пока пусто, т.к. только что ее создали..

Создание таблиц и связей между ними с помощью диаграмм 

В SSMS есть удобный графический инструмент для создания таблиц, а также для установки связей между ними — это диаграммы. Правой клавишей кликаем на пункт “диаграммы баз данных”, далее выбираем “создать диаграмму базы данных”

Далее может появиться вот такое сообщение (т. к. таблиц пока нет) :

Нажимаем “да” и видим следующее окно:

Нажимаем “закрыть”.

После этого кликаем правой кнопкой мышки по экрану и выбираем пункт “создать таблицу”:

Задаем название таблицы:

После создания таблицы добавляем колонки таблицы, указав их тип:

Добавляем первичный ключ (primary key). Для этого кликаем правой кнопкой мышки на  поле рядом с названием “id” и выбираем “задать первичный ключ”:, рядом с “id” появится золотой ключик. 

 

После перемещаемся на правую панель:

Здесь мы меняем значение на “да” (если нужно чтоб у id был автоинкремент, выбираем начальное значение “id”, а также шаг автоинкремента).

Таким образом создаем нужные таблицы. Таблицы можно менять местами, увеличивать или отдалять. 

Несколько слов о связях между таблицами.

Выделяют следующие типы связей:

  • один к одному
  • один ко многим
  • многие ко многим

Связь один к одному: встречается не часто, объекту одной сущности соответствует один объект  другой сущности (пример: один пользователь один блог). Иными словами  первичный ключ зависимой таблицы в то же время является внешним ключом, который ссылается на первичный ключ из главной таблицы.

Связь один ко многим: самый часто встречающийся тип связей. Несколько  строк из зависимой (дочерней) таблицы зависят от одной строки главной (родительской) таблицы. Пример: в одной группе много студентов.

Связь многие ко многим: одна строка из одной таблицы (А) может быть связана с множеством строк из другой таблицы (Б). В свою очередь одна строка из таблицы Б может быть связана со множеством строк из таблицы А. Однако в SQL server нельзя установить связь многие ко многим между двумя таблицами. Это можно сделать с помощью вспомогательной промежуточной таблицы (иногда данные из этой таблицы представляют как отдельную сущность).

Теперь задаем связи между таблицами. Для этого в таблице, где есть внешний ключ (foreign key) нажимаем левой кнопкой мышки на поле рядом с названием внешнего ключа и не отпуская тянем на вторую таблицу к полю “id”

Отпускаем кнопку на этом поле и появляется окно:

выбираем “ОК”, а затем еще раз “ОК”.

В итоге у нас появляется связь между двумя таблицами:

В итоге мы научились добавлять таблицы, связывать и создавать столбцы.

Создание базы данных SQL и таблиц базы данных на примере

Связанные темы

  • Реляционная модель данных
  • Основы проектирования баз данных
НазадСодержаниеВперёд>>>

Создадим базу данных, краткое описание проекта которой — в статье Основы проектирования базы данных — пример.

Для этого понадобится установленная система управления базами данных (СУБД) DB2. Мы будем использовать диалект языка SQL, который используется именно в этой СУБД.

Первая команда, которую мы будем применять для создании базы данных — это команда CREATE DATABASE. Её синтаксис следующий:

CREATE DATABASE ИМЯ_БАЗЫ ДАННЫХ

Далее для создания таблиц нашей базы данных будем многократно использовать команду CREATE TABLE. Её синтаксис следующий:

CREATE TABLE ИМЯ_ТАБЛИЦЫ (имя_первого_столбца тип данных, …, имя_последнего_столбца тип данных, первичный ключ, ограничения (не обязательно))

Так как наша база данных моделирует сеть аптек, то в ней есть такие сущности, как «Аптека» (таблица Pharmacy в нашем примере создания базы данных), «Препарат» (таблица Preparation в нашем примере создания базы данных), «Доступность (препаратов в аптеке)» (таблица Availability в нашем примере создания базы данных), «Клиент» (таблица Client в нашем примере создания базы данных) и другие, которые здесь подробно и разберём.

Разработке модели «сущность-связь» можно посвятить не одну статью, но если нас прежде всего интересуют команды языка SQL для создания базы данных и таблиц в ней, то условимся считать, что связи между сущностями уже нам понятны. На рисунке ниже приведено представление модели нашей базы данных с атрибутами сущностей (таблиц) и связями между таблицами.

Для увеличения рисунка можно нажать на него левой кнопкой мыши.

При создании базы данных, в которой таблицы связаны между собой, важно позаботиться о целостности данных. Это означает, например, что если если удалить препарат из таблицы Preparation, то должны удалиться все записи этого препарата в таблице Availability. Ещё пример ограничения целостности: нужно установить запрет на удаление названия группы препарата из таблицы Group, если существует хотя бы один препарат этой группы. Особый случай составляет изменение данных в одной таблице, когда производятся действия с данными в другой таблице. Об этом поговорим в конце статьи. Можно также углубиться в теорию на уроке Реляционная модель данных.

Как уже говорилось, в разбираемом здесь примере создания базы данных использовался вариант языка SQL, который используется в системе управления базами данных (СУБД) DB2. Он является регистронезависимым, то есть не имеет значение, набраны ли команды и отдельные слова в них строчными или прописными буквами. Для иллюстрации этой особенности приведены команды без особой системы набранные строчными и прописными буквами.

Теперь приступим к созданию команд. Первая наша команда SQL создаёт базу данных PHARMNETWORK:

Код SQL

CREATE DATABASE PHARMNETWORK

Описание таблицы PHARMACY (Аптека):

Имя поляТип данныхОписание
PH_IDsmallintИдентификационный номер аптеки
Addressvarchar(40)Адрес аптеки

Пишем команду, которая создаёт таблицу PHARMACY (Аптека), значения первичного ключа PH_ID генерируются автоматически от 1 с шагом 1, вносится проверка на то, чтобы значения атрибута Address в этой таблице были уникальными:

Код SQL

CREATE TABLE PHARMACY(PH_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Address varchar(40) NOT NULL, PRIMARY KEY(PH_ID), CONSTRAINT PH_UNIQ UNIQUE(Address))

Следует обратить внимание на то, что автоматическое генерирование первичного ключа с приращением обеспечено средствами, применяемыми в диалекте SQL для DB2:

Код SQL

PH_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)

Средства автоматического генерирования первичного ключа с приращением (кратко это называется автоинкрементом) в разных диалектах SQL различаются. Так, в MySQL используется ключевое слово AUTO_INCREMENT и соответствующая часть запроса на создание таблицы выглядит следующим образом:

Код SQL

PH_ID int(4) NOT NULL AUTO_INCREMENT

В SQL Server механизм автоинктемента обеспечивается так:

Код SQL

PH_ID int IDENTITY(1, 1) PRIMARY KEY

Запись (1, 1) здесь означает, что значения первичного ключа должны создаваться начиная с 1 с приращением на 1. Итак, помните о том, что в зависимости от СУБД и диалекта SQL механизмы автоинкремента различаются, а далее для краткости будем приводить запросы на создание таблиц в соответствии с синтаксисом для DB2.

Описание таблицы GROUP (Группа препаратов):

Имя поляТип данныхОписание
GR_IDsmallintИдентификационный номер группы препаратов
Namevarchar(40)Название группы препаратов

Пишем команду, которая создаёт таблицу Group (Группа препаратов), значения первичного ключа GR_ID генерируются автоматически от 1 с шагом 1, проводится проверка уникальности наименования группы (для этого используется ключевое слово CONSTRAINT):

Код SQL

CREATE TABLE GROUP(GR_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Name varchar(40) NOT NULL, PRIMARY KEY(GR_ID), CONSTRAINT GR_UNIQ UNIQUE(Name))

Описание таблицы PREPARATION (Препарат):

Имя поляТип данныхОписание
PR_IDsmallintИдентификационный номер препарата
GR_IDsmallintИдентификационный номер группы препарата
Namevarchar(40)Название препарата

Команда, которая создаёт таблицу PREPARATION, значения первичного ключа PR_ID генерируются автоматически от 1 с шагом 1, определяется, что значения внешнего ключа GR_ID (Группа препаратов) не могут принимать значение NULL, определена проверка уникальности значений атрибута Name:

Код SQL

CREATE TABLE PREPARATION(PR_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Name varchar(40) NOT NULL, GR_ID int NOT NULL, PRIMARY KEY(PR_ID), constraint PR_UNIQ UNIQUE(Name))

Далее нам требуется позаботиться об ограничениях целостности. Это очень удобно слелать с помощью команды alter table. Эта команда изучается на уроке SQL ALTER TABLE — изменение таблицы базы данных.

Теперь самое время создать таблицу AVAILABILITY (Доступность или Наличие препарата в аптеке). Её описание:

Имя поляТип данныхОписание
A_IDsmallintИдентификационный номер записи о доступности
PH_IDsmallintИдентификационный номер аптеки
PR_IDsmallintИдентификационный номер препарата
QuantityintКоличество доступного препарата
DateStartvarchar(20)Дата начала работы аптеки с данным препаратом
DateEndvarchar(20)Дата окончания работы аптеки с данным препаратом
Martvarchar(3)Выставлен ли препарат на витрину

Пишем команду, которая создаёт таблицу AVAILABILITY. Определяются даты начала (не может быть NULL) и окончания (по умолчанию NULL).

Код SQL

CREATE TABLE AVAILABILITY(A_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), PH_ID INT NOT NULL, PR_ID INT NOT NULL, DateStart varchar(20) NOT NULL, DateEnd varchar(20) DEFAULT NULL, QUANTITY INT NOT NULL, MART varchar(3) DEFAULT NULL, PRIMARY KEY(A_ID), CONSTRAINT AVA_UNIQ UNIQUE(PH_ID, PR_ID))

Создаём таблицу DEFICIT (Дефицит препарата в аптеке, то есть, неудовлетворённый запрос). Её описание:

Имя поляТип данныхОписание
D_IDsmallintИдентификационный номер записи о дефиците
PH_IDsmallintИдентификационный номер аптеки
PR_IDsmallintИдентификационный номер препарата
Solutionvarchar(40)Решение проблемы дефицита
DateStartvarchar(20)Дата появления проблемы
DateEndvarchar(20)Дата решения проблемы

Пишем команду, которая создаёт таблицу DEFICIT:

Код SQL

CREATE TABLE DEFICIT(D_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), PH_ID INT NOT NULL, PR_ID INT NOT NULL, Solution varchar(40) NOT NULL, DateStart varchar(20) NOT NULL, DateEnd varchar(20) DEFAULT NULL)

Осталось немного. Мы уже дошли до команды, которая создаёт таблицу Employee (Сотрудник). Её описание:

Имя поляТип данныхОписание
E_IDsmallintИдентификационный номер сотрудника
PH_IDsmallintИдентификационный номер аптеки
FNamevarchar(40)Имя сотрудника
LNamevarchar(40)Фамилия сотрудника
Postvarchar(40)Должность

Пишем команду, которая создаёт таблицу Employee (Сотрудник), с первичным ключом, генерируемым по тем же правилам, что и первичные ключи предыдущих таблиц, в которых они существуют. Внешним ключом PH_ID Сотрудник связан с PHARMACY (Аптекой).:

Код SQL

CREATE TABLE EMPLOYEE(E_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), F_Name varchar(40) NOT NULL, L_Name varchar(40) NOT NULL, POST varchar(40) NOT NULL, PH_ID INT NOT NULL, PRIMARY KEY(E_ID))

Очередь дошла до создании таблицы CLIENT (Клиент). Её описание:

Имя поляТип данныхОписание
C_IDsmallintИдентификационный номер клиента
FNamevarchar(40)Имя клиента
LNamevarchar(40)Фамилия клиента
DateRegvarchar(20)Дата регистрации

Пишем команду, создающую таблицу CLIENT (Клиент), в отношении первичного ключа которого справедливо предыдущее описание. Особенность этой таблицы в том, что её атрибуты F_Name и L_Name имеют по умолчанию значение NULL. Это связано с тем, что клиенты могут быть как зарегистрированными, так и незарегистрированными. У последних значения имени и фамилии как раз и будут неопределёнными (то есть NULL):

Код SQL

CREATE TABLE CLIENT(C_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), FName varchar(40) DEFAULT NULL, LName varchar(40) DEFAULT NULL, DateReg varchar(20), PRIMARY KEY(C_ID))

Предпоследняя таблица в нашей базе данных — таблица BASKET (Корзина покупок). Её описание:

Имя поляТип данныхОписание
BS_IDsmallintИдентификационный номер корзины покупок
E_IDsmallintИдентификационный номер сотрудника, оформившего корзину
C_IDsmallintИдентификационный номер клиента

Пишем команду, создающую таблицу BASKET (Корзина покупок), так же с уникальным и инкрементируемым первичным ключом и связанную внешним ключами C_ID и E_ID с Клиентом и Сотрудником соответственно:

Код SQL

CREATE TABLE BASKET(BS_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), C_ID INT NOT NULL, E_ID INT NOT NULL, PRIMARY KEY(BS_ID))

И, наконец, последняя таблица в нашей базе данных — таблица BUYING (покупка). Её описание:

Имя поляТип данныхОписание
B_IDsmallintИдентификационный номер покупки
PH_IDsmallintИдентификационный номер аптеки
PR_IDsmallintИдентификационный номер препарата
BS_IDvarchar(40)Идентификационный номер корзины покупок
Pricevarchar(20)Цена
Datevarchar(20)Дата

Пишем команду, создающую таблицу BUYING (покупка), так же с уникальным и инкрементируемым первичным ключом и связанную внешними ключами BS_ID, PH_ID, PR_ID с Корзиной покупок, Аптекой и Препаратом соответственно:

Код SQL

CREATE TABLE BUYING(B_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), BS_ID INT NOT NULL, PH_ID INT NOT NULL, PR_ID INT NOT NULL, DateB varchar(20) NOT NULL, Price Double NOT NULL, PRIMARY KEY(B_ID))

И совсем уже в завершение темы создания базы данных обещанное отступление о соблюдении ограничений целостности, когда решение — более сложное, чем написание команды. В нашем примере необходимо соблюдать следующее условие: при покупке единицы препарата значение количества этого препарата в таблице AVAILABILITY должно соответственно уменьшиться. Вообще говоря, для таких операций в языке SQL существуют особые средства, называемые триггерами. Но триггеры — вещь капризная: на практике они могут и не сработать или сработать не так, как предусмотрено. Поэтому разработчики по возможности ищут программные средства решения таких задач, пример которых упомянут в этом абзаце.

И действительно, есть программное средство решение обозначенной выше задачи уменьшения значения количества препарата. А именно: в условии добавления соответствующего препарата в таблицу BUYING (Покупка) пишется функция на языке программирования, на котором выполнено приложение, с запросом с ключевым словом UPDATE на замену значения количества этого препарата на единицу меньше в той же аптеке. И таблица BUYING, и таблица AVAILABILITY имеют внешний ключ PH_ID — идентификатор определённой аптеки.

На этом многогранная тема создания баз данных прерывается…

Поделиться с друзьями

НазадСодержаниеВперёд>>>

Создание базы данных в MS SQL Server

Предварительное условие – Введение в MS SQL Server

Базы данных представляют собой набор объектов, таких как таблицы, представления, хранимые процедуры, функции и т. д. В MS SQL Server доступны два типа баз данных.

  1. Системные базы данных
  2. Пользовательские базы данных

Системные базы данных

Системные базы данных создаются автоматически после установки MS SQL Server. Ниже приведен список системных баз данных –

  1. Мастер
  2. Модель
  3. MSDB
  4. Tempdb
  5. Ресурс (представлен в версии 2005)
  6. Распространение (только для функции репликации)
  7. 900 13

    Пользовательские базы данных

    Пользовательские базы данных создаются пользователями ( Администраторы баз данных и тестировщики, имеющие доступ к созданию баз данных). Для создания базы данных можно использовать следующие методы:

    1. SQL Server Management Studio.
    2. Трансакт-SQL.

    Метод 1 — Использование сценария T-SQL или восстановление базы данных

    Ниже приведен основной синтаксис для создания базы данных в MS SQL Server.

    Восстановление базы данных с помощью сценария T-SQL можно выполнить в среде SQL Server Management Studio (SSMS), выполнив ряд команд SQL. Вот шаги для восстановления базы данных с помощью сценария T-SQL:

    1. Откройте новое окно запроса в SSMS, нажав «Новый запрос» на панели инструментов.
    2. Введите следующую команду, чтобы восстановить базу данных из файла резервной копии.
    3. Замените «DatabaseName» именем базы данных, которую вы хотите восстановить, а «C:\Path\To\BackupFile.bak» — путем к файлу резервной копии на вашем сервере.

    Синтаксис:

    Создать базу данных

    Способ 2 — Использование SQL Server Management Studio

    Microsoft предлагает SQL Server Management Studio (SSMS) в качестве инструмента для управления базами данных SQL Server. Вы можете использовать его для выполнения ряда задач, включая управление безопасностью, написание и выполнение запросов SQL, а также создание и изменение таблиц.

    Ниже приведены некоторые основные действия по использованию SQL Server Management Studio:

    1. Подключение к экземпляру SQL Server: Запустите SSMS и введите данные для входа на сервер, чтобы установить соединение с экземпляром SQL Server. В соответствии с вашей конфигурацией SQL Server вы можете выбрать метод аутентификации.
    2. Создание базы данных: в обозревателе объектов выберите «Новая база данных» в контекстном меню, щелкнув правой кнопкой мыши папку «Базы данных». Дайте параметру имя, затем установите другие параметры в соответствии с вашими потребностями.
    3. Создание таблиц: после создания базы данных выберите «Новая таблица» в контекстном меню, щелкнув правой кнопкой мыши папку «Таблицы». Дайте таблице имя и укажите для нее столбцы и типы данных.
    4. Написание и выполнение SQL-запросов: для создания SQL-запросов можно использовать редактор запросов SSMS. Выбрав «Новый запрос» на панели инструментов, вы можете открыть новое окно запроса, в котором вы можете ввести свой код SQL и нажать «Выполнить», чтобы запустить его.
    5. Управление безопасностью: вы можете управлять безопасностью вашего экземпляра SQL Server с помощью SSMS. Вы можете управлять политиками безопасности, добавлять пользователей и роли и устанавливать разрешения

     Этапы использования SQL Server Management Studio 

    1. Запустите SQL Server Management Studio. При первом запуске SSMS открывается окно «Подключиться к серверу». Если он не открывается, вы можете открыть его вручную, выбрав Object Explorer > Connect > Database Engine.

     

    2. Щелкните правой кнопкой мыши Базы данных и выберите Новая база данных.

    3. После заполнения всех полей выберите Подключиться. Вы также можете выбрать «Параметры», чтобы изменить дополнительные параметры подключения. Примеры параметров подключения включают базу данных для подключения, значение времени ожидания подключения, сетевой протокол и т. д. В этой статье для всех полей используются значения по умолчанию.

     

    4. Чтобы убедиться, что подключение к SQL Server выполнено успешно, проверьте обозреватель объектов, развернув объекты, отображающие имя сервера, версию SQL Server и имя пользователя. Эти объекты зависят от типа сервера.

     

    5. Чтобы создать базу данных со значениями по умолчанию, щелкните Новый запрос.

     

    5. В противном случае выполните следующие необязательные шаги.

    Запрос:

     Мастер USE
    ИДТИ
    ЕСЛИ НЕ СУЩЕСТВУЕТ(
       ВЫБЕРИТЕ имя
       ИЗ sys.databases
       ГДЕ имя = N'TutorialDB'
    )
    СОЗДАТЬ БАЗУ ДАННЫХ [TutorialDB]
    ВПЕРЕД 

    6. Выполните запрос, выбрав Execute или нажав F5 на клавиатуре.

     

    Ограничения
    1. В экземпляре SQL Server можно указать не более 32 767 баз данных.

    Рекомендации
    1. Всякий раз, когда пользовательская база данных создается, изменяется или удаляется, необходимо создать резервную копию основной базы данных.
    2. Создайте свою базу данных с максимально обширными файлами данных, исходя из максимального объема данных, которые вы планируете там хранить.

    Использование Transact-SQL
    1. Подключение к ядру базы данных.
    2. Открыть новый запрос.
    3. Следующий пример следует скопировать и вставить в окно запроса, прежде чем выбрать «Выполнить». В этом примере создается база данных Sales. Первый файл (Sales_dat) становится основным, поскольку ключевое слово PRIMARY не используется. Файл Sales_dat использует МБ и выделяется в мегабайтах, поскольку МБ или КБ не указаны в параметре SIZE для файла. Поскольку суффикс МБ явно указан в параметре SIZE, файл Sales_log выделяется в мегабайтах.

     


    Примеры создания базы данных SQL Server

    Автор: Joe Gavin   | Комментарии (2)   | Связанный: Подробнее > TSQL


    Проблема

    Мы уже видели, как создать базу данных SQL Server с помощью SQL Server Management Studio (SSMS), но что, если вам нужен сценарий, чтобы сделать это?

    Решение

    Мы рассмотрим несколько примеров, начиная с самого простого и немного развивая по сложности.

    Здесь используются следующие версии:

    • SQL Server 2017 RTM — CU17 Developer Edition установлен на моем ноутбуке
    • SQL Server Management Studio версии 18.4

    Простая команда для создания базы данных SQL Server

    Давайте начнем с самого простого оператора CREATE DATABASE, который мы можем сделать. Этот это просто «СОЗДАТЬ БАЗУ ДАННЫХ имя_базы_данных».

    Следующее создаст базу данных с именем MyDatabase с физическими файлами. в местоположении файла по умолчанию, имя пользователя, которое вы используете, будет владельцем и с все значения по умолчанию, настроенные в базе данных модели.

     -- создать базу данных MyDatabase
    СОЗДАТЬ БАЗУ ДАННЫХ [MyDatabase]
     

    Это было ужасно просто, но нам, вероятно, понадобится немного больше контроля над наша конфигурация.

    Создать базу данных SQL Server и указать расположение файлов

    Итак, далее мы будем основываться на самом простом операторе, добавляя, где мы хотим, чтобы наш физический файлы, расположенные и первоначальные размеры, и приращения, которые мы хотим автоматически увеличивать файлы по. Мы ничего не указываем для имен логических файлов, поэтому они будут значениями по умолчанию, файл логических данных совпадает с именем базы данных а файл логического журнала — это имя базы данных с добавленным к нему «_log», если только. Начальный размер файла физических данных составляет 1024 МБ, и он будет автоматически увеличиваться с шагом. 256 МБ. Начальный размер файла журнала составляет 512 МБ, и он будет увеличиваться с шагом 125 МБ.

     -- создать базу данных MyDatabase и указать расположение физических файлов, начальные размеры физических файлов и приращения автоматического роста.
    СОЗДАТЬ БАЗУ ДАННЫХ [MyDatabase]
        ON (ИМЯ = N'MyDatabase', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\DATA\MyDatabase.mdf', SIZE = 1024 МБ, FILEGROWTH = 256 МБ)
    ВХОД (ИМЯ = N'MyDatabase_log', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\DATA\MyDatabase_log.ldf', SIZE = 512 МБ, FILEGROWTH = 125 МБ)
    ИДТИ
     

    Создание базы данных SQL Server и изменение владельца базы данных

    По умолчанию, если не указано иное, владельцем базы данных будет логин вы выполняете оператор CREATE DATABASE как.

    Легко изменить владельца базы данных на другой логин с помощью команды ‘ALTER AUTHORIZATION» после создания базы данных.

     -- создать базу данных MyDatabase и указать расположение физических файлов, начальные размеры физических файлов и приращения автоматического роста, сменить владельца на sa
    СОЗДАТЬ БАЗУ ДАННЫХ [MyDatabase]
        ON (ИМЯ = N'MyDatabase', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\DATA\MyDatabase.mdf', SIZE = 1024 МБ, FILEGROWTH = 256 МБ)
    ВХОД (ИМЯ = N'MyDatabase_log', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\DATA\MyDatabase_log.ldf', SIZE = 512 МБ, FILEGROWTH = 125 МБ)
    ИДТИ
    
    -- сменить владельца на sa
    ИСПОЛЬЗОВАТЬ [Моя база данных]
    ИДТИ
    ИЗМЕНИТЬ АВТОРИЗАЦИЯ В БАЗЕ ДАННЫХ::[MyDatabase] НА [sa]
    ИДТИ
     

    Создание базы данных SQL Server и модели восстановления

    Модель восстановления по умолчанию для базы данных моделей заполнена, поэтому, если была изменена, любая база данных, созданная без указанной модели восстановления, будет также быть настроен на «полное восстановление». В полном выздоровлении мы сможем вернуться создать журнал транзакций для восстановления на определенный момент времени.

    В нашем примере MyDatabase предназначена исключительно для тестирования, поэтому нас не интересует резервные копии журнала транзакций, и мы хотим установить модель восстановления на «простое восстановление». с оператором «ALTER DATABASE». Это означает, что журнал транзакций будет усечен. примерно каждые 60 секунд, когда SQL Server выдает команду контрольной точки в базу данных и не выйдет из-под контроля.

     - создать базу данных MyDatabase и указать расположение физических файлов, начальные размеры физических файлов и приращения автоматического роста, изменить владельца на sa и установить простую модель восстановления.
    
    СОЗДАТЬ БАЗУ ДАННЫХ [MyDatabase]
        ON (ИМЯ = N'MyDatabase', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\DATA\MyDatabase.mdf', SIZE = 1024 МБ, FILEGROWTH = 256 МБ)
    ВХОД (ИМЯ = N'MyDatabase_log', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14. SQL2017\MSSQL\DATA\MyDatabase_log.ldf', SIZE = 512 МБ, FILEGROWTH = 125 МБ)
    ИДТИ
    
    -- сменить владельца на sa
    ИСПОЛЬЗОВАТЬ [Моя база данных]
    ИДТИ
    ИЗМЕНИТЬ АВТОРИЗАЦИЯ В БАЗЕ ДАННЫХ::[MyDatabase] НА [sa]
    ИДТИ
    
    -- установить модель восстановления на простую
    ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE
    ИДТИ
     

    Создайте базу данных SQL Server и измените уровень совместимости

    Мы также можем установить уровень совместимости базы данных на более низкую версию SQL Server. Здесь мы установим уровень совместимости базы данных на 110 (SQL Server 2012).

     - создать базу данных MyDatabase и указать расположение физических файлов, начальные размеры физических файлов и приращения автоматического увеличения, изменить владельца на sa и установить уровень совместимости на более низкую версию.
    СОЗДАТЬ БАЗУ ДАННЫХ [MyDatabase]
        ON (ИМЯ = N'MyDatabase', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\DATA\MyDatabase.mdf', SIZE = 1024 МБ, FILEGROWTH = 256 МБ)
    ВХОД (ИМЯ = N'MyDatabase_log', ИМЯ ФАЙЛА = N'C:\Program Files\Microsoft SQL Server\MSSQL14. SQL2017\MSSQL\DATA\MyDatabase_log.ldf', SIZE = 512 МБ, FILEGROWTH = 125 МБ)
    ИДТИ
    
    -- сменить владельца на sa
    ИЗМЕНИТЬ АВТОРИЗАЦИЯ В БАЗЕ ДАННЫХ::[MyDatabase] НА [sa]
    ИДТИ
    
    -- установить модель восстановления на простую
    ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE
    ИДТИ
    
    -- изменить уровень совместимости
    ИЗМЕНИТЬ БАЗУ ДАННЫХ [MyDatabase] УСТАНОВИТЬ COMPATIBILITY_LEVEL = 110
    ИДТИ
     

    Сценарий создания базы данных SQL Server со всеми параметрами

    Чтобы сделать это немного удобнее, мы добавили и закомментировали остальные параметры базы данных, поэтому мы можем использовать этот скрипт в качестве шаблона, просто раскомментировав любой другие операторы ALTER DATABASE, которые нам нужны.

    Сохранение сценария создания базы данных в SQL Server

    Наконец, мы скопируем и вставим наш SQL в новый SQL Server Management Studio Query, сохраните его в файл и выполните.

    1. Щелкните файл
    2. Выберите СохранитьSQLQueryx.sql как…
    1. Выберите каталог для хранения скрипта в
    2. Дайте файлу осмысленное имя
    3. Сохранить файл
    1. Чтобы запустить скрипт, нажмите кнопку «Выполнить» или нажмите клавишу F5. ключ
    1. Щелкните минус в папке Базы данных, чтобы свернуть раскрывающийся список
    2. Нажмите кнопку «Обновить», чтобы Management Studio построила список базы данных. снова
    1. Нажмите плюс в папке «Базы данных», чтобы развернуть раскрывающийся список, и он появится
    1. Чтобы просмотреть свойства новой базы данных, щелкните правой кнопкой мыши имя базы данных.
    2. Перейдите на вкладку «Свойства»
    1. Вкладка «Файлы» покажет нам имя базы данных, владельца, логическое и физическое имена файлов, размеры файлов и приращения автороста, которые мы выбрали.
    1. И на вкладке «Параметры» показано, где мы изменили модель восстановления на «Простую». и уровень совместимости
    Следующие шаги

    Ниже приведены некоторые ссылки на более подробную информацию о SSMS, создании и настройке баз данных и моделей восстановления:

    • Создайте базу данных SQL Server с помощью SQL Server Management Studio
    • .