پیش فرض (Default)
اینجا درباره «مقدار پیش فرض (Default)» صحبت می کنیم. «قید (Constraint)» یعنی قانونی روی ستون یا جدول. مقدار «پیش فرض» وقتی استفاده می شود که کاربر چیزی وارد نکند. مثل نمره واردنشده که خودکار صفر می شود.
قید DEFAULT چیست؟
«قید DEFAULT» برای یک ستون مقدار خودکار تعیین می کند. اگر رکورد جدید مقدار ندهد، همین مقدار ذخیره می شود. بنابراین فرم های ناقص هم قابل ذخیره هستند.
DEFAULT هنگام ساخت جدول
در این نمونه، ستون City در جدول Persons مقدار Sandnes را به صورت پیش فرض می گیرد.
MySQL / SQL Server / Oracle / MS Access
CREATE TABLE Persons
(
ID int NOT NULL;
LastName varchar(255) NOT NULL;
FirstName varchar(255);
Age int;
City varchar(255) DEFAULT 'Sandnes';
);
DEFAULT با مقدارهای سیستمی
می توان مقدار پیش فرض را با توابع سیستمی گذاشت. مانند تاریخِ امروز در ستون OrderDate.
CREATE TABLE Orders
(
ID int NOT NULL;
OrderNumber int NOT NULL;
OrderDate date DEFAULT GETDATE();
);
افزودن DEFAULT با ALTER TABLE
اگر جدول قبلاً ساخته شده است، می توان قید پیش فرض را بعداً افزود.
MySQL
ALTER TABLE Persons
ALTER City SET DEFAULT 'Sandnes';
SQL Server
ALTER TABLE Persons
ADD CONSTRAINT df_City
DEFAULT 'Sandnes' FOR City;
MS Access
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'Sandnes';
Oracle
ALTER TABLE Persons
MODIFY City DEFAULT 'Sandnes';
نکته: نام گذاری قید در SQL Server با CONSTRAINT انجام می شود. سپس حذفش آسان تر می شود.
حذف قید DEFAULT
برای حذف، از دستورهای زیر استفاده کن. دقت کن نحو در سیستم ها متفاوت است.
MySQL
ALTER TABLE Persons
ALTER City DROP DEFAULT;
SQL Server / Oracle / MS Access
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;
تمرین گام به گام
- یک جدول با ستون City بساز.
- برای City مقدار پیش فرض تعیین کن.
- یک ردیف بدون City اضافه کن.
- مقدار ثبت شده City را بررسی کن.
نکته: برای قوانینِ داده، صفحه Check را ببین. سپس برای بهبود سرعت جست وجو، ایندکس را بررسی کن. همچنین از «مقدار پیش فرض» در فرم ها هوشمندانه استفاده کن.
جمع بندی سریع
- DEFAULT وقتی مقدار نیست، کمک می کند.
- می توان با تابع سیستمی مقدار داد.
- افزودن با ALTER هم ممکن است.
- حذف در هر سیستم کمی فرق دارد.
- نام گذاری قید مدیریت را ساده می کند.