مقدمه
جداول، اصلیترین ساختار سازماندهی دادهها در پایگاهدادههای SQL هستند. هر جدول شامل تعدادی ستون است که ویژگیهای هر ردیف (یا رکورد) را نمایش میدهد. از آنجایی که جداول بخش بنیادی سازماندهی دادهها هستند، برای هر کسی که با پایگاهدادههای رابطهای کار میکند، مهم است که بداند چگونه جداول را ایجاد، تغییر و حذف کند.
در این راهنما، نحوه ایجاد جداول در SQL و همچنین تغییر و حذف جداول موجود را بررسی خواهیم کرد.
پیشنیازها
برای دنبال کردن این راهنما، نیاز دارید که یک کامپیوتر با یک سیستم مدیریت پایگاهداده رابطهای (RDBMS) که از SQL استفاده میکند، داشته باشید. دستورها و مثالهای این راهنما در محیط زیر تست شدهاند:
-
سروری با سیستمعامل Ubuntu 20.04، با کاربر غیر root که دسترسیهای مدیریتی دارد و فایروالی با UFW تنظیم شده است.
-
MySQL نصب و ایمنسازی شده روی سرور.
توجه: بسیاری از RDBMSها پیادهسازیهای خاص خود از SQL را دارند. اگرچه دستورهای این آموزش در اکثر RDBMSها کار میکنند، اما سینتکس یا خروجی دقیق ممکن است در سیستمهای غیر از MySQL متفاوت باشد.
همچنین نیاز دارید که یک پایگاهداده و جدول با دادههای نمونه داشته باشید تا بتوانید تمرین کنید. اگر ندارید، بخش «اتصال به MySQL و راهاندازی پایگاهداده نمونه» جزئیات ساخت یک پایگاهداده و جدول را ارائه میدهد.
اتصال به MySQL و ایجاد پایگاهداده نمونه
اگر پایگاهداده شما روی سرور راهدور است، ابتدا با SSH به سرور متصل شوید:
ssh sammy@your_server_ip
سپس به MySQL prompt وارد شوید (به جای sammy نام کاربری MySQL خود را وارد کنید):
mysql -u sammy -p
یک پایگاهداده به نام tablesDB ایجاد کنید:
CREATE DATABASE tablesDB;
اگر ایجاد موفقیتآمیز بود، خروجی مشابه زیر دریافت خواهید کرد:
Query OK, 1 row affected (0.01 sec)
برای استفاده از این پایگاهداده، دستور زیر را اجرا کنید:
USE tablesDB;
خروجی:
Database changed
اکنون آمادهاید تا ادامه راهنما و آموزش ایجاد و مدیریت جداول در SQL را دنبال کنید.
ایجاد جداول
برای ایجاد یک جدول در SQL از دستور CREATE TABLE استفاده کنید و پس از آن نام جدول را مشخص کنید:
CREATE TABLE table_name;
توجه: مانند هر دستور SQL، دستور CREATE TABLE باید با ; خاتمه یابد.
این دستور یک جدول خالی بدون ستون ایجاد میکند. برای ایجاد جدول با ستونها، بعد از نام جدول، لیست ستونها همراه با نوع داده و محدودیتها در پرانتز و با کاما جدا کنید:
CREATE TABLE table_name (
column1_name column1_data_type,
column2_name column2_data_type,
...
columnN_name columnN_data_type
);
مثال
فرض کنید میخواهید جدولی برای ثبت اطلاعات پارکهای مورد علاقه خود در نیویورک ایجاد کنید. پس از تعیین ویژگیهایی که میخواهید ثبت کنید، نام ستونها و نوع داده مناسب را مشخص میکنید:
-
parkName: نام پارک، نوع داده
varchar(30)مناسب است. -
yearBuilt: سال ساخت پارک، نوع داده
int(به جایyearکه محدوده ۱۹۰۱ تا ۲۱۵۵ دارد). -
firstVisit: تاریخ اولین بازدید، نوع داده
date(فرمت YYYY-MM-DD). -
lastVisit: تاریخ آخرین بازدید، نوع داده
date.
برای ایجاد جدول faveParks با ستونهای بالا:
CREATE TABLE faveParks (
parkName varchar(30),
yearBuilt int,
firstVisit date,
lastVisit date
);
خروجی:
Query OK, 0 rows affected (0.01 sec)
توجه: این دستور تنها ساختار جدول را ایجاد میکند و هنوز دادهای اضافه نشده است.
ایجاد جدول از جدول موجود
با دستور CREATE TABLE AS میتوانید جدول جدیدی از جدول موجود بسازید:
CREATE TABLE new_table_name AS (
SELECT column1, column2, ... columnN
FROM old_table_name
);
به جای تعریف ستونها و نوع دادهها، از دستور SELECT استفاده میکنید تا ستونها و دادههای جدول قدیمی را به جدول جدید منتقل کنید.
مثال:
CREATE TABLE parkInfo AS (
SELECT parkName, yearBuilt
FROM faveParks
);
خروجی:
Query OK, 0 rows affected (0.02 sec)
اگر جدول
faveParksداده داشت، اطلاعات ستونهایparkNameوyearBuiltبه جدولparkInfoکپی میشدند.
جلوگیری از خطا هنگام ایجاد جدول
اگر جدول با همان نام وجود داشته باشد، ایجاد آن باعث خطا میشود:
CREATE TABLE parkInfo (
name varchar(30),
squareFootage int,
designer varchar(30)
);
خروجی:
ERROR 1050 (42S01): Table 'parkInfo' already exists
برای جلوگیری از خطا، میتوانید از گزینه IF NOT EXISTS استفاده کنید:
CREATE TABLE IF NOT EXISTS parkInfo (
name varchar(30),
squareFootage int,
designer varchar(30)
);
خروجی:
Query OK, 0 rows affected, 1 warning (0.00 sec)
هشدار نشان میدهد که جدول موجود است ولی دستور کل تراکنش را متوقف نمیکند.
تغییر جدول (ALTER TABLE)
برای تغییر ساختار جدول، از دستور ALTER TABLE استفاده میکنیم:
ALTER TABLE table_name ALTER_OPTION sub_options...;
میتوانید نام جدول را تغییر دهید، ستون اضافه یا حذف کنید، یا نوع ستون را تغییر دهید.
مثال تغییر نام جدول:
ALTER TABLE faveParks RENAME TO faveNYCParks;
اضافه کردن ستون جدید:
ALTER TABLE faveNYCParks ADD COLUMN borough varchar(20);
حذف ستون:
ALTER TABLE faveNYCParks DROP COLUMN borough;
تغییر نوع ستون:
ALTER TABLE faveNYCParks MODIFY COLUMN yearBuilt smallint;
توجه: گزینههای تغییر جدول بسته به RDBMS متفاوت است و باید مستندات رسمی را بررسی کنید.
حذف جدول
برای حذف یک جدول و تمام دادههای آن:
DROP TABLE table_name;
هشدار: حذف جدول دائمی است.
حذف چند جدول با یک دستور:
DROP TABLE table1, table2, table3;
استفاده از IF EXISTS برای جلوگیری از خطا اگر جدول موجود نباشد:
DROP TABLE IF EXISTS faveNYCParks, parkInfo;
جمعبندی
با خواندن این راهنما، شما نحوه ایجاد، تغییر و حذف جداول در پایگاهدادههای مبتنی بر SQL را یاد گرفتید. دستورها باید در هر RDBMS مبتنی بر SQL کار کنند، اما هر پایگاهداده پیادهسازی خاص خود را دارد و برای جزئیات بیشتر باید به مستندات رسمی مراجعه کنید.
از همراهی شما با پارمین کلود سپاسگزاریم.
نظرات کاربران