عبارت های CREATE و ALTER در SQL — راهنمای جامع

۷۱۳ بازدید
آخرین به‌روزرسانی: ۱۰ مهر ۱۴۰۲
زمان مطالعه: ۶ دقیقه
عبارت های CREATE و ALTER در SQL — راهنمای جامع

در این نوشته دستور CREATE در SQL و چیزهایی که با آن می‌توانید بسازید را مرور خواهیم کرد. همچنین با دستور ALTER آشنا خواهیم شد که برای ایجاد تغییراتی در پایگاه داده استفاده می‌شود.

اغلب سیستم‌های پایگاه داده روشی برای ایجاد اشیای مختلف از طریق یک رابط WYSIWYG ارائه کرده‌اند. برای نمونه «اس‌کیو‌ال سرور مایکروسافت» ابزار (SQL Server Management Studio (SSMS را پیشنهاد می‌کند.

SSMS نوعی بازنمایی گرافیکی از سیستم پایگاه داده در اختیار شما قرار می‌دهد. بدین ترتیب می‌توانید در پایگاه داده به گردش پرداخته و جداول و موارد دیگر را مشاهده کنید.

علیرغم داشتن ابزاری مانند SSMS که باعث شده کارهای مختلف آسان‌تر شوند. دلایل خوبی وجود دارد که بخواهیم برخی کارها را به صورت برنامه‌نویسی شده انجام دهیم. برخی از این دلایل در ادامه فهرست شده‌اند:

  • ممکن است اپلیکیشن شما به کاربران امکان ایجاد لحظه‌ای اشیای پایگاه داده را ارائه کند.
  • ممکن است چندین محیط مختلف (مانند محیط توسعه، گسترش و پروداکشن) داشته باشید. بدین ترتیب اجرای اسکریپت‌های مختلف بر روی این 3 محیط متفاوت به صورت برنامه‌نویسی شده، بسیار آسان‌تر و کم خطاتر از وضعیتی خواهد بود که بخواهید 3 بار به طور مستقل از طریق SSMS یا سیستم معادل آن در سرورهای دیگر تغییرات را روی پایگاه‌های داده مختلف پیاده کنید. این وضعیت به خصوص در مواردی که دامنه تغییرات گسترده باشند، نمود بیشتری می‌یابد.
  • ممکن است به SSMS یا معادل آن در سیستم پایگاه داده دیگر دسترسی نداشته باشید.

خوشبختانه SQL چندین دستور SQL دارد که به شما مکان ایجاد اشیای پایگاه داده از جمله خود پایگاه داده، جداول و موارد دیگر را به صورت برنامه‌نویسی شده می‌دهد.

در ادامه برخی از دستورات CREATE را ارائه کرده‌ایم که از سوی SQL سرور پشتیبانی می‌شوند:

CREATE AGGREGATE

CREATE APPLICATION ROLE

CREATE ASSEMBLY

CREATE ASYMMETRIC KEY

CREATE BROKER PRIORITY

CREATE CERTIFICATE

CREATE COLUMNSTORE INDEX

CREATE CONTRACT

CREATE CREDENTIAL

CREATE CRYPTOGRAPHIC PROVIDER

CREATE DATABASE

CREATE DATABASE AUDIT SPECIFICATION

CREATE DATABASE ENCRYPTION KEY

CREATE DEFAULT

CREATE ENDPOINT

CREATE EVENT NOTIFICATION

CREATE EVENT SESSION

CREATE FULLTEXT CATALOG

CREATE FULLTEXT INDEX

CREATE FULLTEXT STOPLIST

CREATE FUNCTION

CREATE INDEX

CREATE LOGIN

CREATE MASTER KEY

CREATE MESSAGE TYPE

CREATE PARTITION FUNCTION

CREATE PARTITION SCHEME

CREATE PROCEDURE

CREATE QUEUE

CREATE REMOTE SERVICE BINDING

CREATE RESOURCE POOL

CREATE ROLE

CREATE ROUTE

CREATE RULE

CREATE SCHEMA

CREATE SEARCH PROPERTY LIST (Transact-SQL)

CREATE SEQUENCE (Transact-SQL)

CREATE SERVER AUDIT

CREATE SERVER AUDIT SPECIFICATION

CREATE SERVICE

CREATE SPATIAL INDEX

CREATE STATISTICS

CREATE SYMMETRIC KEY

CREATE SYNONYM

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE USER

CREATE VIEW

CREATE WORKLOAD GROUP

CREATE XML INDEX

CREATE XML SCHEMA COLLECTION

در این نوشته قصد نداریم همه دستورات فوق را تک به تک بررسی کنیم؛ اما در ادامه برخی از مهم‌ترین دستورهای CREATE در SQL را به همراه مثال‌های عملی توضیح خواهیم داد.

دستور Create Database

شما با استفاده از دستور Create Database می‌توانید یک پایگاه داده در SQL بسازید.

ساختار SQL

CREATE DATABASE database_name;

کد نمونه

این عبارت یک پایگاه داده به نام Payroll می‌سازد. از آنجا که به هیچ آرگومانی اشاره نشده است، فایل‌های داده پایگاه داده و لاگ‌های تراکنش‌ها به صورت خودکار در موقعیت پیش‌فرض ایجاد می‌شوند.

CREATE DATABASE Payroll;

افزودن آرگومان

چندین آرگومان اختیاری وجود دارند که می‌توانید به همراه دستور CREATE DATABASE ارسال کنید. برای این که فهرست کامل و موارد استفاده آرگومان‌های سیستم پایگاه داده مورد استفاده خود را بدانید باید به مستندات آن مراجعه کنید؛ اما در ادامه مثالی از آرگومان‌هایی که در زمان ایجاد پایگاه داده با استفاده از SQL سرور مایکروسافت پشتیبانی می‌شود، ارائه شده است.

کد نمونه

در این مثال ما نام و موقعیت فایل‌های داده پایگاه داده و لاگ‌های تراکنش آن را ذکر می‌کنیم. همچنین می‌توانیم اندازه اولیه این فایل‌ها (با استفاده از آرگومان SIZE)، بیشینه اندازه‌ای که می‌توانند رشد کنند (با آرگومان MAXSIZE) و میزان رشد هر فایل (با استفاده از FILEGROWTH) را نیز تعیین کنیم.

USE master
GO
CREATE DATABASE Payroll
ON
( NAME = Payroll_dat,
   FILENAME = 'c:\program files\microsoft sql server\mssql\data\payrolldat.mdf',
   SIZE = 20MB,
   MAXSIZE = 70MB,
   FILEGROWTH = 5MB )
LOG ON
( NAME = 'Payroll_log',
   FILENAME = 'c:\program files\microsoft sql server\mssql\data\payroll.ldf',
   SIZE = 10MB,
   MAXSIZE = 40MB,
   FILEGROWTH = 5MB );
GO

توجه داشته باشید که در SQl سرور مایکروسافت کلیدواژه GO پایان یک دسته از دستورات را اعلام می‌کند. استفاده از این کلیدواژه در MySQL و دیگر سیستم‌های پایگاه داده ضروری نیست. در ادامه دستور CREATE TABLE را بررسی می‌کنیم.

دستور CREATE TABLE

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

ساختار SQL

CREATE TABLE table_name

(column_name_1 datatype,

column_name_2 datatype,

...

);

مثال

CREATE TABLE Individual

(IndividualId int,

FirstName Varchar(255),

LastName Varchar(255),

UserName Char(10)

);

نتیجه

خروجی دستور فوق یک جدول خالی خواهد بود. شما می‌توانید با استفاده از عبارت INSERT داده‌هایی به این جدول اضافه کنید.

IndividualIdFirstNameLastNameUserName

انواع داده

احتمالاً متوجه شدید که ما به طور صریح، نوع داده‌ای که در جدول خود استفاده خواهیم کرد را در دستور CREATE TABLE تعیین کردیم. دلیل این امر آن است که وقتی یک ستون ایجاد می‌کنید باید به پایگاه داده بگویید که در این ستون چه نوع داده‌هایی را نگه‌داری خواهید کرد.

نوع دقیق داده‌ها و شیوه بیان دقیق آن در سیستم‌های مختلف پایگاه داده متفاوت است؛ اما به طور کلی گونه‌های مختلف سیستم‌های SQL از انواع رشته‌های با اندازه ثابت (char)، رشته‌های با طول متغیر (varchar)، مقادیر تاریخ/زمان (datetime)، اعداد و اعداد صحیح (bigint, int, smallint, tinyint, numeric) را پشتیبانی می‌کنند. انواع داده پایه‌ای که در اس‌کیوال سرور وجود دارند را در ادامه ارائه کرده‌ایم:

مقادیر عددی دقیق

bigintnumeric
bitsmallint
decimalsmallmoney
inttinyint
money

مقادیر عددی تقریبی

floatreal

تاریخ و زمان

datedatetimeoffset
datetime2smalldatetime
datetimetime

رشته‌های کاراکتری

charvarchar
text

رشته‌های کاراکتری یونیکد

ncharnvarchar
ntext

باینری

binaryvarbinary
image

انواع داده دیگر

cursortimestamp
hierarchyiduniqueidentifier
sql_variantxml
tableSpatial Types

در هر حال اگر در مورد این که کدام نوع داده از سوی سیستم داده شما پشتیبانی می‌شود و یا چگونه می‌توانید در این سیستم آن را اعلام کنید، مطمئن نیستید، بهتر است به مستندات آن مراجعه کنید. در بخش بعدی با استفاده از دستور CREATE INDEX یک اندیس برای جدول خود ایجاد می‌کنیم.

دستور CREATE INDEX

از دستور CREATE INDEX برای ایجاد اندیس برای جدول‌های SQL استفاده می‌شود. اندیس‌ها بدین منظور ایجاد می‌شوند تا امکان جستجوی جدول تسهیل شود. اندیس پایگاه داده مانند فهرست یک کتاب است. با استفاده از بخش فهرست هر کتابی می‌توانیم بدون این که مجبور باشیم کل کتاب را ورق بزنیم، بدانیم که اطلاعات مورد نیاز ما در کدام صفحه کتاب قرار دارند. اندیس پایگاه داده نیز به اپلیکیشن‌هایی که از آن استفاده می‌کنند، کمک می‌کند که داده‌ها را بدون نیاز به اسکن کل جدول‌ها، پیدا کنند.

اندیس‌ها ممکن است تأثیر اندک منفی بر روی عملکرد پایگاه داده داشته باشند، بنابراین باید اندیس‌ها را تنها روی جدول‌ها و ستون‌هایی ایجاد کنید که به طور مکرر مورد جستجو واقع می‌شوند.

برای نمونه اگر کاربران اپلیکیشن شما در اغلب موارد فیلد LastNAme را جستجو می‌کنند، در این صورت ایجاد اندیس برای این ستون بسیار مناسب خواهد بود. با استفاده از دستور CREATE INDEX می‌توانید یک اندیس بسازید.

ساختار SQL

CREATE INDEX index_name

ON table_name (column_name);

مثال

CREATE INDEX IndividualIndex

ON Individual (LastName);

حال که با شیوه ایجاد جدول در پایگاه داده آشنا شدیم، در ادامه روش تغییر دادن آن‌ها را نیز مرور می‌کنیم.

دستور Alter Table

از دستور Alter Table می‌توان برای ایجاد تغییرات مختلف در یک جدول پایگاه داده استفاده کرد.

افزودن ستون

یکی از مواردی که ممکن است بخواهیم در جدول تغییر دهیم این است که یک ستون جدید به آن اضافه کنیم

ساختار SQL

ALTER TABLE table_name

ADD column_name datatype;

عبارت نمونه SQL

در دستور نمونه زیر یک ستون به نام age به جدول Individual اضافه می‌کنیم.

ALTER TABLE Individual

ADD age int;

تغییر نوع داده

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

ساختار SQL

ALTER TABLE table_name

ALTER COLUMN column_name datatype;

عبارت نمونه SQL

در دستور نمونه زیر سعی می‌کنیم نوع داده ستون age را به صورت numeric تغییر دهیم.

ALTER TABLE Individual

ALTER COLUMN age numeric;

حذف ستون

حذف (Drop) یک ستون یعنی آن ستون را از پایگاه داده پاک یا delete کنیم.

ساختار SQL

از دستور DROP COLUMN به همراه نام ستونی که می‌خواهیم حذف شود استفاده می‌کنیم.

ALTER TABLE table_name

DROP COLUMN column_name;

دستور نمونه SQL

برای مثال در دستور زیر، ستون age را از ستونی که در بخش قبلی اضافه کردیم، حذف می‌کنیم.

ALTER TABLE Individual

DROP COLUMN age;

بدین ترتیب به پایان این بخش از معرفی دستورهای SQL می‌رسیم.

اگر این نوشته مورد توجه شما واقع شده است، پیشنهاد می‌کنیم موارد زیر را نیز ملاحظه کنید:

==

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
quackitquackitquackitquackitquackit
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *