Основы 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
Стоит учитывать, что даже если удаляемая база данных была прикреплена, то все равно будут удалены все файлы базы данных.
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».
Создание базы данных
В этой статье описывается создание базы данных в 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)
- Добавление файлов данных или журналов в базу данных
Урок 1. Создание объектов базы данных и отправка запросов к ним
Схема обучения Начало работы с запросами с помощью Transact-SQL содержит более подробные материалы, а также практические примеры.
На этом занятии вы узнаете, как создать базу данных, создать таблицу в базе данных и получить доступ к данным таблицы и изменить их. Поскольку это занятие представляет собой введение в использование Transact-SQL, в нем не используются и не описываются многие параметры, доступные для этих инструкций.
Инструкции Transact-SQL могут быть написаны и пересланы ядру СУБД следующими способами:
- При помощи среды SQL Server Management Studio. Предполагается, что вы используете среду Среда Management Studio, но можно также использовать среду Среда Management Studio Express, которая может быть загружена бесплатно с веб-узла центра загрузки Майкрософт.
- С помощью служебной программы sqlcmd .
- Соединившись из создаваемого приложения.
Исходный код исполняется в компоненте Компонент Database Engine таким же образом и с теми же разрешениями, независимо от того, как был передан исходный код инструкций.
Чтобы выполнить инструкцию языка Transact-SQL в Management Studio, откройте Management Studio и подключитесь к экземпляру ядра СУБД SQL Server.
Предварительные требования
Для работы с этим руководством необходима среда SQL Server Management Studio и доступ к экземпляру SQL Server.
- Установите SQL Server Management Studio.
Если у вас нет экземпляра SQL Server, создайте его. Чтобы создать экземпляр, выберите свою платформу по следующим ссылкам. При выборе проверки подлинности SQL используйте учетные данные SQL Server.
- Windows: скачайте SQL Server 2022 Developer Edition.
- Linux: скачайте SQL Server 2022 в контейнер.
Создание базы данных
Как и многие инструкции Transact-SQL, инструкция CREATE DATABASE имеет обязательный параметр: имя базы данных. Кроме этого, у инструкции CREATE DATABASE имеется ряд необязательных параметров, таких как расположение на диске, где требуется хранить файлы базы данных. При выполнении инструкции CREATE DATABASE без дополнительных параметров для многих из них SQL Server использует значения по умолчанию.
-
В окне Редактор запросов введите, но не выполняйте следующий код:
CREATE DATABASE TestData GO
При создании базы данных SQL Server создает копию model базы данных и переименовывает ее в имя базы данных. Эта операция обычно занимает несколько секунд, если только с помощью дополнительного параметра не указан большой исходный размер базы данных.
Когда в одном пакете представлено несколько инструкций, они разделяются с помощью ключевого слова GO. Ключевое слово GO является необязательным, если в пакете содержится только одна инструкция.
Создание таблицы
Чтобы создать таблицу, нужно указать имя таблицы, имена и типы данных для каждого столбца таблицы. Также рекомендуется указывать, допускаются ли значения NULL для каждого из столбцов. Для создания таблицы необходимо иметь разрешение CREATE TABLE и разрешение ALTER SCHEMA для схемы, которая будет содержать таблицу. Предопределинная роль базы данных db_ddladmin имеет эти разрешения.
Большинство таблиц имеют первичный ключ, состоящий из одной или нескольких столбцов таблицы. Первичный ключ всегда уникален. Компонент Компонент Database Engine применяет ограничение на то, что любое значение первичного ключа не может повторяться в таблице.
Список типов данных и ссылки на их описание см. в разделе Типы данных (Transact-SQL).
Компонент Компонент Database Engine может быть установлен с учетом регистра и без учета регистра. Если компонент Компонент Database Engine установлен с учетом регистра, имена объектов должны иметь одно и тоже имя. Например, таблица с именем OrderData будет отличаться от таблицы ORDERDATA. Если компонент Компонент Database Engine установлен без учета регистра, эти два имени таблицы будут рассматриваться как одна таблица, то есть имя может быть использовано только один раз.
Переключение соединения редактора запросов на базу данных TestData
В окне редактора запросов введите и выполните следующий код, чтобы изменить соединение на базу данных TestData .
USE TestData GO
Создание таблицы
В окне редактора запросов введите и выполните следующий код, чтобы создать таблицу Products . Столбцы таблицы имеют имена ProductID , ProductName , Price и ProductDescription . Столбец ProductID является первичным ключом таблицы. int , varchar(25) , money и varchar(max) . Только столбцы Price и ProductionDescription могут быть пустыми при вставке или изменении строки. Данная инструкция содержит необязательный элемент ( dbo. ), называемый схемой. Схема — это объект базы данных, к которому принадлежит таблица. Если вы являетесь администратором, схемой по умолчанию будет схема dbo . dbo означает владельца базы данных.
CREATE TABLE dbo.Products (ProductID int PRIMARY KEY NOT NULL, ProductName varchar(25) NOT NULL, Price money NULL, ProductDescription varchar(max) NULL) GO
Вставка данных в таблицу и их обновление
Теперь, когда таблица создана Products , можно приступать к вставке данных в нее с помощью инструкции INSERT. После вставки данных содержимое строки изменяется с помощью инструкции UPDATE. Используйте предложение WHERE инструкции UPDATE, чтобы ограничить обновление одной строкой. Четыре оператора вводит следующие данные.
| ProductID | ProductName | Цена | ProductDescription |
|---|---|---|---|
| 1 | Clamp | 12,48 | Workbench clamp |
| 50 | Screwdriver | 3,17 | Flat head |
| 75 | Tire Bar | Tool for changing tires. | |
| 3000 | 3 mm Bracket | 0,52 |
Базовый синтаксис: INSERT, имя таблицы, список столбцов, VALUES, а затем список добавляемых значений. Два дефиса перед строкой указывают, что строка является комментарием, а текст игнорируется компилятором. В этом случае примечание описывает возможные варианты синтаксиса.
Вставка данных в таблицу
- Выполните следующую инструкцию, чтобы добавить строку в таблицу Products , которая была создана в предыдущей задаче.
-- Standard syntax INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GO
Если вставка выполнена, перейдите к следующему шагу. Если вставка завершается сбоем, это может быть вызвано тем, что в таблице Product уже есть строка с таким ИД продукта. Чтобы продолжить, удалите все строки в таблице и повторите предыдущий шаг. TRUNCATE TABLE удаляет все строки в таблице. Выполните следующую команду, чтобы удалить все строки в таблице:
TRUNCATE TABLE TestData.dbo.Products; GO
-- Changing the order of the columns INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription) VALUES ('Screwdriver', 50, 3.17, 'Flat head') GO
-- Skipping the column list, but keeping the values in order INSERT dbo.Products VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.') GO
-- Dropping the optional dbo and dropping the ProductDescription column INSERT Products (ProductID, ProductName, Price) VALUES (3000, '3 mm Bracket', 0.52) GO
Обновление таблицы продуктов
Введите и выполните следующую инструкцию UPDATE , чтобы изменить значение ProductName второго продукта со значения Screwdriver на значение Flat Head Screwdriver .
UPDATE dbo.Products SET ProductName = 'Flat Head Screwdriver' WHERE ProductID = 50 GO
Чтение данных из таблицы
Для чтения данных в таблице используется инструкция SELECT. Инструкция SELECT является одной из наиболее важных инструкций Transact-SQL, и для нее существует много разновидностей синтаксиса. В этом руководстве вы будете работать с пятью базовыми версиями.
Чтение данных в таблице
- Чтобы прочитать данные из таблицы Products , введите и выполните следующие инструкции.
-- The basic syntax for reading data from a single table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GO
-- Returns all columns in the table -- Does not use the optional schema, dbo SELECT * FROM Products GO
-- Returns only two of the columns from the table SELECT ProductName, Price FROM dbo.Products GO
-- Returns only two of the records in the table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products WHERE ProductID < 60 GO
-- Returns ProductName and the Price including a 7% tax -- Provides the name CustomerPays for the calculated column SELECT ProductName, Price * 1.07 AS CustomerPays FROM dbo.Products GO
Полезные функции в инструкции SELECT
Сведения о некоторых функциях, которые можно использовать для работы с данными в инструкциях SELECT, см. в следующих статьях:
Создание представлений и хранимых процедур
Представление является хранимой инструкцией SELECT, а хранимая процедура представляет собой одну или более инструкций Transact-SQL, выполняемых в виде пакета.
Представления запрашиваются как таблицы и не принимают параметры. Хранимые процедуры сложнее, чем представления. Хранимые процедуры содержат как входные, так и выходные параметры и могут содержать инструкции, которые управляют потоком кода, например IF и WHILE. Использование хранимых процедур для всех повторяющихся действий в базе данных является хорошим стилем программирования.
В этом примере используется инструкция CREATE VIEW для создания представления, которое выбирает только два столбца в Products таблице. Затем с помощью инструкции CREATE PROCEDURE создайте хранимую процедуру, которая принимает параметр price и возвращает только те продукты, стоимость которых меньше указанного значения параметра.
Создание представления
Выполните следующую инструкцию, создающую представление, которое выполняет инструкцию select и возвращает названия и цены продуктов пользователю.
CREATE VIEW vw_Names AS SELECT ProductName, Price FROM Products; GO
Тестирование представления
С представлениями обращаются так же, как с таблицами. Используйте инструкцию SELECT , чтобы получить доступ к представлению.
SELECT * FROM vw_Names; GO
Создание хранимой процедуры
В следующем примере создается хранимая процедура pr_Names с входным параметром @VarPrice типа money . Эта хранимая процедура печатает инструкцию Products less than , соединенную операцией сцепления с входным параметром, тип которого преобразуется из money в varchar(10) . Затем процедура выполняет инструкцию SELECT на представлении, передавая входной параметр в предложение WHERE . Возвращаются все продукты, цена которых меньше значения входного параметра.
CREATE PROCEDURE pr_Names @VarPrice money AS BEGIN -- The print statement returns text to the user PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10)); -- A second statement starts here SELECT ProductName, Price FROM vw_Names WHERE Price < @VarPrice; END GO
Тестирование хранимой процедуры
Чтобы выполнить хранимую процедуру, введите и выполните следующую инструкцию. Эта процедура должна возвратить названия двух продуктов, введенных в таблицу Products на занятии 1, цена которых меньше 10.00 .
EXECUTE pr_Names 10.00; GO
Дальнейшие действия
В следующей статье вы узнаете, как настроить разрешения в объектах базы данных. Объекты, созданные в уроке 1, также будут использоваться в уроке 2.
Дополнительные сведения см. в следующей статье: