دستور Create Table در SQL Server – آشنایی با کاربردها و نحوه ایجاد جدول

دستور Create Table در SQL Server – آشنایی با کاربردها و نحوه ایجاد جدول

نوشته شده توسط: تیم فنی نیک آموز
۰۶ اسفند ۱۴۰۲
زمان مطالعه: 12 دقیقه
۵
(۳)

دستور Create Table در SQL Server یکی از دستورهای کاربردی در این سیستم مدیریت پایگاه داده (RDBMS) به‌حساب می‌‌آید. یادگیری نحوه استفاده از این دستور، به شما مهارت‌های ارزشمندی در زمینه سازماندهی و مدیریت داده‌ها می‌بخشد و به‌واسطه آن می‌توانید به ایجاد جدول در SQL Server بپردازید. در مقالات قبلی به بررسی کامل دستور Select و دستور Insert و دستور Update ، عبارت Where و نحوه تعریف محدودیت (Constraint) و چگونگی به کار بردن هر یک پرداختیم. در این مطلب، می‌خواهیم به آموزش نحوه ایجاد جدول ازطریق دستور Create Table در SQL Server بپردازیم تا شما آن را ازطریق کوئری‌ها و مثال‌های قابل درک بیاموزید.

دوره کوئری نویسی در SQL Server نیک آموز

دستور SQL Server چیست و چه کاربردی دارد؟

دستورات SQL Server عباراتی هستند که به شما امکان تعامل با پایگاه داده Microsoft SQL Server را می‌دهند. به‌واسطه این دستورات، اقداماتی همچون ایجاد و مدیریت پایگاه داده، تجزیه‌وتحلیل دیتا، مدیریت دسترسی کاربران، استخراج و دستکاری داده‌ها امکان‌پذیر خواهد بود. برای آشنایی بیشتر با مباحث پراهمیت SQL Server ، کاربردها، انواع RDBMS، مشاغل مرتبط با این حوزه و سایر موارد، پیشنهاد می‌شود مقاله جامع آموزش SQL Server را مطالعه کنید.

 

دستور SQL Server چیست و چه کاربردی دارد؟

 

معرفی دستور Create Table در SQL Server

دستور Create Table در SQL Server ، به منظور تعریف و ساخت جدول جدید در پایگاه داده به کار می‌رود. ساختار کلی دستور Create Table به‌صورت زیر است:

 

CREATE TABLE [database_name.][schema_name.]table_name (
  column_name1 data_type [NOT NULL],
  column_name2 data_type,
  ...
);

 

بخش‌های مختلف ساختار فوق، به شرح زیر است:

  • database_name: این بخش از دستور Create Table در SQL Server ، انتخابی است؛ یعنی با تعیین آن می‌توانید نام دیتابیسی را مشخص کنید که می‌خواهید جدول در آن ساخته شود.
  • schema_name: این مورد نیز انتخابی است و به‌واسطه آن، Schema ای تعریف می‌شود که در آن‌جا، جدول پایگاه داده ساخته خواهد شد. اگر schema_name را در زمان ساخت جدول در SQL Server تعیین نکنید، به‌طور پیش‌فرض جدول جدید در Schema کاربر ساخته می‌شود و فقط توسط آن User خاص قابل مشاهده خواهد بود.
  • table_name: این جز از دستور Create Table الزامی است و بیان‌گر نامی است که به جدول جدید اختصاص می‌دهید.
  • column_definition: این جز هر ستون از جدول، شامل نام، نوع داده و Nullity آن را تعریف می‌کند. منظور از Nullity، پوچ یا پوچ نبودن مقدار ستون است.

ملاحظات جانبی

بهتر است به ملاحظات زیر درخصوص دستور Create Table در SQL Server توجه کنید:

  • شما می‌توانید با اعمال محدودیت (Constraint) روی ستون‌ها یا تمام جدول، آن‌ها را محدودتر کنید.
  • امکان ایجاد جداول Temporal ازطریق # یا ## در ابتدای نام جدول وجود دارد. 
  • امکانات پیشرفته متعددی در زمان ساخت جدول در SQL Server وجود دارد؛ مواردی همچون تعیین Filegroup ها و جداول Memory-Optimized از این قابلیت‌ها به شمار می‌روند.

کاربرد دستور Create Table در SQL Server

دستور Create Table در SQL Server کاربردها و موارد استفاده مشخصی دارد که در ادامه بررسی می‌شوند.

۱- ذخیره سازی داده های جدید

  • ساخت پایگاه داده جدید: هنگام ایجاد یک دیتابیس جدید، شما از از دستور Create Table برای تعریف جداول نگهدارنده داده‌های خود استفاده خواهید کرد. این فرآیند، تعیین مواردی مانند ستون‌ها، انواع نوع داده ، محدودیت‌ها و انواع کلید را شامل می‌شود.
  • درج جدول به پایگاه داده موجود: با تکامل ضرورت‌های مربوط به داده‌ها، این امکان وجود دارد که جداول جدیدی به هدف نگهداری اطلاعات جدید ایجاد شوند. در چنین شرایطی، ممکن است به ذخیره‌سازی اطلاعاتی همچون جزئیات اضافی مشتریان، رکوردهای تراکنشی و اطلاعات محصول نیاز باشد.

۲- Import داده از سایر منابع

  • بارگذاری داده‌ها از فایل: شما می‌توانید با کمک دستور Create Table در SQL Server به‌همراه یک عبارت Select ، داده‌ها را از فایل‌های اکسل، CSV یا سایر فرمت‌های فایلی Import کنید. چنین امکانی به شما اجازه می‌دهد جداول خود را به‌همراه داده‌ها آن، به‌صورت کارآمد در دیتابیس قرار دهید.
  • مایگریت داده‌ها از سایر دیتابیس‌ها: در شرایطی که شما بخواهید داده‌ها از انواع پایگاه داده دیگر به یک سیستم دیتابیس جدید مهاجرت پیدا کنند، باید جداول را با ساختارهای سازگار با دیتابیس SQL Server ایجاد کنید.

۳- مدل سازی و ساختاردهی مجدد داده ها

  • بهینه‌سازی طراحی جداول: شما می‌توانید با ساخت جدول در SQL Server و بهبود ساختار آن‌ها، کارایی دیتابیس را بهینه‌سازی کنید. این فرآیند، احتمالاً اقداماتی مانند جداسازی جداول فعلی پایگاه داده، ساخت روابط (Relationships) جدید و نرمال سازی داده ها (Data Normalization) را دربرمی‌گیرد.
  • ساخت جدول موقت برای تحلیل: در مواقعی که بخواهید به تجزیه‌وتحلیل داده‌ها یا تبدیل‌های پیچیده بپردازید، می‌توانید برای ساخت Temporal Table از دستور Create Table در SQL Server بهره‌مند شوید. با کمک این روش، امکان نگهداری نتایج میانی در این جدول موقت فراهم می‌شود و دیگر اثرات حاصل از آن روی جداول اصلی اعمال نخواهند شد.

۴- کنترل نسخه و تست نویسی

  • نگهداری نسخه‌های تاریخی از جداول: برای برخی داده‌های خاص، ممکن است نیاز به نسخه‌های تاریخی وجود داشته باشد. در این شرایط، دستور Create Table در SQL Server به شما این قابلیت را می‌دهد که که براساس جداول فعلی، جداول‌های جدید دیگری را ایجاد کنید و از آن‌ها به منظور نگهداری یک وضعیت خاص از دیتا بهره‌مند شوید.
  • ساخت محیط تست: یکی از کاربردهای دستور Create Table در SQL Server این است که شما می‌توانید یک نسخه کپی از جدول‌های فعلی ایجاد کنید و آن را در یک اسکیمای مستقل و برای اهداف تست و آزمایش مورد استفاده قرار دهید.

۵- ایجاد جدول های خاص

  • ساخت جدول Memory-Optimized: برای سناریوهای با کارایی بالا، امکان ساخت جداول Memory-Optimized با استفاده از دستور Create Table وجود دارد. این نوع از جدول‌ها در حافظه باقی می‌‌‌مانند و پردازش و دسترسی به داده‌ها را سرعت می‌بخشند.
  • ایجاد جدول system-versioned temporal: این گونه از جدول‌ها، به‌طور خاص برای پیگیری تغییرات تاریخی مربوط به داده‌ها به کار می‌روند و اجازه می‌دهند که کاربر داده‌ها را در هرزمان تجزیه‌وتحلیل کند.

تا این بخش، به بررسی کاربردهای دستور Create Table در SQL Server پرداخته شد. در ادامه، قصد داریم بررسی کنیم که به چه صورت Create Table به شما امکان ایجاد جدول در SQL Server را می‌دهد.

 

کاربرد دستور Create Table در SQL Server

 

نحوه ایجاد جدول در SQL Server

در این بخش، مثال‌هایی از دستور Create Table ارائه خواهیم کرد. برای درک نحوه ایجاد جدول در SQL Server ازطریق این دستور، به کوئری‌های زیر توجه کنید.

ایجاد یک جدول ساده

پیش از بررسی بیشتر نحوه ایجاد جدول در SQL Server ، توجه کنید که کوئری‌های این بخش همگی، ازطریق دیتابیس Northwind قابل اجرا هستند.

فرض کنید می‌خواهیم یک جدول تحت عنوان EmployeeSales در پایگاه داده Northwind ایجاد کنیم. برای این کار، کافیست کوئری زیر را اجرا کنید:

 

CREATE TABLE EmployeeSales (
  EmployeeID int NOT NULL FOREIGN KEY REFERENCES Employees(EmployeeID),
  OrderID int NOT NULL FOREIGN KEY REFERENCES Orders(OrderID),
  SalesAmount decimal(10,2) NOT NULL
);

 

کوئری فوق، با لینک کردن Employ ID و Order Id به‌همراه مقدار فروش، اطلاعاتی را درخصوص عملکرد کارمندان فروش ذخیره‌سازی می‌کند. در این جدول، EmployeeID به‌عنوان کلید خارجی (FK)، به جدول Employees ارجاع داده شده و OrderID نیز یک FK دیگر است که به جدول Orders رفرنس شده است. ضمن اینکه در SalesAmount مقدار فروش هر کارمند ذخیره شده است.

 

ایجاد یک جدول ساده در دستور Create Table در SQL Server

 

ایجاد یک جدول با Computed Column

یکی دیگر از کاربردهای دستور Create Table در SQL Server ، ایجاد جدولی به‌همراه Computed Column است. Computed Column یک ستون مجازی محسوب می‌شود که به‌طور فیزیکی داده‌های خود را ذخیره‌سازی نخواهد کرد؛ درواقع، مقادیر Computed Column، براساس محاسبات، توابع یا محدودیت‌ها، محاسبه و ذخیره‌سازی می‌شوند.

در مثال زیر، قصد داریم یک جدول به نام OrderSummary در پایگاه داده ایجاد کنیم؛ این جدول اطلاعات سفارش را به‌همراه یک Computed Column برای مبلغ کل سفارش‌ها شامل می‌شود. با توجه به اینکه امکان استفاده از Subquery ها در ستون‌های Computed وجود ندارد، ابتدا یک تابع تعریف شده توسط کاربر (User-Defined Function) برای محاسبه کل مبلغ یک سفارش ایجاد کرده و سپس آن را برای Computed Column به کار خواهیم برد. برای درک این روند، به اسکریپت زیر توجه کنید:

 

USE Northwind;
GO

-- Drop the existing function if it exists
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.CalculateTotalAmount') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION dbo.CalculateTotalAmount;
GO

-- Create the function to calculate total amount for an order
CREATE FUNCTION dbo.CalculateTotalAmount (@OrderID int)
RETURNS money
AS
BEGIN
    DECLARE @TotalAmount money;

    SELECT @TotalAmount = ISNULL(SUM(UnitPrice * Quantity * (1 - Discount)), 0)
    FROM [Order Details]
    WHERE OrderID = @OrderID;

    RETURN @TotalAmount;
END;
GO

-- Create the table with computed column using the function
CREATE TABLE OrderSummary (
    OrderID int,
    CustomerID nchar(5),
    OrderDate datetime,
    TotalAmount AS dbo.CalculateTotalAmount(OrderID)
);

 

پس از اجرای اسکریپت فوق، می‌توانید با مراجعه به فولدر Tables از پایگاه داده ‌Northwind، جدول ایجاد شده را به‌همراه دیزاین آن مشاهده کنید.

 

ایجاد یک جدول با Computed Column

 

ساخت جدول پیچیده به همراه Join

شما می‌توانید یک جدول پیچیده را به‌همراه Join ایجاد کنید. این فرآیند، ساخت چند جدول و تعریف روابط آن‌ها ازطریق کلید خارجی را شامل می‌شود. در مثال زیر می‌خواهیم جدولی ایجاد کنیم که اطلاعات دو جدول Orders و Customers از جدول Northwind را ترکیب می‌کند. با جوین این دو جدول، خلاصه‌ای از سفارشات به‌همراه اطلاعات مشتریان به وجود می‌‌آید.

 

USE Northwind;
GO

-- Create a complex table combining Orders and Customers information
CREATE TABLE OrderSummaryWithCustomerInfo (
    OrderID int PRIMARY KEY,
    CustomerID nchar(5),
    OrderDate datetime,
    CustomerName nvarchar(40),
    ContactName nvarchar(30),
    ContactTitle nvarchar(30),
    Address nvarchar(60),
    City nvarchar(15),
    Region nvarchar(15),
    PostalCode nvarchar(10),
    Country nvarchar(15),
    Phone nvarchar(24),
    Fax nvarchar(24),
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

 

اگر به قسمت دیزاین مربوط به جداول پایگاه داده رجوع کنید، متوجه خواهید شد که این جدول دقیقاً با ستون‌ها و شرایط فوق ایجاد شده است.

 

ساخت جدول پیچیده به همراه Join

 

ساخت جدول به همراه کلید اصلی ترکیبی

یکی دیگر از موارد استفاده از دستور Create Table در SQL Server ، ایجاد جدول همراه با کلید اصلی از نوع Composite است. در مثال زیر، یک جدول تحت عنوان ProductCategories با کلید اصلی ترکیبی ایجاد می‌کنیم.

 

CREATE TABLE ProductCategories (
  ProductID int NOT NULL,
  CategoryID int NOT NULL,
  PRIMARY KEY (ProductID, CategoryID),
  FOREIGN KEY (ProductID) REFERENCES Products(ProductID),
  FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID)
);

 

با اجرای کوئری فوق، محصولات (Products) ازطریق کلید اصلی ترکیبی، به چندین Category لینک می‌شوند؛ به‌طوری که طبقه‌بندی آن‌ها تسهیل بیابد. مشابه تصویر زیر، اکنون جدول ساخته‌شده باید یک کلید اصلی Composite متشکل از ProductID و CategoryID داشته باشد. البته باید توجه کرد که شما با استفاده از دستور Create Table تنها ساختار جدول را ایجاد خواهید کرد و این فرآیند لزوماً به معنای Insert در SQL Server نیست.

در این بخش از مقاله، نحوه کار با دستور Create Table در SQL Server و ایجاد جدول با آن را به‌همراه چند مثال بررسی کردیم. پس از ایجاد جدول در SQL Server ، ممکن است چندی بعد بخواهید ساختار آن (مثلاً نام یک ستون) را تغییر دهید. در ادامه، نحوه اعمال چنین تغییراتی شرح داده خواهد شد.

تغییر نام ستون یا جدول در SQL Server

برای تغییر نام ستون یا جدول در SQL Server می‌توان از دستور Alter Table استفاده کرد. ضمن اینکه با استفاده از Alter Table، می‌توان اموری همچون درج ستون‌های جدید، ویرایش نوع‌های داده ستون، Drop کردن ستون‌ها، درج / تغییر محدودیت‌ها، درج Computed Column، پارتیشن‌سازی و ایندکس گذاری (Indexing) انجام داد.

درج ستون جدید به جدول

در مثال زیر، ستون Phone Number را به‌همراه مقدار پیش‌فرض به جدول Customer درج می‌کنیم. 

 

ALTER TABLE Customers
ADD PhoneNumber varchar(20) NOT NULL DEFAULT 'N/A';

 

با اجرای کوئری بالا، ستون Phone Number درج می‌شود؛ این ستون نمی‌تواند Null باشد و مقدار N/A به‌عنوان پیش‌فرض برای آن درنظر گرفته شده است.

 

درج ستون جدید به جدول در دستور Create Table در SQL Server

 

تغییر نام جدول از طریق SSMS

شما می‌توانید نام جداول را ازطریق دستور Alter Table در SQL Server تغییر دهید؛ با این وجود، تغییر آن ازطریق SSMS آسان‌تر است. برای این کار، کافیست مراحل زیر را دنبال کنید:

فرض کنید می‌خواهیم نام جدول Customer را به myCustomer تغییر دهیم.

  1. از بخش Object Explorer، روی جدول موردنظر، کلیک راست کرده و گزینه Rename را انتخاب کنید.

 

تغییر نام جدول از طریق SSMS

 

  1. نام جدید جدول را وارد و پس از آن، روی Enter کلیک کنید.

 

تغییر نام جدول از طریق SSMS

 

حذف ستون های جدول در SQL Server

برای حذف ستون‌هایی از جدول در SQL Server ، لازم است از دستور Alter Table به‌همراه Drop Column استفاده شود. در مثال زیر، ستون Email را از جدول CutomersTable حذف خواهیم کرد.

 

ALTER TABLE CustomersTable
DROP COLUMN Email

 

با اجرای کوئری بالا، ستون مذکور از جدول مدنظر حذف خواهد شد و نمای جدول به‌صورت زیر خواهد بود:

 

حذف ستون های جدول در SQL Server

 

آشنایی با مفهوم Auto Increment در SQL Server

مفهوم Auto Increment در SQL Server ، قابلیتی است که به کمک آن، امکان تولید خودکار مقادیر یکتا (Unqiue) برای یک ستون خاص از جدول در زمان درج رکورد جدید فراهم می‌شود. این مشخصه به‌طور خاص برای مواقعی کاربردی است که می‌خواهید شناسه‌گرهای خاص و کلید اصلی ایجاد کنید. رایج‌ترین روش پیاده‌سازی Auto Increment هنگام ایجاد جدول در SQL Server است. برای این‌کار، کافیست ستون موردنظر را به‌عنوان ستون Identity تعریف کنید. شایان ذکر است که می‌توان این قابلیت را ازطریق تریگرها و Secquence ها نیز اعمال کرد. برای درک بهتر، به مثال زیر توجه کنید:

 

CREATE TABLE TheCustomerTable (
  CustomerID int IDENTITY(1, 1) PRIMARY KEY,
  FirstName varchar(50) NOT NULL,
  LastName varchar(50) NOT NULL
);

 

با اجرای کوئری فوق، یک جدول به نام TheCustomerTable ایجاد می‌شود که در آن، ستون CustomerID کلید اصلی جدول و به‌صورت Auto Incremental است. در این جدول، دو ستون دیگر برای نام و نام خانوادگی مشتریان ایجاد می‌شود؛ توجه کنید که مقادیر این دو ستون نمی‌توانند Null باشند. به این ترتیب، هر مشتری جدیدی که در جدول درج شود، یک ID یکتا و منحصربه‌فرد دریافت می‌کند.

 

آشنایی با مفهوم Auto Increment در SQL Server

 

کلام آخر: کاربرد دستور Create Table در SQL Server چیست؟

دستور Create Table در SQL Server به شما قابلیت‌های همچون تعریف اسکیما و ساخت جدول را می‌دهد و می‌توانید ازطریق آن، ستون‌ها، کلید اصلی و محدودیت‌های مورد نظر را روی جدول تعریف کنید. در این مقاله به چگونگی ایجاد جدول در SQL Server پرداخته شد. برای آشنایی بیشتر با سایر دستورات T-SQL، پیشنهاد می‌شود مقاله معرفی پرکاربردترین دستورات SQL Server را نیز مطالعه کنید.

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۳

اولین نفر باش

title sign
برچسب ها
title sign
دانلود مقاله
دستور Create Table در SQL Server – آشنایی با کاربردها و نحوه ایجاد جدول
فرمت PDF
13 صفحه
حجم 0/7 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
260 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
وبینار رایگان ؛ Power BI کلید رقابت شما در دنیا داده‌ها      چهارشنبه 12 اردیبهشت ساعت 15
ثبت نام رایگان
close-image