ایجاد جدول در SQL Server
جداول (tables)، اشیاء پایگاه داده هستند که حاوی تمام داده های پایگاه داده هستند. در یک جدول، داده ها به طور منطقی در ردیف ها و ستون ها سازماندهی می شوند. هر ستون نشان دهنده یک فیلد و هر ردیف نشان دهنده یک رکورد منحصر به فرد است. هر ستون دارای یک نوع داده مختص به آن است که نشان دهنده نوع داده در آن ستون است. هر جدول به طور منحصر به فرد در پایگاه داده نامگذاری می شود.
تعداد جداول در پایگاه داده تنها با تعداد اشیاء مجاز در پایگاه داده محدود می شود (2,147,483,647). به عبارت دیگر، تعداد جداول برابر با تعداد اشیاء موجود در پایگاه داده است. یک جدول تعریف شده توسط کاربر می تواند تا 1024 ستون داشته باشد.
دو روش برای ایجاد جدول در SQL Server وجود دارد:
1- استفاده از T-SQL Script
2- استفاده از Table Designer در SQL Server Management Studio
ایجاد جدول با استفاده از T-SQL Script
می توانید دستور CREATE TABLE را در ویرایشگر کوئری SSMS اجرا کنید تا یک جدول جدید در SQL Server ایجاد کنید.
دستور CREATE TABLE در زیر جدول Employee را ایجاد می کند.
اسکریپت SQL بالا یک جدول Employee جدید را در طرح پیش فرض dbo و در پایگاه داده ای ایجاد می کند که توسط query editor در SSMS نشان داده شده است.
می توانید نام کامل جدول را در قالب DatabaseName.SchemaName.TableName مشخص کنید. آنچه که در زیر می بینید جدول Employee را در dbo schema پیش فرض و پایگاه داده HR در SQL Server ایجاد می کند.
در T-SQL بالا:
1- نام پایگاه داده HR است، dbo نام طرحی (schema) است که جدول به آن تعلق دارد و Employee نام جدول است. اگر نام پایگاه داده مشخص نشده باشد، به طور پیش فرض به پایگاه داده فعلی که ویرایشگر کوئری (query editor) آن را هدف قرار داده است، تبدیل می شود. اگر نام طرح مشخص نشده باشد، جدول متعلق به یک طرح پیش فرض (default schema) خواهد بود.
2- نام جدول حداکثر می تواند 128 کاراکتر باشد.
3- نام ستون ها با فرمت ColumnName DataType NOT NULL مشخص شده است که با کاما از هم جدا شده اند. T-SQL بالا ستون های EmployeeId ، FirstName LastName ، Email ، Phone ، HireDate ، Salary را ایجاد می کند.
4- نوع داده بعد از نام ستون مشخص شده است تا نوع داده ای که یک ستون قرار است ذخیره کند را مشخص کند.
5- NOT NULL مشخص می کند که ستون اجازه مقادیر null را نمی دهد. به عبارت دیگر ستون باید حتماً مقدار داشته باشد و نمی تواند خالی باشد. اگر NOT NULL را مشخص نکنید، به طور پیش فرض، یک ستون به مقدار null اجازه می دهد.
6- IDENTITY(1,1) یک ستون از نوع عدد صحیح را به صورت خودکار مقداردهی می کند که در آن (1,1) مشخص می کند که مقدار ستون از 1 شروع می شود و در هر عملیات درج یکی افزایش می یابد. اغلب، ستون های کهprimary key هستند به صورت identity تعریف می شوند.
7- با تعیین کلمه کلیدی PRIMARY KEY بعد از نام ستون و نوع داده، یک ستون به عنوان کلید اصلی تعیین می شود. در T-SQL بالا یک کلید اصلی تعیین شده است (EmployeeID) .
آنچه که در زیر می بینید جدول Employee را در صورت وجود حذف می کند و سپس جدول Employee را ایجاد می کند.
در ادامه محدودیت های کلید اصلی (Primary Key constraints) در انتها مشخص شده است.
ایجاد جدول در SQL Server با استفاده از SSMS
می توانید با استفاده از طراح جدول در SQL Server Management Studio یک جدول جدید طراحی کنید.
برای طراحی جدول جدید، SSMS را باز کرده و به sql server instance خود متصل شوید.
در Object Explorer، پایگاه داده HR یا هر پایگاه داده ای را که می خواهید در آن یک جدول جدید ایجاد کنید، گسترش دهید.
حالا مانند تصویر زیر روی پوشه Tables کلیک راست کرده و New Table را انتخاب کنید.
با انجام این کار صفحه طراحی جدول باز می شود که در آن می توانید نام یک ستون و نوع داده آن را وارد کنید، همچنین اگر ستونی اجازه دارد که مقدار null داشته باشد چک باکس را علامت بزنید، همانطور که در زیر نشان داده شده است.
1- نام ستون (Column Name) : یک نام منحصر به فرد برای ستون تعریف کنید.
2- نوع داده (Data type): یک نوع داده برای ستون از لیست کشویی انتخاب کنید. طول مناسب را برای انواع داده های رشته ای انتخاب کنید.
3- Allow Nulls : با علامت زدن کادر، انتخاب کنید که آیا Nulls برای ستون مجاز باشد یا خیر.
اطلاعات ستون ها را در یک ردیف جداگانه برای تمام ستون هایی که می خواهید در جدول خود داشته باشید وارد کنید. در ادامه ستون های جدول Employee نشان داده شده است.
برای تنظیم property های یک ستون، مانند identity specification ، مشخصات computed column و غیره، یک ستون را انتخاب کنید و مقدار property را در تب Column Properties در قسمت پایین تنظیم کنید.
برای تعیین یک ستون به عنوان ستون کلید اصلی، روی ردیف ستون کلیک راست کرده و مانند شکل زیر، Set Primary Key را انتخاب کنید.
</br >همانطور که در زیر نشان داده شده است، می توانید کلید اصلی را پیکربندی کنید طوری که با تنظیم آن به صورت ستون از نوع identity به طور خودکار اعداد صحیح منحصر به فرد را ایجاد کند.
به طور پیش فرض، جدول در dbo schema ایجاد می شود. برای تعیین طرحی متفاوت برای جدول، در قسمت Table-Designer کلیک راست کرده و properties را انتخاب کنید. از لیست کشویی Schema، طرح مناسب را انتخاب کنید.
اکنون از منوی فایل، گزینه Save را برای ایجاد این جدول انتخاب کنید. Employee را به عنوان نام جدول وارد کنید و روی OK کلیک کنید.
برای مشاهده جدول جدید، پوشه Tables را در Object Explorer بازخوانی (refresh) کنید. جدول EMPLOYEE اکنون در زیر گره Tables موجود است.
ستون های ALTER TABLE ADD در یک جدول در SQL Server
با استفاده از دستور ALTER TABLE می توانید ستون هایی را به جدول موجود اضافه کنید.
دستور ALTER TABLE همچنین می تواند برای تغییر نام یا حذف ستون ها در جدول موجود استفاده شود.
از عبارت ALTER TABLE ADD برای اضافه کردن یک یا چند ستون به جدول موجود استفاده کنید.
آنچه که در زیر می بینید یک ستون جدید به نام Address از نوع varchar و با اندازه 500 به جدول Employee اضافه می کند.
شکل زیر سه ستون به جدول Employee اضافه می کند.
اضافه کردن ستون ها با استفاده از SSMS
در Object Explorer، روی جدولی که می خواهید ستون های جدید به آن اضافه کنید، راست کلیک کرده و Design را انتخاب کنید.
روی اولین سلول خالی زیر نام ستون آخر کلیک کنید و نام ستون را مانند آنچه که در تصویر زیر می بینید وارد کنید.
در ستون بعدی، نوع داده را از منوی بازشو انتخاب کنید و در صورت امکان، طول را انتخاب کنید.
در آخرین ستون یک ردیف، چک باکس Allow Nulls را در صورتی که nullable است علامت بزنید. اکنون، جدول را از بخش file بعد save ذخیره کنید تا جدول اصلاح شده ذخیره شود.
ستون Identity در SQL Server
در SQL Server، یک ستون در جدول را می توان به عنوان یک ستون identity تنظیم کرد که از آن برای تولید مقادیر کلید ستون های کلید اصلی یا primary key استفاده می شود.
از ویژگی IDENTITY[(seed, increment)] در ستون استفاده کنید تا آن را به عنوان ستون identity در دستورات CREATE TABLE یا ALTER TABLE تعریف کنید.
پارامترها:
1- Seed اولین مقدار ستونidentity است.
2- Increment مقدار افزایشی است که به مقدارidentity ردیف قبلی اضافه می شود.
ویژگی identity یک مقدار جدید بر اساس seed و increment فعلی ایجاد می کند. هر مقدار جدید برای یک تراکنش خاص با سایر تراکنش ها متفاوت است.
ویژگی identity منحصر به فرد بودن مقدار را تضمین نمی کند. شما باید یک ستون را به صورت یک PRIMARY KEY یا UNIQUE constraint یا UNIQUE index ایجاد کنید تا آن را منحصر به فرد کنید.
شما می توانید فقط یک ستون در هر جدول را به عنوان ستون identity تعریف کنید.
تعریف ستون IDENTITY
عبارت CREATE TABLE نشان داده شده در زیر، ستون EmpID را به عنوان ستون identity اعلام می کند.
در دستور CREATE TABLE SQL بالا، EmpID ستون IDENTITY با seed وincrement به مقدار 1 است. بنابراین، هر زمان که یک ردیف جدید درج شود، EmpID به اندازه 1 واحد افزایش می یابد. اگر هیچ پارامتری را تعیین نکنید، مقدار پیش فرض عبارت است از IDENTITY(1,1) .
همچنین می توانید ستون identity را در SSMS با کلیک راست روی جدول و انتخاب Design تنظیم کنید. تا جدولی در حالت طراحی باز شود که در آن می توانید یک ستون را انتخاب کنید و ویژگی «Identity Specification» را به «Yes» به همراه مقدارincrement و seed تنظیم کنید. همانطور که در زیر نشان داده شده است.
حالا بیایید یک ردیف را در جدول Employee وارد کنیم.
دستور فوق یک رکورد جدید را در جدول Employee در تمام ستون ها، مانند شکل زیر وارد می کند.
همانطور که می بینید، ما مقداری را برای ستون EmpID مشخص نکرده ایم. به طور خودکار یک مقدار برای ستون identity به نام EmpID وارد می شود که 1 است. اگر رکورد دیگری را وارد کنید، این مقدار 2 می شود.
دستور بالا رکورد زیر را درج می کند.
بنابراین، به طور خودکار به اندازه یک واحد به آخرین مقدار تولید شده در ستون identity اضافه می شود.
به هر دلیلی، اگر یک درج از کار بیفتد یا به عقب برگردد، شماره EmpID ایجاد شده از بین می رود و شکاف هایی در ستون EmpID وجود خواهد داشت.
بیایید دستور زیر را اجرا کنیم که یک خطا ایجاد می کند زیرا سعی می کند NULL را در ستون NOT NULL وارد کند.
حال دستور insert معتبر را مطابق شکل زیر اجرا کنید.
دستور بالا ردیفی را وارد می کند که در آن مقدار EmpID عدد 4 خواهد بود نه 3، همانطور که در زیر نشان داده شده است. بنابراین، حتی اگر خطایی در تراکنش رخ دهد، مقدار ستون identity همچنان افزایش می یابد.
تغییر نام ستون یا جدول در SQL Server
می توانید نام جدول، نام ستون جدول موجود و نام ایندکس را با استفاده از رویه ذخیره شده (stored procedure) سیستمی به نام sp_rename تغییر نام دهید.
تغییر نام جدول : برای تغییر نام جدول، "old_name" باید نام جدول یا schema.table موجود باشد.
تغییر نام ستون : برای تغییر نام ستون در جدول،"old_name" باید به شکل table.column یا schema.table.column باشد.
تغییر نام ایندکس : برای تغییر نام ایندکس، "old_name" باید به شکل table.index یا schema.table.index باشد.
تغییر نام Constraints : برای تغییر نام یک محدودیت، 'old_name' باید به شکل schema.constraint باشد.
آنچه که در زیر می بینید نام جدول Employee را به جدول Consultant تغییر می دهد.
آنچه که در زیر می بینید ستون Address جدول Employee را به TempAddress تغییر نام می دهد.
شما می توانید نوع object را برای نشان دادن اینکه آیا ستون، index ، پایگاه داده و غیره است مشخص کنید.
توجه داشته باشید که نام ستون جدید نباید پیشوند نام جدول باشد.
تغییر نام جدول و ستون ها با استفاده از SSMS
SSMS را باز کنید و پوشه پایگاه داده را باز کنید.
جدول یا ستونی را که می خواهید تغییر نام دهید انتخاب کرده و راست کلیک کنید و روی Rename کلیک کنید. با نوشتن روی نام موجود، نام جدیدی وارد کنید.
به منوی فایل رفته و روی Save کلیک کنید.
حذف ستون های جدول در SQL Server
از دستور ALTER TABLE DROP COLUMN برای حذف یک یا چند ستون از جدول با استفاده از T-SQL استفاده کنید.
آنچه که در زیر می بینید ستون Address را از جدول Employee حذف می کند.
آنچه که در زیر می بینید چندین ستون جدول Employee را حذف می کند.
حذف ستون ها با استفاده از SSMS
SSMS را باز کنید و به SQL Server instance متصل شوید. در Object Explorer، پایگاه داده و پوشه Tables را باز کنید، جدول را پیدا کنید و پوشه ستون ها را باز کنید تا نام ستون ها نمایش داده شود.
سپس روی نام ستونی که می خواهید حذف کنید کلیک راست کرده و روی delete کلیک کنید.
سپس صفحه "Delete Object" باز می شود همانطور که در زیر نشان داده شده است.
برای حذف یک ستون روی OK کلیک کنید.
در انتها، تغییرات را از منوی File -> Save ذخیره کنید.