ساخت پایگاه داده و جدول با زبان SQL

29 اسفند 1397
درسنامه درس 21 از سری آموزش زبان SQL
SQL-Language-crud

با سلام و عرض ادب خدمت شما همراهان گرامی و همیشگی روکسو، در این جلسه می خواهیم در رابطه با نحوه ی تعریف و ساخت یک پایگاه داده (database) با زبان SQL صحبت کرده و برخی از نکات پیرامون آن (مانند تهیه ی نسخه ی پشتیبان) را بررسی کنیم. همچنین بعد از آن به سراغ ساخت جدول ها می رویم.

ساخت پایگاه داده ی جدید

دستور CREATE DATABASE در لغت به معنی «پایگاه داده بساز» است و همانطور که از نامش مشخص است کارش تعریف و ساخت یک پایگاه داده ی جدید است. ساختار کلی این دستور از این قرار است:

CREATE DATABASE databasename;

بنابراین اگر بخواهیم پایگاه داده ای با نام testDB بسازیم باید به این طریق عمل کنیم:

CREATE DATABASE testDB;

نکته: پایگاه داده (database) را با جدول ها (table) اشتباه نگیرید!

نکته: برخی از کارها در زمینه ی پایگاه داده حساس هستند و برای انجام آن ها نیاز به admin privilege (امتیازات مدیریت) می باشد که به زبان ساده تر یعنی باید admin (مدیر) باشید تا بتوانید این کارها را انجام دهید. ساختن یک پایگاه داده نیز از این قبیل اعمال است. بنابراین قبل از اینکه بخواهید یک پایگاه داده بسازید باید مطمئن شوید که admin privilege دارید، در غیر این صورت نمی توانید چیزی بسازید. یک راه برای چک کردن اینکه آیا پایگاه داده ی شما ساخته شده است یا خیر، استفاده از دستور SHOW DATABASES است. با اجرای این دستور تمام پایگاه های داده ای که ساخته باشید به شما نمایش داده می شود.

حذف پایگاه داده

برای حذف یک پایگاه داده به صورت کامل از دستور DROP DATABASE استفاده می کنیم که ساختار زیر را دارد:

DROP DATABASE databasename;

هشدار: در استفاده از این دستور نهایت دقت را به خرج دهید چرا که با اجرای آن تمام اطلاعات پایگاه داده ی شما حذف می شوند (مشتریان، حساب ها و...).

به طور مثال اگر بخواهیم پایگاه داده ی testDB را که قبلا ساختیم، حذف کنیم، می توانیم از کد زیر استفاده کنیم:

DROP DATABASE testDB;

برای اجرای این دستور نیز به admin privilege نیاز داریم.

تهیه ی نسخه ی پشتیبان از پایگاه داده

برای تهیه ی نسخه ی پشتیبان (backup) از پایگاه داده ی خود می توانید از دستور BACKUP DATABASE استفاده کنید. این دستور یک نسخه ی کامل از پایگاه داده‌تان را کپی می کند و دارای ساختار زیر است:

BACKUP DATABASE databasename
TO DISK = 'filepath';

البته نوع دیگری از این دستور وجود دارد که تنها از قسمت هایی از پایگاه داده بکاپ می گیرد که از بکاپ قبلی تغییر کرده باشند. به عبارت دیگر اگر داده هایی از زمان آخرین بکاپ گیری شما تغییر نکرده باشند، از آن ها بکاپ گرفته نمی شود. ساختار این دستور به شکل زیر است:

BACKUP DATABASE databasename
TO DISK = 'filepath'
WITH DIFFERENTIAL;

مثال: فرض کنید می خواهیم از پایگاه داده ی testDB روی درایو D یک نسخه ی پشتیبان بگیریم، بنابراین می توان نوشت:

BACKUP DATABASE testDB
TO DISK = 'D:\backups\testDB.bak';

هشدار: هیچ گاه نسخه ی پشتیبان را روی همان درایوی قرار ندهید که خود پایگاه داده روی آن است چرا که اگر درایو خراب شود نه تنها پایگاه داده‌تان را از دست می دهید بلکه نسخه ی پشتیبان نیز از بین خواهد رفت.

اگر بخواهیم از دستور دوم بکاپ گیری استفاده کنیم می توانیم اینطور بنویسیم:

BACKUP DATABASE testDB
TO DISK = 'D:\backups\testDB.bak'
WITH DIFFERENTIAL;

استفاده از این نوع بکاپ، مزیت هایی دارد؛ اولا حجم نسخه ی پشتیبان شما کمتر می شود و ثانیا زمان بکاپ گیری به شدت کاهش می یابد.

ساخت جدول در پایگاه داده

حال که پایگاه داده ی خود را ساخته ایم باید جدول های آن را نیز بسازیم. برای ساخت یک جدول از دستور CREATE TABLE استفاده می کنیم که دارای ساختار کلی زیر می باشد:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);

در ساختار بالا column ها همان نامِ ستون در جدول مورد نظر بوده و datatype نیز تعیین کننده ی نوع داده هایی است که یک ستون قبول می کند (مانند varchar یا integer یا date یا ...). در قسمت بعد با انواع داده های جدول ها به صورت مفصل آشنا خواهیم شد.

مثال: می خواهیم با زبان SQL جدولی بسازیم به نام Persons که دارای ستون های PersonID و LastName و FirstName و Address و City باشد. بنابراین میگوییم:

CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

اجرای این دستور در پایگاه داده ی Northwind

فعلا بدانید که varchar می تواند یک رشته را در خود نگه دارد و عدد جلوی آن نشان دهنده ی حداکثر تعداد کاراکتر های مجاز است. البته ستون PersonID از نوعِ int است که می تواند یک عدد صحیح را در خود نگه دارد.

حالا که یک جدول ساخته ایم باید آن را پر کنیم چرا که فعلا هیچ داده ای ندارد. برای وارد کردن داده ها می توان از دستور INSERT INTO استفاده کرد.

همچنین می توانید با استفاده از دستور CREATE TABLE یک کپی از جدولی که قبلا ساخته شده است را بسازید و بدین صورت تمام ستون های دو جدول دقیقا مانند هم خواهند بود. تفاوت این روش با روش قبل این است که اولا شما جدول را از ابتدا نمی سازید بلکه یک جدول دیگر را کپی می کنید و ثانیا جدول جدیدتان پر از داده های جدول قبلی خواهد بود. ساختار این دستور به شکل زیر است:

CREATE TABLE new_table_name AS
    SELECT column1, column2,...
    FROM existing_table_name
    WHERE ....;

به طور مثال جدولی به نام TestTables می سازیم که دقیقا یک کپی از جدول Customers است:

CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;

اجرای این دستور در پایگاه داده ی Northwind

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

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

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

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