Microsoft SQL Server
MS SQL सर्वर में बेसिक DDL ऑपरेशंस
खोज…
शुरू करना
इस खंड में कुछ बुनियादी DDL (= " D ata D efinition L anguage") को एक डेटाबेस, एक डेटाबेस के भीतर एक तालिका, एक दृश्य और अंत में एक संग्रहीत कार्यविधि बनाने के लिए आदेश दिया गया है।
डेटाबेस बनाएँ
निम्न SQL कमांड पथ C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\
का उपयोग करके, वर्तमान सर्वर पर एक नया डेटाबेस Northwind
बनाता है:
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
। जब एक नया डेटाबेस बनाया जाता है तो दोनों को निर्दिष्ट करने की आवश्यकता होती है।
तालिका बनाएं
निम्न एसक्यूएल कमांड वर्तमान डेटाबेस में एक नया टेबल Categories
बनाता है, स्कीमा dbo
का उपयोग करके (आप Use <DatabaseName>
साथ डेटाबेस संदर्भ स्विच कर सकते हैं 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
बनाता है, मौजूदा डेटाबेस में Summary_of_Sales_by_Year
स्कीमा dbo
(आप उपयोग कर सकते हैं डेटाबेस संदर्भ का Use <DatabaseName>
कर सकते हैं 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
, OrderID
और Subtotal
। क्योंकि टेबल [Order Subtotals]
के नॉर्थविंड डेटाबेस में इसके नाम में एक रिक्त है, इसे वर्ग कोष्ठक में संलग्न करने की आवश्यकता है।
प्रक्रिया बनाएँ
निम्न 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
जो @ ऑर्डरआईड = 10248 (और मात्रा> = 0 डिफ़ॉल्ट रूप में) के साथ सभी ऑर्डर विवरण लौटाएगा। या आप वैकल्पिक पैरामीटर निर्दिष्ट कर सकते हैं
exec dbo.MyCustOrdersDetail 10248, 10
जो केवल 10 (या अधिक) की न्यूनतम मात्रा के साथ आदेश लौटाएगा।