سلام عزیزان در این سری آموزشها با پایگاه داده Sql Server آشنا میشوید.
در قسمت قبل با مفاهيم زير آشنا شديد:
با ادامه آموزش Sql همراه باشيد
از دستور ALTER TABLE برای اضافه کردن ، حذف کردن یا تغییر ستون ها در جدول موجود استفاده می شود.
برای اضافه کردن یک ستون به یک جدول ، از دستور زیر استفاده کنید:
ALTER TABLE table_name
ADD column_name datatype
برای حذف کردن یک ستون از یک جدول از دستور زیر استفاده می کنیم ( توجه داشته باشید که بعضی از پایگاه داده ها اجازه پاک کردن ستون را نمی دهند )
ALTER TABLE table_name
DROP COLUMN column_name
برای تغییر نوع داده یک ستون در یک جدول، از دستور زیر استفاده می کنیم :
در SQL Server/MS Access:
ALTER TABLE table_name
DROP COLUMN column_name
در My SQL/Oracle:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype
در Oracle 10G و نسخه های بالاتر:
ALTER TABLE table_name
MODIFY column_name datatype
به جدول “Persons” در زیر نگاه کنید:
می خواهیم تا ستونی را با نام “DateOfBirth” به جدول “Persons” اضافه کنیم.
از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD DateOfBirth date
توجه کنید که ستون جدید “DateOfBirth” از نوع date می باشد و تاریخ را در خود نگه می دارد. نوع داده تعیین می کند که چه نوع داده ای را در یک ستون می توان وارد کرد.
می خواهیم نوع داده های ستون “DateOfBirth” در جدول “Persons” را تغییر دهیم.
از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year
توجه کنید که ستون “DateOfBirth” از نوع سال می باشد و از دو یا چهار رقم برای نگهداری سال استفاده خواهد کرد.
در مرحله بعد می خواهیم تا ستون “DateOfBirth” را از جدول “Persons” حذف کنیم.
برای اینکار از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
DROP COLUMN DateOfBirth
جدول “Persons” به شکل زیر خواهد شد:
افزایش خودکار فیلدها Auto-Increment یا افزایش خودکار، اجازه می دهد که یک شماره منحصر به فرد، برای سطر جدیدی که درجدول وارد می شود، تولید شود.
خیلی اوقات می خواهیم زمانی که رکورد جدیدی وارد می شود، مقدار فیلد primary key به طور خودکار ایجاد شود.
در این صورت از فیلد auto-increment در جدول استفاده می کنیم.
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
مای MySQL از کلید واژه AUTO_INCREMENT برای اعمال حالت افزایش خودکار استفاده می کند.
به طور پیش فرض، مقدار شروع برای AUTO_INCREMENT عدد یک می باشد و مقدار آن برای رکورد جدید، یک عدد افزایش می یابد.
برای اینکه مقدار شروع AUTO_INCREMENT را مقداری غیر از یک تعیین کنیم از دستور زیر استفاده می کنیم.
ALTER TABLE Persons AUTO_INCREMENT=100
برای وارد کردن یک رکورد جدید در جدول “Persons” دیگر نباید مقداری برای ستون “ID” تعیین کنیم (مقداری منحصر به فردی، به صورت خودکار در این فیلد وارد می شود):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. برای ستون“ID” یک مقدار منحصر به فرد تعیین می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
در MS SQL Server از کلید واژه IDENTITY برای اعمال خصوصیت افزایش خودکار استفاده می کند.
در مثال بالا مقدار شروع برای IDENTITY عدد یک می باشد و برای هر رکورد جدید، یک عدد به آن افزایش می یابد.
نکته: برای اینکه تعیین کنید که ستون “ID” با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد IDENTITY را به (10،5) تغییر دهید.
برای اینکه سطر جدیدی را در جدول “Persons” وارد کنیم، دیگر نیازی نیست مقداری برای ستون “ID”وارد کنیم. (مقداری منحصر به فرد، به طور خودکار در این ستون وارد می شود):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “ID” یک مقدار منحصر به فرد داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
مای MS Access از کلید واژه AUTOINCREMENT برای اعمال خصوصیت افزایش خودکار استفاده می کند.
به طور پیش فرض، مقدار شروع برای AUTOINCREMENT عدد یک می باشد و مقدار آن برای هر رکورد جدید، یک عدد افزایش می یابد.
نکته:
برای اینکه تعیین کنید که ستون “ID”با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد autoincrement را به AUTOINCREMENT (10,5) تغییر دهید.
برای اینکه سطر جدیدی را در جدول “Persons” وارد کنیم، دیگر نیازی نیست مقداری برای ستون”ID” وارد کنیم. (مقدار منحصر به فردی به طور خودکار در این ستون وارد می شود)
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “P_Id” یک مقدار منحصر به فرد داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
در Oracle کار کمی پیچیده تر است.
شما باید فیلد auto-increment را با یک sequence object ایجاد کنید. (این object، یک توالی از اعداد را تولید می کند)
برای تولید اعداد متوالی، از دستور CREATE SEQUENCE که در زیر آمده استفاده کنید:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
دستور بالا یک sequence object با نام seq_person ایجاد می کند، که با عدد یک شروع و یک عدد یک عدد افزایش می یابد. همچنین برای کارآیی و سرعت دسترسی بیشتر تا 10 مقدار را در حافظه خود (cache) نگه می دارد.
برای درج یک رکورد جدید در جدول "Persons"، باید از تابع nextval استفاده کنیم (این تابع، مقدار بعدی را از seq_person sequence دریافت می کند):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “ID” عدد بعدی از توالی seq_person داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
آموزش sql ادامه دارد