ویرایش جدول ها با استفاده از SQL

05 فروردین 1398
درسنامه درس 22 از سری آموزش زبان SQL
SQL-Language-alter-drop-tables

با سلام و عرض احترام خدمت شما همراهان گرامی روکسو، در این قسمت از سری آموزشی «آموزش زبان 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

دستور ALTER TABLE به معنی «جدول را تغییر بده» می باشد. از این دستور برای دو هدف کلی استفاده می شود:

  • برای حذف، اضافه و یا تغییر دادن ستون های یک جدول
  • برای اضافه و یا حذف کردن constraints (قوانین داده ها) در یک جدول

در مورد 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;

مثال های کار با دستور ALTER TABLE

می خواهیم مثال های خود را روی جدول 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 حذف شده و جدول به حالت قبلی خود بر میگردد.

امیدوارم از این قسمت لذت برده باشید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش زبان SQL توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.