ساخت جدول در SQL – آموزش کامل با مثال و کد دستورات

۶۶۳ بازدید
آخرین به‌روزرسانی: ۱۹ دی ۱۴۰۲
زمان مطالعه: ۱۴ دقیقه
ساخت جدول در SQL – آموزش کامل با مثال و کد دستورات

ایجاد جدول‌ هسته مرکزی طراحی پایگاه‌های داده است. داده‌ها در جدول‌ها ذخیره می‌شوند و ساختار جدول‌ها به همراه روابط داخلی به ما این امکان را می‌دهند که داده‌ها را به‌صورت موثری سازماندهی کنیم. کارکردن با پایگاه‌های داده بدون ایجاد و پیکربندی جدول‌ها غیرممکن است و کارکردن با جدول‌ها یکی از پایه‌ای‌ترین مهارت‌ها است که برای کار در حوزه پایگاه داده، آشنایی با آن ضروری است. در این مطلب از مجله فرادرس تا حد امکان با جدول‌ها آشنا می‌شویم و روش‌های مختلف ساخت جدول در SQL را خواهیم دید.

روش‌های استانداردی برای ایجاد جدول‌ها وجود دارند و همچنین توصیه‌هایی برای افزایش سرعت و تضمین دقت هستند که کاربران با کمک آن‌ها می‌توانند کیفیت کار خود را ارتقا بدهند. هدف از این مطلب، بازبینی این روش‌ها و نکات توصیه شده در نرم‌افزار پلتفرم داده‌ی Microsoft’s SQL Server است. این نرم‌افزار یکی از مشهورترین سیستم‌های مدیریت پایگاه‌ داده جهان است. در این مطلب، ابتدا با چند عنصر بنیادی پایگاه داده آشنا می‌شودیم و مبانی ایجاد جدول‌های پایگاه داده را نیز بررسی می‌کنیم. در ادامه، سینتکس مربوط به ساخت جدول در SQL را بررسی می‌کنیم و روش‌های اعمال دستورات را نیز به طور کامل مرور می‌کنیم. در انتهای مطلب، پس از بررسی نحوه ساخت جدول موقتی،‌ مزایای استفاده از GUI برای ساخت جدول را آموزش خواهیم داد. پس اگر می‌خواهید به طور کامل با نحوه ساخت جدول در SQL آشنا شوید، تا انتهای این مطلب از مجله فرادرس، با ما همراه باشید.

آشنایی با چند عنصر بنیادی در پایگاه داده

در ابتدا باید با مفاهیم بنیادی در پایگاه داده آشنا شویم تا بعد از‌ آن بتوانیم ساخت جدول در SQL را مرور کنیم.

جدول در SQL چیست؟

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

در هر پایگاه‌ داده‌ای بی‌شمار جدول می‌توانند وجود داشته باشند. هر جدول تعداد ستون‌ها را فهرست می‌کند اما تعداد ردیف‌ها را حفظ نمی‌کند چون مورد دوم یعنی ردیف‌ها، هر تعدادی می‌توانند باشند.

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

رکوردها و فیلدها در SQL

در هر جدول سطر و ستون وجود دارد. سطرها نمایانگر «رکوردها» (Records) و ستون‌ها نمایانگر «فیلدها» (Fields) هستند. هر ستون شامل مقادیر داده‌ای از نوع خاصی از داده‌ها مانند اعداد، حروف الفبا و غیره است. و هر ردیف در پایگاه‌ داده یک مقدار را برای آن ستون نمایش می‌دهد.

فیلد در SQL چیست؟

به‌طور اساسی فیلد همان ستون در جدول است که حاوی اطلاعات خاصی درباره داده‌ها است هر فیلد فقط نوع خاصی از داده را قبول می‌کند. به تصویر زیر دقت کنید. فیلدی به نام «e_salary» در جدول وجود دارد که اطلاعات مربوط به حقوق کارمندان مختلف را ارائه می‌دهد. به همین صورت فیلد «e_age» اطلاعات مربوط به سن کارمندان مختلف را ارائه می‌دهد.

در این جدول از حقوق کارمندان یک فیلد یا ستون انتخاب شده است.

رکورد در SQL چیست؟

به‌طور کلی به هر ورودی منحصر به فردی که در جدول وجود دارد، رکورد می‌گویند. هر رکورد یک سطر از جدول را تشکیل می‌دهد. رکوردها اطلاعات کاملی درباره هر ورودی مجزا یا موجودی منحصر به فردی در پایگاه داده ارائه می‌دهند. تصویری که در ادامه آورده‌ایم را در نظر داشته باشید. یک ردیف با نام Anne انتخاب شده است. درباره این کارمند خاص که نامش Anne است، اطلاعات کاملی را در ردیف مربوطه داریم. منظور از اطلاعات کامل به این صورت است که یعنی همه اطلاعاتی که این جدول می‌تواند درباره کارمندان ارائه دهد. در این جدول برای مثال به ردیف شماره سه که مربوط به خانم Anne می‌شود با تمام اطلاعات ردیف رکورد گفته می‌شود. در جدول زیر، ۶ رکورد نمایش داده می‌شود.

این جدول یک سطر یا رکورد را نشان می‌دهد.

اسکریپت چیست؟

به مجموعه فرمان‌هایی که وظایف مختلفی را در پایگاه داده اجرا می‌کنند «اسکریپت» (Script) می‌گویند. این فرمان‌ها شامل دستوراتی مثل «ایجاد جدول‌» (Creating Table)، «وارد کردن داده» (Inserting Data)، «عملیات جست‌و‌جو روی رکوردها» (Querying Records) و «به‌روزرسانی مقادیر» (Updating Values) است.

خوب حالا متوجه شدیم که مجموعه‌ای از «رکوردها» (Records) و «فیلدها» (Fields)، «جدول» (Table) را می‌سازند و مجموعه‌ای از جدول‌ها پایگاه‌ داده را می‌سازند. در ادامه با ساخت جدول‌ها در پایگاه‌ داده آشنا می‌شویم.

مبانی ایجاد جدول های پایگاه داده

جدول پایگاه‌ داده به ساختاری می‌گویند که شامل داده‌های سازمان‌یافته در سطرها و ستون‌ها می‌شود. جدول‌ها نام‌های توصیفی دارند. ستون‌های جدول هم نام‌های خاصی دارند. علاوه بر این، نوع داده‌ خاصی به هر ستون نسبت داده می‌شود که می‌گوید خانه‌های این ستون، فقط مقادیر این نوع داده‌ خاص را می‌توانند ذخیره کنند. به عنوان مثال در جدولی که در بالا دیدیم ستون مربوط به سن از نوع داده‌ی int پشتیبانی می‌کند و نمی‌تواند عدد اعشاری باشد یا همچنین ستون مربوط به حقوق، نوع داده float است و نمی‌تواند عدد صحیح یا رشته باشد.

MS SQL Server

«MS SQL Server» نرم‌افزاری است که توسط شرکت مایکروسافت برای مدیریت بصری پایگاه‌ داده رابطه‌ای SQL تولید شده است. این نرم‌افزار، برای ایجاد جدول‌ها گزینه‌هایی که در ادامه آورده‌ایم را در دسترس مدیران پایگاه‌ داده قرار می‌دهد.

  • فرمان CREATE TABLE  : این متد، روش استانداری است که برای ساخت جدول در SQL استفاده می‌شود. در این روش ما می‌توانیم ستون‌ها، نوع داده و مجموعه محدودیت‌ها را به صراحت مشخص کنیم و تنظیمات دیگر جدول را تعریف کنیم. گذشته از این‌ها، به توسعه‌دهندگان این امکان را می‌دهد که اسکریپت‌ها را ذخیره کنند و هر وقت نیاز شد دوباره استفاده کنند حتی می‌توان برای استفاده به صورت خودکار از اسکریپت‌ها تنظیماتی انجام داد.
  • فرمان‌ SELECT AS/SELECT INTO  : این متد، بر پایه‌ی مجموعه نتایج کوئری SELECT، جدول جدیدی بر پایه اطلاعات جدولی که الان موجود است می‌سازد. جدول جدید که از نتیجه کوئری روی جدول مرجع به‌وجود آمده، بدون توجه به اینکه شامل داده‌ای باشد یا نه‌باشد، ساختارش را از جدول مرجع به ارث می‌برد. این متد روش ساده‌ای فراهم می‌کند برای اینکه بتوانیم جدول جدیدی دقیقا همانند جدول اصلی بسازیم.
  • ابزارهای نرم افزار بر پایه رابط کاربری گرافیکی یا GUI مانند SSMS یا «راهکارهای طرف سوم» (third-party solutions): همه کاربران حرفه‌ای و تازه‌کار پایگاه‌ داده، علاقه‌مند به استفاده از «رابط‌های کاربری گرافیکی» (Graphical User Interfaces | GUI) هستند. زیرا فرایندها را آسان و خطاهایی که به‌خاطر کدنویسی دستی به‌وجود می‌آیند، حذف می‌کنند. نرم افزار «SQL Server Management Studio | SSMS» راه حل پیش‌فرضی است که توسط مایکروسافت ارائه شده است.
مردی در حال تایپ کردن در محیط کار پشت میز کار

این مقاله چگونه‌گی ساخت جدول در SQL را با کمک اسکریپت‌های اختصاصی، نشان خواهد داد. برای نمایش نحوه انجام کار باید از نرم‌افزار یا GUI کمک بگیریم. به این منظور از نرم‌افزار «dbForge Studio for SQL Server» با لینک «+» به عنوان جایگزین قدرتمندتر و مستحکم‌تری برای SSMS استفاده خواهیم کرد.

‌سینتکس عبارت CREATE TABLE

سینتکس پایه‌ای که برای ساخت جدول در SQL سرور استفاده می‌کنیم به صورت زیر است.

1CREATE TABLE [database_name.][schema_name.]table_name (
2    column_name1 data_type [NULL | NOT NULL],
3    column_name2 data_type [NULL | NOT NULL],
4    column_name3 data_type [NULL | NOT NULL],
5    ...,
6);

برای درک بیشتر سینتکس بالا، باید پارمترهای زیر را بشناسیم.

  • database_name  و schema_name  پارامترهای اختیاری هستند که به ترتیب، در زمانی که جدول جدیدی ایجاد می‌کنید، نام‌ پایگاه‌ داده و نام طرح پایگاه‌ داده را تعریف می‌کنند. اگر آن‌ها به‌صورت مستقیم مشخص نشده باشند، کوئری براساس پایگاه‌ داده فعلی و طرح پیش‌فرض آن پایگاه داده اجرا خواهد شد.
  • table_name  نام جدولی است که درحال ساخت آن هستید. حداکثر طول نام جدول ۱۲۸ کاراکتر است بجز جدول‌های موقتی محلی که جلوتر، در ادامه‌ی همین مطلب به بررسی آن‌ها خواهیم پرداخت. توصیه شده برای مدیریت آسان‌تر جدول‌ها از نام‌های توصیفی و کامل استفاده شود.
  • column_name  به نام ستون‌ها در جدول گفته می‌شود. بیشتر جدول‌ها شامل چندین ستون می‌شوند. برای اینکه نام ستون‌ها را در اسکریپت CREATE TABLE جدا کنیم، از کاما استفاده می‌کنیم.
  • data_type  نوع داده برای هر ستون را مشخص می‌کند. در واقع با این کد مشخص می‌کنیم که هر ستون خاص، مقادیر چه نوع داده‌ای را می‌تواند ذخیره کند.
  • NOT NULL  پارامتری اختیاری است که مشخص می‌کند، خانه‌های داده‌ی این ستون، مجاز نیستند مقدار NULL داشته باشند یا به عبارت ساده، نمی‌توانند خالی باشند. در صورتی که این پارامتر تنظیم نشده باشد، ستون می‌تواند مقادیر NULL را در خود جای دهد.

با وجود اینکه عبارت CREATE TABLE ساده‌ترین روش‌ها را ارائه می‌دهد، این سینتکس به‌طور قابل توجهی می‌تواند پر از جزییات باشد و آرایه وسیعی از پارامترها را دربر داشته باشد. اما در ابتدا روش کار سینتکس‌های ابتدایی را بررسی خواهیم کرد.

عبارت CREATE TABLE در GUI

فرض کنید می‌خواهیم جدولی در پایگاه‌ داده یک فروشگاه با اطلاعاتی درباره مشتریان معمولی، ایجاد کنیم. به غیر از مورد پایین، سعی می‌کنیم نمونه کدها را در فضای گرافیکی نمایش دهیم تا با این فضا آشنا شوید. در مورد پایین کدها را در هر دو حالت نمایش داده‌ایم تا سینتکس کدها و محل درج کدها را در GUI ببینید. حتما به این نکته توجه کنید که سینکس کد‌ها نسبت به محل درج‌شان تغییر نخواهد کرد.

1CREATE TABLE Customers (
2First_Name varchar(50) NOT NULL,
3Last_Name varchar(50) NOT NULL,
4City varchar(50) NOT NULL,
5Email varchar(100) NOT NULL,
6Phone_Number varchar(20) NOT NULL,
7Registration_Date date NOT NULL
8);

در تصویر زیر، نمایش گرافیکی کد بالا نشان داده شده است.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

اگر داده‌ها را در ابتدای کار به جدول وارد نکنیم، خالی خواهد ماند. برای همین، چند داده مجازی در جدول، تولید و وارد می‌کنیم، تا نحوه کار کردن جدول را نمایش دهیم.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

در پایگاه داده SQL Server موجود، جدول جدیدی ایجاد کرده‌ایم.

اعمال دستور CREATE TABLE با کمک کلید اصلی

«کلید اصلی» (Primary Key)، محدودیتی است که هر رکورد جدول را به‌صورت انحصاری تبدیل می‌کند تا رکوردها به‌سادگی قابل شناسایی شوند. وجود کلید اصلی اجباری نیست اما در بیشتر جدول‌ها حضور دارد. به احتمال زیاد ما نیز به آن نیاز خواهیم داشت.

کلید اصلی ویژگی‌هایی دارد که در ادامه فهرست کرده‌ایم.

  • فقط شامل مقادیر یکتا می‌شود.
  • در هر جدولی فقط یک کلید اصلی می‌تواند وجود داشته باشد.
  • نمی‌تواند شامل مقادیر «NULL» باشد.
  • می‌تواند از یک یا چندین ستون تشکیل شده باشد.
رنامه‌نویس در حال کار در دفتر تمیزش در ساعت آبی

PRIMARY KEY در GUI

برای اینکه در SQL Server جدولی با کلید اصلی بسازیم، از کلمه کلیدی PRIMARY KEY  بعد از نام و نوع داده مخصوص، برای ستون مرتبط، استفاده می‌کنیم.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

می‌توان کلید اصلی را روی هر ستون یا حتی ترکیبی از ستون‌ها، تنظیم کرد.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

در مثال بالا، جدولی ساختیم که کلید اصلی آن شامل سه ستون «نام خانوادگی» (Last Name)، آدرس «ایمیل» (Email) و «شماره تلفن» (Phone Number) می‌شود. از این ترکیب برای شناسایی هر رکورد در جدول استفاده خواهد شد.

اعمال دستور CREATE TABLE با کمک کلید خارجی

محدودیت «کلید خارجی» (Foreign Key) عنصری ضروری برای پایگاه‌‌داده‌های رابطه‌ای است. کلید خارجی به کمک مراجعه به «کلید اصلی» (Primary Key) که روی جدول‌های مختلف تنظیم شده است، روابط بین جدول‌ها را ایجاد می‌کند. در نتیجه، دو جدول مختلف می‌توانند به یکدیگر متصل شوند.

جدولی که از کلید اصلی آن برای اتصال بین جدول‌ها استفاده می‌شود، به عنوان جدول والد شناخته می‌شود و جدولی که کلید خارجی دارد به عنوان جدول فرزند نامیده می‌شود. ستونی که به عنوان کلید خارجی جدول فرزند استفاده می‌شوند باید در جدول والد وجود داشته باشند. ساخت جدول در SQL server با کلید خارجی برای اتصال آن به جدول‌های دیگر، یک کار عادی و متداول است که باعث سازماندهی بیشتر طرح کل پایگاه داده می‌شود.

کلید خارجی در GUI

فرض کنید که درحال ساخت جدولی در SQL هستیم که قرار است اطلاعات همه سفارش‌هایی را نگهدارد که توسط مشتریان داده شده. این جدول نسبت به جدول Customers  ، جدول فرزند خواهد بود و کلید خارجی روی آن قرار دارد.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

با روشی که در تصویر بالا می‌بینید جدولی در SQL Server با کلید خارجی ساختیم و دو جدول Customers  و Orders  را با یکدیگر مرتبط کردیم. ستون Order_ID  ، کلید اصلی جدول Orders  و ستون Customer_ID  کلید خارجی است که به ستون Customer_ID  در جدول والد Customers  اشاره می‌کند.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

اعمال دستور CREATE TABLE با کمک جدولی دیگر

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

1SELECT column1, column2, column3, ...
2INTO new_table [IN external_db]
3FROM old_table
4WHERE condition;

دستور CREATE TABLE با کمک جدولی دیگر در GUI

توجه کنید که پارامتر اختیاری IN که در نمونه کد بالا وجود دارد، به توسعه‌دهندگان این امکان را می‌دهد که به‌توانند جدول جدیدی در پایگاه داده خارجی با کمک فرمان SELECT…INTO  ایجاد کنند. همچنین، می‌توانید با استفاده از ماده WHERE  در این دستور، مشخص کنید، کدام داده‌ها را باید در جدول جدید ذخیره شوند. به تصویری از GUI که در زیر آمده و نحوه کد‌نویسی انجام شده توجه کنید.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

یکی از سناریوهایی که در آن استفاده از عبارت دستوری SELECT…INTO  مفید واقع می‌شود، ساخت جدول‌های خالی با ساختار مشخص است. برای انجام چنین کاری ماده WHERE  را در این عبارت دستوری با پارامتر 1=0  مقداردهی می‌کنیم.

1SELECT column1, column2, column3, ...
2INTO new_table 
3FROM old_table
4WHERE 1 = 0;

این پارامتر تضمین می‌‌کند که فرایند ساخت جدول جدید، کوئری هیچ داده‌ای را از جدول مرجع کپی نخواهد کرد. در نتیجه دستور SELECT…INTO  جدولی خالی از اطلاعات با همان ساختار جدول اصلی می‌سازد که البته فقط هم ستون‌هایی را خواهد ساخت که در دستور نام برده باشیم و کاربر می‌تواند ستون‌های جدول جدید را با داده‌های خود پُر کند.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

اگرچه، ایندکس‌ها، محدودیت‌ها و «تریگرها» (Triggers) به وسیله دستور SELECT…INTO  منتقل نخواهند شد و اگر به آن‌ها در جدول جدید، نیاز داشته باشید باید به‌صورت جداگانه آن‌ها را اضافه کنید. تریگر به متدهای ذخیره‌شده‌ای می‌گویند که قابل فراخوانی نبوده و به‌صورت خودکار در واکنش به اقدامات Insert , Update و Delete - قبل یا بعد از هر تراکنش - اجرا می‌شوند.

دستور CREATE TABLE به شرطی که وجود نداشته باشد

بهتر است که قبل از ساخت جدولی جدید در پایگاه‌ داده، بررسی کنیم که همچنین جدولی از قبل وجود نداشته باشد. داشتن دو جدول هم‌نام می‌تواند باعث ایجاد خطا و تداخل در کار پایگاه‌ داده شود. مشکل اینجاست که Microsoft SQL Server از تابع «اگر وجود ندارد» (if not exists) در کوئری‌های عبارت CREATE TABLE  پشتیبانی نمی‌کند. اگر پایگاه‌ داده جدول مشابهی از قبل داشته باشد، دستور ساخت جدول جدید با نام مشابه اجرا نخواهد شد.

سوالی که در اینجا پیش می‌آید این است که آیا جایگزینی برای دستور create table if not exist  در SQL Server وجود دارد. بله، راه حل توصیه شده استفاده از تابع OBJECT_ID()  است. به کد زیر توجه کنید. در این نمونه کد، شی (کاربر) جدول تعریف شده خود را مشخص کرده‌ایم. اگر این شی در پایگاه‌ داده وجود نداشته باشد، تابع OBJECT_ID()  مقدار NULL برمی‌گرداند، که شرط ساخت جدول جدید است.

1IF OBJECT_ID(N'table_name', N'U') IS NULL
2CREATE TABLE table_name (
3    column_name1 data_type [NULL | NOT NULL],
4    column_name2 data_type [NULL | NOT NULL],
5    column_name3 data_type [NULL | NOT NULL],
6    ...,
7);

دستور CREATE TABLE به شرطی if not exists در GUI

فرض کنید می‌خواهیم جدولی بسازیم که قرار است نام آن را Visitors  بگزاریم. باید وجود داشتن جدولی با همین نام را قبل از اجرای کوئری برای ساخت آن بررسی کنیم.

1IF OBJECT_ID(N'Visitors', N'U') IS NULL
2CREATE TABLE Visitors (
3First_Name VARCHAR(50) NOT NULL,
4Last_Name VARCHAR(50) NOT NULL,
5Phone VARCHAR(50) NULL,
6Email VARCHAR(100) NOT NULL,
7City VARCHAR(50) NOT NULL
8);

شکل گرافیکی کد بالا در تصویر زیر آورده شده است.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

بنابراین، اجرای فرمان CREATE TABLE  موفقیت آمیز بود و ما اکنون جدول جدیدی به نام Visitors  در پایگاه‌ داده خود داریم.

ساخت جدول موقتی

جدول موقت در SQL Server به جدولی گفته می‌شود که از تکه‌داده‌هایی تشکیل شده است که از جدولی معمولی استخراج شده‌اند و در حافظه ذخیره نخواهند شد. درحالی که می‌توان از این جدول در طول یک «دوره زمانی خاص» (A Particular Session) یا سشن، استفاده و حتی استفاده مجدد کرد. وقتی که سشن به پایان برسد یا ارتباط با پایگاه‌ داده قطع شود، جدول موقت هم حذف می‌شود. در مبحث پایگاه‌های داده، به هر دوره‌ زمانی از ارتباط بین کاربر و پایگاه‌ داده، «نشست» (Session) گفته می‌شود.

اگر به‌طور مرتب و تکراری، با چند رکوردی که در پایگاه‌ داده ذخیره شده‌اند سر و کار داشته باشیم، جدول‌های موقتی گزینه بسیار مناسبی برای کار‌ هستند. هر وقت که نیاز باشد می‌توانیم آن داده‌ها را بگیریم، پردازش کنیم و به جدول موقتی برگردانیم. جدول در سیستم «tempdb» در پایگاه‌ داده ذخیره شده است و می‌توانیم مشابه با جدول‌های معمولی با این جداول رفتار کنیم. جدول‌های موقتی به‌طرز قابل توجهی در بارگزاری داده‌ها سریع‌تر عمل می‌کنند.

برای ایجاد جدول موقتی در SQL Server، می‌توانیم از فرمان SELECT INTO  کمک بگیریم. استفاده از این فرمان ساده‌ترین روش ممکن است.

1SELECT column1, column2, column3, ...
2INTO #new_table
3FROM old_table
4WHERE condition;

در ادامه به نمایش گرافیکی نمونه کد خواهیم پرداخت.

عبارت دستوری SELECT...INTO برای ساخت جدول موقتی

قبل از شروع کار به این نکته مهم توجه کنید که نام جدول‌های موقتی همیشه با نماد هش (#) شروع می‌شود و حداکثر طول نام نباید از ۱۱۶ کاراکتر بیشتر باشد. همان‌طور که در ادامه خواهید دید، جدول موقتی با موفقیت ساخته شده و می‌توانیم آن را در tempdb ببینیم (استوانه‌ای به نام tempdb در پنل سمت چپ نرم‌افزار).

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

دستور CREATE TABLE برای ساخت جدول موقتی

روش دیگر برای ایجاد جدول موقتی در SQL Server، استفاده از عبارت CREATE TABLE  است که برای ساخت جدول در SQL استفاده می‌شود. مانند روش‌های قبلی در ایجاد جدول‌های عادی می‌توانیم از همین روش نیز استفاده کنیم. تنها نیاز است که نام جدول را با نماد «هشتگ»‌ (#) شروع کنید.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

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

دستور CREATE TABLE برای ساخت جدول موقتی عمومی

در بعضی از سناریوهای کاری، نیاز داریم که جدول موقتی در SQL Server ایجاد کنیم و آن را برای استفاده در دسترس دیگر کاربران نیز قرار دهیم. راه حل استفاده از «جدول موقتی عمومی» (Global Temporary Table) است و اینکه این جدول باید برای برای تمام کاربران و سشن‌های آن‌ها قابل مشاهده باشد.

همانند ساخت جدول در SQL، برای ایجاد جدول موقتی عمومی از فرمان CREATE TABLE استفاده خواهیم کرد. نکته اینجاست که نام جدول با دو نماد هش شروع می‌شود. به‌عنوان مثال ##table_name

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

«جدول‌های موقتی عمومی» (Global Temporary Tables) نیز در سیستم پایگاه‌ داده tempdb ذخیره می‌شوند. تا وقتی که همه کاربرانی که به این جدول موقتی خاص، دسترسی دارند و به آن مراجعه می‌کنند، سشن‌های خود را کامل کنند یا همه اتصالات با دیتا بیس را قطع کنند، این جدول‌ها در سیستم tempdb باقی‌ می‌مانند.

مزایای استفاده از GUI برای ساخت جدول در SQL

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

نرم افزار dbForge Studio

برای نمایش مثال‌ها در این مقاله، از نرم افزار dbForge Studio برای SQL Server استفاده کردیم که یکی از پرطرفدارترین و قدرتمندترین IDE-هایی است که با پایگاه‌ داده‌های رابطه‌ای روی SQL Server کار می‌کند. به وسیله انتقال کارها به فضای «رابط بصری» (Visual Interface)، این IDE به‌طور چشم‌گیری طراحی جدول‌ها را ساده می‌کند.

ابزاری به نام «طراح جدول» (Table Designer) در این نرم‌افزار تعبیه شده که به توسعه‌دهندگان امکان می‌هد همه عملیات ایجاد، تغییر و اصلاح جدول‌ها را به‌صورت گرافیکی انجام دهند. تمام گزینه‌های مورد نظر را برای تعریف ستون‌های جدول، نوع‌های داده، محدودیت‌ها، روابط بین جدول‌ها و سایر مشخصات جدول‌ها را دارد. در ادامه نمونه‌ی دیگری از گرافیک dbForge Studio را نمایش داده‌ایم.

نمایش تعریف جدول در GUI

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

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

Devart، شرکتی که نرم‌افزار dbForge Studio را برای SQL Server تولید می‌کند، نسخه رایگان این IDE را به مدت ۳۰ روز، با تمام قابلیت‌ها ارائه می‌دهد تا بتوانید قدرت همه امکانات این نرم افزار را در اختیار داشته باشید و آن‌ها در عمل ارزیابی کنید. می‌توانید تمام وظایف از قبیل توسعه، مدیریت و اداره پایگاه‌ داده را انجام دهید.

مرد در حال کار با تایپ در دفتر تمیز

سوالات پر تکرار

در ادامه، به چند سوال متداول پیرامون ساخت جدول در SQL پرداخته‌ایم.

فرمان CREATE TABLE در SQL چیست؟

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

کلید اصلی چیست؟

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

آیا می توانم با عبارت SELECT جدول بسازم؟

بله، عبارت CREATE TABLE AS SELECT یا به صورت مخفف CTAS یکی از مهمترین ویژگی‌های در دسترس T-SQL است. CTAS عملیات موازی است که جدول‌ها جدید را بر اساس خروجی عبارت SELECT می‌سازد.

جمع بندی

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

بینش حرفه‌ای در کنار ابزار صحیح به برنامه‌نویسان کمک می‌کند که اثرگزاری و بهره‌وری را افزایش دهند و این ترکیب (بینش حرفه‌ای در کنار ابزار صحیح) هرگز شکست نمی‌خورد. در این مطلب از مجله فرادرس تلاش کردیم که درباره ساخت جدول در SQL مطالبی را ارائه کنیم و در کنار بینش حرفه‌ای، ابزار صحیحی نیز برای انجام این کار معرفی کنیم.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
devartintellipaatsimplilearnmicrosoft
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *