با سلام و عرض احترام خدمت شما همراهان گرامی روکسو، در این قسمت از سری آموزشی «آموزش زبان SQL» قصد داریم جدول ها و خصوصیات شان را با استفاده از زبان SQL تغییر دهیم.
برای ساخت و ویرایش یا حذف جدول ها راه های مختلفی وجود دارد. به طور مثال می توانید از محیط هایی مانند phpMyAdmin استفاده کنید که صد البته از محبوبیت فراوانی برخوردار بوده و دارای محیط گرافیکی هستند تا کار شما را آسان تر کنند اما ما قصد داریم این کار را از طریق دستورات SQL و بدون محیط گرافیکی انجام دهیم. اگر این کار را با کدهای SQL انجام دهید. بر مبحث مسلط می شوید و برای کار با روش های دیگر مشکل نخواهید داشت.
در قسمت قبل در رابطه با دستور CREATE TABLE
که سازنده ی یک جدول بود صحبت کردیم و ساختار آن را نیز بررسی کردیم:
CREATE TABLE new_table_name AS SELECT column1, column2,... FROM existing_table_name WHERE ....;
سپس مثال زیر را به شما ارائه دادیم:
CREATE TABLE TestTable AS SELECT customername, contactname FROM customers;
اجرای این دستور در پایگاه داده ی Northwind
اما صحبتی از نحوه ی حذف این جدول نکردیم. برای حذف جدول ها در زبان SQL باید از دستور DROP TABLE
استفاده کنید. این دستور دارای ساختار زیر است:
DROP TABLE table_name;
هشدار: دستور DROP TABLE
باعث حذف کامل جدول شما می شود بنابراین به طور مثال اگر جدول customers را Drop کنیم تمامی اطلاعات مشتریان را حذف کرده ایم! همیشه قبل از استفاده از این دستور از پایگاه داده ی خود یک نسخه ی پشتیبان تهیه کنید.
به عنوان مثال بیایید جدول Shippers را حذف کنیم:
DROP TABLE Shippers;
اجرای این دستور در پایگاه داده ی Northwind
سوال: برخی اوقات میخواهیم جدولی را به طور کامل خالی کنیم اما نمی خواهیم خود جدول حذف شود، بلکه می خواهیم داده های جدیدی را در آن بگذاریم. آیا راه حلی برای این موضوع وجود دارد؟
پاسخ: بله! برای حذف کامل اطلاعاتِ یک جدول (نه خود جدول) باید از دستور TRUNCATE TABLE
استفاده کنید که ساختار زیر را دارد:
TRUNCATE TABLE table_name;
دستور ALTER TABLE
به معنی «جدول را تغییر بده» می باشد. از این دستور برای دو هدف کلی استفاده می شود:
در مورد constraint ها صحبت خواهیم کرد اما قبل از آن باید با انواع دستورات ALTER TABLE
آشنا شویم.
حالت اول: اضافه کردن ستون ها (ALTER TABLE - ADD Column): حالت اول دستور ALTER TABLE
برای اضافه کردن یک ستون به جدول مورد نظر ما می باشد که دارای ساختار کلی زیر است:
ALTER TABLE table_name ADD column_name datatype;
به طور مثال می خواهیم ستونی به نام Email را به جدول Customers اضافه کنیم:
ALTER TABLE Customers ADD Email varchar(255);
اجرای این دستور در پایگاه داده ی Northwind
پس از اجرای این دستور می توان به راحتی مشاهده کرد که ستونی به نام Email به این جدول اضافه شده است. اگر دوست دارید نتیجه را مشاهده کنید در همان صفحه ای که هستید و پس از اجرای کد بالا، کد زیر را اجرا کنید:
SELECT * FROM CUSTOMERS;
پس از اجرای این دستور متوجه می شوید که مقدار Email برای تمامی مشتریان ما null است؛ دلیل اش این است که ما به تازگی ستون Email را اضافه کرده ایم و هنوز هیچ کدام از مشتریان ما فرصت وارد کردن ایمیل هایشان را نداشته اند.
حالت دوم: حذف کردن ستون ها (ALTER TABLE - DROP COLUMN): نوع دوم این دستور برای حذف ستون مورد نظر شما است. این دستور دارای ساختار زیر است:
ALTER TABLE table_name DROP COLUMN column_name;
نکته: برخی از سیستم های پایگاه داده به شما اجازه ی حذف یک ستون را نمی دهند.
به عنوان مثال می خواهیم ستون Email ای را که در دستور قبل ایجاد کردیم، در این دستور حذف کنیم:
ALTER TABLE Customers DROP COLUMN Email;
اجرای این دستور در پایگاه داده ی Northwind
حالت سوم: ویرایش و تغییر ستون ها (ALTER TABLE - ALTER/MODIFY COLUMN): نوع سوم این دستور برای ویرایش و ایجاد تغییرات در ستون مشخصی می باشد.
برای تغییر دادن نوع داده ی (datatype) یک ستون باید از ساختار زیر استفاده کنید:
برای SQL Server و یا MS Access:
ALTER TABLE table_name ALTER COLUMN column_name datatype;
برای My SQL و یا Oracle (نسخه های قبل از 10G):
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
برای Oracle (نسخه 10G و جدیدتر):
ALTER TABLE table_name MODIFY column_name datatype;
می خواهیم مثال های خود را روی جدول Persons پیاده کنیم، بنابراین باید نگاهی به آن بیندازیم:
City | Address | FisrtName | LastName | ID |
Sandnes | Timoteivn 10 | Ola | Hansen | 1 |
Sandnes | Borgvn 23 | Tove | Svendson | 2 |
Stavanger | Storgt 20 | Kari | Pettersen | 3 |
حالا می خواهیم به این جدول ستونی با نام DateOfBirth (به معنی «تاریخ تولد») اضافه کنیم. برای این کار باید از دستور زیر استفاده کنیم:
ALTER TABLE Persons ADD DateOfBirth date;
دقت کنید که در این مثال، ستونِ DateOfBirth از نوع داده ی date (تاریخ) می باشد، بنابراین تنها مقادیر تاریخ را نگه می دارد. گفتیم که datatype ها (یا همان انواع داده ها) مشخص می کنند.
در قسمت های پایانی این دوره لیست کاملی از انواع datatype ها را به شما ارائه خواهیم کرد. پس از اجرای این کد جدول ما به این شکل تغییر پیدا خواهد کرد:
DateOfBirth |
City | Address | FisrtName | LastName | ID |
Sandnes | Timoteivn 10 | Ola | Hansen | 1 | |
Sandnes | Borgvn 23 | Tove | Svendson | 2 | |
Stavanger | Storgt 20 | Kari | Pettersen | 3 |
اما اگر بخواهید نوع داده ی این ستون (DateOfBirth) را تغییر دهید می توانید از دستوری شبیه به دستور زیر استفاده کنید:
ALTER TABLE Persons ALTER COLUMN DateOfBirth year;
حالا دیگر نوع داده ی این ستون از نوع year (به معنی «سال») است و سال را به صورت 2 رقمی یا 4 رقمی در خود ذخیره می کند.
حذف کردن این ستون نیز کار ساده ای است و می توانیم با دستور زیر این کار را انجام دهیم:
ALTER TABLE Persons DROP COLUMN DateOfBirth;
با اجرای این دستور ستون DateOfBirth حذف شده و جدول به حالت قبلی خود بر میگردد.
امیدوارم از این قسمت لذت برده باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.