Создание базы данных
В этой статье описывается создание базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
Сведения о создании базы данных в службе Базы данных SQL Azure с помощью T-SQL см. в статье CREATE DATABASE (база данных SQL Azure).
ограничения
- В экземпляре SQL Server можно указать не более 32 767 баз данных.
Предварительные условия
- Инструкция CREATE DATABASE должна выполняться в режиме автокоммитирования (режим управления транзакциями по умолчанию) и не допускается в явной или неявной транзакции.
Рекомендации
- Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.
- При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.
Разрешения
Требуется разрешение CREATE DATABASE в базе данных master или разрешение CREATE ANY DATABASE или ALTER ANY DATABASE.
Для поддержания контроля над использованием дисков на экземпляре SQL Server разрешение на создание баз данных обычно ограничено несколькими именами входа SQL Server.
Использование среды SQL Server Management Studio
Создание базы данных
- В обозревателе объектовподключитесь к экземпляру компонента SQL Server Database Engine и разверните его.
- Щелкните правой кнопкой мыши узел Базы данных и выберите команду Создать базу данных.
- В поле Новая база данныхвведите имя базы данных.
- Чтобы создать базу данных, приняв все значения по умолчанию, нажмите кнопку ОК; в противном случае продолжайте выполнять указанные ниже дополнительные действия.
- Чтобы изменить имя владельца, нажмите (…) и выберите другого владельца.
Заметка Параметр «Использовать полнотекстовый индексирование » всегда проверяется и неактивен, так как начиная с SQL Server 2008 (10.0.x), все пользовательские базы данных включены в полнотекстовый режим.
- В столбце Имя введите имя расширенного свойства.
- В столбце Значение введите текст расширенного свойства. Например, введите одно или несколько предложений, которые описывают базу данных.
Использование Transact-SQL
Создание базы данных
- Соединитесь с ядром СУБД .
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере создается база данных Sales . Так как ключевое слово PRIMARY не используется, первый файл ( Sales_dat ) становится основным файлом. Так как MB или не указаны в параметре SIZE Sales_dat для файла, он использует MB и выделяется в мегабайтах. KB Резервную копию базы данных Sales_log выделено в мегабайтах, потому что суффикс MB явно указан в параметре SIZE .
USE master; GO CREATE DATABASE Sales ON (NAME = Sales_dat, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5) LOG ON (NAME = Sales_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\salelog.ldf', SIZE = 5 MB, MAXSIZE = 25 MB, FILEGROWTH = 5 MB); GO
Далее
- Файлы и файловые группы базы данных
- Отсоединение базы данных и подключение (SQL Server)
- ALTER DATABASE (Transact-SQL)
- Добавление файлов данных или журналов в базу данных
Основы T-SQL
Для создания базы данных используется команда CREATE DATABASE .
Чтобы создать новую базу данных откроем SQL Server Management Studio. Нажмем на назначение сервера в окне Object Explorer и в появившемся меню выберем пункт New Query .

В центральное поле для ввода выражений sql введем следующий код:
CREATE DATABASE usersdb
Тем самым мы создаем базу данных, которая будет называться «usersdb»:

Для выполнения команды нажмем на панели инструментов на кнопку Execute или на клавишу F5. И на сервере появится новая база данных.
После создания базы даных, мы можем установить ее в качестве текущей с помощью команды USE :
USE usersdb;
Прикрепление базы данных
Возможна ситуация, что у нас уже есть файл базы данных, который, к примеру, создан на другом компьютере. Файл базы данных представляет файл с расширением mdf, и этот файл в принципе мы можем переносить. Однако даже если мы скопируем его компьютер с установленным MS SQL Server, просто так скопированная база данных на сервере не появится. Для этого необходимо выполнить прикрепление базы данных к серверу. В этом случае применяется выражение:
CREATE DATABASE название_базы_данных ON PRIMARY(FILENAME='путь_к_файлу_mdf_на_локальном_компьютере') FOR ATTACH;
В качестве каталога для базы данных лучше использовать каталог, где хранятся остальные базы данных сервера. На Windows 10 по умолчанию это каталог C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA . Например, пусть в моем случае файл с данными называется userstoredb.mdf. И я хочу этот файл добавить на сервер как базу данных. Вначале его надо скопировать в выше указанный каталог. Затем для прикрепления базы к серверу надо использовать следующую команду:
CREATE DATABASE contactsdb ON PRIMARY(FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\userstoredb.mdf') FOR ATTACH;
После выполнения команды на сервере появится база данных contactsdb.
Удаление базы данных
Для удаления базы данных применяется команда DROP DATABASE , которая имеет следующий синтаксис:
DROP DATABASE database_name1 [, database_name2].
После команды через запятую мы можем перечислить все удаляемые базы данных. Например, удаление базы данных contactsdb:
DROP DATABASE contactsdb
Стоит учитывать, что даже если удаляемая база данных была прикреплена, то все равно будут удалены все файлы базы данных.
SQL Server. Создание базы данных, таблиц и связей между ними
В этой статье мы научимся работать с основными объектами базы данных — таблицами, в которых хранится вся информация баз данных.
База данных представляет собой хранилище объектов. Основные из них:
- Таблицы: хранят данные
- Представления (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 Server 2005/2008
- Проблема с доступом к таблице БД
- Пример создания структуры базы данных
- Создание структуры БД через диаграммы
- Как массово залить данные в таблицу БД через CSV (Excel)
4.4.4. Соединение с сервером SQL и создание базы данных
1) Запустить задачу: «Пуск» → «Все программы» → «Microsoft SQL Server 2008» → «Среда SQL Server Management Studio».
2) В окне «Соединение с сервером» в выпадающем списке «Имя сервера» выбрать строку «<Обзор дальше…>». (при этом «Тип сервера» должен быть – «Компонент Database Engine», а «Проверка подлинности» -«Проверка подлинности Windows»)Обзор>

Рис. 4.35 SQL Server Management Studio. Соединение с сервером
3) В окне «Выбор серверов» на вкладке «Локальные серверы» в разделе «Компонент Database Engine» должно отобразиться имя Вашего локального сервера (совпадает с именем компьютера). Выбрать данный сервер и нажать кнопку «ОК».
В случае если среда «SQL Server Management Studio» устанавливалась на другой компьютер, сервер следует выбирать на вкладке «Сетевые серверы».

Рис. 4.36 Выбор серверов
4) В окне «Соединение с сервером» (см. Рис. 4.35) нажать кнопку «Соединить». После удачного соединения в «Обозревателе объектов» отобразится структура объектов Вашего сервера.

Рис. 4.37 SQL Server Management Studio. Обозреватель объектов
Для создания базы данных выполнить следующие действия:
1) В «Обозревателе объектов» кликнуть правой клавишей мыши по строке «Базы данных» и выбрать пункт меню «Создать базу данных…».

Рис. 4.38 SQL Server Management Studio. Базы данных
2) В окне «Создание базы данных» задать имя базы данных и нажать кнопку «ОК». Выйти из задачи «Среда SQL Server Management Studio».