Microsoft SQL Server
Основные операции DDL в MS SQL Server
Поиск…
Начиная
В этом разделе описываются некоторые базовые команды DDL (= « D ata D efinition L anguage») для создания базы данных, таблицы в базе данных, представления и, наконец, хранимой процедуры.
Создать базу данных
Следующая команда SQL создает новую базу данных Northwind
на текущем сервере, используя путь C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\
:
USE [master]
GO
CREATE DATABASE [Northwind]
CONTAINMENT = NONE
ON PRIMARY
(
NAME = N'Northwind',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\Northwind.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB
)
LOG ON
(
NAME = N'Northwind_log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\Northwind_log.ldf' , SIZE = 1536KB , MAXSIZE = 2048GB , FILEGROWTH = 10%
)
GO
ALTER DATABASE [Northwind] SET COMPATIBILITY_LEVEL = 110
GO
Примечание. База данных T-SQL состоит из двух файлов: файла базы данных *.mdf
и журнала транзакций *.ldf
. Оба должны быть указаны при создании новой базы данных.
Создать таблицу
Следующая команда SQL создает новую таблицу Categories
в текущей базе данных, используя схему dbo
(вы можете переключить контекст базы данных с помощью Use <DatabaseName>
):
CREATE TABLE dbo.Categories(
CategoryID int IDENTITY NOT NULL,
CategoryName nvarchar(15) NOT NULL,
Description ntext NULL,
Picture image NULL,
CONSTRAINT PK_Categories PRIMARY KEY CLUSTERED
(
CategoryID ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY
) ON PRIMARY TEXTIMAGE_ON PRIMARY
Создать представление
Следующая команда SQL создает новое представление Summary_of_Sales_by_Year
в текущей базе данных, используя схему dbo
(вы можете переключить контекст базы данных с помощью Use <DatabaseName>
):
CREATE VIEW dbo.Summary_of_Sales_by_Year AS
SELECT ord.ShippedDate, ord.OrderID, ordSub.Subtotal
FROM Orders ord
INNER JOIN [Order Subtotals] ordSub ON ord.OrderID = ordSub.OrderID
Это приведет к объединению таблиц « Orders
и [Order Subtotals]
ShippedDate
[Order Subtotals]
для отображения столбцов ShippedDate
, OrderID
и Subtotal
. Поскольку таблица [Order Subtotals]
имеет пробел в своем имени в базе данных Northwind, ее необходимо заключить в квадратные скобки.
Создать процедуру
Следующая команда SQL создает новую хранимую процедуру CustOrdersDetail
в текущей базе данных, используя схему dbo
(вы можете переключить контекст базы данных с помощью Use <DatabaseName>
):
CREATE PROCEDURE dbo.MyCustOrdersDetail @OrderID int, @MinQuantity int=0
AS BEGIN
SELECT ProductName,
UnitPrice=ROUND(Od.UnitPrice, 2),
Quantity,
Discount=CONVERT(int, Discount * 100),
ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)
FROM Products P, [Order Details] Od
WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID
and Od.Quantity>=@MinQuantity
END
Эта хранимая процедура после ее создания может быть вызвана следующим образом:
exec dbo.MyCustOrdersDetail 10248
который будет возвращать все детали заказа с @ OrderId = 10248 (и количеством> = 0 по умолчанию). Или вы можете указать необязательный параметр
exec dbo.MyCustOrdersDetail 10248, 10
который будет возвращать только заказы с минимальным количеством 10 (или более).